From 857e8466fc6213653c0c31d4088af5f0298cbdb0 Mon Sep 17 00:00:00 2001 From: EricMichaelSmith Date: Mon, 26 Oct 2020 16:48:26 -0400 Subject: [PATCH 1/5] Record received messages --- mephisto/server/architects/mock_architect.py | 4 ++-- test/core/test_supervisor.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mephisto/server/architects/mock_architect.py b/mephisto/server/architects/mock_architect.py index b6e4ca66e..5434718b4 100644 --- a/mephisto/server/architects/mock_architect.py +++ b/mephisto/server/architects/mock_architect.py @@ -90,7 +90,7 @@ def on_message(self, message_text): if message["packet_type"] == PACKET_TYPE_ALIVE: self.app.last_alive_packet = message elif message["packet_type"] == PACKET_TYPE_AGENT_ACTION: - self.app.actions_observed += 1 + self.app.received_messages.append(message) elif message["packet_type"] != PACKET_TYPE_REQUEST_AGENT_STATUS: self.app.last_packet = message @@ -116,7 +116,7 @@ def __init__(self, port): self.port = port self.running_instance = None self.last_alive_packet: Optional[Dict[str, Any]] = None - self.actions_observed = 0 + self.received_messages = [] self.last_packet: Optional[Dict[str, Any]] = None tornado_settings = { "autoescape": None, diff --git a/test/core/test_supervisor.py b/test/core/test_supervisor.py index ddad3cb90..d8d3022dd 100644 --- a/test/core/test_supervisor.py +++ b/test/core/test_supervisor.py @@ -232,7 +232,7 @@ def test_register_concurrent_job(self): start_time = time.time() TIMEOUT_TIME = 1 while time.time() - start_time < TIMEOUT_TIME: - if self.architect.server.actions_observed == 2: + if len(self.architect.server.received_messages) == 2: break time.sleep(0.1) self.assertLess( @@ -352,7 +352,7 @@ def test_register_job(self): start_time = time.time() TIMEOUT_TIME = 1 while time.time() - start_time < TIMEOUT_TIME: - if self.architect.server.actions_observed == 2: + if len(self.architect.server.received_messages) == 2: break time.sleep(0.1) self.assertLess( @@ -596,7 +596,7 @@ def test_register_concurrent_job_with_onboarding(self): start_time = time.time() TIMEOUT_TIME = 1 while time.time() - start_time < TIMEOUT_TIME: - if self.architect.server.actions_observed == 2: + if len(self.architect.server.received_messages) == 2: break time.sleep(0.1) self.assertLess( @@ -829,7 +829,7 @@ def test_register_job_with_onboarding(self): start_time = time.time() TIMEOUT_TIME = 1 while time.time() - start_time < TIMEOUT_TIME: - if self.architect.server.actions_observed == 2: + if len(self.architect.server.received_messages) == 2: break time.sleep(0.1) self.assertLess( From 8ba1066556be9302d81412daae5056a47fc2a856 Mon Sep 17 00:00:00 2001 From: EricMichaelSmith Date: Mon, 26 Oct 2020 17:01:30 -0400 Subject: [PATCH 2/5] Check for new message --- mephisto/server/architects/mock_architect.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mephisto/server/architects/mock_architect.py b/mephisto/server/architects/mock_architect.py index 5434718b4..b4082fc39 100644 --- a/mephisto/server/architects/mock_architect.py +++ b/mephisto/server/architects/mock_architect.py @@ -91,6 +91,7 @@ def on_message(self, message_text): self.app.last_alive_packet = message elif message["packet_type"] == PACKET_TYPE_AGENT_ACTION: self.app.received_messages.append(message) + self.app.new_agent_message = True elif message["packet_type"] != PACKET_TYPE_REQUEST_AGENT_STATUS: self.app.last_packet = message @@ -117,6 +118,7 @@ def __init__(self, port): self.running_instance = None self.last_alive_packet: Optional[Dict[str, Any]] = None self.received_messages = [] + self.new_agent_message = False # Has a new message for the agent been received self.last_packet: Optional[Dict[str, Any]] = None tornado_settings = { "autoescape": None, @@ -179,6 +181,20 @@ def send_agent_act(self, agent_id, act_content): } ) + def get_agent_message(self, timeout: float = 1.0) -> dict: + """ + Return a message once received, or raise an exception on timeout. + """ + start_time = time.time() + while time.time() - start_time < timeout: + if self.new_agent_message: + self.new_agent_message = False + return self.received_messages[-1] + else: + time.sleep(0.1) + else: + raise TimeoutError("Message for agent not received!") + def register_mock_agent(self, worker_id, agent_details): """ Send a packet asking to register a mock agent. From 4d7251b9a89709bb31696cb32296be120ae78f06 Mon Sep 17 00:00:00 2001 From: Paul Abumov Date: Fri, 8 Mar 2024 21:47:47 -0500 Subject: [PATCH 3/5] Generalized the feature functionality, refactored code for clarity, resolved conflicts --- .dockerignore | 14 + .git-hooks/README.md | 11 + .git-hooks/pre-commit | 55 + .gitattributes | 2 + .github/workflows/annotated-pkgs.yml | 55 + .../workflows/cypress-end-to-end-tests.yml | 435 + .github/workflows/deploy-docs.yml | 69 + .github/workflows/docker-testing-matrix.yml | 47 + .github/workflows/npm-check.yml | 18 + .github/workflows/pre-commit.yml | 4 +- .github/workflows/python-test.yml | 8 +- .github/workflows/test-deploy-docs.yml | 55 + .github/workflows/version-sync.yml | 19 + .gitignore | 49 +- .npmrc | 1 + .pre-commit-config.yaml | 15 +- .prettierignore | 3 + .vscode/settings.json | 6 +- .../@yarnpkg/plugin-interactive-tools.cjs | 546 + .yarn/plugins/@yarnpkg/plugin-version.cjs | 550 + .../@yarnpkg/plugin-workspace-tools.cjs | 28 + .yarn/releases/yarn-3.2.3.cjs | 783 + .yarn/releases/yarn-3.2.4.cjs | 800 + .yarnrc.yml | 37 + CODE_OF_CONDUCT.md | 6 + CONTRIBUTING.md | 59 +- Dockerfile | 32 + Dockerfile-frontend | 34 + LICENSE | 2 +- README.md | 40 +- data/README.md | 4 - docker/aws_credentials.example | 7 + docker/docker-compose.dev.vscode.yml | 35 + docker/docker-compose.dev.yml | 23 + docker/entrypoints/server.mturk.sh | 22 + docker/entrypoints/server.prolific.sh | 19 + docker/envs/env.dev | 11 + .../exists.txt => docker/ssh_known_hosts | 0 docs/README.md | 21 + docs/{ => legacy}/hydra_migration.md | 38 +- docs/quickstart.md | 108 - docs/static/faq_ui_error_message.png | Bin 0 -> 187965 bytes docs/storybook/.eslintrc.js | 4 + .../webapp => docs/storybook}/.gitignore | 3 + docs/storybook/.storybook/main.js | 8 + docs/storybook/.storybook/preview.js | 14 + docs/storybook/README.md | 13 + docs/storybook/package.json | 62 + docs/storybook/public/favicon.ico | Bin 0 -> 3870 bytes docs/storybook/public/index.html | 43 + .../storybook/public}/robots.txt | 1 + .../stories/GlobalContextStore.stories.jsx | 63 + .../src/stories/InterpolatedBBox.stories.jsx | 170 + .../src/stories/Introduction.stories.mdx | 180 + .../src/stories/Keypoints.stories.jsx | 59 + docs/storybook/src/stories/Layers.stories.jsx | 210 + docs/storybook/src/stories/Panels.stories.jsx | 53 + .../src/stories/VideoPlayer.stories.jsx | 130 + docs/storybook/src/stories/Wrapper.jsx | 26 + .../assets/annotation_toolkit_grey_x2.png | Bin 0 -> 33314 bytes .../src/stories/assets/code-brackets.svg | 1 + docs/storybook/src/stories/assets/colors.svg | 1 + .../storybook/src/stories/assets/comments.svg | 1 + .../src/stories/assets/direction.svg | 1 + docs/storybook/src/stories/assets/flow.svg | 1 + docs/storybook/src/stories/assets/plugin.svg | 1 + docs/storybook/src/stories/assets/repo.svg | 1 + .../storybook/src/stories/assets/stackalt.svg | 1 + docs/web/.gitignore | 20 + docs/web/README.md | 39 + docs/web/babel.config.js | 9 + docs/web/blog/2022-03-22-mephisto-1.0.md | 51 + docs/web/blog/authors.yml | 27 + docs/web/docs/explanations/architect_api.md | 118 + .../explanations}/architecture_overview.md | 18 +- .../guides/how_to_contribute/_category_.yml | 7 + .../how_to_contribute/backend_development.md | 28 + .../how_to_contribute/frontend_development.md | 126 + .../how_to_contribute/getting_started.md | 23 + .../web/docs/guides/how_to_use/_category_.yml | 7 + .../efficiency_organization/_category_.yml | 7 + .../efficiency_organization/config_faq.md | 52 + .../efficiency_organization/docker.md | 24 + .../metrics_dashboarding.md | 104 + .../reusing_configs.md | 70 + .../how_to_use/task_creation/_category_.yml | 7 + .../task_creation/developing_frontends.md | 91 + .../task_creation/hosting_assets.md | 82 + .../worker_experience/_category_.yml | 7 + .../how_to_use/worker_experience/feedback.md | 105 + .../mephisto-worker-addons.md | 22 + .../how_to_use/worker_experience/tips.md | 95 + .../how_to_use/worker_quality/_category_.yml | 7 + .../common_qualification_flows.md | 125 + .../worker_quality/other_methods.md | 37 + .../how_to_use/worker_quality/using_golds.md | 75 + .../worker_quality/using_onboarding.mdx | 77 + .../worker_quality/using_screen_units.mdx | 106 + docs/web/docs/guides/quickstart.md | 97 + docs/web/docs/guides/tutorials/_category_.yml | 7 + .../web/docs/guides/tutorials/custom_react.md | 446 + docs/web/docs/guides/tutorials/first_task.md | 388 + docs/web/docs/guides/tutorials/review-cli.md | 63 + .../docs/guides/tutorials/worker_controls.md | 226 + docs/web/docs/guides/tutorials/workflows.md | 180 + .../docs/guides/upgrade_to_1/_category_.yml | 7 + docs/web/docs/guides/upgrade_to_1/guide.md | 29 + .../docs/guides/upgrade_to_1/run_scripts.md | 135 + docs/web/docs/reference/architects.md | 61 + docs/web/docs/reference/blueprints.md | 106 + docs/web/docs/reference/overview.md | 26 + docs/web/docs/reference/providers.md | 37 + docs/web/docs/reference/requesters.md | 44 + docs/web/docusaurus.config.js | 163 + docs/web/package.json | 43 + docs/web/pdoc_src/module.html.jinja2 | 10 + docs/web/sidebars.js | 39 + docs/web/siteConfig.js | 12 + docs/web/src/components/HomepageFeatures.js | 71 + .../components/HomepageFeatures.module.css | 17 + docs/web/src/css/custom.css | 136 + docs/web/src/pages/index.js | 62 + docs/web/src/pages/index.module.css | 40 + docs/web/static/.nojekyll | 0 docs/web/static/CNAME | 1 + .../metrics_tutorial/general_health.png | Bin 0 -> 281306 bytes .../assets/metrics_tutorial/grafana_login.png | Bin 0 -> 698042 bytes .../grafana_skip_new_user.png | Bin 0 -> 344766 bytes .../metrics_base_dashboard.png | Bin 0 -> 260458 bytes .../metrics_tutorial/network_health_1.png | Bin 0 -> 211777 bytes .../metrics_tutorial/network_health_2.png | Bin 0 -> 120627 bytes .../metrics_tutorial/operator_health.png | Bin 0 -> 222596 bytes .../assets/metrics_tutorial/select_range.png | Bin 0 -> 273790 bytes docs/web/static/custom_react_review_all.png | Bin 0 -> 692142 bytes .../static/custom_react_review_renderer.png | Bin 0 -> 600898 bytes .../web/static/custom_react_review_single.png | Bin 0 -> 628437 bytes docs/web/static/faq_ui_error_message.png | Bin 0 -> 187965 bytes docs/web/static/feedback_component.png | Bin 0 -> 11765 bytes .../EOT/Optimistic_Display_W_Bd.eot | Bin 0 -> 26193 bytes .../EOT/Optimistic_Display_W_Lt.eot | Bin 0 -> 24507 bytes .../EOT/Optimistic_Display_W_Md.eot | Bin 0 -> 25156 bytes .../EOT/Optimistic_Display_W_XBd.eot | Bin 0 -> 26118 bytes .../EOT/Optimistic_Display_W_XLt.eot | Bin 0 -> 24033 bytes .../WOFF/Optimistic_Display_W_Bd.woff | Bin 0 -> 28996 bytes .../WOFF/Optimistic_Display_W_Lt.woff | Bin 0 -> 27192 bytes .../WOFF/Optimistic_Display_W_Md.woff | Bin 0 -> 28008 bytes .../WOFF/Optimistic_Display_W_XBd.woff | Bin 0 -> 29132 bytes .../WOFF/Optimistic_Display_W_XLt.woff | Bin 0 -> 26736 bytes .../WOFF2/Optimistic_Display_W_Bd.woff2 | Bin 0 -> 23676 bytes .../WOFF2/Optimistic_Display_W_Lt.woff2 | Bin 0 -> 22156 bytes .../WOFF2/Optimistic_Display_W_Md.woff2 | Bin 0 -> 22860 bytes .../WOFF2/Optimistic_Display_W_XBd.woff2 | Bin 0 -> 23864 bytes .../WOFF2/Optimistic_Display_W_XLt.woff2 | Bin 0 -> 21680 bytes .../EOT/Optimistic_Text_W_Bd.eot | Bin 0 -> 25921 bytes .../EOT/Optimistic_Text_W_Lt.eot | Bin 0 -> 24698 bytes .../EOT/Optimistic_Text_W_Md.eot | Bin 0 -> 26029 bytes .../EOT/Optimistic_Text_W_Rg.eot | Bin 0 -> 25017 bytes .../EOT/Optimistic_Text_W_XBd.eot | Bin 0 -> 25520 bytes .../WOFF/Optimistic_Text_W_Bd.woff | Bin 0 -> 28668 bytes .../WOFF/Optimistic_Text_W_Lt.woff | Bin 0 -> 27348 bytes .../WOFF/Optimistic_Text_W_Md.woff | Bin 0 -> 28644 bytes .../WOFF/Optimistic_Text_W_Rg.woff | Bin 0 -> 27716 bytes .../WOFF/Optimistic_Text_W_XBd.woff | Bin 0 -> 28308 bytes .../WOFF2/Optimistic_Text_W_Bd.woff2 | Bin 0 -> 23488 bytes .../WOFF2/Optimistic_Text_W_Lt.woff2 | Bin 0 -> 22328 bytes .../WOFF2/Optimistic_Text_W_Md.woff2 | Bin 0 -> 23448 bytes .../WOFF2/Optimistic_Text_W_Rg.woff2 | Bin 0 -> 22576 bytes .../WOFF2/Optimistic_Text_W_XBd.woff2 | Bin 0 -> 23120 bytes docs/web/static/img/Mephisto1.0.png | Bin 0 -> 630398 bytes docs/web/static/img/docusaurus.png | Bin 0 -> 5142 bytes docs/web/static/img/favicon.png | Bin 0 -> 1237 bytes docs/web/static/img/logo.svg | 16 + docs/web/static/img/logo_symbol_red.png | Bin 0 -> 6123 bytes docs/web/static/img/logo_symbol_w.svg | 1 + docs/web/static/img/logo_w.svg | 16 + .../img/tutorial/docsVersionDropdown.png | Bin 0 -> 25102 bytes .../static/img/tutorial/localeDropdown.png | Bin 0 -> 30020 bytes .../static/img/undraw_docusaurus_mountain.svg | 170 + .../static/img/undraw_docusaurus_react.svg | 169 + .../web/static/img/undraw_docusaurus_tree.svg | 1 + .../static/one_person_sequence_diagram.jpeg | Bin 0 -> 49064 bytes docs/web/static/python_api/index.html | 13 + docs/web/static/python_api/mephisto.html | 292 + .../python_api/mephisto/abstractions.html | 303 + .../mephisto/abstractions/architect.html | 897 + .../mephisto/abstractions/architects.html | 337 + .../abstractions/architects/channels.html | 250 + .../channels/websocket_channel.html | 1016 + .../mephisto/abstractions/architects/ec2.html | 254 + .../architects/ec2/cleanup_ec2_resources.html | 300 + .../ec2/cleanup_ec2_server_by_name.html | 337 + .../architects/ec2/ec2_architect.html | 1551 + .../architects/ec2/ec2_helpers.html | 3232 ++ .../architects/ec2/prepare_ec2_servers.html | 737 + .../architects/heroku_architect.html | 1922 + .../architects/local_architect.html | 1057 + .../architects/mock_architect.html | 2190 ++ .../abstractions/architects/router.html | 297 + .../architects/router/build_router.html | 568 + .../abstractions/architects/router/flask.html | 251 + .../architects/router/flask/app.html | 279 + .../flask/mephisto_flask_blueprint.html | 1938 + .../mephisto/abstractions/blueprint.html | 1628 + .../mephisto/abstractions/blueprints.html | 349 + .../abstractions/blueprints/abstract.html | 265 + .../blueprints/abstract/static_task.html | 253 + .../static_task/empty_task_builder.html | 345 + .../static_task/static_agent_state.html | 817 + .../static_task/static_blueprint.html | 1623 + .../static_task/static_task_runner.html | 603 + .../abstractions/blueprints/mixins.html | 252 + .../mixins/onboarding_required.html | 1083 + .../mixins/screen_task_required.html | 1293 + .../blueprints/mixins/use_gold_unit.html | 1715 + .../abstractions/blueprints/mock.html | 253 + .../blueprints/mock/mock_agent_state.html | 620 + .../blueprints/mock/mock_blueprint.html | 1349 + .../blueprints/mock/mock_task_builder.html | 371 + .../blueprints/mock/mock_task_runner.html | 802 + .../abstractions/blueprints/parlai_chat.html | 254 + .../parlai_chat/parlai_chat_agent_state.html | 899 + .../parlai_chat/parlai_chat_blueprint.html | 2436 ++ .../parlai_chat/parlai_chat_task_builder.html | 938 + .../parlai_chat/parlai_chat_task_runner.html | 1389 + .../parlai_chat/parlai_not_installed.html | 356 + .../blueprints/remote_procedure.html | 253 + .../remote_procedure_agent_state.html | 998 + .../remote_procedure_blueprint.html | 1736 + .../remote_procedure_task_builder.html | 315 + .../remote_procedure_task_runner.html | 737 + .../blueprints/static_html_task.html | 323 + .../static_html_blueprint.html | 1027 + .../static_html_task_builder.html | 583 + .../blueprints/static_react_task.html | 251 + .../static_react_blueprint.html | 878 + .../static_react_task_builder.html | 429 + .../mephisto/abstractions/crowd_provider.html | 2295 ++ .../mephisto/abstractions/database.html | 4349 +++ .../mephisto/abstractions/databases.html | 280 + .../databases/local_database.html | 3296 ++ .../databases/local_singleton_database.html | 923 + .../mephisto/abstractions/providers.html | 389 + .../mephisto/abstractions/providers/mock.html | 256 + .../providers/mock/mock_agent.html | 862 + .../providers/mock/mock_datastore.html | 1058 + .../providers/mock/mock_provider.html | 1127 + .../providers/mock/mock_requester.html | 734 + .../providers/mock/mock_unit.html | 627 + .../providers/mock/mock_worker.html | 647 + .../providers/mock/provider_type.html | 248 + .../abstractions/providers/mturk.html | 258 + .../providers/mturk/mturk_agent.html | 846 + .../providers/mturk/mturk_datastore.html | 1679 + .../providers/mturk/mturk_provider.html | 1776 + .../providers/mturk/mturk_requester.html | 896 + .../providers/mturk/mturk_unit.html | 1532 + .../providers/mturk/mturk_utils.html | 2369 ++ .../providers/mturk/mturk_worker.html | 1146 + .../providers/mturk/provider_type.html | 248 + .../abstractions/providers/mturk/utils.html | 250 + .../providers/mturk/utils/script_utils.html | 429 + .../abstractions/providers/mturk_sandbox.html | 255 + .../mturk_sandbox/provider_type.html | 248 + .../mturk_sandbox/sandbox_mturk_agent.html | 425 + .../mturk_sandbox/sandbox_mturk_provider.html | 963 + .../sandbox_mturk_requester.html | 541 + .../mturk_sandbox/sandbox_mturk_unit.html | 427 + .../mturk_sandbox/sandbox_mturk_worker.html | 586 + .../static/python_api/mephisto/client.html | 521 + .../python_api/mephisto/client/api.html | 1426 + .../python_api/mephisto/client/cli.html | 608 + .../python_api/mephisto/client/config.html | 307 + .../python_api/mephisto/client/full.html | 250 + .../mephisto/client/full/server.html | 370 + .../python_api/mephisto/client/review.html | 250 + .../mephisto/client/review/review_server.html | 1017 + .../python_api/mephisto/data_model.html | 351 + .../mephisto/data_model/_db_backed_meta.html | 657 + .../python_api/mephisto/data_model/agent.html | 3306 ++ .../mephisto/data_model/assignment.html | 1310 + .../mephisto/data_model/constants.html | 260 + .../constants/assignment_state.html | 821 + .../mephisto/data_model/exceptions.html | 600 + .../mephisto/data_model/packet.html | 556 + .../mephisto/data_model/project.html | 554 + .../mephisto/data_model/qualification.html | 523 + .../mephisto/data_model/requester.html | 1024 + .../python_api/mephisto/data_model/task.html | 773 + .../mephisto/data_model/task_run.html | 2271 ++ .../python_api/mephisto/data_model/unit.html | 1712 + .../mephisto/data_model/worker.html | 1505 + .../python_api/mephisto/operations.html | 381 + .../operations/client_io_handler.html | 1543 + .../mephisto/operations/config_handler.html | 487 + .../mephisto/operations/datatypes.html | 686 + .../mephisto/operations/hydra_config.html | 1039 + .../mephisto/operations/operator.html | 1997 + .../mephisto/operations/registry.html | 802 + .../mephisto/operations/task_launcher.html | 1217 + .../mephisto/operations/worker_pool.html | 2408 ++ .../static/python_api/mephisto/scripts.html | 269 + .../python_api/mephisto/scripts/heroku.html | 250 + .../scripts/heroku/initialize_heroku.html | 306 + .../python_api/mephisto/scripts/local_db.html | 250 + .../local_db/load_data_to_mephisto_db.html | 570 + .../python_api/mephisto/scripts/mturk.html | 283 + .../mephisto/scripts/mturk/cleanup.html | 454 + .../scripts/mturk/identify_broken_units.html | 528 + .../scripts/mturk/launch_makeup_hits.html | 718 + .../mturk/print_outstanding_hit_status.html | 337 + .../mturk/soft_block_workers_by_mturk_id.html | 320 + .../web/static/python_api/mephisto/tools.html | 314 + .../mephisto/tools/data_browser.html | 651 + .../mephisto/tools/examine_utils.html | 935 + .../python_api/mephisto/tools/scripts.html | 905 + .../web/static/python_api/mephisto/utils.html | 296 + .../python_api/mephisto/utils/dirs.html | 711 + .../mephisto/utils/logger_core.html | 572 + .../python_api/mephisto/utils/metrics.html | 920 + .../mephisto/utils/qualifications.html | 612 + .../python_api/mephisto/utils/testing.html | 774 + docs/web/static/python_api/search.js | 52 + docs/web/static/react_dev_tools_see_props.png | Bin 0 -> 91397 bytes .../static/static_task_correction_submit.png | Bin 0 -> 87756 bytes .../static_task_with_corrections_box.png | Bin 0 -> 53969 bytes docs/web/static/tips_component.png | Bin 0 -> 24155 bytes .../tutorial_onboarding_new_interface.png | Bin 0 -> 107649 bytes .../static/two_person_sequence_diagram.jpeg | Bin 0 -> 62856 bytes .../static/with_requester_screening_text.png | Bin 0 -> 238636 bytes examples/README.md | 193 +- examples/__init__.py | 2 +- examples/form_composer_demo/README.md | 32 + examples/form_composer_demo/__init__.py | 0 .../data/dynamic/form_config.json | 311 + .../dynamic/separate_token_values_config.json | 4 + .../data/dynamic/task_data.json | 624 + .../dynamic/token_sets_values_config.json | 14 + .../dynamic_presigned_urls/form_config.json | 311 + .../separate_token_values_config.json | 8 + .../dynamic_presigned_urls/task_data.json | 624 + .../token_sets_values_config.json | 16 + .../data/simple/task_data.json | 298 + .../dynamic_example_ec2_mturk_sandbox.yaml | 37 + .../conf/dynamic_example_ec2_prolific.yaml | 54 + .../conf/dynamic_example_local_mock.yaml | 26 + ...c_presigned_urls_example_ec2_prolific.yaml | 53 + .../conf/example_local_mock.yaml | 26 + .../preview/mturk_preview_template.html | 12 + examples/form_composer_demo/run_task.py | 66 + .../form_composer_demo/run_task_dynamic.py | 96 + .../run_task_dynamic_ec2_mturk_sandbox.py | 164 + .../run_task_dynamic_ec2_prolific.py | 118 + ...ask_dynamic_presigned_urls_ec2_prolific.py | 123 + .../form_composer_demo}/webapp/.babelrc | 0 .../webapp/link_mephisto_task.sh | 7 + .../webapp/package-lock.json | 10933 ++++++ .../form_composer_demo/webapp/package.json | 37 + .../form_composer_demo/webapp/src/app.jsx | 42 + .../webapp/src/components/core_components.jsx | 49 + .../core_components_presigned_url.jsx | 105 + .../webapp/src/css/style.css | 5 + .../form_composer_demo/webapp/src/main.js | 10 + .../webapp/src/presigned_urls.js | 10 + .../webapp/src/presigned_urls_app.jsx | 52 + .../form_composer_demo/webapp/src/review.js | 10 + .../webapp/src/reviewapp.jsx | 62 + .../webapp/src}/static/index.html | 4 +- .../webapp/webpack.config.js | 57 + .../webapp/webpack.config.presigned_urls.js | 57 + .../webapp/webpack.config.review.js | 53 + examples/parlai_chat_task_demo/README.md | 46 +- .../parlai_chat_task_demo}/__init__.py | 2 +- .../parlai_chat_task_demo/assets/.gitkeep | 0 examples/parlai_chat_task_demo/conf/base.yaml | 6 - .../custom_input_and_messages/README.md | 12 +- .../custom_input_and_messages/main.js | 12 +- .../custom_simple/main.js | 12 +- examples/parlai_chat_task_demo/demo_worlds.py | 29 +- .../hydra_configs/conf/base.yaml | 18 + .../conf/custom_prebuilt.yaml | 7 + .../conf/custom_simple.yaml | 7 + .../{ => hydra_configs}/conf/example.yaml | 7 + .../conf/onboarding_example.yaml | 7 + .../parlai_test_script.py | 79 - examples/parlai_chat_task_demo/run_task.py | 54 + .../task_description.html | 6 + .../parlai_chat_task_demo/webapp/README.md | 16 - .../webapp/package-lock.json | 14785 -------- .../parlai_chat_task_demo/webapp/package.json | 30 +- .../parlai_chat_task_demo/webapp/src/main.js | 12 +- .../webapp/src/static/index.html | 12 +- .../webapp/webpack.config.js | 15 +- .../parlai_chat_task_demo/webapp/yarn.lock | 5654 --- examples/remote_procedure/README.md | 11 + .../remote_procedure}/__init__.py | 2 +- examples/remote_procedure/mnist/README.md | 15 + .../remote_procedure/mnist}/__init__.py | 2 +- .../remote_procedure/mnist/assets/.gitkeep | 0 .../conf/example_local_mock.yaml | 30 + .../conf/screening_example_local_mock.yaml | 32 + examples/remote_procedure/mnist/model.py | 56 + examples/remote_procedure/mnist/run_task.py | 116 + .../remote_procedure/mnist/webapp}/.babelrc | 0 .../remote_procedure/mnist}/webapp/.eslintrc | 0 .../mnist/webapp/cypress.config.js | 14 + .../cypress/e2e/remote_procedure_mnist.cy.js | 98 + .../mnist/webapp/link_mephisto_task.sh | 7 + .../mnist/webapp/package.json | 47 + .../remote_procedure/mnist/webapp/src/app.jsx | 95 + .../webapp/src/components/core_components.jsx | 288 + .../mnist/webapp/src/css/style.css | 5 + .../remote_procedure/mnist/webapp/src/main.js | 4 +- .../mnist/webapp/src/review.js | 9 + .../mnist/webapp/src/reviewapp.jsx | 60 + .../mnist/webapp/src/static/index.html | 33 + .../mnist/webapp/webpack.config.js | 48 + .../mnist/webapp/webpack.config.review.js | 53 + examples/remote_procedure/template/README.md | 15 + .../remote_procedure/template}/__init__.py | 2 +- .../remote_procedure/template/assets/.gitkeep | 0 .../conf/example_local_mock.yaml | 30 + .../remote_procedure/template/run_task.py | 98 + .../remote_procedure/template/webapp/.babelrc | 4 + .../template/webapp/.eslintrc | 3 + .../template/webapp/cypress.config.js | 14 + .../e2e/remote_procedure_template.cy.js | 60 + .../template/webapp/link_mephisto_task.sh | 7 + .../template/webapp/package.json | 45 + .../template/webapp/src/app.jsx | 97 + .../webapp/src/components/core_components.jsx | 72 + .../template/webapp/src/css/style.css | 5 + .../template/webapp/src/main.js | 8 + .../template/webapp/src/static/index.html | 33 + .../template/webapp/webpack.config.js | 48 + .../toxicity_detection/README.md | 29 + .../toxicity_detection/__init__.py | 5 + .../toxicity_detection/assets/.gitkeep | 0 .../conf/example_local_mock.yaml | 29 + .../toxicity_detection/run_task.py | 79 + .../toxicity_detection/webapp/.babelrc | 4 + .../toxicity_detection/webapp/.eslintrc | 3 + .../webapp/cypress.config.js | 14 + .../remote_procedure_toxicity_detection.cy.js | 57 + .../webapp/link_mephisto_task.sh | 7 + .../toxicity_detection/webapp/package.json | 44 + .../toxicity_detection/webapp/src/app.jsx | 68 + .../webapp/src/components/core_components.jsx | 122 + .../webapp/src/css/style.css | 24 + .../toxicity_detection/webapp/src/main.js | 8 + .../webapp/src/static/index.html | 33 + .../webapp/webpack.config.js | 48 + examples/simple_static_task/README.md | 53 + examples/simple_static_task/__init__.py | 5 + examples/simple_static_task/conf/example.yaml | 14 - .../simple_static_task/{ => data}/data.csv | 4 +- .../simple_static_task/data/data_prolific.csv | 2 + .../simple_static_task/data/data_tutorial.csv | 2 + .../simple_static_task/examine_results.py | 76 +- .../conf/example_ec2_mturk_sandbox.yaml | 34 + .../conf/example_ec2_prolific.yaml | 47 + .../conf/example_local_mock.yaml | 26 + .../conf/onboarding_example_local_mock.yaml} | 13 +- examples/simple_static_task/run_task.py | 18 + .../run_task_ec2_mturk_sandbox.py | 36 + .../run_task_ec2_prolific.py | 41 + .../run_task_with_onboarding.py | 44 + .../server_files/demo_onboarding.html | 6 + .../server_files/demo_preview.html | 6 + .../server_files/demo_task.html | 50 +- .../static_run_with_onboarding.py | 66 - .../simple_static_task/static_test_script.py | 50 - examples/static_react_task/README.md | 52 +- examples/static_react_task/__init__.py | 5 + examples/static_react_task/assets/.gitkeep | 0 .../conf/example_local_mock.yaml} | 13 + .../conf/onboarding_example_local_mock.yaml} | 11 + .../conf/screening_example_local_mock.yaml | 28 + examples/static_react_task/run_task.py | 121 +- examples/static_react_task/webapp/README.md | 16 - examples/static_react_task/webapp/__init__.py | 2 +- .../webapp/cypress.config.js | 14 + .../cypress/e2e/static_react_task.cy.js | 56 + .../webapp/cypress/fixtures/example.json | 0 .../webapp/cypress/support/commands.js | 0 .../webapp/cypress/support/e2e.js | 0 .../webapp/link_mephisto_task.sh | 7 + .../webapp/package-lock.json | 13931 ++++--- .../static_react_task/webapp/package.json | 22 +- examples/static_react_task/webapp/src/app.jsx | 39 +- .../webapp/src/components/core_components.jsx | 62 +- .../webapp/src/css/style.css | 2 +- examples/static_react_task/webapp/src/main.js | 2 +- .../webapp/src/static/index.html | 12 +- .../webapp/webpack.config.js | 15 +- .../static_react_task_with_tips/README.md | 29 + .../static_react_task_with_tips/__init__.py | 5 + .../assets/.gitkeep | 0 .../conf/example_local_mock.yaml | 24 + .../conf/onboarding_example_local_mock.yaml | 24 + .../static_react_task_with_tips/run_task.py | 41 + .../webapp/.babelrc | 4 + .../webapp/__init__.py | 5 + .../webapp/cypress.config.js | 14 + ...t_task_with_tips_post_tip_submission.cy.js | 36 + ...ct_task_with_tips_pre_tip_submission.cy.js | 169 + ...t_task_with_tips_feedback_submission.cy.js | 87 + .../webapp/cypress/helper.js | 8 + .../webapp/cypress/support/commands.js | 35 + .../webapp/cypress/support/e2e.js | 1 + .../webapp/link_packages.sh | 8 + .../webapp/package.json | 34 + .../webapp/src/app.jsx | 73 + .../webapp/src/components/core_components.jsx | 101 + .../webapp/src/css/style.css | 9 + .../webapp/src/main.js | 7 + .../webapp/src/static/index.html | 26 + .../webapp/webpack.config.js | 48 + .../hydra/job_logging/mephisto_default.yaml | 23 + hydra_configs/profile/local_dev.yaml | 13 + hydra_plugins/__init__.py | 5 + hydra_plugins/mephisto_path_plugin.py | 22 + lerna.json | 11 + mephisto/README.md | 230 + mephisto/VERSION | 1 + mephisto/__init__.py | 24 +- mephisto/abstractions/README.md | 24 + mephisto/abstractions/__init__.py | 22 + .../abstractions/_subcomponents/README.md | 9 + .../abstractions/_subcomponents/__init__.py | 5 + .../_subcomponents/agent_state.py | 333 + .../_subcomponents}/channel.py | 27 +- .../_subcomponents/task_builder.py | 50 + .../_subcomponents/task_runner.py | 509 + .../{data_model => abstractions}/architect.py | 28 +- mephisto/abstractions/architects/README.md | 58 + mephisto/abstractions/architects/__init__.py | 11 + .../architects/channels/__init__.py | 5 + .../architects/channels/websocket_channel.py | 234 + .../abstractions/architects/ec2/.gitignore | 3 + .../abstractions/architects/ec2/__init__.py | 5 + .../architects/ec2/cleanup_ec2_resources.py | 27 + .../architects/ec2/cleanup_ec2_server_all.py | 77 + .../ec2/cleanup_ec2_server_by_name.py | 47 + .../architects/ec2/ec2_architect.py | 408 + .../architects/ec2/ec2_helpers.py | 1184 + .../architects/ec2/fallback_server/README.md | 13 + .../ec2/fallback_server/access_logs/README.md | 11 + .../architects/ec2/fallback_server/app.py | 64 + .../ec2/fallback_server/fallback.service | 12 + .../fallback_server/scripts/first_setup.sh | 19 + .../ec2/fallback_server/scripts/run_server.sh | 10 + .../fallback_server/templates/landing.html | 39 + .../architects/ec2/keypairs/README.md | 12 + .../architects/ec2/prepare_ec2_servers.py | 216 + .../ec2/run_scripts/flask/init_server.sh | 22 + .../ec2/run_scripts/flask/router.service | 12 + .../ec2/run_scripts/flask/run_server.sh | 9 + .../ec2/run_scripts/node/init_server.sh | 30 + .../ec2/run_scripts/node/router.service | 12 + .../ec2/run_scripts/node/run_server.sh | 10 + .../architects/ec2/servers/README.md | 11 + .../architects/heroku_architect.py | 200 +- .../architects/local_architect.py | 65 +- .../architects/mock_architect.py | 157 +- .../abstractions/architects/router/README.md | 26 + .../architects/router/__init__.py | 11 + .../architects/router/build_router.py | 56 +- .../architects/router/flask/Procfile | 1 + .../architects/router/flask/__init__.py | 5 + .../architects/router/flask/app.py | 38 + .../router/flask/mephisto_flask_blueprint.py | 558 + .../architects/router/flask/requirements.txt | 4 + .../architects/router/flask/static/index.html | 25 + .../architects/router/node}/package.json | 3 +- .../architects/router/node}/server.js | 337 +- .../architects/router/node/static/index.html | 25 + .../architects/router/node/uploads/exists.txt | 0 mephisto/abstractions/blueprint.py | 312 + .../blueprints/README.md | 36 +- mephisto/abstractions/blueprints/__init__.py | 11 + .../blueprints/abstract/README.md | 6 + .../blueprints/abstract/__init__.py | 11 + .../abstract/static_task/__init__.py | 5 + .../static_task/empty_task_builder.py | 9 +- .../static_task/static_agent_state.py | 89 + .../abstract/static_task/static_blueprint.py | 226 + .../static_task/static_task_runner.py | 28 +- .../blueprints/mixins/__init__.py | 5 + .../blueprints/mixins/onboarding_required.py | 175 + .../blueprints/mixins/screen_task_required.py | 248 + .../blueprints/mixins/use_gold_unit.py | 359 + .../abstractions/blueprints/mock/__init__.py | 5 + .../blueprints/mock/mock_agent_state.py | 33 +- .../blueprints/mock/mock_blueprint.py | 116 + .../blueprints/mock/mock_task_builder.py | 11 +- .../blueprints/mock/mock_task_runner.py | 36 +- .../blueprints/parlai_chat/__init__.py | 5 + .../parlai_chat/parlai_chat_agent_state.py | 133 + .../parlai_chat/parlai_chat_blueprint.py | 203 +- .../parlai_chat/parlai_chat_task_builder.py | 53 +- .../parlai_chat/parlai_chat_task_runner.py | 290 + .../parlai_chat/parlai_not_installed.py | 15 + .../blueprints/parlai_chat/webapp/.babelrc | 4 + .../blueprints/parlai_chat/webapp/.eslintrc | 3 + .../parlai_chat/webapp/package.json | 30 +- .../blueprints/parlai_chat/webapp/src/main.js | 12 +- .../parlai_chat/webapp/src/static/index.html | 12 +- .../parlai_chat/webapp/src/static/notif.mp3 | Bin .../parlai_chat/webapp/webpack.config.js | 15 +- .../blueprints/remote_procedure/__init__.py | 5 + .../remote_procedure_agent_state.py | 126 + .../remote_procedure_blueprint.py | 240 + .../remote_procedure_task_builder.py | 19 + .../remote_procedure_task_runner.py | 148 + .../blueprints/static_html_task/README.md | 72 + .../blueprints/static_html_task/__init__.py | 11 + .../static_html_task/source/.babelrc | 4 + .../static_html_task/source/cypress.config.js | 13 + .../cypress/e2e/simple_static_task.cy.js | 59 + .../source/cypress/fixtures/bliss.png | Bin 0 -> 38866 bytes .../source/cypress/support/commands.js | 1 + .../source/cypress/support/e2e.js | 1 + .../static_html_task}/source/dev/app.jsx | 116 +- .../static_html_task/source/dev/hooks.js | 39 + .../static_html_task}/source/dev/main.js | 2 +- .../static_html_task}/source/package.json | 23 +- .../source/webpack.config.js | 7 +- .../static_html_blueprint.py | 75 +- .../static_html_task_builder.py | 14 +- .../blueprints/static_react_task/__init__.py | 5 + .../static_react_blueprint.py | 139 + .../static_react_task_builder.py | 17 +- .../crowd_provider.py | 21 +- mephisto/abstractions/database.py | 1127 + mephisto/abstractions/databases/README.md | 16 + mephisto/abstractions/databases/__init__.py | 11 + .../databases}/local_database.py | 577 +- .../databases/local_singleton_database.py | 222 + .../{ => abstractions}/providers/README.md | 21 +- mephisto/abstractions/providers/__init__.py | 11 + .../abstractions/providers/mock/__init__.py | 5 + .../abstractions/providers/mock/mock_agent.py | 143 + .../providers/mock/mock_datastore.py | 9 +- .../providers/mock/mock_provider.py | 30 +- .../providers/mock/mock_requester.py | 23 +- .../providers/mock/mock_unit.py | 52 +- .../providers/mock/mock_worker.py | 41 +- .../providers/mock/provider_type.py | 2 +- .../providers/mock/wrap_crowd_source.js | 133 + .../abstractions/providers/mturk/__init__.py | 5 + .../providers/mturk/mturk_agent.py | 161 + .../providers/mturk/mturk_datastore.py | 184 +- .../providers/mturk/mturk_provider.py | 79 +- .../providers/mturk/mturk_requester.py | 36 +- .../providers/mturk/mturk_unit.py | 367 + .../providers/mturk/mturk_utils.py | 465 +- .../providers/mturk/mturk_worker.py | 141 +- .../providers/mturk/provider_type.py | 2 +- .../providers/mturk/utils/__init__.py | 5 + .../providers/mturk/utils/script_utils.py | 73 +- .../providers/mturk/wrap_crowd_source.js | 153 + .../providers/mturk_sandbox/__init__.py | 5 + .../providers/mturk_sandbox/provider_type.py | 2 +- .../mturk_sandbox/sandbox_mturk_agent.py | 22 +- .../mturk_sandbox/sandbox_mturk_provider.py | 31 +- .../mturk_sandbox/sandbox_mturk_requester.py | 29 +- .../mturk_sandbox/sandbox_mturk_unit.py | 18 +- .../mturk_sandbox/sandbox_mturk_worker.py | 26 +- .../mturk_sandbox/wrap_crowd_source.js | 153 + .../abstractions/providers/prolific/README.md | 185 + .../providers/prolific/__init__.py | 5 + .../providers/prolific/api/README.md | 551 + .../providers/prolific/api/__init__.py | 16 + .../prolific/api/base_api_resource.py | 141 + .../providers/prolific/api/bonuses.py | 45 + .../providers/prolific/api/client.py | 74 + .../providers/prolific/api/constants.py | 123 + .../prolific/api/data_models/__init__.py | 18 + .../prolific/api/data_models/base_model.py | 41 + .../api/data_models/bonus_payments.py | 33 + .../data_models/eligibility_requirement.py | 77 + .../prolific/api/data_models/message.py | 44 + .../prolific/api/data_models/participant.py | 25 + .../api/data_models/participant_group.py | 54 + .../prolific/api/data_models/project.py | 63 + .../prolific/api/data_models/study.py | 194 + .../prolific/api/data_models/submission.py | 87 + .../prolific/api/data_models/user.py | 150 + .../prolific/api/data_models/workspace.py | 70 + .../api/data_models/workspace_balance.py | 52 + .../__init__.py | 13 + .../age_range_eligibility_requirement.py | 30 + ...pproval_numbers_eligibility_requirement.py | 24 + .../approval_rate_eligibility_requirement.py | 18 + .../base_eligibility_requirement.py | 68 + ...stom_black_list_eligibility_requirement.py | 19 + ...stom_white_list_eligibility_requirement.py | 19 + .../joined_before_eligibility_requirement.py | 17 + ...rticipant_group_eligibility_requirement.py | 30 + .../prolific/api/eligibility_requirements.py | 26 + .../providers/prolific/api/exceptions.py | 39 + .../providers/prolific/api/invitations.py | 30 + .../providers/prolific/api/messages.py | 64 + .../prolific/api/participant_groups.py | 118 + .../providers/prolific/api/projects.py | 39 + .../providers/prolific/api/status.py | 20 + .../providers/prolific/api/studies.py | 133 + .../providers/prolific/api/submissions.py | 83 + .../providers/prolific/api/users.py | 18 + .../providers/prolific/api/workspaces.py | 54 + .../providers/prolific/prolific_agent.py | 268 + .../providers/prolific/prolific_datastore.py | 815 + .../prolific/prolific_datastore_tables.py | 101 + .../providers/prolific/prolific_provider.py | 439 + .../providers/prolific/prolific_requester.py | 145 + .../providers/prolific/prolific_unit.py | 411 + .../providers/prolific/prolific_utils.py | 810 + .../providers/prolific/prolific_worker.py | 326 + .../providers/prolific/provider_type.py | 7 + .../providers/prolific/scripts}/__init__.py | 0 .../prolific/scripts/get_all_collaborators.py | 75 + .../prolific/scripts/initialize_project.py | 89 + .../prolific/scripts/remove_collaborators.py | 96 + .../providers/prolific/wrap_crowd_source.js | 160 + mephisto/abstractions/test/README.md | 13 + mephisto/abstractions/test/__init__.py | 5 + .../test/architect_tester.py | 35 +- .../test/blueprint_tester.py | 89 +- .../test/crowd_provider_tester.py | 20 +- .../test/data_model_database_tester.py | 106 +- mephisto/client/README.md | 306 +- mephisto/client/__init__.py | 8 +- mephisto/client/api.py | 342 - mephisto/client/cli.py | 665 +- mephisto/client/cli_commands.py | 175 + mephisto/client/config.py | 2 +- mephisto/client/review_server.py | 120 - mephisto/client/server.py | 56 - mephisto/configs/__init__.py | 5 + mephisto/configs/logging.py | 82 + mephisto/core/README.md | 35 - mephisto/core/argparse_parser.py | 69 - mephisto/core/data_browser.py | 69 - mephisto/core/hydra_config.py | 51 - mephisto/core/logger_core.py | 55 - mephisto/core/operator.py | 418 - mephisto/core/supervisor.py | 855 - mephisto/data_model/README.md | 52 +- mephisto/data_model/__init__.py | 7 +- mephisto/data_model/_db_backed_meta.py | 98 + mephisto/data_model/agent.py | 715 +- mephisto/data_model/assignment.py | 380 +- mephisto/data_model/blueprint.py | 633 - mephisto/data_model/constants/README.md | 8 + .../{constants.py => constants/__init__.py} | 2 +- .../{ => constants}/assignment_state.py | 13 +- mephisto/data_model/database.py | 581 - mephisto/data_model/exceptions.py | 9 +- mephisto/data_model/packet.py | 57 +- mephisto/data_model/project.py | 23 +- mephisto/data_model/qualification.py | 143 +- mephisto/data_model/requester.py | 53 +- mephisto/data_model/task.py | 401 +- mephisto/data_model/task_config.py | 129 - mephisto/data_model/task_run.py | 481 + mephisto/data_model/test/README.md | 6 - mephisto/data_model/unit.py | 406 + mephisto/data_model/worker.py | 90 +- mephisto/generators/__init__.py | 5 + mephisto/generators/form_composer/README.md | 634 + mephisto/generators/form_composer/__init__.py | 5 + .../config_validation/__init__.py | 5 + .../config_validation/common_validation.py | 60 + .../config_validation_constants.py | 215 + .../config_validation/form_config.py | 138 + .../separate_token_values_config.py | 88 + .../config_validation/task_data_config.py | 440 + .../token_sets_values_config.py | 108 + .../form_composer/config_validation/utils.py | 171 + .../generators/form_composer/constants.py | 40 + .../hydra_configs/conf/default.yaml | 24 + .../form_composer/remote_procedures.py | 84 + mephisto/generators/form_composer/run.py | 88 + .../generators/form_composer/webapp/.babelrc | 4 + .../form_composer/webapp/package.json | 34 + .../form_composer/webapp/src/app.jsx | 52 + .../webapp/src/components/core_components.jsx | 112 + .../form_composer/webapp/src/css/style.css | 5 + .../form_composer/webapp/src/main.js | 10 + .../form_composer/webapp/src/review.js | 10 + .../form_composer/webapp/src/reviewapp.jsx | 60 + .../webapp/src/static/index.html | 25 + .../form_composer/webapp/webpack.config.js | 48 + .../webapp/webpack.config.review.js | 48 + mephisto/operations/README.md | 88 + mephisto/operations/__init__.py | 11 + mephisto/operations/client_io_handler.py | 483 + .../{core => operations}/config_handler.py | 15 +- mephisto/operations/datatypes.py | 86 + mephisto/operations/hydra_config.py | 176 + mephisto/operations/operator.py | 588 + mephisto/{core => operations}/registry.py | 54 +- .../{core => operations}/task_launcher.py | 155 +- mephisto/operations/worker_pool.py | 669 + mephisto/providers/mock/mock_agent.py | 92 - mephisto/providers/mock/wrap_crowd_source.js | 54 - mephisto/providers/mturk/mturk_agent.py | 109 - mephisto/providers/mturk/mturk_unit.py | 249 - mephisto/providers/mturk/wrap_crowd_source.js | 73 - mephisto/providers/mturk_sandbox/__init__.py | 5 - .../mturk_sandbox/wrap_crowd_source.js | 73 - mephisto/review_app/README.md | 110 + mephisto/review_app/__init__.py | 5 + mephisto/review_app/client/README.md | 27 + mephisto/review_app/client/package-lock.json | 30076 ++++++++++++++++ mephisto/review_app/client/package.json | 44 + mephisto/review_app/client/public/index.html | 20 + mephisto/review_app/client/src/App/App.css | 9 + mephisto/review_app/client/src/App/App.tsx | 43 + .../ClosableErrorAlert/ClosableErrorAlert.css | 29 + .../ClosableErrorAlert/ClosableErrorAlert.tsx | 34 + .../client/src/components/Errors/Errors.css | 12 + .../client/src/components/Errors/Errors.tsx | 29 + mephisto/review_app/client/src/consts/http.ts | 14 + .../review_app/client/src/consts/review.ts | 54 + .../client/src/default.css} | 8 +- mephisto/review_app/client/src/index.tsx | 19 + .../client/src/pages/HomePage/HomePage.css | 8 + .../client/src/pages/HomePage/HomePage.tsx | 29 + .../InReviewFileModal/InReviewFileModal.css | 129 + .../InReviewFileModal/InReviewFileModal.tsx | 133 + .../pages/TaskPage/ModalForm/ModalForm.css | 28 + .../pages/TaskPage/ModalForm/ModalForm.tsx | 399 + .../TaskPage/ReviewModal/ReviewModal.css | 60 + .../TaskPage/ReviewModal/ReviewModal.tsx | 90 + .../pages/TaskPage/TaskHeader/TaskHeader.css | 65 + .../pages/TaskPage/TaskHeader/TaskHeader.tsx | 159 + .../client/src/pages/TaskPage/TaskPage.css | 133 + .../client/src/pages/TaskPage/TaskPage.tsx | 723 + .../client/src/pages/TaskPage/helpers.ts | 29 + .../client/src/pages/TaskPage/modalData.tsx | 82 + .../TasksPage/TasksHeader/TasksHeader.css | 28 + .../TasksPage/TasksHeader/TasksHeader.tsx | 31 + .../client/src/pages/TasksPage/TasksPage.css | 82 + .../client/src/pages/TasksPage/TasksPage.tsx | 177 + .../client/src/requests/generateURL.tsx | 31 + .../client/src/requests/makeRequest.ts | 93 + .../client/src/requests/mockResponses.ts | 289 + .../client/src/requests/qualifications.ts | 131 + .../review_app/client/src/requests/stats.ts | 30 + .../review_app/client/src/requests/tasks.ts | 94 + .../review_app/client/src/requests/units.ts | 114 + .../review_app/client/src/requests/workers.ts | 31 + .../client/src/static/images/logo.svg | 16 + .../client/src/types/inReviewFileModal.d.ts | 12 + .../client/src/types/qualifications.d.ts | 10 + .../review_app/client/src/types/requests.d.ts | 15 + .../client/src/types/reviewModal.d.ts | 45 + .../review_app/client/src/types/static.d.ts | 26 + .../review_app/client/src/types/tasks.d.ts | 21 + .../review_app/client/src/types/units.d.ts | 38 + .../review_app/client/src/types/workers.d.ts | 13 + mephisto/review_app/client/src/urls.ts | 41 + mephisto/review_app/client/tsconfig.json | 19 + .../screenshots/submission_approve_dialog.png | Bin 0 -> 30807 bytes .../screenshots/submission_reject_dialog.png | Bin 0 -> 23982 bytes .../submission_results_collapsed.png | Bin 0 -> 82067 bytes .../submission_results_expanded.png | Bin 0 -> 74965 bytes .../review_app/screenshots/tasks_list.png | Bin 0 -> 24026 bytes mephisto/review_app/server/README.md | 293 + mephisto/review_app/server/__init__.py | 107 + .../server/api}/__init__.py | 0 .../review_app/server/api/views/__init__.py | 25 + .../review_app/server/api/views/home_view.py | 43 + .../api/views/qualification_workers_view.py | 107 + .../server/api/views/qualifications_view.py | 106 + .../server/api/views/qualify_worker_view.py | 97 + .../review_app/server/api/views/stats_view.py | 207 + .../views/task_export_results_json_view.py | 30 + .../api/views/task_export_results_view.py | 71 + .../review_app/server/api/views/task_view.py | 25 + .../review_app/server/api/views/tasks_view.py | 73 + .../api/views/tasks_worker_units_view.py | 52 + .../server/api/views/unit_data_static_view.py | 69 + .../api/views/unit_review_bundle_view.py | 51 + .../server/api/views/unit_review_html_view.py | 33 + .../server/api/views/units_approve_view.py | 71 + .../server/api/views/units_details_view.py | 90 + .../server/api/views/units_reject_view.py | 50 + .../api/views/units_soft_reject_view.py | 50 + .../review_app/server/api/views/units_view.py | 97 + .../server/api/views/worker_block_view.py | 84 + mephisto/review_app/server/db_queries.py | 46 + .../review_app/server/settings/__init__.py | 0 mephisto/review_app/server/settings/base.py | 11 + mephisto/review_app/server/static/index.html | 20 + mephisto/review_app/server/urls.py | 96 + mephisto/scripts/README.md | 10 + mephisto/scripts/__init__.py | 8 +- mephisto/scripts/form_composer/__init__.py | 4 + .../scripts/form_composer/rebuild_all_apps.py | 209 + mephisto/scripts/heroku/__init__.py | 5 + mephisto/scripts/heroku/initialize_heroku.py | 25 + mephisto/scripts/local_db/__init__.py | 5 + .../local_db/clear_worker_onboarding.py | 72 + .../gh_actions/auto_generate_architect.py | 34 + .../gh_actions/auto_generate_blueprint.py | 68 + .../gh_actions/auto_generate_provider.py | 34 + .../gh_actions/auto_generate_requester.py | 39 + .../local_db/gh_actions/expire_all_units.py | 28 + .../local_db/load_data_to_mephisto_db.py | 168 + .../scripts/local_db/remove_accepted_tip.py | 124 + .../local_db/review_feedback_for_task.py | 258 + .../scripts/local_db/review_tips_for_task.py | 193 + mephisto/scripts/metrics/README.md | 13 + mephisto/scripts/metrics/install_metrics.sh | 72 + .../resources/default_mephisto_dash.json | 2676 ++ .../metrics/resources/grafana_defaults.ini | 1135 + .../resources/mephisto-prometheus-config.yml | 40 + .../metrics/resources/mephisto_source.json | 18 + mephisto/scripts/metrics/shutdown_metrics.py | 23 + mephisto/scripts/metrics/view_metrics.py | 38 + mephisto/scripts/mturk/README.md | 18 + mephisto/scripts/mturk/__init__.py | 8 +- mephisto/scripts/mturk/cleanup.py | 148 +- .../scripts/mturk/identify_broken_units.py | 127 + mephisto/scripts/mturk/launch_makeup_hits.py | 231 + .../mturk/print_outstanding_hit_status.py | 44 + .../mturk/soft_block_workers_by_mturk_id.py | 42 +- mephisto/server/__init__.py | 5 - mephisto/server/architects/README.md | 2 - mephisto/server/architects/__init__.py | 5 - mephisto/server/architects/router/__init__.py | 5 - mephisto/server/blueprints/__init__.py | 5 - .../server/blueprints/abstract/__init__.py | 5 - .../abstract/static_task/__init__.py | 5 - .../static_task/static_agent_state.py | 115 - .../abstract/static_task/static_blueprint.py | 188 - mephisto/server/blueprints/mock/__init__.py | 5 - .../server/blueprints/mock/mock_blueprint.py | 93 - .../server/blueprints/parlai_chat/__init__.py | 5 - .../parlai_chat/parlai_chat_agent_state.py | 121 - .../parlai_chat/parlai_chat_task_runner.py | 272 - .../blueprints/parlai_chat/webapp/README.md | 16 - .../blueprints/parlai_chat/webapp/yarn.lock | 5654 --- .../blueprints/static_react_task/__init__.py | 5 - .../static_react_blueprint.py | 94 - .../server/blueprints/static_task/__init__.py | 5 - .../blueprints/static_task/source/yarn.lock | 4432 --- mephisto/server/channels/__init__.py | 5 - mephisto/server/channels/websocket_channel.py | 175 - mephisto/tasks/README.md | 2 - mephisto/tools/README.md | 35 + mephisto/tools/__init__.py | 11 + mephisto/tools/data_browser.py | 136 + mephisto/tools/examine_utils.py | 316 + mephisto/tools/scripts.py | 317 + mephisto/utils/README.md | 23 + mephisto/utils/__init__.py | 8 +- mephisto/{core/utils.py => utils/dirs.py} | 95 +- mephisto/utils/logger_core.py | 83 + mephisto/utils/metrics.py | 271 + mephisto/utils/qualifications.py | 150 + mephisto/utils/rich.py | 22 + mephisto/utils/scripts.py | 120 - .../test/utils.py => utils/testing.py} | 95 +- mephisto/webapp/.gitattributes | 2 - mephisto/webapp/README.md | 44 - mephisto/webapp/build/asset-manifest.json | 27 - mephisto/webapp/build/index.html | 1 - ...nifest.6a3f8be9c9b4eda91b48c53412c4ac04.js | 58 - mephisto/webapp/build/service-worker.js | 39 - .../build/static/css/2.d6c513eb.chunk.css | 14 - .../build/static/css/2.d6c513eb.chunk.css.map | 1 - .../build/static/css/main.ec5c0f52.chunk.css | 2 - .../static/css/main.ec5c0f52.chunk.css.map | 1 - .../build/static/js/2.34d4026e.chunk.js | 3 - .../static/js/2.34d4026e.chunk.js.LICENSE | 149 - .../build/static/js/2.34d4026e.chunk.js.map | 1 - .../build/static/js/main.6e109e52.chunk.js | 2 - .../static/js/main.6e109e52.chunk.js.map | 1 - .../build/static/js/runtime-main.97447897.js | 2 - .../static/js/runtime-main.97447897.js.map | 1 - .../build/static/media/Oval.456d8835.svg | 15 - .../build/static/media/icons-16.782154b8.ttf | Bin 97564 -> 0 bytes .../build/static/media/icons-16.7fb844a7.woff | Bin 97640 -> 0 bytes .../build/static/media/icons-16.d4f6722b.eot | Bin 97768 -> 0 bytes .../build/static/media/icons-20.90afdd23.eot | Bin 100368 -> 0 bytes .../build/static/media/icons-20.c0e4874e.woff | Bin 100240 -> 0 bytes .../build/static/media/icons-20.d1f0f6c1.ttf | Bin 100164 -> 0 bytes mephisto/webapp/package.json | 54 - mephisto/webapp/public/index.html | 27 - mephisto/webapp/src/App.css | 158 - mephisto/webapp/src/App.tsx | 60 - mephisto/webapp/src/Oval.svg | 15 - mephisto/webapp/src/axios.ts | 40 - mephisto/webapp/src/index.tsx | 16 - mephisto/webapp/src/lib/Async.ts | 75 - mephisto/webapp/src/lib/toaster.ts | 10 - mephisto/webapp/src/logo.svg | 7 - mephisto/webapp/src/mocks.ts | 37 - mephisto/webapp/src/models.ts | 65 - mephisto/webapp/src/service.ts | 99 - mephisto/webapp/src/setupTests.ts | 10 - mephisto/webapp/src/utils.ts | 10 - mephisto/webapp/src/widgets/Base.tsx | 28 - mephisto/webapp/src/widgets/GridReview.js | 185 - mephisto/webapp/src/widgets/Launch.tsx | 304 - mephisto/webapp/src/widgets/Prepare.tsx | 149 - mephisto/webapp/src/widgets/Review.tsx | 82 - .../webapp/src/widgets/TaskRunSummary.tsx | 65 - .../widgets/components/ArchitectSelect.tsx | 74 - .../widgets/components/BlueprintSelect.tsx | 121 - .../src/widgets/components/FormField.tsx | 56 - .../src/widgets/components/OptionsForm.tsx | 53 - .../src/widgets/components/ProviderSelect.tsx | 94 - .../src/widgets/components/RequesterForm.tsx | 145 - .../widgets/components/RequesterSelect.tsx | 94 - mephisto/webapp/tsconfig.json | 19 - mephisto/webapp/yarn.lock | 12312 ------- package.json | 37 + packages/README.md | 42 + packages/annotated/README.md | 13 + packages/annotated/__template__/.gitkeep | 0 packages/annotated/__template__/package.json | 29 + packages/annotated/__template__/src/index.js | 13 + packages/annotated/bbox/package.json | 33 + packages/annotated/bbox/src/BBoxFrame.js | 73 + packages/annotated/bbox/src/MovableRect.js | 403 + packages/annotated/bbox/src/RRRR/README.md | 11 + .../annotated/bbox/src/RRRR/Rect/index.js | 197 + packages/annotated/bbox/src/RRRR/index.js | 120 + .../annotated/bbox/src/RRRR/react-rect.css | 97 + packages/annotated/bbox/src/RRRR/utils.js | 270 + packages/annotated/bbox/src/helpers.js | 20 + packages/annotated/bbox/src/index.js | 9 + packages/annotated/dev-scripts/.gitkeep | 0 packages/annotated/dev-scripts/README.md | 9 + .../annotated/dev-scripts/bin/dev-scripts.js | 56 + packages/annotated/dev-scripts/package.json | 37 + .../annotated/dev-scripts/scripts/build.js | 136 + .../annotated/dev-scripts/scripts/start.js | 1 + packages/annotated/dev-scripts/src/index.js | 0 packages/annotated/dev-scripts/src/paths.js | 22 + .../dev-scripts/src/webpackConfigure.js | 131 + .../utils/formatWebpackMessages.js | 127 + .../dev-scripts/utils/printBuildError.js | 44 + packages/annotated/keypoint/.gitkeep | 0 packages/annotated/keypoint/package.json | 32 + packages/annotated/keypoint/src/Keypoints.jsx | 293 + packages/annotated/keypoint/src/index.js | 8 + packages/annotated/keypoint/src/keypoints.css | 46 + packages/annotated/shell/README.md | 9 + packages/annotated/shell/package.json | 36 + packages/annotated/shell/src/AppShell.js | 184 + packages/annotated/shell/src/Layer.js | 122 + packages/annotated/shell/src/helpers.js | 34 + packages/annotated/shell/src/index.css | 137 + packages/annotated/shell/src/index.js | 27 + .../shell/src/panels/ContentPanel.js | 194 + .../annotated/shell/src/panels/DebugPanel.css | 105 + .../annotated/shell/src/panels/DebugPanel.js | 123 + .../annotated/shell/src/panels/LayersPanel.js | 21 + .../shell/src/react-mosaic-component.css | 584 + packages/annotated/shell/src/utils.js | 11 + packages/annotated/shell/webpack.config.js | 9 + packages/annotated/video-player/.gitkeep | 0 packages/annotated/video-player/package.json | 32 + .../annotated/video-player/src/VideoPlayer.js | 218 + .../annotated/video-player/src/helpers.js | 20 + packages/annotated/video-player/src/index.js | 8 + packages/annotation-toolkit/.babelrc | 4 + packages/annotation-toolkit/.eslintrc | 3 + packages/annotation-toolkit/.gitattributes | 1 + packages/annotation-toolkit/README.md | 146 + packages/annotation-toolkit/package.json | 60 + packages/annotation-toolkit/release-notes.md | 77 + packages/annotation-toolkit/src/AppShell.js | 184 + packages/annotation-toolkit/src/helpers.js | 34 + packages/annotation-toolkit/src/index.css | 137 + packages/annotation-toolkit/src/index.js | 28 + .../src/layers/BBoxFrame.js | 73 + .../annotation-toolkit/src/layers/Layer.js | 122 + .../src/layers/MovableRect.js | 404 + .../src/layers/RRRR/README.md | 11 + .../src/layers/RRRR/Rect/index.js | 197 + .../src/layers/RRRR/index.js | 146 + .../src/layers/RRRR/react-rect.css | 97 + .../src/layers/RRRR/utils.js | 270 + .../src/layers/VideoPlayer.js | 224 + .../src/panels/ContentPanel.js | 194 + .../src/panels/DebugPanel.css | 105 + .../src/panels/DebugPanel.js | 123 + .../src/panels/LayersPanel.js | 21 + .../src/react-mosaic-component.css | 584 + packages/annotation-toolkit/src/utils.js | 11 + packages/annotation-toolkit/webpack.config.js | 79 + packages/annotation-toolkit/yarn.lock | 3732 ++ packages/bootstrap-chat/README.md | 165 + packages/bootstrap-chat/build/bundle.js | 20 +- packages/bootstrap-chat/package.json | 75 +- packages/bootstrap-chat/src/ChatMessage.jsx | 8 +- packages/bootstrap-chat/src/ChatPane.jsx | 8 +- .../src/ConnectionIndicator.jsx | 8 +- .../src/ConnectionStatusBoundary.jsx | 8 +- .../src/DefaultTaskDescription.jsx | 8 +- packages/bootstrap-chat/src/DoneButton.jsx | 8 +- packages/bootstrap-chat/src/DoneResponse.jsx | 8 +- packages/bootstrap-chat/src/FormResponse.jsx | 15 +- packages/bootstrap-chat/src/Glyphicon.jsx | 8 +- packages/bootstrap-chat/src/ReviewButtons.jsx | 8 +- packages/bootstrap-chat/src/SystemMessage.jsx | 8 +- packages/bootstrap-chat/src/TextResponse.jsx | 8 +- packages/bootstrap-chat/src/VolumeControl.jsx | 8 +- .../bootstrap-chat/src/WorkerChatPopup.jsx | 8 +- .../src/composed/BaseFrontend.jsx | 24 +- .../bootstrap-chat/src/composed/ChatApp.jsx | 117 +- packages/bootstrap-chat/src/composed/index.js | 8 +- packages/bootstrap-chat/src/index.js | 8 +- packages/bootstrap-chat/styles.css | 2 +- packages/bootstrap-chat/webpack.config.js | 21 +- packages/bootstrap-chat/yarn.lock | 5389 --- .../cra-template-mephisto-review/README.md | 98 + .../cra-template-mephisto-review/package.json | 20 + .../template.json | 17 + .../template/README.md | 92 + .../template/gitignore | 23 + .../template/public/favicon.ico | Bin 0 -> 3870 bytes .../template/public/index.html | 44 + .../template/public/logo192.png | Bin 0 -> 5347 bytes .../template/public/logo512.png | Bin 0 -> 9664 bytes .../template}/public/robots.txt | 1 + .../template/sample-data.csv | 2 + .../template/sample-data.jsonl | 2 + .../src/components/CollectionView.jsx | 168 + .../template/src/components/ErrorPane.js | 32 + .../template/src/components/ItemView.jsx | 184 + .../src/components/Pagination/Pagination.css | 9 + .../src/components/Pagination/Pagination.jsx | 130 + .../src/components/Pagination/index.js | 9 + .../template/src/config.js | 22 + .../template/src/custom/.gitkeep | 0 .../template/src/index.css | 103 + .../template/src/index.js | 40 + .../GridCollection/GridCollection.css | 23 + .../GridCollection/GridCollection.jsx | 31 + .../src/renderers/GridCollection/index.js | 9 + .../src/renderers/JSONItem/JSONItem.css | 22 + .../src/renderers/JSONItem/JSONItem.jsx | 46 + .../template/src/renderers/JSONItem/index.js | 9 + .../ListCollection/ListCollection.css | 32 + .../ListCollection/ListCollection.jsx | 44 + .../src/renderers/ListCollection/ListItem.jsx | 21 + .../src/renderers/ListCollection/index.js | 10 + .../src/renderers/WordCloudItem/WordCloud.css | 33 + .../src/renderers/WordCloudItem/WordCloud.jsx | 216 + .../renderers/WordCloudItem/WordCloudItem.jsx | 79 + .../src/renderers/WordCloudItem/index.js | 10 + .../template/src/renderers/index.js | 12 + .../template/src/utils.js | 15 + packages/global-context-store/.babelrc | 4 + packages/global-context-store/.eslintrc | 3 + packages/global-context-store/.gitattributes | 1 + packages/global-context-store/README.md | 66 + packages/global-context-store/package.json | 49 + packages/global-context-store/src/Store.js | 112 + packages/global-context-store/src/index.js | 9 + .../global-context-store/webpack.config.js | 58 + packages/mephisto-review-hook/package.json | 29 +- packages/mephisto-review-hook/src/index.js | 78 +- .../mephisto-review-hook/src/legacy/index.js | 60 + .../mephisto-review-hook/webpack.config.js | 19 +- packages/mephisto-task-multipart/.babelrc | 4 + packages/mephisto-task-multipart/.eslintrc | 3 + .../mephisto-task-multipart/.gitattributes | 1 + packages/mephisto-task-multipart/README.md | 300 + .../mephisto-task-multipart/package-lock.json | 13182 +++++++ packages/mephisto-task-multipart/package.json | 49 + .../src/MephistoContext.js | 11 + .../mephisto-task-multipart/src/RemoteTask.js | 142 + packages/mephisto-task-multipart/src/index.js | 146 + packages/mephisto-task-multipart/src/live.js | 102 + .../src/socket_handler.jsx | 435 + packages/mephisto-task-multipart/src/utils.js | 246 + .../mephisto-task-multipart/webpack.config.js | 58 + packages/mephisto-task/.babelrc | 2 +- packages/mephisto-task/README.md | 99 +- packages/mephisto-task/build/bundle.js | 2 +- packages/mephisto-task/package.json | 64 +- packages/mephisto-task/src/MephistoContext.js | 2 +- packages/mephisto-task/src/RemoteTask.js | 140 + packages/mephisto-task/src/index.js | 82 +- packages/mephisto-task/src/live.js | 52 +- packages/mephisto-task/src/socket_handler.jsx | 78 +- packages/mephisto-task/src/utils.js | 115 +- packages/mephisto-task/webpack.config.js | 21 +- packages/mephisto-task/yarn.lock | 5208 --- packages/mephisto-worker-addons/.babelrc | 3 + packages/mephisto-worker-addons/.npmignore | 4 + packages/mephisto-worker-addons/README.md | 125 + packages/mephisto-worker-addons/lib/index.js | 8 + .../lib/index.js.LICENSE.txt | 19 + packages/mephisto-worker-addons/package.json | 42 + .../src/Feedback/FeedbackTextArea.js | 79 + .../src/Feedback/Question.js | 64 + .../src/Feedback/SubmitButton.js | 55 + .../src/Feedback/index.css | 224 + .../src/Feedback/index.js | 163 + .../mephisto-worker-addons/src/Functions.js | 338 + .../mephisto-worker-addons/src/InfoIcon.js | 41 + .../mephisto-worker-addons/src/Reducers.js | 102 + .../src/Tips/CloseIcon.js | 34 + .../src/Tips/InfoIcon.js | 41 + .../src/Tips/TaskTips.js | 33 + .../src/Tips/UserSubmission.js | 121 + .../mephisto-worker-addons/src/Tips/index.css | 296 + .../mephisto-worker-addons/src/Tips/index.js | 125 + packages/mephisto-worker-addons/src/index.jsx | 9 + .../mephisto-worker-addons/webpack.config.js | 57 + packages/react-form-composer/.babelrc | 4 + packages/react-form-composer/.eslintrc | 3 + packages/react-form-composer/.gitattributes | 1 + packages/react-form-composer/README.md | 5 + .../react-form-composer/package-lock.json | 11715 ++++++ packages/react-form-composer/package.json | 38 + .../src/FormComposer/FormComposer.css | 295 + .../src/FormComposer/FormComposer.js | 614 + .../src/FormComposer/FormErrors.js | 34 + .../src/FormComposer/SectionErrors.js | 57 + .../FormComposer/SectionErrorsCountBadge.js | 31 + .../src/FormComposer/constants.js | 13 + .../src/FormComposer/fields/CheckboxField.js | 101 + .../src/FormComposer/fields/Errors.js | 24 + .../src/FormComposer/fields/FileField.js | 126 + .../src/FormComposer/fields/InputField.js | 65 + .../src/FormComposer/fields/RadioField.js | 102 + .../src/FormComposer/fields/SelectField.js | 119 + .../src/FormComposer/fields/TextareaField.js | 64 + .../src/FormComposer/utils.js | 300 + .../FormComposer/validation/errorMessages.js | 28 + .../src/FormComposer/validation/helpers.js | 76 + .../validation/validatorLookup.js | 20 + .../validation/validators/fieldIsRequired.js | 43 + .../validators/fileExtensionSatisfied.js | 45 + .../validators/maxLengthSatisfied.js | 53 + .../validators/minLengthSatisfied.js | 53 + .../validation/validators/regexpSatisfied.js | 33 + packages/react-form-composer/src/index.js | 29 + .../react-form-composer/webpack.config.js | 43 + poetry.lock | 5620 ++- pyproject.toml | 134 +- pytest.ini | 8 +- requirements.txt | 176 - scripts/README.md | 8 +- scripts/check_npm_package_versions.py | 62 + scripts/sync_mephisto_task.py | 78 + scripts/sync_package_version.sh | 69 + scripts/update_copyright_headers.py | 229 + scripts/update_js_deps.sh | 9 +- setup.py | 15 - test/__init__.py | 2 +- test/abstractions/__init__.py | 5 + test/abstractions/architects/__init__.py | 5 + .../architects/test_heroku_architect.py | 21 +- .../architects/test_local_architect.py | 35 +- .../architects/test_mock_architect.py | 23 +- test/abstractions/blueprints/__init__.py | 5 + .../blueprints/test_mixin_core.py | 313 + .../blueprints/test_mock_blueprint.py | 57 +- .../databases/test_local_database.py} | 8 +- .../databases/test_singleton_database.py | 39 + test/abstractions/providers/__init__.py | 5 + test/abstractions/providers/mturk/__init__.py | 5 + .../providers/mturk/test_mturk.py | 131 + .../providers/mturk_sandbox/__init__.py | 5 + .../mturk_sandbox/test_mturk_provider.py | 65 +- .../providers/prolific/__init__.py | 5 + .../providers/prolific/api/__init__.py | 5 + .../prolific/api/test_base_api_resourse.py | 362 + .../providers/prolific/test_prolific_utils.py | 1511 + test/core/__init__.py | 2 +- test/core/test_live_runs.py | 1056 + test/core/test_operator.py | 385 +- test/core/test_supervisor.py | 842 - test/core/test_task_launcher.py | 49 +- test/generators/__init__.py | 5 + test/generators/form_composer/__init__.py | 5 + .../config_validation/__init__.py | 5 + .../test_common_validation.py | 352 + .../config_validation/test_form_config.py | 314 + .../test_separate_token_values_config.py | 247 + .../test_task_data_config.py | 954 + .../test_token_sets_values_config.py | 186 + .../config_validation/test_utils.py | 246 + .../form_composer/test_remote_procedures.py | 145 + test/integration/review/.gitignore | 1 + test/integration/review/babel.config.js | 9 + test/integration/review/jest.config.js | 9 + test/integration/review/package.json | 18 + .../review/test_data/CSV/multi_page_data.csv | 12 + .../review/test_data/CSV/single_page_data.csv | 9 + .../test_data/JSON/multi_page_data.jsonl | 12 + .../test_data/JSON/single_page_data.jsonl | 9 + .../review/tests/all_item_view_ui.test.js | 201 + .../review/tests/item_view_ui.test.js | 136 + .../review/tests/review_results.test.js | 186 + .../review/tests/test_constants.js | 141 + test/integration/review/tests/test_types.js | 14 + .../review/utilities/file_management.js | 35 + test/integration/review/utilities/server.js | 116 + .../review/utilities/test_tools.js | 21 + test/providers/__init__.py | 5 - test/providers/mturk/__init__.py | 5 - test/providers/mturk/test_mturk.py | 65 - test/providers/mturk_sandbox/__init__.py | 5 - test/review_app/__init__.py | 5 + test/review_app/server/__init__.py | 5 + test/review_app/server/api/__init__.py | 5 + .../server/api/base_test_api_view_case.py | 48 + .../server/api/test_grant_workers_view.py | 89 + test/review_app/server/api/test_home_view.py | 59 + .../api/test_qualification_workers_view.py | 68 + .../server/api/test_qualifications_view.py | 76 + .../server/api/test_revoke_workers_view.py | 89 + test/review_app/server/api/test_stats_view.py | 52 + .../api/test_task_export_results_json_view.py | 53 + .../api/test_task_export_results_view.py | 86 + .../server/api/test_task_unit_ids_view.py | 53 + test/review_app/server/api/test_task_view.py | 42 + test/review_app/server/api/test_tasks_view.py | 45 + .../server/api/test_unit_bundle_js_view.py | 72 + .../server/api/test_unit_data_static_view.py | 130 + .../server/api/test_unit_html_view.py | 31 + .../server/api/test_units_approve_view.py | 127 + .../server/api/test_units_details_view.py | 70 + .../server/api/test_units_reject_view.py | 53 + .../server/api/test_units_soft_reject_view.py | 53 + test/review_app/server/api/test_units_view.py | 135 + .../server/api/test_worker_block_view.py | 68 + test/server/__init__.py | 5 - test/server/architects/__init__.py | 5 - test/server/blueprints/__init__.py | 5 - test/test_data_model.py | 44 + test/test_mephisto.py | 8 +- test/tools/__init__.py | 5 + test/tools/test_data_brower.py | 86 + test/utils/__init__.py | 5 + test/utils/prolific_api/__init__.py | 5 + test/utils/prolific_api/test_data_models.py | 46 + yarn-patches/react-dev-utils.patch | 42 + .../react-refresh-webpack-plugin.patch | 13 + yarn.lock | 17672 +++++++++ 1352 files changed, 302959 insertions(+), 73293 deletions(-) create mode 100644 .dockerignore create mode 100644 .git-hooks/README.md create mode 100755 .git-hooks/pre-commit create mode 100644 .gitattributes create mode 100644 .github/workflows/annotated-pkgs.yml create mode 100644 .github/workflows/cypress-end-to-end-tests.yml create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 .github/workflows/docker-testing-matrix.yml create mode 100644 .github/workflows/npm-check.yml create mode 100644 .github/workflows/test-deploy-docs.yml create mode 100644 .github/workflows/version-sync.yml create mode 100644 .npmrc create mode 100644 .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs create mode 100644 .yarn/plugins/@yarnpkg/plugin-version.cjs create mode 100644 .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs create mode 100755 .yarn/releases/yarn-3.2.3.cjs create mode 100755 .yarn/releases/yarn-3.2.4.cjs create mode 100644 .yarnrc.yml create mode 100644 Dockerfile create mode 100644 Dockerfile-frontend delete mode 100644 data/README.md create mode 100644 docker/aws_credentials.example create mode 100644 docker/docker-compose.dev.vscode.yml create mode 100644 docker/docker-compose.dev.yml create mode 100755 docker/entrypoints/server.mturk.sh create mode 100755 docker/entrypoints/server.prolific.sh create mode 100644 docker/envs/env.dev rename mephisto/server/architects/router/deploy/uploads/exists.txt => docker/ssh_known_hosts (100%) create mode 100644 docs/README.md rename docs/{ => legacy}/hydra_migration.md (92%) delete mode 100644 docs/quickstart.md create mode 100644 docs/static/faq_ui_error_message.png create mode 100644 docs/storybook/.eslintrc.js rename {mephisto/webapp => docs/storybook}/.gitignore (93%) create mode 100644 docs/storybook/.storybook/main.js create mode 100644 docs/storybook/.storybook/preview.js create mode 100644 docs/storybook/README.md create mode 100644 docs/storybook/package.json create mode 100644 docs/storybook/public/favicon.ico create mode 100644 docs/storybook/public/index.html rename {mephisto/webapp/build => docs/storybook/public}/robots.txt (85%) create mode 100644 docs/storybook/src/stories/GlobalContextStore.stories.jsx create mode 100644 docs/storybook/src/stories/InterpolatedBBox.stories.jsx create mode 100644 docs/storybook/src/stories/Introduction.stories.mdx create mode 100644 docs/storybook/src/stories/Keypoints.stories.jsx create mode 100644 docs/storybook/src/stories/Layers.stories.jsx create mode 100644 docs/storybook/src/stories/Panels.stories.jsx create mode 100644 docs/storybook/src/stories/VideoPlayer.stories.jsx create mode 100644 docs/storybook/src/stories/Wrapper.jsx create mode 100644 docs/storybook/src/stories/assets/annotation_toolkit_grey_x2.png create mode 100644 docs/storybook/src/stories/assets/code-brackets.svg create mode 100644 docs/storybook/src/stories/assets/colors.svg create mode 100644 docs/storybook/src/stories/assets/comments.svg create mode 100644 docs/storybook/src/stories/assets/direction.svg create mode 100644 docs/storybook/src/stories/assets/flow.svg create mode 100644 docs/storybook/src/stories/assets/plugin.svg create mode 100644 docs/storybook/src/stories/assets/repo.svg create mode 100644 docs/storybook/src/stories/assets/stackalt.svg create mode 100644 docs/web/.gitignore create mode 100644 docs/web/README.md create mode 100644 docs/web/babel.config.js create mode 100644 docs/web/blog/2022-03-22-mephisto-1.0.md create mode 100644 docs/web/blog/authors.yml create mode 100644 docs/web/docs/explanations/architect_api.md rename docs/{ => web/docs/explanations}/architecture_overview.md (75%) create mode 100644 docs/web/docs/guides/how_to_contribute/_category_.yml create mode 100644 docs/web/docs/guides/how_to_contribute/backend_development.md create mode 100644 docs/web/docs/guides/how_to_contribute/frontend_development.md create mode 100644 docs/web/docs/guides/how_to_contribute/getting_started.md create mode 100644 docs/web/docs/guides/how_to_use/_category_.yml create mode 100644 docs/web/docs/guides/how_to_use/efficiency_organization/_category_.yml create mode 100644 docs/web/docs/guides/how_to_use/efficiency_organization/config_faq.md create mode 100644 docs/web/docs/guides/how_to_use/efficiency_organization/docker.md create mode 100644 docs/web/docs/guides/how_to_use/efficiency_organization/metrics_dashboarding.md create mode 100644 docs/web/docs/guides/how_to_use/efficiency_organization/reusing_configs.md create mode 100644 docs/web/docs/guides/how_to_use/task_creation/_category_.yml create mode 100644 docs/web/docs/guides/how_to_use/task_creation/developing_frontends.md create mode 100644 docs/web/docs/guides/how_to_use/task_creation/hosting_assets.md create mode 100644 docs/web/docs/guides/how_to_use/worker_experience/_category_.yml create mode 100644 docs/web/docs/guides/how_to_use/worker_experience/feedback.md create mode 100644 docs/web/docs/guides/how_to_use/worker_experience/mephisto-worker-addons.md create mode 100644 docs/web/docs/guides/how_to_use/worker_experience/tips.md create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/_category_.yml create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/common_qualification_flows.md create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/other_methods.md create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/using_golds.md create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/using_onboarding.mdx create mode 100644 docs/web/docs/guides/how_to_use/worker_quality/using_screen_units.mdx create mode 100644 docs/web/docs/guides/quickstart.md create mode 100644 docs/web/docs/guides/tutorials/_category_.yml create mode 100644 docs/web/docs/guides/tutorials/custom_react.md create mode 100644 docs/web/docs/guides/tutorials/first_task.md create mode 100644 docs/web/docs/guides/tutorials/review-cli.md create mode 100644 docs/web/docs/guides/tutorials/worker_controls.md create mode 100644 docs/web/docs/guides/tutorials/workflows.md create mode 100644 docs/web/docs/guides/upgrade_to_1/_category_.yml create mode 100644 docs/web/docs/guides/upgrade_to_1/guide.md create mode 100644 docs/web/docs/guides/upgrade_to_1/run_scripts.md create mode 100644 docs/web/docs/reference/architects.md create mode 100644 docs/web/docs/reference/blueprints.md create mode 100644 docs/web/docs/reference/overview.md create mode 100644 docs/web/docs/reference/providers.md create mode 100644 docs/web/docs/reference/requesters.md create mode 100644 docs/web/docusaurus.config.js create mode 100644 docs/web/package.json create mode 100644 docs/web/pdoc_src/module.html.jinja2 create mode 100644 docs/web/sidebars.js create mode 100644 docs/web/siteConfig.js create mode 100644 docs/web/src/components/HomepageFeatures.js create mode 100644 docs/web/src/components/HomepageFeatures.module.css create mode 100644 docs/web/src/css/custom.css create mode 100644 docs/web/src/pages/index.js create mode 100644 docs/web/src/pages/index.module.css create mode 100644 docs/web/static/.nojekyll create mode 100644 docs/web/static/CNAME create mode 100644 docs/web/static/assets/metrics_tutorial/general_health.png create mode 100644 docs/web/static/assets/metrics_tutorial/grafana_login.png create mode 100644 docs/web/static/assets/metrics_tutorial/grafana_skip_new_user.png create mode 100644 docs/web/static/assets/metrics_tutorial/metrics_base_dashboard.png create mode 100644 docs/web/static/assets/metrics_tutorial/network_health_1.png create mode 100644 docs/web/static/assets/metrics_tutorial/network_health_2.png create mode 100644 docs/web/static/assets/metrics_tutorial/operator_health.png create mode 100644 docs/web/static/assets/metrics_tutorial/select_range.png create mode 100644 docs/web/static/custom_react_review_all.png create mode 100644 docs/web/static/custom_react_review_renderer.png create mode 100644 docs/web/static/custom_react_review_single.png create mode 100644 docs/web/static/faq_ui_error_message.png create mode 100644 docs/web/static/feedback_component.png create mode 100644 docs/web/static/fonts/Optimistic_Display/EOT/Optimistic_Display_W_Bd.eot create mode 100644 docs/web/static/fonts/Optimistic_Display/EOT/Optimistic_Display_W_Lt.eot create mode 100644 docs/web/static/fonts/Optimistic_Display/EOT/Optimistic_Display_W_Md.eot create mode 100644 docs/web/static/fonts/Optimistic_Display/EOT/Optimistic_Display_W_XBd.eot create mode 100644 docs/web/static/fonts/Optimistic_Display/EOT/Optimistic_Display_W_XLt.eot create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF/Optimistic_Display_W_Bd.woff create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF/Optimistic_Display_W_Lt.woff create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF/Optimistic_Display_W_Md.woff create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF/Optimistic_Display_W_XBd.woff create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF/Optimistic_Display_W_XLt.woff create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF2/Optimistic_Display_W_Bd.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF2/Optimistic_Display_W_Lt.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF2/Optimistic_Display_W_Md.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF2/Optimistic_Display_W_XBd.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Display/WOFF2/Optimistic_Display_W_XLt.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Text/EOT/Optimistic_Text_W_Bd.eot create mode 100644 docs/web/static/fonts/Optimistic_Text/EOT/Optimistic_Text_W_Lt.eot create mode 100644 docs/web/static/fonts/Optimistic_Text/EOT/Optimistic_Text_W_Md.eot create mode 100644 docs/web/static/fonts/Optimistic_Text/EOT/Optimistic_Text_W_Rg.eot create mode 100644 docs/web/static/fonts/Optimistic_Text/EOT/Optimistic_Text_W_XBd.eot create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF/Optimistic_Text_W_Bd.woff create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF/Optimistic_Text_W_Lt.woff create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF/Optimistic_Text_W_Md.woff create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF/Optimistic_Text_W_Rg.woff create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF/Optimistic_Text_W_XBd.woff create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF2/Optimistic_Text_W_Bd.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF2/Optimistic_Text_W_Lt.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF2/Optimistic_Text_W_Md.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF2/Optimistic_Text_W_Rg.woff2 create mode 100644 docs/web/static/fonts/Optimistic_Text/WOFF2/Optimistic_Text_W_XBd.woff2 create mode 100644 docs/web/static/img/Mephisto1.0.png create mode 100644 docs/web/static/img/docusaurus.png create mode 100644 docs/web/static/img/favicon.png create mode 100644 docs/web/static/img/logo.svg create mode 100644 docs/web/static/img/logo_symbol_red.png create mode 100644 docs/web/static/img/logo_symbol_w.svg create mode 100644 docs/web/static/img/logo_w.svg create mode 100644 docs/web/static/img/tutorial/docsVersionDropdown.png create mode 100644 docs/web/static/img/tutorial/localeDropdown.png create mode 100644 docs/web/static/img/undraw_docusaurus_mountain.svg create mode 100644 docs/web/static/img/undraw_docusaurus_react.svg create mode 100644 docs/web/static/img/undraw_docusaurus_tree.svg create mode 100644 docs/web/static/one_person_sequence_diagram.jpeg create mode 100644 docs/web/static/python_api/index.html create mode 100644 docs/web/static/python_api/mephisto.html create mode 100644 docs/web/static/python_api/mephisto/abstractions.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architect.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/channels.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/channels/websocket_channel.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_resources.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_server_by_name.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_architect.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_helpers.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/ec2/prepare_ec2_servers.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/heroku_architect.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/local_architect.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/mock_architect.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/router.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/router/build_router.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/router/flask.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/router/flask/app.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/empty_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_agent_state.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_task_runner.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mixins.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/onboarding_required.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/screen_task_required.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/use_gold_unit.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mock.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_agent_state.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_runner.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_agent_state.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_runner.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_not_installed.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_agent_state.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_runner.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_blueprint.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_task_builder.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/crowd_provider.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/database.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/databases.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/databases/local_database.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/databases/local_singleton_database.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_agent.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_datastore.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_provider.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_requester.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_unit.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_worker.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mock/provider_type.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_agent.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_datastore.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_provider.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_requester.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_unit.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_utils.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_worker.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/provider_type.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils/script_utils.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/provider_type.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_agent.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_provider.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_requester.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_unit.html create mode 100644 docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_worker.html create mode 100644 docs/web/static/python_api/mephisto/client.html create mode 100644 docs/web/static/python_api/mephisto/client/api.html create mode 100644 docs/web/static/python_api/mephisto/client/cli.html create mode 100644 docs/web/static/python_api/mephisto/client/config.html create mode 100644 docs/web/static/python_api/mephisto/client/full.html create mode 100644 docs/web/static/python_api/mephisto/client/full/server.html create mode 100644 docs/web/static/python_api/mephisto/client/review.html create mode 100644 docs/web/static/python_api/mephisto/client/review/review_server.html create mode 100644 docs/web/static/python_api/mephisto/data_model.html create mode 100644 docs/web/static/python_api/mephisto/data_model/_db_backed_meta.html create mode 100644 docs/web/static/python_api/mephisto/data_model/agent.html create mode 100644 docs/web/static/python_api/mephisto/data_model/assignment.html create mode 100644 docs/web/static/python_api/mephisto/data_model/constants.html create mode 100644 docs/web/static/python_api/mephisto/data_model/constants/assignment_state.html create mode 100644 docs/web/static/python_api/mephisto/data_model/exceptions.html create mode 100644 docs/web/static/python_api/mephisto/data_model/packet.html create mode 100644 docs/web/static/python_api/mephisto/data_model/project.html create mode 100644 docs/web/static/python_api/mephisto/data_model/qualification.html create mode 100644 docs/web/static/python_api/mephisto/data_model/requester.html create mode 100644 docs/web/static/python_api/mephisto/data_model/task.html create mode 100644 docs/web/static/python_api/mephisto/data_model/task_run.html create mode 100644 docs/web/static/python_api/mephisto/data_model/unit.html create mode 100644 docs/web/static/python_api/mephisto/data_model/worker.html create mode 100644 docs/web/static/python_api/mephisto/operations.html create mode 100644 docs/web/static/python_api/mephisto/operations/client_io_handler.html create mode 100644 docs/web/static/python_api/mephisto/operations/config_handler.html create mode 100644 docs/web/static/python_api/mephisto/operations/datatypes.html create mode 100644 docs/web/static/python_api/mephisto/operations/hydra_config.html create mode 100644 docs/web/static/python_api/mephisto/operations/operator.html create mode 100644 docs/web/static/python_api/mephisto/operations/registry.html create mode 100644 docs/web/static/python_api/mephisto/operations/task_launcher.html create mode 100644 docs/web/static/python_api/mephisto/operations/worker_pool.html create mode 100644 docs/web/static/python_api/mephisto/scripts.html create mode 100644 docs/web/static/python_api/mephisto/scripts/heroku.html create mode 100644 docs/web/static/python_api/mephisto/scripts/heroku/initialize_heroku.html create mode 100644 docs/web/static/python_api/mephisto/scripts/local_db.html create mode 100644 docs/web/static/python_api/mephisto/scripts/local_db/load_data_to_mephisto_db.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk/cleanup.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk/identify_broken_units.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk/launch_makeup_hits.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk/print_outstanding_hit_status.html create mode 100644 docs/web/static/python_api/mephisto/scripts/mturk/soft_block_workers_by_mturk_id.html create mode 100644 docs/web/static/python_api/mephisto/tools.html create mode 100644 docs/web/static/python_api/mephisto/tools/data_browser.html create mode 100644 docs/web/static/python_api/mephisto/tools/examine_utils.html create mode 100644 docs/web/static/python_api/mephisto/tools/scripts.html create mode 100644 docs/web/static/python_api/mephisto/utils.html create mode 100644 docs/web/static/python_api/mephisto/utils/dirs.html create mode 100644 docs/web/static/python_api/mephisto/utils/logger_core.html create mode 100644 docs/web/static/python_api/mephisto/utils/metrics.html create mode 100644 docs/web/static/python_api/mephisto/utils/qualifications.html create mode 100644 docs/web/static/python_api/mephisto/utils/testing.html create mode 100644 docs/web/static/python_api/search.js create mode 100644 docs/web/static/react_dev_tools_see_props.png create mode 100644 docs/web/static/static_task_correction_submit.png create mode 100644 docs/web/static/static_task_with_corrections_box.png create mode 100644 docs/web/static/tips_component.png create mode 100644 docs/web/static/tutorial_onboarding_new_interface.png create mode 100644 docs/web/static/two_person_sequence_diagram.jpeg create mode 100644 docs/web/static/with_requester_screening_text.png create mode 100644 examples/form_composer_demo/README.md create mode 100644 examples/form_composer_demo/__init__.py create mode 100644 examples/form_composer_demo/data/dynamic/form_config.json create mode 100644 examples/form_composer_demo/data/dynamic/separate_token_values_config.json create mode 100644 examples/form_composer_demo/data/dynamic/task_data.json create mode 100644 examples/form_composer_demo/data/dynamic/token_sets_values_config.json create mode 100644 examples/form_composer_demo/data/dynamic_presigned_urls/form_config.json create mode 100644 examples/form_composer_demo/data/dynamic_presigned_urls/separate_token_values_config.json create mode 100644 examples/form_composer_demo/data/dynamic_presigned_urls/task_data.json create mode 100644 examples/form_composer_demo/data/dynamic_presigned_urls/token_sets_values_config.json create mode 100644 examples/form_composer_demo/data/simple/task_data.json create mode 100644 examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_mturk_sandbox.yaml create mode 100644 examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_prolific.yaml create mode 100644 examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml create mode 100644 examples/form_composer_demo/hydra_configs/conf/dynamic_presigned_urls_example_ec2_prolific.yaml create mode 100644 examples/form_composer_demo/hydra_configs/conf/example_local_mock.yaml create mode 100644 examples/form_composer_demo/preview/mturk_preview_template.html create mode 100644 examples/form_composer_demo/run_task.py create mode 100644 examples/form_composer_demo/run_task_dynamic.py create mode 100644 examples/form_composer_demo/run_task_dynamic_ec2_mturk_sandbox.py create mode 100644 examples/form_composer_demo/run_task_dynamic_ec2_prolific.py create mode 100644 examples/form_composer_demo/run_task_dynamic_presigned_urls_ec2_prolific.py rename {mephisto/server/blueprints/parlai_chat => examples/form_composer_demo}/webapp/.babelrc (100%) create mode 100644 examples/form_composer_demo/webapp/link_mephisto_task.sh create mode 100644 examples/form_composer_demo/webapp/package-lock.json create mode 100644 examples/form_composer_demo/webapp/package.json create mode 100644 examples/form_composer_demo/webapp/src/app.jsx create mode 100644 examples/form_composer_demo/webapp/src/components/core_components.jsx create mode 100644 examples/form_composer_demo/webapp/src/components/core_components_presigned_url.jsx create mode 100644 examples/form_composer_demo/webapp/src/css/style.css create mode 100644 examples/form_composer_demo/webapp/src/main.js create mode 100644 examples/form_composer_demo/webapp/src/presigned_urls.js create mode 100644 examples/form_composer_demo/webapp/src/presigned_urls_app.jsx create mode 100644 examples/form_composer_demo/webapp/src/review.js create mode 100644 examples/form_composer_demo/webapp/src/reviewapp.jsx rename {mephisto/server/architects/router/deploy => examples/form_composer_demo/webapp/src}/static/index.html (86%) create mode 100644 examples/form_composer_demo/webapp/webpack.config.js create mode 100644 examples/form_composer_demo/webapp/webpack.config.presigned_urls.js create mode 100644 examples/form_composer_demo/webapp/webpack.config.review.js rename {mephisto/providers/mturk/utils => examples/parlai_chat_task_demo}/__init__.py (74%) create mode 100644 examples/parlai_chat_task_demo/assets/.gitkeep delete mode 100644 examples/parlai_chat_task_demo/conf/base.yaml create mode 100644 examples/parlai_chat_task_demo/hydra_configs/conf/base.yaml rename examples/parlai_chat_task_demo/{ => hydra_configs}/conf/custom_prebuilt.yaml (68%) rename examples/parlai_chat_task_demo/{ => hydra_configs}/conf/custom_simple.yaml (67%) rename examples/parlai_chat_task_demo/{ => hydra_configs}/conf/example.yaml (63%) rename examples/parlai_chat_task_demo/{ => hydra_configs}/conf/onboarding_example.yaml (67%) delete mode 100644 examples/parlai_chat_task_demo/parlai_test_script.py create mode 100644 examples/parlai_chat_task_demo/run_task.py delete mode 100644 examples/parlai_chat_task_demo/webapp/README.md delete mode 100644 examples/parlai_chat_task_demo/webapp/package-lock.json delete mode 100644 examples/parlai_chat_task_demo/webapp/yarn.lock create mode 100644 examples/remote_procedure/README.md rename {mephisto/providers/mturk => examples/remote_procedure}/__init__.py (74%) create mode 100644 examples/remote_procedure/mnist/README.md rename {mephisto/providers => examples/remote_procedure/mnist}/__init__.py (74%) create mode 100644 examples/remote_procedure/mnist/assets/.gitkeep create mode 100644 examples/remote_procedure/mnist/hydra_configs/conf/example_local_mock.yaml create mode 100644 examples/remote_procedure/mnist/hydra_configs/conf/screening_example_local_mock.yaml create mode 100644 examples/remote_procedure/mnist/model.py create mode 100644 examples/remote_procedure/mnist/run_task.py rename {mephisto/server/blueprints/static_task/source => examples/remote_procedure/mnist/webapp}/.babelrc (100%) rename {mephisto/server/blueprints/parlai_chat => examples/remote_procedure/mnist}/webapp/.eslintrc (100%) create mode 100644 examples/remote_procedure/mnist/webapp/cypress.config.js create mode 100644 examples/remote_procedure/mnist/webapp/cypress/e2e/remote_procedure_mnist.cy.js create mode 100644 examples/remote_procedure/mnist/webapp/link_mephisto_task.sh create mode 100644 examples/remote_procedure/mnist/webapp/package.json create mode 100644 examples/remote_procedure/mnist/webapp/src/app.jsx create mode 100644 examples/remote_procedure/mnist/webapp/src/components/core_components.jsx create mode 100644 examples/remote_procedure/mnist/webapp/src/css/style.css rename mephisto/webapp/src/react-app-env.d.ts => examples/remote_procedure/mnist/webapp/src/main.js (66%) create mode 100644 examples/remote_procedure/mnist/webapp/src/review.js create mode 100644 examples/remote_procedure/mnist/webapp/src/reviewapp.jsx create mode 100644 examples/remote_procedure/mnist/webapp/src/static/index.html create mode 100644 examples/remote_procedure/mnist/webapp/webpack.config.js create mode 100644 examples/remote_procedure/mnist/webapp/webpack.config.review.js create mode 100644 examples/remote_procedure/template/README.md rename {mephisto/providers/mock => examples/remote_procedure/template}/__init__.py (74%) create mode 100644 examples/remote_procedure/template/assets/.gitkeep create mode 100644 examples/remote_procedure/template/hydra_configs/conf/example_local_mock.yaml create mode 100644 examples/remote_procedure/template/run_task.py create mode 100644 examples/remote_procedure/template/webapp/.babelrc create mode 100644 examples/remote_procedure/template/webapp/.eslintrc create mode 100644 examples/remote_procedure/template/webapp/cypress.config.js create mode 100644 examples/remote_procedure/template/webapp/cypress/e2e/remote_procedure_template.cy.js create mode 100644 examples/remote_procedure/template/webapp/link_mephisto_task.sh create mode 100644 examples/remote_procedure/template/webapp/package.json create mode 100644 examples/remote_procedure/template/webapp/src/app.jsx create mode 100644 examples/remote_procedure/template/webapp/src/components/core_components.jsx create mode 100644 examples/remote_procedure/template/webapp/src/css/style.css create mode 100644 examples/remote_procedure/template/webapp/src/main.js create mode 100644 examples/remote_procedure/template/webapp/src/static/index.html create mode 100644 examples/remote_procedure/template/webapp/webpack.config.js create mode 100644 examples/remote_procedure/toxicity_detection/README.md create mode 100644 examples/remote_procedure/toxicity_detection/__init__.py create mode 100644 examples/remote_procedure/toxicity_detection/assets/.gitkeep create mode 100644 examples/remote_procedure/toxicity_detection/hydra_configs/conf/example_local_mock.yaml create mode 100644 examples/remote_procedure/toxicity_detection/run_task.py create mode 100644 examples/remote_procedure/toxicity_detection/webapp/.babelrc create mode 100644 examples/remote_procedure/toxicity_detection/webapp/.eslintrc create mode 100644 examples/remote_procedure/toxicity_detection/webapp/cypress.config.js create mode 100644 examples/remote_procedure/toxicity_detection/webapp/cypress/e2e/remote_procedure_toxicity_detection.cy.js create mode 100644 examples/remote_procedure/toxicity_detection/webapp/link_mephisto_task.sh create mode 100644 examples/remote_procedure/toxicity_detection/webapp/package.json create mode 100644 examples/remote_procedure/toxicity_detection/webapp/src/app.jsx create mode 100644 examples/remote_procedure/toxicity_detection/webapp/src/components/core_components.jsx create mode 100644 examples/remote_procedure/toxicity_detection/webapp/src/css/style.css create mode 100644 examples/remote_procedure/toxicity_detection/webapp/src/main.js create mode 100644 examples/remote_procedure/toxicity_detection/webapp/src/static/index.html create mode 100644 examples/remote_procedure/toxicity_detection/webapp/webpack.config.js create mode 100644 examples/simple_static_task/README.md create mode 100644 examples/simple_static_task/__init__.py delete mode 100644 examples/simple_static_task/conf/example.yaml rename examples/simple_static_task/{ => data}/data.csv (98%) create mode 100644 examples/simple_static_task/data/data_prolific.csv create mode 100644 examples/simple_static_task/data/data_tutorial.csv create mode 100644 examples/simple_static_task/hydra_configs/conf/example_ec2_mturk_sandbox.yaml create mode 100644 examples/simple_static_task/hydra_configs/conf/example_ec2_prolific.yaml create mode 100644 examples/simple_static_task/hydra_configs/conf/example_local_mock.yaml rename examples/simple_static_task/{conf/onboarding_example.yaml => hydra_configs/conf/onboarding_example_local_mock.yaml} (57%) create mode 100644 examples/simple_static_task/run_task.py create mode 100644 examples/simple_static_task/run_task_ec2_mturk_sandbox.py create mode 100644 examples/simple_static_task/run_task_ec2_prolific.py create mode 100644 examples/simple_static_task/run_task_with_onboarding.py delete mode 100644 examples/simple_static_task/static_run_with_onboarding.py delete mode 100644 examples/simple_static_task/static_test_script.py create mode 100644 examples/static_react_task/__init__.py create mode 100644 examples/static_react_task/assets/.gitkeep rename examples/static_react_task/{conf/example.yaml => hydra_configs/conf/example_local_mock.yaml} (51%) rename examples/static_react_task/{conf/onboarding_example.yaml => hydra_configs/conf/onboarding_example_local_mock.yaml} (56%) create mode 100644 examples/static_react_task/hydra_configs/conf/screening_example_local_mock.yaml delete mode 100644 examples/static_react_task/webapp/README.md create mode 100644 examples/static_react_task/webapp/cypress.config.js create mode 100644 examples/static_react_task/webapp/cypress/e2e/static_react_task.cy.js create mode 100644 examples/static_react_task/webapp/cypress/fixtures/example.json create mode 100644 examples/static_react_task/webapp/cypress/support/commands.js create mode 100644 examples/static_react_task/webapp/cypress/support/e2e.js create mode 100644 examples/static_react_task/webapp/link_mephisto_task.sh create mode 100644 examples/static_react_task_with_tips/README.md create mode 100644 examples/static_react_task_with_tips/__init__.py create mode 100644 examples/static_react_task_with_tips/assets/.gitkeep create mode 100644 examples/static_react_task_with_tips/hydra_configs/conf/example_local_mock.yaml create mode 100644 examples/static_react_task_with_tips/hydra_configs/conf/onboarding_example_local_mock.yaml create mode 100644 examples/static_react_task_with_tips/run_task.py create mode 100644 examples/static_react_task_with_tips/webapp/.babelrc create mode 100644 examples/static_react_task_with_tips/webapp/__init__.py create mode 100644 examples/static_react_task_with_tips/webapp/cypress.config.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/e2e/post_submission_tests/static_react_task_with_tips_post_tip_submission.cy.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/e2e/pre_submission_tests/0-static_react_task_with_tips_pre_tip_submission.cy.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/e2e/pre_submission_tests/1-static_react_task_with_tips_feedback_submission.cy.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/helper.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/support/commands.js create mode 100644 examples/static_react_task_with_tips/webapp/cypress/support/e2e.js create mode 100644 examples/static_react_task_with_tips/webapp/link_packages.sh create mode 100644 examples/static_react_task_with_tips/webapp/package.json create mode 100644 examples/static_react_task_with_tips/webapp/src/app.jsx create mode 100644 examples/static_react_task_with_tips/webapp/src/components/core_components.jsx create mode 100644 examples/static_react_task_with_tips/webapp/src/css/style.css create mode 100644 examples/static_react_task_with_tips/webapp/src/main.js create mode 100644 examples/static_react_task_with_tips/webapp/src/static/index.html create mode 100644 examples/static_react_task_with_tips/webapp/webpack.config.js create mode 100644 hydra_configs/hydra/job_logging/mephisto_default.yaml create mode 100644 hydra_configs/profile/local_dev.yaml create mode 100644 hydra_plugins/__init__.py create mode 100644 hydra_plugins/mephisto_path_plugin.py create mode 100644 lerna.json create mode 100644 mephisto/README.md create mode 100644 mephisto/VERSION create mode 100644 mephisto/abstractions/README.md create mode 100644 mephisto/abstractions/__init__.py create mode 100644 mephisto/abstractions/_subcomponents/README.md create mode 100644 mephisto/abstractions/_subcomponents/__init__.py create mode 100644 mephisto/abstractions/_subcomponents/agent_state.py rename mephisto/{server/channels => abstractions/_subcomponents}/channel.py (76%) create mode 100644 mephisto/abstractions/_subcomponents/task_builder.py create mode 100644 mephisto/abstractions/_subcomponents/task_runner.py rename mephisto/{data_model => abstractions}/architect.py (77%) create mode 100644 mephisto/abstractions/architects/README.md create mode 100644 mephisto/abstractions/architects/__init__.py create mode 100644 mephisto/abstractions/architects/channels/__init__.py create mode 100644 mephisto/abstractions/architects/channels/websocket_channel.py create mode 100644 mephisto/abstractions/architects/ec2/.gitignore create mode 100644 mephisto/abstractions/architects/ec2/__init__.py create mode 100644 mephisto/abstractions/architects/ec2/cleanup_ec2_resources.py create mode 100644 mephisto/abstractions/architects/ec2/cleanup_ec2_server_all.py create mode 100644 mephisto/abstractions/architects/ec2/cleanup_ec2_server_by_name.py create mode 100644 mephisto/abstractions/architects/ec2/ec2_architect.py create mode 100644 mephisto/abstractions/architects/ec2/ec2_helpers.py create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/README.md create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/access_logs/README.md create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/app.py create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/fallback.service create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/scripts/first_setup.sh create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/scripts/run_server.sh create mode 100644 mephisto/abstractions/architects/ec2/fallback_server/templates/landing.html create mode 100644 mephisto/abstractions/architects/ec2/keypairs/README.md create mode 100644 mephisto/abstractions/architects/ec2/prepare_ec2_servers.py create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/flask/init_server.sh create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/flask/router.service create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/flask/run_server.sh create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/node/init_server.sh create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/node/router.service create mode 100644 mephisto/abstractions/architects/ec2/run_scripts/node/run_server.sh create mode 100644 mephisto/abstractions/architects/ec2/servers/README.md rename mephisto/{server => abstractions}/architects/heroku_architect.py (68%) rename mephisto/{server => abstractions}/architects/local_architect.py (72%) rename mephisto/{server => abstractions}/architects/mock_architect.py (70%) create mode 100644 mephisto/abstractions/architects/router/README.md create mode 100644 mephisto/abstractions/architects/router/__init__.py rename mephisto/{server => abstractions}/architects/router/build_router.py (57%) create mode 100644 mephisto/abstractions/architects/router/flask/Procfile create mode 100644 mephisto/abstractions/architects/router/flask/__init__.py create mode 100644 mephisto/abstractions/architects/router/flask/app.py create mode 100644 mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.py create mode 100644 mephisto/abstractions/architects/router/flask/requirements.txt create mode 100644 mephisto/abstractions/architects/router/flask/static/index.html rename mephisto/{server/architects/router/deploy => abstractions/architects/router/node}/package.json (90%) rename mephisto/{server/architects/router/deploy => abstractions/architects/router/node}/server.js (59%) create mode 100644 mephisto/abstractions/architects/router/node/static/index.html create mode 100644 mephisto/abstractions/architects/router/node/uploads/exists.txt create mode 100644 mephisto/abstractions/blueprint.py rename mephisto/{server => abstractions}/blueprints/README.md (56%) create mode 100644 mephisto/abstractions/blueprints/__init__.py rename mephisto/{server => abstractions}/blueprints/abstract/README.md (59%) create mode 100644 mephisto/abstractions/blueprints/abstract/__init__.py create mode 100644 mephisto/abstractions/blueprints/abstract/static_task/__init__.py rename mephisto/{server => abstractions}/blueprints/abstract/static_task/empty_task_builder.py (73%) create mode 100644 mephisto/abstractions/blueprints/abstract/static_task/static_agent_state.py create mode 100644 mephisto/abstractions/blueprints/abstract/static_task/static_blueprint.py rename mephisto/{server => abstractions}/blueprints/abstract/static_task/static_task_runner.py (68%) create mode 100644 mephisto/abstractions/blueprints/mixins/__init__.py create mode 100644 mephisto/abstractions/blueprints/mixins/onboarding_required.py create mode 100644 mephisto/abstractions/blueprints/mixins/screen_task_required.py create mode 100644 mephisto/abstractions/blueprints/mixins/use_gold_unit.py create mode 100644 mephisto/abstractions/blueprints/mock/__init__.py rename mephisto/{server => abstractions}/blueprints/mock/mock_agent_state.py (64%) create mode 100644 mephisto/abstractions/blueprints/mock/mock_blueprint.py rename mephisto/{server => abstractions}/blueprints/mock/mock_task_builder.py (70%) rename mephisto/{server => abstractions}/blueprints/mock/mock_task_runner.py (78%) create mode 100644 mephisto/abstractions/blueprints/parlai_chat/__init__.py create mode 100644 mephisto/abstractions/blueprints/parlai_chat/parlai_chat_agent_state.py rename mephisto/{server => abstractions}/blueprints/parlai_chat/parlai_chat_blueprint.py (52%) rename mephisto/{server => abstractions}/blueprints/parlai_chat/parlai_chat_task_builder.py (79%) create mode 100644 mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_runner.py create mode 100644 mephisto/abstractions/blueprints/parlai_chat/parlai_not_installed.py create mode 100644 mephisto/abstractions/blueprints/parlai_chat/webapp/.babelrc create mode 100644 mephisto/abstractions/blueprints/parlai_chat/webapp/.eslintrc rename mephisto/{server => abstractions}/blueprints/parlai_chat/webapp/package.json (59%) rename mephisto/{server => abstractions}/blueprints/parlai_chat/webapp/src/main.js (76%) rename mephisto/{server => abstractions}/blueprints/parlai_chat/webapp/src/static/index.html (79%) rename mephisto/{server => abstractions}/blueprints/parlai_chat/webapp/src/static/notif.mp3 (100%) rename mephisto/{server => abstractions}/blueprints/parlai_chat/webapp/webpack.config.js (79%) create mode 100644 mephisto/abstractions/blueprints/remote_procedure/__init__.py create mode 100644 mephisto/abstractions/blueprints/remote_procedure/remote_procedure_agent_state.py create mode 100644 mephisto/abstractions/blueprints/remote_procedure/remote_procedure_blueprint.py create mode 100644 mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_builder.py create mode 100644 mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_runner.py create mode 100644 mephisto/abstractions/blueprints/static_html_task/README.md create mode 100644 mephisto/abstractions/blueprints/static_html_task/__init__.py create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/.babelrc create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/cypress.config.js create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/cypress/e2e/simple_static_task.cy.js create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/cypress/fixtures/bliss.png create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/cypress/support/commands.js create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/cypress/support/e2e.js rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/source/dev/app.jsx (57%) create mode 100644 mephisto/abstractions/blueprints/static_html_task/source/dev/hooks.js rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/source/dev/main.js (74%) rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/source/package.json (61%) rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/source/webpack.config.js (82%) rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/static_html_blueprint.py (68%) rename mephisto/{server/blueprints/static_task => abstractions/blueprints/static_html_task}/static_html_task_builder.py (91%) create mode 100644 mephisto/abstractions/blueprints/static_react_task/__init__.py create mode 100644 mephisto/abstractions/blueprints/static_react_task/static_react_blueprint.py rename mephisto/{server => abstractions}/blueprints/static_react_task/static_react_task_builder.py (79%) rename mephisto/{data_model => abstractions}/crowd_provider.py (88%) create mode 100644 mephisto/abstractions/database.py create mode 100644 mephisto/abstractions/databases/README.md create mode 100644 mephisto/abstractions/databases/__init__.py rename mephisto/{core => abstractions/databases}/local_database.py (73%) create mode 100644 mephisto/abstractions/databases/local_singleton_database.py rename mephisto/{ => abstractions}/providers/README.md (92%) create mode 100644 mephisto/abstractions/providers/__init__.py create mode 100644 mephisto/abstractions/providers/mock/__init__.py create mode 100644 mephisto/abstractions/providers/mock/mock_agent.py rename mephisto/{ => abstractions}/providers/mock/mock_datastore.py (97%) rename mephisto/{ => abstractions}/providers/mock/mock_provider.py (69%) rename mephisto/{ => abstractions}/providers/mock/mock_requester.py (76%) rename mephisto/{ => abstractions}/providers/mock/mock_unit.py (50%) rename mephisto/{ => abstractions}/providers/mock/mock_worker.py (54%) rename mephisto/{ => abstractions}/providers/mock/provider_type.py (77%) create mode 100644 mephisto/abstractions/providers/mock/wrap_crowd_source.js create mode 100644 mephisto/abstractions/providers/mturk/__init__.py create mode 100644 mephisto/abstractions/providers/mturk/mturk_agent.py rename mephisto/{ => abstractions}/providers/mturk/mturk_datastore.py (57%) rename mephisto/{ => abstractions}/providers/mturk/mturk_provider.py (62%) rename mephisto/{ => abstractions}/providers/mturk/mturk_requester.py (83%) create mode 100644 mephisto/abstractions/providers/mturk/mturk_unit.py rename mephisto/{ => abstractions}/providers/mturk/mturk_utils.py (60%) rename mephisto/{ => abstractions}/providers/mturk/mturk_worker.py (61%) rename mephisto/{ => abstractions}/providers/mturk/provider_type.py (77%) create mode 100644 mephisto/abstractions/providers/mturk/utils/__init__.py rename mephisto/{ => abstractions}/providers/mturk/utils/script_utils.py (54%) create mode 100644 mephisto/abstractions/providers/mturk/wrap_crowd_source.js create mode 100644 mephisto/abstractions/providers/mturk_sandbox/__init__.py rename mephisto/{ => abstractions}/providers/mturk_sandbox/provider_type.py (78%) rename mephisto/{ => abstractions}/providers/mturk_sandbox/sandbox_mturk_agent.py (57%) rename mephisto/{ => abstractions}/providers/mturk_sandbox/sandbox_mturk_provider.py (71%) rename mephisto/{ => abstractions}/providers/mturk_sandbox/sandbox_mturk_requester.py (65%) rename mephisto/{ => abstractions}/providers/mturk_sandbox/sandbox_mturk_unit.py (65%) rename mephisto/{ => abstractions}/providers/mturk_sandbox/sandbox_mturk_worker.py (72%) create mode 100644 mephisto/abstractions/providers/mturk_sandbox/wrap_crowd_source.js create mode 100644 mephisto/abstractions/providers/prolific/README.md create mode 100644 mephisto/abstractions/providers/prolific/__init__.py create mode 100644 mephisto/abstractions/providers/prolific/api/README.md create mode 100644 mephisto/abstractions/providers/prolific/api/__init__.py create mode 100644 mephisto/abstractions/providers/prolific/api/base_api_resource.py create mode 100644 mephisto/abstractions/providers/prolific/api/bonuses.py create mode 100644 mephisto/abstractions/providers/prolific/api/client.py create mode 100644 mephisto/abstractions/providers/prolific/api/constants.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/__init__.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/base_model.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/bonus_payments.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/message.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/participant.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/participant_group.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/project.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/study.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/submission.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/user.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/workspace.py create mode 100644 mephisto/abstractions/providers/prolific/api/data_models/workspace_balance.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/__init__.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/age_range_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/approval_numbers_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/approval_rate_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/base_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/custom_black_list_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/custom_white_list_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/joined_before_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirement_classes/participant_group_eligibility_requirement.py create mode 100644 mephisto/abstractions/providers/prolific/api/eligibility_requirements.py create mode 100644 mephisto/abstractions/providers/prolific/api/exceptions.py create mode 100644 mephisto/abstractions/providers/prolific/api/invitations.py create mode 100644 mephisto/abstractions/providers/prolific/api/messages.py create mode 100644 mephisto/abstractions/providers/prolific/api/participant_groups.py create mode 100644 mephisto/abstractions/providers/prolific/api/projects.py create mode 100644 mephisto/abstractions/providers/prolific/api/status.py create mode 100644 mephisto/abstractions/providers/prolific/api/studies.py create mode 100644 mephisto/abstractions/providers/prolific/api/submissions.py create mode 100644 mephisto/abstractions/providers/prolific/api/users.py create mode 100644 mephisto/abstractions/providers/prolific/api/workspaces.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_agent.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_datastore.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_datastore_tables.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_provider.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_requester.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_unit.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_utils.py create mode 100644 mephisto/abstractions/providers/prolific/prolific_worker.py create mode 100644 mephisto/abstractions/providers/prolific/provider_type.py rename mephisto/{core => abstractions/providers/prolific/scripts}/__init__.py (100%) create mode 100644 mephisto/abstractions/providers/prolific/scripts/get_all_collaborators.py create mode 100644 mephisto/abstractions/providers/prolific/scripts/initialize_project.py create mode 100644 mephisto/abstractions/providers/prolific/scripts/remove_collaborators.py create mode 100644 mephisto/abstractions/providers/prolific/wrap_crowd_source.js create mode 100644 mephisto/abstractions/test/README.md create mode 100644 mephisto/abstractions/test/__init__.py rename mephisto/{data_model => abstractions}/test/architect_tester.py (83%) rename mephisto/{data_model => abstractions}/test/blueprint_tester.py (76%) rename mephisto/{data_model => abstractions}/test/crowd_provider_tester.py (91%) rename mephisto/{data_model => abstractions}/test/data_model_database_tester.py (91%) delete mode 100644 mephisto/client/api.py create mode 100644 mephisto/client/cli_commands.py delete mode 100644 mephisto/client/review_server.py delete mode 100644 mephisto/client/server.py create mode 100644 mephisto/configs/__init__.py create mode 100644 mephisto/configs/logging.py delete mode 100644 mephisto/core/README.md delete mode 100644 mephisto/core/argparse_parser.py delete mode 100644 mephisto/core/data_browser.py delete mode 100644 mephisto/core/hydra_config.py delete mode 100644 mephisto/core/logger_core.py delete mode 100644 mephisto/core/operator.py delete mode 100644 mephisto/core/supervisor.py create mode 100644 mephisto/data_model/_db_backed_meta.py delete mode 100644 mephisto/data_model/blueprint.py create mode 100644 mephisto/data_model/constants/README.md rename mephisto/data_model/{constants.py => constants/__init__.py} (86%) rename mephisto/data_model/{ => constants}/assignment_state.py (87%) delete mode 100644 mephisto/data_model/database.py delete mode 100644 mephisto/data_model/task_config.py create mode 100644 mephisto/data_model/task_run.py delete mode 100644 mephisto/data_model/test/README.md create mode 100644 mephisto/data_model/unit.py create mode 100644 mephisto/generators/__init__.py create mode 100644 mephisto/generators/form_composer/README.md create mode 100644 mephisto/generators/form_composer/__init__.py create mode 100644 mephisto/generators/form_composer/config_validation/__init__.py create mode 100644 mephisto/generators/form_composer/config_validation/common_validation.py create mode 100644 mephisto/generators/form_composer/config_validation/config_validation_constants.py create mode 100644 mephisto/generators/form_composer/config_validation/form_config.py create mode 100644 mephisto/generators/form_composer/config_validation/separate_token_values_config.py create mode 100644 mephisto/generators/form_composer/config_validation/task_data_config.py create mode 100644 mephisto/generators/form_composer/config_validation/token_sets_values_config.py create mode 100644 mephisto/generators/form_composer/config_validation/utils.py create mode 100644 mephisto/generators/form_composer/constants.py create mode 100644 mephisto/generators/form_composer/hydra_configs/conf/default.yaml create mode 100644 mephisto/generators/form_composer/remote_procedures.py create mode 100644 mephisto/generators/form_composer/run.py create mode 100644 mephisto/generators/form_composer/webapp/.babelrc create mode 100644 mephisto/generators/form_composer/webapp/package.json create mode 100644 mephisto/generators/form_composer/webapp/src/app.jsx create mode 100644 mephisto/generators/form_composer/webapp/src/components/core_components.jsx create mode 100644 mephisto/generators/form_composer/webapp/src/css/style.css create mode 100644 mephisto/generators/form_composer/webapp/src/main.js create mode 100644 mephisto/generators/form_composer/webapp/src/review.js create mode 100644 mephisto/generators/form_composer/webapp/src/reviewapp.jsx create mode 100644 mephisto/generators/form_composer/webapp/src/static/index.html create mode 100644 mephisto/generators/form_composer/webapp/webpack.config.js create mode 100644 mephisto/generators/form_composer/webapp/webpack.config.review.js create mode 100644 mephisto/operations/README.md create mode 100644 mephisto/operations/__init__.py create mode 100644 mephisto/operations/client_io_handler.py rename mephisto/{core => operations}/config_handler.py (86%) create mode 100644 mephisto/operations/datatypes.py create mode 100644 mephisto/operations/hydra_config.py create mode 100644 mephisto/operations/operator.py rename mephisto/{core => operations}/registry.py (69%) rename mephisto/{core => operations}/task_launcher.py (54%) create mode 100644 mephisto/operations/worker_pool.py delete mode 100644 mephisto/providers/mock/mock_agent.py delete mode 100644 mephisto/providers/mock/wrap_crowd_source.js delete mode 100644 mephisto/providers/mturk/mturk_agent.py delete mode 100644 mephisto/providers/mturk/mturk_unit.py delete mode 100644 mephisto/providers/mturk/wrap_crowd_source.js delete mode 100644 mephisto/providers/mturk_sandbox/__init__.py delete mode 100644 mephisto/providers/mturk_sandbox/wrap_crowd_source.js create mode 100644 mephisto/review_app/README.md create mode 100644 mephisto/review_app/__init__.py create mode 100644 mephisto/review_app/client/README.md create mode 100644 mephisto/review_app/client/package-lock.json create mode 100644 mephisto/review_app/client/package.json create mode 100644 mephisto/review_app/client/public/index.html create mode 100644 mephisto/review_app/client/src/App/App.css create mode 100644 mephisto/review_app/client/src/App/App.tsx create mode 100644 mephisto/review_app/client/src/components/ClosableErrorAlert/ClosableErrorAlert.css create mode 100644 mephisto/review_app/client/src/components/ClosableErrorAlert/ClosableErrorAlert.tsx create mode 100644 mephisto/review_app/client/src/components/Errors/Errors.css create mode 100644 mephisto/review_app/client/src/components/Errors/Errors.tsx create mode 100644 mephisto/review_app/client/src/consts/http.ts create mode 100644 mephisto/review_app/client/src/consts/review.ts rename mephisto/{webapp/src/index.css => review_app/client/src/default.css} (81%) create mode 100644 mephisto/review_app/client/src/index.tsx create mode 100644 mephisto/review_app/client/src/pages/HomePage/HomePage.css create mode 100644 mephisto/review_app/client/src/pages/HomePage/HomePage.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/InReviewFileModal/InReviewFileModal.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/InReviewFileModal/InReviewFileModal.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/ModalForm/ModalForm.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/ReviewModal/ReviewModal.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/TaskHeader/TaskHeader.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/TaskHeader/TaskHeader.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/TaskPage.css create mode 100644 mephisto/review_app/client/src/pages/TaskPage/TaskPage.tsx create mode 100644 mephisto/review_app/client/src/pages/TaskPage/helpers.ts create mode 100644 mephisto/review_app/client/src/pages/TaskPage/modalData.tsx create mode 100644 mephisto/review_app/client/src/pages/TasksPage/TasksHeader/TasksHeader.css create mode 100644 mephisto/review_app/client/src/pages/TasksPage/TasksHeader/TasksHeader.tsx create mode 100644 mephisto/review_app/client/src/pages/TasksPage/TasksPage.css create mode 100644 mephisto/review_app/client/src/pages/TasksPage/TasksPage.tsx create mode 100644 mephisto/review_app/client/src/requests/generateURL.tsx create mode 100644 mephisto/review_app/client/src/requests/makeRequest.ts create mode 100644 mephisto/review_app/client/src/requests/mockResponses.ts create mode 100644 mephisto/review_app/client/src/requests/qualifications.ts create mode 100644 mephisto/review_app/client/src/requests/stats.ts create mode 100644 mephisto/review_app/client/src/requests/tasks.ts create mode 100644 mephisto/review_app/client/src/requests/units.ts create mode 100644 mephisto/review_app/client/src/requests/workers.ts create mode 100644 mephisto/review_app/client/src/static/images/logo.svg create mode 100644 mephisto/review_app/client/src/types/inReviewFileModal.d.ts create mode 100644 mephisto/review_app/client/src/types/qualifications.d.ts create mode 100644 mephisto/review_app/client/src/types/requests.d.ts create mode 100644 mephisto/review_app/client/src/types/reviewModal.d.ts create mode 100644 mephisto/review_app/client/src/types/static.d.ts create mode 100644 mephisto/review_app/client/src/types/tasks.d.ts create mode 100644 mephisto/review_app/client/src/types/units.d.ts create mode 100644 mephisto/review_app/client/src/types/workers.d.ts create mode 100644 mephisto/review_app/client/src/urls.ts create mode 100644 mephisto/review_app/client/tsconfig.json create mode 100644 mephisto/review_app/screenshots/submission_approve_dialog.png create mode 100644 mephisto/review_app/screenshots/submission_reject_dialog.png create mode 100644 mephisto/review_app/screenshots/submission_results_collapsed.png create mode 100644 mephisto/review_app/screenshots/submission_results_expanded.png create mode 100644 mephisto/review_app/screenshots/tasks_list.png create mode 100644 mephisto/review_app/server/README.md create mode 100644 mephisto/review_app/server/__init__.py rename mephisto/{data_model/test => review_app/server/api}/__init__.py (100%) create mode 100644 mephisto/review_app/server/api/views/__init__.py create mode 100644 mephisto/review_app/server/api/views/home_view.py create mode 100644 mephisto/review_app/server/api/views/qualification_workers_view.py create mode 100644 mephisto/review_app/server/api/views/qualifications_view.py create mode 100644 mephisto/review_app/server/api/views/qualify_worker_view.py create mode 100644 mephisto/review_app/server/api/views/stats_view.py create mode 100644 mephisto/review_app/server/api/views/task_export_results_json_view.py create mode 100644 mephisto/review_app/server/api/views/task_export_results_view.py create mode 100644 mephisto/review_app/server/api/views/task_view.py create mode 100644 mephisto/review_app/server/api/views/tasks_view.py create mode 100644 mephisto/review_app/server/api/views/tasks_worker_units_view.py create mode 100644 mephisto/review_app/server/api/views/unit_data_static_view.py create mode 100644 mephisto/review_app/server/api/views/unit_review_bundle_view.py create mode 100644 mephisto/review_app/server/api/views/unit_review_html_view.py create mode 100644 mephisto/review_app/server/api/views/units_approve_view.py create mode 100644 mephisto/review_app/server/api/views/units_details_view.py create mode 100644 mephisto/review_app/server/api/views/units_reject_view.py create mode 100644 mephisto/review_app/server/api/views/units_soft_reject_view.py create mode 100644 mephisto/review_app/server/api/views/units_view.py create mode 100644 mephisto/review_app/server/api/views/worker_block_view.py create mode 100644 mephisto/review_app/server/db_queries.py create mode 100644 mephisto/review_app/server/settings/__init__.py create mode 100644 mephisto/review_app/server/settings/base.py create mode 100644 mephisto/review_app/server/static/index.html create mode 100644 mephisto/review_app/server/urls.py create mode 100644 mephisto/scripts/README.md create mode 100644 mephisto/scripts/form_composer/__init__.py create mode 100644 mephisto/scripts/form_composer/rebuild_all_apps.py create mode 100644 mephisto/scripts/heroku/__init__.py create mode 100644 mephisto/scripts/heroku/initialize_heroku.py create mode 100644 mephisto/scripts/local_db/__init__.py create mode 100644 mephisto/scripts/local_db/clear_worker_onboarding.py create mode 100644 mephisto/scripts/local_db/gh_actions/auto_generate_architect.py create mode 100644 mephisto/scripts/local_db/gh_actions/auto_generate_blueprint.py create mode 100644 mephisto/scripts/local_db/gh_actions/auto_generate_provider.py create mode 100644 mephisto/scripts/local_db/gh_actions/auto_generate_requester.py create mode 100644 mephisto/scripts/local_db/gh_actions/expire_all_units.py create mode 100644 mephisto/scripts/local_db/load_data_to_mephisto_db.py create mode 100644 mephisto/scripts/local_db/remove_accepted_tip.py create mode 100644 mephisto/scripts/local_db/review_feedback_for_task.py create mode 100644 mephisto/scripts/local_db/review_tips_for_task.py create mode 100644 mephisto/scripts/metrics/README.md create mode 100755 mephisto/scripts/metrics/install_metrics.sh create mode 100644 mephisto/scripts/metrics/resources/default_mephisto_dash.json create mode 100644 mephisto/scripts/metrics/resources/grafana_defaults.ini create mode 100644 mephisto/scripts/metrics/resources/mephisto-prometheus-config.yml create mode 100644 mephisto/scripts/metrics/resources/mephisto_source.json create mode 100644 mephisto/scripts/metrics/shutdown_metrics.py create mode 100644 mephisto/scripts/metrics/view_metrics.py create mode 100644 mephisto/scripts/mturk/README.md create mode 100644 mephisto/scripts/mturk/identify_broken_units.py create mode 100644 mephisto/scripts/mturk/launch_makeup_hits.py create mode 100644 mephisto/scripts/mturk/print_outstanding_hit_status.py delete mode 100644 mephisto/server/__init__.py delete mode 100644 mephisto/server/architects/README.md delete mode 100644 mephisto/server/architects/__init__.py delete mode 100644 mephisto/server/architects/router/__init__.py delete mode 100644 mephisto/server/blueprints/__init__.py delete mode 100644 mephisto/server/blueprints/abstract/__init__.py delete mode 100644 mephisto/server/blueprints/abstract/static_task/__init__.py delete mode 100644 mephisto/server/blueprints/abstract/static_task/static_agent_state.py delete mode 100644 mephisto/server/blueprints/abstract/static_task/static_blueprint.py delete mode 100644 mephisto/server/blueprints/mock/__init__.py delete mode 100644 mephisto/server/blueprints/mock/mock_blueprint.py delete mode 100644 mephisto/server/blueprints/parlai_chat/__init__.py delete mode 100644 mephisto/server/blueprints/parlai_chat/parlai_chat_agent_state.py delete mode 100644 mephisto/server/blueprints/parlai_chat/parlai_chat_task_runner.py delete mode 100644 mephisto/server/blueprints/parlai_chat/webapp/README.md delete mode 100644 mephisto/server/blueprints/parlai_chat/webapp/yarn.lock delete mode 100644 mephisto/server/blueprints/static_react_task/__init__.py delete mode 100644 mephisto/server/blueprints/static_react_task/static_react_blueprint.py delete mode 100644 mephisto/server/blueprints/static_task/__init__.py delete mode 100644 mephisto/server/blueprints/static_task/source/yarn.lock delete mode 100644 mephisto/server/channels/__init__.py delete mode 100644 mephisto/server/channels/websocket_channel.py delete mode 100644 mephisto/tasks/README.md create mode 100644 mephisto/tools/README.md create mode 100644 mephisto/tools/__init__.py create mode 100644 mephisto/tools/data_browser.py create mode 100644 mephisto/tools/examine_utils.py create mode 100644 mephisto/tools/scripts.py create mode 100644 mephisto/utils/README.md rename mephisto/{core/utils.py => utils/dirs.py} (64%) create mode 100644 mephisto/utils/logger_core.py create mode 100644 mephisto/utils/metrics.py create mode 100644 mephisto/utils/qualifications.py create mode 100644 mephisto/utils/rich.py delete mode 100644 mephisto/utils/scripts.py rename mephisto/{data_model/test/utils.py => utils/testing.py} (61%) delete mode 100644 mephisto/webapp/.gitattributes delete mode 100644 mephisto/webapp/README.md delete mode 100644 mephisto/webapp/build/asset-manifest.json delete mode 100644 mephisto/webapp/build/index.html delete mode 100644 mephisto/webapp/build/precache-manifest.6a3f8be9c9b4eda91b48c53412c4ac04.js delete mode 100644 mephisto/webapp/build/service-worker.js delete mode 100644 mephisto/webapp/build/static/css/2.d6c513eb.chunk.css delete mode 100644 mephisto/webapp/build/static/css/2.d6c513eb.chunk.css.map delete mode 100644 mephisto/webapp/build/static/css/main.ec5c0f52.chunk.css delete mode 100644 mephisto/webapp/build/static/css/main.ec5c0f52.chunk.css.map delete mode 100644 mephisto/webapp/build/static/js/2.34d4026e.chunk.js delete mode 100644 mephisto/webapp/build/static/js/2.34d4026e.chunk.js.LICENSE delete mode 100644 mephisto/webapp/build/static/js/2.34d4026e.chunk.js.map delete mode 100644 mephisto/webapp/build/static/js/main.6e109e52.chunk.js delete mode 100644 mephisto/webapp/build/static/js/main.6e109e52.chunk.js.map delete mode 100644 mephisto/webapp/build/static/js/runtime-main.97447897.js delete mode 100644 mephisto/webapp/build/static/js/runtime-main.97447897.js.map delete mode 100644 mephisto/webapp/build/static/media/Oval.456d8835.svg delete mode 100644 mephisto/webapp/build/static/media/icons-16.782154b8.ttf delete mode 100644 mephisto/webapp/build/static/media/icons-16.7fb844a7.woff delete mode 100644 mephisto/webapp/build/static/media/icons-16.d4f6722b.eot delete mode 100644 mephisto/webapp/build/static/media/icons-20.90afdd23.eot delete mode 100644 mephisto/webapp/build/static/media/icons-20.c0e4874e.woff delete mode 100644 mephisto/webapp/build/static/media/icons-20.d1f0f6c1.ttf delete mode 100644 mephisto/webapp/package.json delete mode 100644 mephisto/webapp/public/index.html delete mode 100644 mephisto/webapp/src/App.css delete mode 100644 mephisto/webapp/src/App.tsx delete mode 100644 mephisto/webapp/src/Oval.svg delete mode 100644 mephisto/webapp/src/axios.ts delete mode 100644 mephisto/webapp/src/index.tsx delete mode 100644 mephisto/webapp/src/lib/Async.ts delete mode 100644 mephisto/webapp/src/lib/toaster.ts delete mode 100644 mephisto/webapp/src/logo.svg delete mode 100644 mephisto/webapp/src/mocks.ts delete mode 100644 mephisto/webapp/src/models.ts delete mode 100644 mephisto/webapp/src/service.ts delete mode 100644 mephisto/webapp/src/setupTests.ts delete mode 100644 mephisto/webapp/src/utils.ts delete mode 100644 mephisto/webapp/src/widgets/Base.tsx delete mode 100644 mephisto/webapp/src/widgets/GridReview.js delete mode 100644 mephisto/webapp/src/widgets/Launch.tsx delete mode 100644 mephisto/webapp/src/widgets/Prepare.tsx delete mode 100644 mephisto/webapp/src/widgets/Review.tsx delete mode 100644 mephisto/webapp/src/widgets/TaskRunSummary.tsx delete mode 100644 mephisto/webapp/src/widgets/components/ArchitectSelect.tsx delete mode 100644 mephisto/webapp/src/widgets/components/BlueprintSelect.tsx delete mode 100644 mephisto/webapp/src/widgets/components/FormField.tsx delete mode 100644 mephisto/webapp/src/widgets/components/OptionsForm.tsx delete mode 100644 mephisto/webapp/src/widgets/components/ProviderSelect.tsx delete mode 100644 mephisto/webapp/src/widgets/components/RequesterForm.tsx delete mode 100644 mephisto/webapp/src/widgets/components/RequesterSelect.tsx delete mode 100644 mephisto/webapp/tsconfig.json delete mode 100644 mephisto/webapp/yarn.lock create mode 100644 package.json create mode 100644 packages/README.md create mode 100644 packages/annotated/README.md create mode 100644 packages/annotated/__template__/.gitkeep create mode 100644 packages/annotated/__template__/package.json create mode 100644 packages/annotated/__template__/src/index.js create mode 100644 packages/annotated/bbox/package.json create mode 100644 packages/annotated/bbox/src/BBoxFrame.js create mode 100644 packages/annotated/bbox/src/MovableRect.js create mode 100644 packages/annotated/bbox/src/RRRR/README.md create mode 100644 packages/annotated/bbox/src/RRRR/Rect/index.js create mode 100644 packages/annotated/bbox/src/RRRR/index.js create mode 100644 packages/annotated/bbox/src/RRRR/react-rect.css create mode 100644 packages/annotated/bbox/src/RRRR/utils.js create mode 100644 packages/annotated/bbox/src/helpers.js create mode 100644 packages/annotated/bbox/src/index.js create mode 100644 packages/annotated/dev-scripts/.gitkeep create mode 100644 packages/annotated/dev-scripts/README.md create mode 100755 packages/annotated/dev-scripts/bin/dev-scripts.js create mode 100644 packages/annotated/dev-scripts/package.json create mode 100644 packages/annotated/dev-scripts/scripts/build.js create mode 100644 packages/annotated/dev-scripts/scripts/start.js create mode 100644 packages/annotated/dev-scripts/src/index.js create mode 100644 packages/annotated/dev-scripts/src/paths.js create mode 100644 packages/annotated/dev-scripts/src/webpackConfigure.js create mode 100644 packages/annotated/dev-scripts/utils/formatWebpackMessages.js create mode 100644 packages/annotated/dev-scripts/utils/printBuildError.js create mode 100644 packages/annotated/keypoint/.gitkeep create mode 100644 packages/annotated/keypoint/package.json create mode 100644 packages/annotated/keypoint/src/Keypoints.jsx create mode 100644 packages/annotated/keypoint/src/index.js create mode 100644 packages/annotated/keypoint/src/keypoints.css create mode 100644 packages/annotated/shell/README.md create mode 100644 packages/annotated/shell/package.json create mode 100644 packages/annotated/shell/src/AppShell.js create mode 100644 packages/annotated/shell/src/Layer.js create mode 100644 packages/annotated/shell/src/helpers.js create mode 100644 packages/annotated/shell/src/index.css create mode 100644 packages/annotated/shell/src/index.js create mode 100644 packages/annotated/shell/src/panels/ContentPanel.js create mode 100644 packages/annotated/shell/src/panels/DebugPanel.css create mode 100644 packages/annotated/shell/src/panels/DebugPanel.js create mode 100644 packages/annotated/shell/src/panels/LayersPanel.js create mode 100644 packages/annotated/shell/src/react-mosaic-component.css create mode 100644 packages/annotated/shell/src/utils.js create mode 100644 packages/annotated/shell/webpack.config.js create mode 100644 packages/annotated/video-player/.gitkeep create mode 100644 packages/annotated/video-player/package.json create mode 100644 packages/annotated/video-player/src/VideoPlayer.js create mode 100644 packages/annotated/video-player/src/helpers.js create mode 100644 packages/annotated/video-player/src/index.js create mode 100644 packages/annotation-toolkit/.babelrc create mode 100644 packages/annotation-toolkit/.eslintrc create mode 100644 packages/annotation-toolkit/.gitattributes create mode 100644 packages/annotation-toolkit/README.md create mode 100644 packages/annotation-toolkit/package.json create mode 100644 packages/annotation-toolkit/release-notes.md create mode 100644 packages/annotation-toolkit/src/AppShell.js create mode 100644 packages/annotation-toolkit/src/helpers.js create mode 100644 packages/annotation-toolkit/src/index.css create mode 100644 packages/annotation-toolkit/src/index.js create mode 100644 packages/annotation-toolkit/src/layers/BBoxFrame.js create mode 100644 packages/annotation-toolkit/src/layers/Layer.js create mode 100644 packages/annotation-toolkit/src/layers/MovableRect.js create mode 100644 packages/annotation-toolkit/src/layers/RRRR/README.md create mode 100644 packages/annotation-toolkit/src/layers/RRRR/Rect/index.js create mode 100644 packages/annotation-toolkit/src/layers/RRRR/index.js create mode 100644 packages/annotation-toolkit/src/layers/RRRR/react-rect.css create mode 100644 packages/annotation-toolkit/src/layers/RRRR/utils.js create mode 100644 packages/annotation-toolkit/src/layers/VideoPlayer.js create mode 100644 packages/annotation-toolkit/src/panels/ContentPanel.js create mode 100644 packages/annotation-toolkit/src/panels/DebugPanel.css create mode 100644 packages/annotation-toolkit/src/panels/DebugPanel.js create mode 100644 packages/annotation-toolkit/src/panels/LayersPanel.js create mode 100644 packages/annotation-toolkit/src/react-mosaic-component.css create mode 100644 packages/annotation-toolkit/src/utils.js create mode 100644 packages/annotation-toolkit/webpack.config.js create mode 100644 packages/annotation-toolkit/yarn.lock delete mode 100644 packages/bootstrap-chat/yarn.lock create mode 100644 packages/cra-template-mephisto-review/README.md create mode 100644 packages/cra-template-mephisto-review/package.json create mode 100644 packages/cra-template-mephisto-review/template.json create mode 100644 packages/cra-template-mephisto-review/template/README.md create mode 100644 packages/cra-template-mephisto-review/template/gitignore create mode 100644 packages/cra-template-mephisto-review/template/public/favicon.ico create mode 100644 packages/cra-template-mephisto-review/template/public/index.html create mode 100644 packages/cra-template-mephisto-review/template/public/logo192.png create mode 100644 packages/cra-template-mephisto-review/template/public/logo512.png rename {mephisto/webapp => packages/cra-template-mephisto-review/template}/public/robots.txt (85%) create mode 100644 packages/cra-template-mephisto-review/template/sample-data.csv create mode 100644 packages/cra-template-mephisto-review/template/sample-data.jsonl create mode 100644 packages/cra-template-mephisto-review/template/src/components/CollectionView.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/components/ErrorPane.js create mode 100644 packages/cra-template-mephisto-review/template/src/components/ItemView.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/components/Pagination/Pagination.css create mode 100644 packages/cra-template-mephisto-review/template/src/components/Pagination/Pagination.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/components/Pagination/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/config.js create mode 100644 packages/cra-template-mephisto-review/template/src/custom/.gitkeep create mode 100644 packages/cra-template-mephisto-review/template/src/index.css create mode 100644 packages/cra-template-mephisto-review/template/src/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/GridCollection/GridCollection.css create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/GridCollection/GridCollection.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/GridCollection/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/JSONItem/JSONItem.css create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/JSONItem/JSONItem.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/JSONItem/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/ListCollection/ListCollection.css create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/ListCollection/ListCollection.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/ListCollection/ListItem.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/ListCollection/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/WordCloudItem/WordCloud.css create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/WordCloudItem/WordCloud.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/WordCloudItem/WordCloudItem.jsx create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/WordCloudItem/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/renderers/index.js create mode 100644 packages/cra-template-mephisto-review/template/src/utils.js create mode 100644 packages/global-context-store/.babelrc create mode 100644 packages/global-context-store/.eslintrc create mode 100644 packages/global-context-store/.gitattributes create mode 100644 packages/global-context-store/README.md create mode 100644 packages/global-context-store/package.json create mode 100644 packages/global-context-store/src/Store.js create mode 100644 packages/global-context-store/src/index.js create mode 100644 packages/global-context-store/webpack.config.js create mode 100644 packages/mephisto-review-hook/src/legacy/index.js create mode 100644 packages/mephisto-task-multipart/.babelrc create mode 100644 packages/mephisto-task-multipart/.eslintrc create mode 100644 packages/mephisto-task-multipart/.gitattributes create mode 100644 packages/mephisto-task-multipart/README.md create mode 100644 packages/mephisto-task-multipart/package-lock.json create mode 100644 packages/mephisto-task-multipart/package.json create mode 100644 packages/mephisto-task-multipart/src/MephistoContext.js create mode 100644 packages/mephisto-task-multipart/src/RemoteTask.js create mode 100644 packages/mephisto-task-multipart/src/index.js create mode 100644 packages/mephisto-task-multipart/src/live.js create mode 100644 packages/mephisto-task-multipart/src/socket_handler.jsx create mode 100644 packages/mephisto-task-multipart/src/utils.js create mode 100644 packages/mephisto-task-multipart/webpack.config.js create mode 100644 packages/mephisto-task/src/RemoteTask.js delete mode 100644 packages/mephisto-task/yarn.lock create mode 100644 packages/mephisto-worker-addons/.babelrc create mode 100644 packages/mephisto-worker-addons/.npmignore create mode 100644 packages/mephisto-worker-addons/README.md create mode 100644 packages/mephisto-worker-addons/lib/index.js create mode 100644 packages/mephisto-worker-addons/lib/index.js.LICENSE.txt create mode 100644 packages/mephisto-worker-addons/package.json create mode 100644 packages/mephisto-worker-addons/src/Feedback/FeedbackTextArea.js create mode 100644 packages/mephisto-worker-addons/src/Feedback/Question.js create mode 100644 packages/mephisto-worker-addons/src/Feedback/SubmitButton.js create mode 100644 packages/mephisto-worker-addons/src/Feedback/index.css create mode 100644 packages/mephisto-worker-addons/src/Feedback/index.js create mode 100644 packages/mephisto-worker-addons/src/Functions.js create mode 100644 packages/mephisto-worker-addons/src/InfoIcon.js create mode 100644 packages/mephisto-worker-addons/src/Reducers.js create mode 100644 packages/mephisto-worker-addons/src/Tips/CloseIcon.js create mode 100644 packages/mephisto-worker-addons/src/Tips/InfoIcon.js create mode 100644 packages/mephisto-worker-addons/src/Tips/TaskTips.js create mode 100644 packages/mephisto-worker-addons/src/Tips/UserSubmission.js create mode 100644 packages/mephisto-worker-addons/src/Tips/index.css create mode 100644 packages/mephisto-worker-addons/src/Tips/index.js create mode 100644 packages/mephisto-worker-addons/src/index.jsx create mode 100644 packages/mephisto-worker-addons/webpack.config.js create mode 100644 packages/react-form-composer/.babelrc create mode 100644 packages/react-form-composer/.eslintrc create mode 100644 packages/react-form-composer/.gitattributes create mode 100644 packages/react-form-composer/README.md create mode 100644 packages/react-form-composer/package-lock.json create mode 100644 packages/react-form-composer/package.json create mode 100644 packages/react-form-composer/src/FormComposer/FormComposer.css create mode 100644 packages/react-form-composer/src/FormComposer/FormComposer.js create mode 100644 packages/react-form-composer/src/FormComposer/FormErrors.js create mode 100644 packages/react-form-composer/src/FormComposer/SectionErrors.js create mode 100644 packages/react-form-composer/src/FormComposer/SectionErrorsCountBadge.js create mode 100644 packages/react-form-composer/src/FormComposer/constants.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/CheckboxField.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/Errors.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/FileField.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/InputField.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/RadioField.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/SelectField.js create mode 100644 packages/react-form-composer/src/FormComposer/fields/TextareaField.js create mode 100644 packages/react-form-composer/src/FormComposer/utils.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/errorMessages.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/helpers.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validatorLookup.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validators/fieldIsRequired.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validators/fileExtensionSatisfied.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validators/maxLengthSatisfied.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validators/minLengthSatisfied.js create mode 100644 packages/react-form-composer/src/FormComposer/validation/validators/regexpSatisfied.js create mode 100644 packages/react-form-composer/src/index.js create mode 100644 packages/react-form-composer/webpack.config.js delete mode 100644 requirements.txt create mode 100644 scripts/check_npm_package_versions.py create mode 100644 scripts/sync_mephisto_task.py create mode 100755 scripts/sync_package_version.sh create mode 100644 scripts/update_copyright_headers.py delete mode 100644 setup.py create mode 100644 test/abstractions/__init__.py create mode 100644 test/abstractions/architects/__init__.py rename test/{server => abstractions}/architects/test_heroku_architect.py (79%) rename test/{server => abstractions}/architects/test_local_architect.py (69%) rename test/{server => abstractions}/architects/test_mock_architect.py (68%) create mode 100644 test/abstractions/blueprints/__init__.py create mode 100644 test/abstractions/blueprints/test_mixin_core.py rename test/{server => abstractions}/blueprints/test_mock_blueprint.py (60%) rename test/{core/test_database.py => abstractions/databases/test_local_database.py} (77%) create mode 100644 test/abstractions/databases/test_singleton_database.py create mode 100644 test/abstractions/providers/__init__.py create mode 100644 test/abstractions/providers/mturk/__init__.py create mode 100644 test/abstractions/providers/mturk/test_mturk.py create mode 100644 test/abstractions/providers/mturk_sandbox/__init__.py rename test/{ => abstractions}/providers/mturk_sandbox/test_mturk_provider.py (69%) create mode 100644 test/abstractions/providers/prolific/__init__.py create mode 100644 test/abstractions/providers/prolific/api/__init__.py create mode 100644 test/abstractions/providers/prolific/api/test_base_api_resourse.py create mode 100644 test/abstractions/providers/prolific/test_prolific_utils.py create mode 100644 test/core/test_live_runs.py delete mode 100644 test/core/test_supervisor.py create mode 100644 test/generators/__init__.py create mode 100644 test/generators/form_composer/__init__.py create mode 100644 test/generators/form_composer/config_validation/__init__.py create mode 100644 test/generators/form_composer/config_validation/test_common_validation.py create mode 100644 test/generators/form_composer/config_validation/test_form_config.py create mode 100644 test/generators/form_composer/config_validation/test_separate_token_values_config.py create mode 100644 test/generators/form_composer/config_validation/test_task_data_config.py create mode 100644 test/generators/form_composer/config_validation/test_token_sets_values_config.py create mode 100644 test/generators/form_composer/config_validation/test_utils.py create mode 100644 test/generators/form_composer/test_remote_procedures.py create mode 100644 test/integration/review/.gitignore create mode 100644 test/integration/review/babel.config.js create mode 100644 test/integration/review/jest.config.js create mode 100644 test/integration/review/package.json create mode 100644 test/integration/review/test_data/CSV/multi_page_data.csv create mode 100644 test/integration/review/test_data/CSV/single_page_data.csv create mode 100644 test/integration/review/test_data/JSON/multi_page_data.jsonl create mode 100644 test/integration/review/test_data/JSON/single_page_data.jsonl create mode 100644 test/integration/review/tests/all_item_view_ui.test.js create mode 100644 test/integration/review/tests/item_view_ui.test.js create mode 100644 test/integration/review/tests/review_results.test.js create mode 100644 test/integration/review/tests/test_constants.js create mode 100644 test/integration/review/tests/test_types.js create mode 100644 test/integration/review/utilities/file_management.js create mode 100644 test/integration/review/utilities/server.js create mode 100644 test/integration/review/utilities/test_tools.js delete mode 100644 test/providers/__init__.py delete mode 100644 test/providers/mturk/__init__.py delete mode 100644 test/providers/mturk/test_mturk.py delete mode 100644 test/providers/mturk_sandbox/__init__.py create mode 100644 test/review_app/__init__.py create mode 100644 test/review_app/server/__init__.py create mode 100644 test/review_app/server/api/__init__.py create mode 100644 test/review_app/server/api/base_test_api_view_case.py create mode 100644 test/review_app/server/api/test_grant_workers_view.py create mode 100644 test/review_app/server/api/test_home_view.py create mode 100644 test/review_app/server/api/test_qualification_workers_view.py create mode 100644 test/review_app/server/api/test_qualifications_view.py create mode 100644 test/review_app/server/api/test_revoke_workers_view.py create mode 100644 test/review_app/server/api/test_stats_view.py create mode 100644 test/review_app/server/api/test_task_export_results_json_view.py create mode 100644 test/review_app/server/api/test_task_export_results_view.py create mode 100644 test/review_app/server/api/test_task_unit_ids_view.py create mode 100644 test/review_app/server/api/test_task_view.py create mode 100644 test/review_app/server/api/test_tasks_view.py create mode 100644 test/review_app/server/api/test_unit_bundle_js_view.py create mode 100644 test/review_app/server/api/test_unit_data_static_view.py create mode 100644 test/review_app/server/api/test_unit_html_view.py create mode 100644 test/review_app/server/api/test_units_approve_view.py create mode 100644 test/review_app/server/api/test_units_details_view.py create mode 100644 test/review_app/server/api/test_units_reject_view.py create mode 100644 test/review_app/server/api/test_units_soft_reject_view.py create mode 100644 test/review_app/server/api/test_units_view.py create mode 100644 test/review_app/server/api/test_worker_block_view.py delete mode 100644 test/server/__init__.py delete mode 100644 test/server/architects/__init__.py delete mode 100644 test/server/blueprints/__init__.py create mode 100644 test/test_data_model.py create mode 100644 test/tools/__init__.py create mode 100644 test/tools/test_data_brower.py create mode 100644 test/utils/__init__.py create mode 100644 test/utils/prolific_api/__init__.py create mode 100644 test/utils/prolific_api/test_data_models.py create mode 100644 yarn-patches/react-dev-utils.patch create mode 100644 yarn-patches/react-refresh-webpack-plugin.patch create mode 100644 yarn.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..0460f4675 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +**/node_modules +**/.git +**/.mypy_cache +**/build/* +data/* +**/*.mp4 + +mephisto/scripts/metrics/* +!mephisto/scripts/metrics/resources +!mephisto/scripts/metrics/install_*.sh +!mephisto/scripts/metrics/README.md +!mephisto/scripts/metrics/view_metrics.py +!mephisto/scripts/metrics/shutdown_metrics.py + diff --git a/.git-hooks/README.md b/.git-hooks/README.md new file mode 100644 index 000000000..cffee2a98 --- /dev/null +++ b/.git-hooks/README.md @@ -0,0 +1,11 @@ +### Git Hooks + +Please set up your local pre-commit git hook as below + +```shell +git config --local core.hooksPath .git-hooks +``` + +Enabled hooks: + +- AWS credentials protection from accidental commit diff --git a/.git-hooks/pre-commit b/.git-hooks/pre-commit new file mode 100755 index 000000000..d8483c025 --- /dev/null +++ b/.git-hooks/pre-commit @@ -0,0 +1,55 @@ +#!/bin/bash + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + EMPTY_TREE=$(git hash-object -t tree /dev/null) + against=$EMPTY_TREE +fi + +# Redirect output to stderr. +exec 1>&2 + +# Check changed files for an AWS keys +FILES=$(git diff --cached --name-only $against) +echo $FILES + +local aws="(AWS|aws|Aws)?_?" quote="(\"|')" connect="\s*(:|=>|=)\s*" +local opt_quote="${quote}?" + +if [ -n "$FILES" ]; then + KEY_ID=$(grep -E --line-number '(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}' $FILES) + KEY=$(grep -E --line-number "${opt_quote}${aws}(SECRET|secret|Secret)?_?(ACCESS|access|Access)?_?(KEY|key|Key)${opt_quote}${connect}${opt_quote}[A-Za-z0-9/\+=]{40}${opt_quote}" $FILES) + + echo $KEY_ID + echo $KEY + + if [ -n "$KEY_ID" ] || [ -n "$KEY" ]; then + exec < /dev/tty # Capture input + echo "=========== Possible AWS Access Key IDs ===========" + echo "${KEY_ID}" + echo "" + + echo "=========== Possible AWS Secret Access Keys ===========" + echo "${KEY}" + echo "" + + while true; do + read -p "[AWS Key Check] Possible AWS keys found. Commit files anyway? (y/N) " yn + if [ "$yn" = "" ]; then + yn='N' + fi + case $yn in + [Yy] ) exit 0;; + [Nn] ) exit 1;; + * ) echo "Please answer y or n for yes or no.";; + esac + done + exec <&- # Release input + fi +fi + +# Normal exit +exit 0 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..0a7130be0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +package-lock.json binary +yarn.lock binary \ No newline at end of file diff --git a/.github/workflows/annotated-pkgs.yml b/.github/workflows/annotated-pkgs.yml new file mode 100644 index 000000000..abd8fea01 --- /dev/null +++ b/.github/workflows/annotated-pkgs.yml @@ -0,0 +1,55 @@ +# This is a basic workflow to help you get started with Actions + +name: Test Yarn Workspaces + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the main branch + push: + branches: [main] + pull_request: + branches: [main] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + yarn-monorepo-install: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - uses: actions/setup-node@v3 + env: + FORCE_COLOR: 0 + with: + node-version: 16 + + - name: Install yarn 3 + run: npm i -g yarn + + - name: Install package dependencies + run: yarn install + + - name: Test that docusarus compiles + run: | + yarn workspaces list + yarn docs:build + + - name: Build packages + run: yarn workspaces foreach -ptA run build + + - name: Build packages with legacy setup + run: + cd packages/global-context-store && npm install && npm run build + + # Disabling storybook / components for now. Will re-evaluate + # and move to separate repo if needed - Jan 26, 2023 + # + # - name: Test that storybook compiles + # run: yarn workspace sb build-storybook diff --git a/.github/workflows/cypress-end-to-end-tests.yml b/.github/workflows/cypress-end-to-end-tests.yml new file mode 100644 index 000000000..4888e52ec --- /dev/null +++ b/.github/workflows/cypress-end-to-end-tests.yml @@ -0,0 +1,435 @@ +name: cypress-end-to-end-tests +on: + pull_request: + paths-ignore: + - "**.md" + push: + branches: [main] + paths-ignore: + - "**.md" +env: + HYDRA_FULL_ERROR: 1 +jobs: + # This job is made to setup path filtering, learn more about it here: https://github.com/facebookresearch/Mephisto/pull/857 + changes: + runs-on: ubuntu-latest + # Set job outputs to values from filters step below + outputs: + simple_static_task: ${{ steps.filter.outputs.simple_static_task }} + static_react_task: ${{ steps.filter.outputs.static_react_task }} + static_react_task_with_tips: ${{ steps.filter.outputs.static_react_task_with_tips }} + mnist: ${{ steps.filter.outputs.mnist }} + template: ${{ steps.filter.outputs.template }} + toxicity_detection: ${{ steps.filter.outputs.toxicity_detection }} + abstractions: ${{ steps.filter.outputs.abstractions }} + data_model: ${{ steps.filter.outputs.data_model }} + operations: ${{ steps.filter.outputs.operations }} + tools: ${{ steps.filter.outputs.tools }} + mephisto-task: ${{ steps.filter.outputs.mephisto-task }} + mephisto-worker-addons: ${{ steps.filter.outputs.mephisto-worker-addons }} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + # Workaround to avoid Post Use step failures. See: https://github.com/actions/setup-node/issues/317 + - run: mkdir -p /home/runner/work/Mephisto/Mephisto/.yarn/cache + continue-on-error: true + - uses: actions/setup-node@v3 + with: + cache: "yarn" + node-version: 16 + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + simple_static_task: + - 'examples/simple_static_task/**' + static_react_task: + - 'examples/static_react_task/**' + static_react_task_with_tips: + - 'examples/static_react_task_with_tips/**' + mnist: + - 'examples/remote_procedure/mnist/**' + template: + - 'examples/remote_procedure/template/**' + toxicity_detection: + - 'examples/remote_procedure/toxicity_detection/**' + abstractions: + - 'mephisto/abstractions/**' + data_model: + - 'mephisto/data_model/**' + operations: + - 'mephisto/operations/**' + tools: + - 'mephisto/tools/**' + mephisto-task: + - 'packages/mephisto-task/src/**' + mephisto-worker-addons: + - 'packages/mephisto-worker-addons/src/**' + + # Learn more about this test here: https://github.com/facebookresearch/Mephisto/pull/881 + simple_static_task: + needs: changes + if: ${{ (needs.changes.outputs.simple_static_task == 'true') || (needs.changes.outputs.mephisto-task == 'true') || (needs.changes.outputs.abstractions == 'true') || (needs.changes.outputs.data_model == 'true') || (needs.changes.outputs.operations == 'true') || (needs.changes.outputs.tools == 'true')}} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: pip install -e . + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: ⌛️ Running cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./mephisto/abstractions/blueprints/static_html_task/source + config-file: ./cypress.config.js + start: python ./examples/simple_static_task/run_task.py + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + # Learn more about this test here: https://github.com/facebookresearch/Mephisto/pull/795 + static-react-task: + needs: changes + if: ${{ (needs.changes.outputs.static_react_task == 'true') || (needs.changes.outputs.mephisto-task == 'true') || (needs.changes.outputs.abstractions == 'true') || (needs.changes.outputs.data_model == 'true') || (needs.changes.outputs.operations == 'true') || (needs.changes.outputs.tools == 'true')}} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: pip install -e . + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: ⌛️ Running cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./examples/static_react_task/webapp + config-file: ./cypress.config.js + start: python examples/static_react_task/run_task.py mephisto.task.post_install_script=link_mephisto_task.sh + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + # Learn more about the remote_procedure_tests here: https://github.com/facebookresearch/Mephisto/pull/800 + remote_procedure_template: + needs: changes + if: ${{ (needs.changes.outputs.template == 'true') || (needs.changes.outputs.mephisto-task == 'true') || (needs.changes.outputs.abstractions == 'true') || (needs.changes.outputs.data_model == 'true') || (needs.changes.outputs.operations == 'true') || (needs.changes.outputs.tools == 'true')}} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: pip install -e . + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: ⌛️ Running cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./examples/remote_procedure/template/webapp + config-file: ./cypress.config.js + start: python examples/remote_procedure/template/run_task.py mephisto.task.post_install_script=link_mephisto_task.sh + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + remote_procedure_mnist: + needs: changes + if: ${{ (needs.changes.outputs.mnist == 'true') || (needs.changes.outputs.mephisto-task == 'true') }} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: | + pip install -e . + pip install torch pillow numpy + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: ⌛️ Running cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./examples/remote_procedure/mnist/webapp + config-file: ./cypress.config.js + start: python examples/remote_procedure/mnist/run_task.py mephisto.task.post_install_script=link_mephisto_task.sh + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + remote_procedure_toxicity_detection: + needs: changes + if: ${{ (needs.changes.outputs.toxicity_detection == 'true') || (needs.changes.outputs.mephisto-task == 'true') }} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: | + pip install -e . + pip install detoxify + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: ⌛️ Running cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./examples/remote_procedure/toxicity_detection/webapp + config-file: ./cypress.config.js + start: python examples/remote_procedure/toxicity_detection/run_task.py mephisto.task.post_install_script=link_mephisto_task.sh + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + # Learn more about this test here: https://github.com/facebookresearch/Mephisto/pull/833 + static_react_task_with_tips: + needs: changes + if: ${{ (needs.changes.outputs.static_react_task_with_tips == 'true') || (needs.changes.outputs.mephisto-task == 'true') || (needs.changes.outputs.mephisto-worker-addons == 'true') || (needs.changes.outputs.abstractions == 'true') || (needs.changes.outputs.data_model == 'true') || (needs.changes.outputs.operations == 'true') || (needs.changes.outputs.tools == 'true')}} + runs-on: ubuntu-latest + steps: + - name: 🔀 Checking out repo + uses: actions/checkout@v2 + - name: 🐍 Installing python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🪨 Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.16.0 + + - name: 🤖 Install Mephisto + run: | + pip install -e . + yes | pip uninstall detoxify + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📦 Setting up mephisto-task package + run: | + cd packages/mephisto-task + yarn install + yarn build + npm link + + - name: 📦 Setting up mephisto-worker-addons package + run: | + cd packages/mephisto-worker-addons + yarn install + yarn build + npm link + + - name: ⌛️ Running pre-submission cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + browser: chrome + project: ./examples/static_react_task_with_tips/webapp + config-file: ./cypress.config.js + spec: ./examples/static_react_task_with_tips/webapp/cypress/e2e/pre_submission_tests/* + start: python examples/static_react_task_with_tips/run_task.py mephisto.task.force_rebuild=true mephisto.task.post_install_script=link_packages.sh + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + headless: true + + - name: 🔪 Killing the web server + run: | + lsof -nPi :3000 + lsof -i -P -n | grep LISTEN | grep python | awk '{print $2}' + kill -INT $(lsof -i -P -n | grep LISTEN | grep python | awk '{print $2}') + echo "killed 1" + sleep 0.5 + kill -INT $(lsof -i -P -n | grep LISTEN | grep python | awk '{print $2}') + echo "killed 2" + lsof -i -P -n | grep LISTEN | grep node | awk '{print $2}' + kill -INT $(lsof -i -P -n | grep LISTEN | grep node | awk '{print $2}') + sleep 30 + echo "30 seconds passed" + + - name: 🥛 Expiring units + run: | + cd mephisto/scripts/local_db/gh_actions + python expire_all_units.py + + - name: 📚 Accepting the first submitted tip, accepting the second submitted tip, and rejecting the last submitted tip + run: | + cd mephisto/scripts/local_db + python review_tips_for_task.py << EOF + react-static-task-with-tips + a + 5 + The tip is very informative + a + 0 + r + EOF + + - name: 🔥 Removing the second accepted tip + run: | + cd mephisto/scripts/local_db + python remove_accepted_tip.py << EOF + react-static-task-with-tips + n + y + EOF + + - name: 📖 Reviewing the accepted feedback + run: | + cd mephisto/scripts/local_db + python review_feedback_for_task.py << EOF + react-static-task-with-tips + 0 + n + u + y + y + EOF + python review_feedback_for_task.py << EOF + react-static-task-with-tips + 1 + n + u + y + n + EOF + + - name: ⌛️ Running post-submission cypress tests + uses: cypress-io/github-action@v3.1.0 + with: + build: npm i -D cypress@11 + install: false + project: ./examples/static_react_task_with_tips/webapp + config-file: cypress.config.js + spec: ./examples/static_react_task_with_tips/webapp/cypress/e2e/post_submission_tests/* + start: python examples/static_react_task_with_tips/run_task.py mephisto.task.post_install_script=link_packages.sh mephisto.task.force_rebuild=true + wait-on: "http://localhost:3000/?worker_id=x&assignment_id=1" + browser: chrome + headless: true diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 000000000..f2d265dde --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,69 @@ +name: Deploy docs to GitHub Pages + +on: + push: + branches: + - main + paths: + - "docs/web/**" + +jobs: + deploy: + name: Deploy docs to GitHub Pages + runs-on: ubuntu-latest + defaults: + run: + working-directory: docs/web + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v3 + env: + FORCE_COLOR: 0 + with: + node-version: 16.16.0 + cache: yarn + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: 🤖 Install Mephisto + run: | + cd ../../ + curl -fsS -o get-poetry.py https://install.python-poetry.org + python3 get-poetry.py -y + echo "$HOME/.poetry/bin" >> $GITHUB_PATH + poetry config virtualenvs.create false + poetry install + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📝 Auto Generate Blueprint Docs + run: | + cd ../../mephisto/scripts/local_db/gh_actions + python auto_generate_blueprint.py + python auto_generate_architect.py + python auto_generate_requester.py + python auto_generate_provider.py + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Build website + run: yarn build + + # Popular action to deploy to GitHub Pages: + # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + # Build output to publish to the `gh-pages` branch: + publish_dir: ./docs/web/build + # The following lines assign commit authorship to the official + # GH-Actions bot for deploys to `gh-pages` branch: + # https://github.com/actions/checkout/issues/13#issuecomment-724415212 + # The GH actions bot is used by default if you didn't specify the two fields. + # You can swap them out with your own user credentials. + user_name: github-actions[bot] + user_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/.github/workflows/docker-testing-matrix.yml b/.github/workflows/docker-testing-matrix.yml new file mode 100644 index 000000000..4661aba3c --- /dev/null +++ b/.github/workflows/docker-testing-matrix.yml @@ -0,0 +1,47 @@ +# This is a basic workflow to help you get started with Actions + +name: Docker Testing Matrix + +# Controls when the action will run. +on: + schedule: + # Run once a week, in this case on Sundays + - cron: "0 0 * * 0" + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + check: + # The type of runner that the job will run on + runs-on: ubuntu-latest + strategy: + fail-fast: false # Run all combos, don't skip on failures + matrix: + # from: https://hub.docker.com/r/nikolaik/python-nodejs + python-version: ["3.9", "3.8", "3.9", "3.10", "3.11", "latest"] + nodejs-version: ["15", "14", "12", "10"] + image-suffix: ["", "-slim"] + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Build docker image - python${{ matrix.python-version }}-nodejs${{ matrix.nodejs-version }}${{ matrix.image-suffix }} + run: docker build -t mephisto --build-arg BASE_TAG=python${{ matrix.python-version }}-nodejs${{ matrix.nodejs-version }}${{ matrix.image-suffix }} . + + - name: Print out version numbers + run: docker run mephisto bash -c 'python --version && node --version && npm --version' + + # Runs a set of commands using the runners shell + - name: Check that Mephisto was installed correctly + run: | + docker run mephisto + + - name: Run npm install for static_html_task + run: | + docker run mephisto bash -c 'cd /mephisto/mephisto/abstractions/blueprints/static_html_task/source && npm install' diff --git a/.github/workflows/npm-check.yml b/.github/workflows/npm-check.yml new file mode 100644 index 000000000..a42c602b7 --- /dev/null +++ b/.github/workflows/npm-check.yml @@ -0,0 +1,18 @@ +name: npm-check + +on: + pull_request: + branches: [main] + +jobs: + mephisto-task-latest: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install Mephisto + run: pip install -e . + - name: Run version sync script + run: python scripts/check_npm_package_versions.py diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 37e7fa411..e4c09f3d9 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -3,7 +3,7 @@ name: pre-commit on: pull_request: push: - branches: [master] + branches: [main] jobs: code-style: @@ -11,4 +11,6 @@ jobs: steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 + with: + python-version: 3.8 - uses: pre-commit/action@v2.0.0 diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 6ece23606..a7230291e 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.7, 3.8] + python-version: [3.8] steps: - uses: actions/checkout@v2 @@ -22,12 +22,12 @@ jobs: run: | python -m pip install --upgrade pip pip install pytest pytest-cov - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install -e . - name: Test with pytest run: | - python -m pytest -v -m "not req_creds" --cov --cov-report=xml + python -m pytest -v -m "not req_creds and not prolific" --cov --cov-report=xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 with: file: ./coverage.xml fail_ci_if_error: true diff --git a/.github/workflows/test-deploy-docs.yml b/.github/workflows/test-deploy-docs.yml new file mode 100644 index 000000000..b93d5a0e8 --- /dev/null +++ b/.github/workflows/test-deploy-docs.yml @@ -0,0 +1,55 @@ +name: Test docs deployment + +on: + pull_request: + paths: + - "docs/web/**" + branches: + - main + # Review gh actions docs if you want to further define triggers, paths, etc + # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on + +jobs: + test-deploy: + name: Test docs deployment + runs-on: ubuntu-latest + defaults: + run: + working-directory: docs/web + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 16.16.0 + cache: yarn + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: 🤖 Install Mephisto + run: | + cd ../../ + curl -fsS -o get-poetry.py https://install.python-poetry.org + python3 get-poetry.py -y + echo "$HOME/.poetry/bin" >> $GITHUB_PATH + poetry config virtualenvs.create false + poetry install + + - name: 🖋 Create data directory + run: mkdir -p ~/mephisto/data + + - name: 📂 Set the data directory + run: mephisto config core.main_data_directory ~/mephisto/data + + - name: 📝 Auto Generate Blueprint Docs + run: | + cd ../../mephisto/scripts/local_db/gh_actions + python auto_generate_blueprint.py + python auto_generate_architect.py + python auto_generate_requester.py + python auto_generate_provider.py + + - name: Install dependencies + run: yarn install --frozen-lockfile + - name: Test build website + run: yarn build diff --git a/.github/workflows/version-sync.yml b/.github/workflows/version-sync.yml new file mode 100644 index 000000000..848cd89e5 --- /dev/null +++ b/.github/workflows/version-sync.yml @@ -0,0 +1,19 @@ +name: version-sync + +on: + pull_request: + push: + branches: [main] + +jobs: + mephisto-task-version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install Mephisto + run: pip install -e . + - name: Run version sync script + run: python scripts/sync_mephisto_task.py check diff --git a/.gitignore b/.gitignore index 585bb51f4..526622027 100644 --- a/.gitignore +++ b/.gitignore @@ -2,19 +2,66 @@ mephisto/tasks/* **/.mypy_cache/* **/__pycache__/* data/* +dist/* mephisto.egg-info/* .DS_Store tmp/* **/node_modules/* mephisto/server/**/package-lock.json +mephisto/abstractions/**/package-lock.json mephisto/server/blueprints/**/build/* -examples/**/build/* + **/*.log **/build/* **/_generated/* **/outputs/* +mephisto/scripts/metrics/* +!mephisto/scripts/metrics/resources +!mephisto/scripts/metrics/install_*.sh +!mephisto/scripts/metrics/README.md +!mephisto/scripts/metrics/view_metrics.py +!mephisto/scripts/metrics/shutdown_metrics.py .coverage +# Examples +examples/simple_static_task/hydra_configs/conf/* +!examples/simple_static_task/hydra_configs/conf/example*.yaml +!examples/simple_static_task/hydra_configs/conf/prolific_example.yaml +!examples/simple_static_task/hydra_configs/conf/onboarding_example*.yaml +examples/**/build/* +examples/form_composer_demo/preview/*_preview.html + +# Form Composer +mephisto/generators/form_composer/data/*.json +mephisto/generators/form_composer/webapp/package-lock.json +mephisto/generators/form_composer/hydra_configs/conf/*.yaml +!mephisto/generators/form_composer/hydra_configs/conf/default.yaml # PyCharm .idea + +# VSCode +.vscode + +# https://next.yarnpkg.com/getting-started/qa#which-files-should-be-gitignored +.yarn/* +**/.yarn/* +!.yarn/patches +!.yarn/releases +!.yarn/plugins +!.yarn/sdks +!.yarn/versions +.pnp.* + +docs/storybook/storybook-static/* + +# local deploy +hydra_configs/profile/*.yaml +!hydra_configs/profile/local_dev.yaml +aws_credentials +docker-compose.local.* +env.local +my-review-interface +docker/entrypoints/*.sh +!docker/entrypoints/server.mturk.sh +!docker/entrypoints/server.prolific.sh diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..80bcbed90 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +legacy-peer-deps = true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 72b908304..4bd97843e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,22 +1,25 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.4.0 + rev: v4.1.0 hooks: - id: trailing-whitespace exclude: | (?x)( ^.*build/| - ^.*md + ^.*md| + .yarn/*| + yarn-patches ) - id: check-yaml - id: check-added-large-files + args: ["--maxkb=10000"] - repo: https://github.com/psf/black - rev: stable + rev: 22.3.0 hooks: - id: black - language_version: python3.6 - - repo: https://github.com/prettier/prettier - rev: "2.1.2" + language_version: python3 + - repo: https://github.com/prettier/pre-commit + rev: "57f39166b5a5a504d6808b87ab98d41ebf095b46" hooks: - id: prettier files: "\\.(\ diff --git a/.prettierignore b/.prettierignore index ec5ce1364..04956eb52 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,5 @@ *.md **/build/* +docs/web/static/python_api/* +wrap_crowd_source.js +packages/mephisto-worker-addons/lib diff --git a/.vscode/settings.json b/.vscode/settings.json index 81ac79c2d..35b21cec9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,7 @@ { - "typescript.tsdk": "mephisto/mephisto/webapp/node_modules/typescript/lib" + "typescript.tsdk": "mephisto/mephisto/webapp/node_modules/typescript/lib", + "python.linting.pylintEnabled": false, + "python.linting.mypyEnabled": false, + "python.linting.enabled": true, + "python.linting.flake8Enabled": true } diff --git a/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs new file mode 100644 index 000000000..dc50bf930 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs @@ -0,0 +1,546 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-interactive-tools", +factory: function (require) { +var plugin=(()=>{var $P=Object.create,Py=Object.defineProperty,eI=Object.defineProperties,tI=Object.getOwnPropertyDescriptor,nI=Object.getOwnPropertyDescriptors,rI=Object.getOwnPropertyNames,L_=Object.getOwnPropertySymbols,iI=Object.getPrototypeOf,rD=Object.prototype.hasOwnProperty,sS=Object.prototype.propertyIsEnumerable;var aS=(i,o,a)=>o in i?Py(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a,qt=(i,o)=>{for(var a in o||(o={}))rD.call(o,a)&&aS(i,a,o[a]);if(L_)for(var a of L_(o))sS.call(o,a)&&aS(i,a,o[a]);return i},Zr=(i,o)=>eI(i,nI(o)),uI=i=>Py(i,"__esModule",{value:!0});var wl=(i,o)=>{var a={};for(var c in i)rD.call(i,c)&&o.indexOf(c)<0&&(a[c]=i[c]);if(i!=null&&L_)for(var c of L_(i))o.indexOf(c)<0&&sS.call(i,c)&&(a[c]=i[c]);return a};var Ke=(i,o)=>()=>(o||i((o={exports:{}}).exports,o),o.exports),oI=(i,o)=>{for(var a in o)Py(i,a,{get:o[a],enumerable:!0})},lI=(i,o,a)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of rI(o))!rD.call(i,c)&&c!=="default"&&Py(i,c,{get:()=>o[c],enumerable:!(a=tI(o,c))||a.enumerable});return i},ou=i=>lI(uI(Py(i!=null?$P(iI(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var Iy=Ke((mW,fS)=>{"use strict";var cS=Object.getOwnPropertySymbols,sI=Object.prototype.hasOwnProperty,aI=Object.prototype.propertyIsEnumerable;function fI(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function cI(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var o={},a=0;a<10;a++)o["_"+String.fromCharCode(a)]=a;var c=Object.getOwnPropertyNames(o).map(function(t){return o[t]});if(c.join("")!=="0123456789")return!1;var _={};return"abcdefghijklmnopqrst".split("").forEach(function(t){_[t]=t}),Object.keys(Object.assign({},_)).join("")==="abcdefghijklmnopqrst"}catch(t){return!1}}fS.exports=cI()?Object.assign:function(i,o){for(var a,c=fI(i),_,t=1;t{"use strict";var iD=Iy(),$f=typeof Symbol=="function"&&Symbol.for,by=$f?Symbol.for("react.element"):60103,dI=$f?Symbol.for("react.portal"):60106,pI=$f?Symbol.for("react.fragment"):60107,hI=$f?Symbol.for("react.strict_mode"):60108,vI=$f?Symbol.for("react.profiler"):60114,mI=$f?Symbol.for("react.provider"):60109,yI=$f?Symbol.for("react.context"):60110,gI=$f?Symbol.for("react.forward_ref"):60112,_I=$f?Symbol.for("react.suspense"):60113,EI=$f?Symbol.for("react.memo"):60115,DI=$f?Symbol.for("react.lazy"):60116,dS=typeof Symbol=="function"&&Symbol.iterator;function By(i){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+i,a=1;aN_.length&&N_.push(i)}function aD(i,o,a,c){var _=typeof i;(_==="undefined"||_==="boolean")&&(i=null);var t=!1;if(i===null)t=!0;else switch(_){case"string":case"number":t=!0;break;case"object":switch(i.$$typeof){case by:case dI:t=!0}}if(t)return a(c,i,o===""?"."+fD(i,0):o),1;if(t=0,o=o===""?".":o+":",Array.isArray(i))for(var M=0;M{"use strict";var RI="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";TS.exports=RI});var hD=Ke((_W,xS)=>{"use strict";var pD=function(){};process.env.NODE_ENV!=="production"&&(RS=CS(),F_={},AS=Function.call.bind(Object.prototype.hasOwnProperty),pD=function(i){var o="Warning: "+i;typeof console!="undefined"&&console.error(o);try{throw new Error(o)}catch(a){}});var RS,F_,AS;function OS(i,o,a,c,_){if(process.env.NODE_ENV!=="production"){for(var t in i)if(AS(i,t)){var M;try{if(typeof i[t]!="function"){var N=Error((c||"React class")+": "+a+" type `"+t+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[t]+"`.");throw N.name="Invariant Violation",N}M=i[t](o,t,c,a,null,RS)}catch(T){M=T}if(M&&!(M instanceof Error)&&pD((c||"React class")+": type specification of "+a+" `"+t+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof M+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),M instanceof Error&&!(M.message in F_)){F_[M.message]=!0;var O=_?_():"";pD("Failed "+a+" type: "+M.message+(O!=null?O:""))}}}}OS.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(F_={})};xS.exports=OS});var MS=Ke(Eu=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";var i=Iy(),o=hD(),a="16.13.1",c=typeof Symbol=="function"&&Symbol.for,_=c?Symbol.for("react.element"):60103,t=c?Symbol.for("react.portal"):60106,M=c?Symbol.for("react.fragment"):60107,N=c?Symbol.for("react.strict_mode"):60108,O=c?Symbol.for("react.profiler"):60114,T=c?Symbol.for("react.provider"):60109,B=c?Symbol.for("react.context"):60110,H=c?Symbol.for("react.concurrent_mode"):60111,q=c?Symbol.for("react.forward_ref"):60112,ne=c?Symbol.for("react.suspense"):60113,m=c?Symbol.for("react.suspense_list"):60120,pe=c?Symbol.for("react.memo"):60115,ge=c?Symbol.for("react.lazy"):60116,ve=c?Symbol.for("react.block"):60121,ue=c?Symbol.for("react.fundamental"):60117,_e=c?Symbol.for("react.responder"):60118,ce=c?Symbol.for("react.scope"):60119,me=typeof Symbol=="function"&&Symbol.iterator,re="@@iterator";function we(Q){if(Q===null||typeof Q!="object")return null;var Se=me&&Q[me]||Q[re];return typeof Se=="function"?Se:null}var Ie={current:null},je={suspense:null},ct={current:null},pt=/^(.*)[\\\/]/;function Xe(Q,Se,Ne){var Le="";if(Se){var ht=Se.fileName,Yn=ht.replace(pt,"");if(/^index\./.test(Yn)){var Cn=ht.match(pt);if(Cn){var cr=Cn[1];if(cr){var Si=cr.replace(pt,"");Yn=Si+"/"+Yn}}}Le=" (at "+Yn+":"+Se.lineNumber+")"}else Ne&&(Le=" (created by "+Ne+")");return` + in `+(Q||"Unknown")+Le}var tt=1;function He(Q){return Q._status===tt?Q._result:null}function kt(Q,Se,Ne){var Le=Se.displayName||Se.name||"";return Q.displayName||(Le!==""?Ne+"("+Le+")":Ne)}function zt(Q){if(Q==null)return null;if(typeof Q.tag=="number"&&dt("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof Q=="function")return Q.displayName||Q.name||null;if(typeof Q=="string")return Q;switch(Q){case M:return"Fragment";case t:return"Portal";case O:return"Profiler";case N:return"StrictMode";case ne:return"Suspense";case m:return"SuspenseList"}if(typeof Q=="object")switch(Q.$$typeof){case B:return"Context.Consumer";case T:return"Context.Provider";case q:return kt(Q,Q.render,"ForwardRef");case pe:return zt(Q.type);case ve:return zt(Q.render);case ge:{var Se=Q,Ne=He(Se);if(Ne)return zt(Ne);break}}return null}var nt={},X=null;function fe(Q){X=Q}nt.getCurrentStack=null,nt.getStackAddendum=function(){var Q="";if(X){var Se=zt(X.type),Ne=X._owner;Q+=Xe(Se,X._source,Ne&&zt(Ne.type))}var Le=nt.getCurrentStack;return Le&&(Q+=Le()||""),Q};var xe={current:!1},le={ReactCurrentDispatcher:Ie,ReactCurrentBatchConfig:je,ReactCurrentOwner:ct,IsSomeRendererActing:xe,assign:i};i(le,{ReactDebugCurrentFrame:nt,ReactComponentTreeHook:{}});function qe(Q){{for(var Se=arguments.length,Ne=new Array(Se>1?Se-1:0),Le=1;Le1?Se-1:0),Le=1;Le0&&typeof Ne[Ne.length-1]=="string"&&Ne[Ne.length-1].indexOf(` + in`)===0;if(!Le){var ht=le.ReactDebugCurrentFrame,Yn=ht.getStackAddendum();Yn!==""&&(Se+="%s",Ne=Ne.concat([Yn]))}var Cn=Ne.map(function(Mu){return""+Mu});Cn.unshift("Warning: "+Se),Function.prototype.apply.call(console[Q],console,Cn);try{var cr=0,Si="Warning: "+Se.replace(/%s/g,function(){return Ne[cr++]});throw new Error(Si)}catch(Mu){}}}var nn={};function an(Q,Se){{var Ne=Q.constructor,Le=Ne&&(Ne.displayName||Ne.name)||"ReactClass",ht=Le+"."+Se;if(nn[ht])return;dt("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",Se,Le),nn[ht]=!0}}var Mn={isMounted:function(Q){return!1},enqueueForceUpdate:function(Q,Se,Ne){an(Q,"forceUpdate")},enqueueReplaceState:function(Q,Se,Ne,Le){an(Q,"replaceState")},enqueueSetState:function(Q,Se,Ne,Le){an(Q,"setState")}},lr={};Object.freeze(lr);function ln(Q,Se,Ne){this.props=Q,this.context=Se,this.refs=lr,this.updater=Ne||Mn}ln.prototype.isReactComponent={},ln.prototype.setState=function(Q,Se){if(!(typeof Q=="object"||typeof Q=="function"||Q==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,Q,Se,"setState")},ln.prototype.forceUpdate=function(Q){this.updater.enqueueForceUpdate(this,Q,"forceUpdate")};{var Gt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},Er=function(Q,Se){Object.defineProperty(ln.prototype,Q,{get:function(){qe("%s(...) is deprecated in plain JavaScript React classes. %s",Se[0],Se[1])}})};for(var w in Gt)Gt.hasOwnProperty(w)&&Er(w,Gt[w])}function jt(){}jt.prototype=ln.prototype;function Xn(Q,Se,Ne){this.props=Q,this.context=Se,this.refs=lr,this.updater=Ne||Mn}var vr=Xn.prototype=new jt;vr.constructor=Xn,i(vr,ln.prototype),vr.isPureReactComponent=!0;function jr(){var Q={current:null};return Object.seal(Q),Q}var fr=Object.prototype.hasOwnProperty,zr={key:!0,ref:!0,__self:!0,__source:!0},Qt,wu,po;po={};function A0(Q){if(fr.call(Q,"ref")){var Se=Object.getOwnPropertyDescriptor(Q,"ref").get;if(Se&&Se.isReactWarning)return!1}return Q.ref!==void 0}function J0(Q){if(fr.call(Q,"key")){var Se=Object.getOwnPropertyDescriptor(Q,"key").get;if(Se&&Se.isReactWarning)return!1}return Q.key!==void 0}function Ps(Q,Se){var Ne=function(){Qt||(Qt=!0,dt("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",Se))};Ne.isReactWarning=!0,Object.defineProperty(Q,"key",{get:Ne,configurable:!0})}function Z0(Q,Se){var Ne=function(){wu||(wu=!0,dt("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",Se))};Ne.isReactWarning=!0,Object.defineProperty(Q,"ref",{get:Ne,configurable:!0})}function $0(Q){if(typeof Q.ref=="string"&&ct.current&&Q.__self&&ct.current.stateNode!==Q.__self){var Se=zt(ct.current.type);po[Se]||(dt('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',zt(ct.current.type),Q.ref),po[Se]=!0)}}var Wt=function(Q,Se,Ne,Le,ht,Yn,Cn){var cr={$$typeof:_,type:Q,key:Se,ref:Ne,props:Cn,_owner:Yn};return cr._store={},Object.defineProperty(cr._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(cr,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Le}),Object.defineProperty(cr,"_source",{configurable:!1,enumerable:!1,writable:!1,value:ht}),Object.freeze&&(Object.freeze(cr.props),Object.freeze(cr)),cr};function xi(Q,Se,Ne){var Le,ht={},Yn=null,Cn=null,cr=null,Si=null;if(Se!=null){A0(Se)&&(Cn=Se.ref,$0(Se)),J0(Se)&&(Yn=""+Se.key),cr=Se.__self===void 0?null:Se.__self,Si=Se.__source===void 0?null:Se.__source;for(Le in Se)fr.call(Se,Le)&&!zr.hasOwnProperty(Le)&&(ht[Le]=Se[Le])}var Mu=arguments.length-2;if(Mu===1)ht.children=Ne;else if(Mu>1){for(var zu=Array(Mu),Hu=0;Hu1){for(var Su=Array(Hu),Ti=0;Ti is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Provider},set:function(Cn){Ne.Provider=Cn}},_currentValue:{get:function(){return Ne._currentValue},set:function(Cn){Ne._currentValue=Cn}},_currentValue2:{get:function(){return Ne._currentValue2},set:function(Cn){Ne._currentValue2=Cn}},_threadCount:{get:function(){return Ne._threadCount},set:function(Cn){Ne._threadCount=Cn}},Consumer:{get:function(){return Le||(Le=!0,dt("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Consumer}}}),Ne.Consumer=Yn}return Ne._currentRenderer=null,Ne._currentRenderer2=null,Ne}function Vt(Q){var Se={$$typeof:ge,_ctor:Q,_status:-1,_result:null};{var Ne,Le;Object.defineProperties(Se,{defaultProps:{configurable:!0,get:function(){return Ne},set:function(ht){dt("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Ne=ht,Object.defineProperty(Se,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return Le},set:function(ht){dt("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Le=ht,Object.defineProperty(Se,"propTypes",{enumerable:!0})}}})}return Se}function Au(Q){return Q!=null&&Q.$$typeof===pe?dt("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof Q!="function"?dt("forwardRef requires a render function but was given %s.",Q===null?"null":typeof Q):Q.length!==0&&Q.length!==2&&dt("forwardRef render functions accept exactly two parameters: props and ref. %s",Q.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),Q!=null&&(Q.defaultProps!=null||Q.propTypes!=null)&&dt("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:q,render:Q}}function eu(Q){return typeof Q=="string"||typeof Q=="function"||Q===M||Q===H||Q===O||Q===N||Q===ne||Q===m||typeof Q=="object"&&Q!==null&&(Q.$$typeof===ge||Q.$$typeof===pe||Q.$$typeof===T||Q.$$typeof===B||Q.$$typeof===q||Q.$$typeof===ue||Q.$$typeof===_e||Q.$$typeof===ce||Q.$$typeof===ve)}function Jo(Q,Se){return eu(Q)||dt("memo: The first argument must be a component. Instead received: %s",Q===null?"null":typeof Q),{$$typeof:pe,type:Q,compare:Se===void 0?null:Se}}function Yi(){var Q=Ie.current;if(Q===null)throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.`);return Q}function Ql(Q,Se){var Ne=Yi();if(Se!==void 0&&dt("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",Se,typeof Se=="number"&&Array.isArray(arguments[2])?` + +Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks`:""),Q._context!==void 0){var Le=Q._context;Le.Consumer===Q?dt("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):Le.Provider===Q&&dt("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Ne.useContext(Q,Se)}function k0(Q){var Se=Yi();return Se.useState(Q)}function ai(Q,Se,Ne){var Le=Yi();return Le.useReducer(Q,Se,Ne)}function f0(Q){var Se=Yi();return Se.useRef(Q)}function Jl(Q,Se){var Ne=Yi();return Ne.useEffect(Q,Se)}function L0(Q,Se){var Ne=Yi();return Ne.useLayoutEffect(Q,Se)}function bs(Q,Se){var Ne=Yi();return Ne.useCallback(Q,Se)}function $n(Q,Se){var Ne=Yi();return Ne.useMemo(Q,Se)}function tl(Q,Se,Ne){var Le=Yi();return Le.useImperativeHandle(Q,Se,Ne)}function c0(Q,Se){{var Ne=Yi();return Ne.useDebugValue(Q,Se)}}var bo;bo=!1;function Sl(){if(ct.current){var Q=zt(ct.current.type);if(Q)return` + +Check the render method of \``+Q+"`."}return""}function N0(Q){if(Q!==void 0){var Se=Q.fileName.replace(/^.*[\\\/]/,""),Ne=Q.lineNumber;return` + +Check your code at `+Se+":"+Ne+"."}return""}function wt(Q){return Q!=null?N0(Q.__source):""}var bt={};function Hn(Q){var Se=Sl();if(!Se){var Ne=typeof Q=="string"?Q:Q.displayName||Q.name;Ne&&(Se=` + +Check the top-level render call using <`+Ne+">.")}return Se}function qr(Q,Se){if(!(!Q._store||Q._store.validated||Q.key!=null)){Q._store.validated=!0;var Ne=Hn(Se);if(!bt[Ne]){bt[Ne]=!0;var Le="";Q&&Q._owner&&Q._owner!==ct.current&&(Le=" It was passed a child from "+zt(Q._owner.type)+"."),fe(Q),dt('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',Ne,Le),fe(null)}}}function Ki(Q,Se){if(typeof Q=="object"){if(Array.isArray(Q))for(var Ne=0;Ne",ht=" Did you accidentally export a JSX literal instead of a component?"):Cn=typeof Q,dt("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Cn,ht)}var cr=xi.apply(this,arguments);if(cr==null)return cr;if(Le)for(var Si=2;Si{"use strict";process.env.NODE_ENV==="production"?vD.exports=SS():vD.exports=MS()});var kS=Ke((Wv,Uy)=>{(function(){var i,o="4.17.21",a=200,c="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",_="Expected a function",t="Invalid `variable` option passed into `_.template`",M="__lodash_hash_undefined__",N=500,O="__lodash_placeholder__",T=1,B=2,H=4,q=1,ne=2,m=1,pe=2,ge=4,ve=8,ue=16,_e=32,ce=64,me=128,re=256,we=512,Ie=30,je="...",ct=800,pt=16,Xe=1,tt=2,He=3,kt=1/0,zt=9007199254740991,nt=17976931348623157e292,X=0/0,fe=4294967295,xe=fe-1,le=fe>>>1,qe=[["ary",me],["bind",m],["bindKey",pe],["curry",ve],["curryRight",ue],["flip",we],["partial",_e],["partialRight",ce],["rearg",re]],dt="[object Arguments]",Rt="[object Array]",nn="[object AsyncFunction]",an="[object Boolean]",Mn="[object Date]",lr="[object DOMException]",ln="[object Error]",Gt="[object Function]",Er="[object GeneratorFunction]",w="[object Map]",jt="[object Number]",Xn="[object Null]",vr="[object Object]",jr="[object Promise]",fr="[object Proxy]",zr="[object RegExp]",Qt="[object Set]",wu="[object String]",po="[object Symbol]",A0="[object Undefined]",J0="[object WeakMap]",Ps="[object WeakSet]",Z0="[object ArrayBuffer]",$0="[object DataView]",Wt="[object Float32Array]",xi="[object Float64Array]",su="[object Int8Array]",mi="[object Int16Array]",Dr="[object Int32Array]",el="[object Uint8Array]",Ko="[object Uint8ClampedArray]",Uu="[object Uint16Array]",Xo="[object Uint32Array]",Xr=/\b__p \+= '';/g,O0=/\b(__p \+=) '' \+/g,M0=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Po=/&(?:amp|lt|gt|quot|#39);/g,au=/[&<>"']/g,ki=RegExp(Po.source),Is=RegExp(au.source),Xl=/<%-([\s\S]+?)%>/g,Io=/<%([\s\S]+?)%>/g,ho=/<%=([\s\S]+?)%>/g,Hr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ri=/^\w*$/,Qo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,yi=/[\\^$.*+?()[\]{}|]/g,en=RegExp(yi.source),bn=/^\s+/,Ai=/\s/,gi=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Vt=/\{\n\/\* \[wrapped with (.+)\] \*/,Au=/,? & /,eu=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Jo=/[()=,{}\[\]\/\s]/,Yi=/\\(\\)?/g,Ql=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,k0=/\w*$/,ai=/^[-+]0x[0-9a-f]+$/i,f0=/^0b[01]+$/i,Jl=/^\[object .+?Constructor\]$/,L0=/^0o[0-7]+$/i,bs=/^(?:0|[1-9]\d*)$/,$n=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,tl=/($^)/,c0=/['\n\r\u2028\u2029\\]/g,bo="\\ud800-\\udfff",Sl="\\u0300-\\u036f",N0="\\ufe20-\\ufe2f",wt="\\u20d0-\\u20ff",bt=Sl+N0+wt,Hn="\\u2700-\\u27bf",qr="a-z\\xdf-\\xf6\\xf8-\\xff",Ki="\\xac\\xb1\\xd7\\xf7",Qr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ou="\\u2000-\\u206f",vo=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Li="A-Z\\xc0-\\xd6\\xd8-\\xde",mo="\\ufe0e\\ufe0f",vs=Ki+Qr+Ou+vo,Tt="['\u2019]",d0="["+bo+"]",nl="["+vs+"]",Zl="["+bt+"]",ju="\\d+",ms="["+Hn+"]",Bo="["+qr+"]",Q="[^"+bo+vs+ju+Hn+qr+Li+"]",Se="\\ud83c[\\udffb-\\udfff]",Ne="(?:"+Zl+"|"+Se+")",Le="[^"+bo+"]",ht="(?:\\ud83c[\\udde6-\\uddff]){2}",Yn="[\\ud800-\\udbff][\\udc00-\\udfff]",Cn="["+Li+"]",cr="\\u200d",Si="(?:"+Bo+"|"+Q+")",Mu="(?:"+Cn+"|"+Q+")",zu="(?:"+Tt+"(?:d|ll|m|re|s|t|ve))?",Hu="(?:"+Tt+"(?:D|LL|M|RE|S|T|VE))?",Su=Ne+"?",Ti="["+mo+"]?",F0="(?:"+cr+"(?:"+[Le,ht,Yn].join("|")+")"+Ti+Su+")*",ku="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",p0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",qu=Ti+Su+F0,Ia="(?:"+[ms,ht,Yn].join("|")+")"+qu,yo="(?:"+[Le+Zl+"?",Zl,ht,Yn,d0].join("|")+")",ua=RegExp(Tt,"g"),Zo=RegExp(Zl,"g"),oa=RegExp(Se+"(?="+Se+")|"+yo+qu,"g"),ba=RegExp([Cn+"?"+Bo+"+"+zu+"(?="+[nl,Cn,"$"].join("|")+")",Mu+"+"+Hu+"(?="+[nl,Cn+Si,"$"].join("|")+")",Cn+"?"+Si+"+"+zu,Cn+"+"+Hu,p0,ku,ju,Ia].join("|"),"g"),ys=RegExp("["+cr+bo+bt+mo+"]"),To=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Qn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],fc=-1,fi={};fi[Wt]=fi[xi]=fi[su]=fi[mi]=fi[Dr]=fi[el]=fi[Ko]=fi[Uu]=fi[Xo]=!0,fi[dt]=fi[Rt]=fi[Z0]=fi[an]=fi[$0]=fi[Mn]=fi[ln]=fi[Gt]=fi[w]=fi[jt]=fi[vr]=fi[zr]=fi[Qt]=fi[wu]=fi[J0]=!1;var $r={};$r[dt]=$r[Rt]=$r[Z0]=$r[$0]=$r[an]=$r[Mn]=$r[Wt]=$r[xi]=$r[su]=$r[mi]=$r[Dr]=$r[w]=$r[jt]=$r[vr]=$r[zr]=$r[Qt]=$r[wu]=$r[po]=$r[el]=$r[Ko]=$r[Uu]=$r[Xo]=!0,$r[ln]=$r[Gt]=$r[J0]=!1;var $l={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},la={"&":"&","<":"<",">":">",'"':""","'":"'"},hf={"&":"&","<":"<",">":">",""":'"',"'":"'"},Bs={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ba=parseFloat,Us=parseInt,go=typeof global=="object"&&global&&global.Object===Object&&global,js=typeof self=="object"&&self&&self.Object===Object&&self,ji=go||js||Function("return this")(),U=typeof Wv=="object"&&Wv&&!Wv.nodeType&&Wv,z=U&&typeof Uy=="object"&&Uy&&!Uy.nodeType&&Uy,G=z&&z.exports===U,$=G&&go.process,Ce=function(){try{var Re=z&&z.require&&z.require("util").types;return Re||$&&$.binding&&$.binding("util")}catch(rt){}}(),Ee=Ce&&Ce.isArrayBuffer,Ae=Ce&&Ce.isDate,Z=Ce&&Ce.isMap,ke=Ce&&Ce.isRegExp,Je=Ce&&Ce.isSet,mt=Ce&&Ce.isTypedArray;function oe(Re,rt,Ye){switch(Ye.length){case 0:return Re.call(rt);case 1:return Re.call(rt,Ye[0]);case 2:return Re.call(rt,Ye[0],Ye[1]);case 3:return Re.call(rt,Ye[0],Ye[1],Ye[2])}return Re.apply(rt,Ye)}function We(Re,rt,Ye,Kt){for(var Xt=-1,pr=Re==null?0:Re.length;++Xt-1}function rn(Re,rt,Ye){for(var Kt=-1,Xt=Re==null?0:Re.length;++Kt-1;);return Ye}function Tl(Re,rt){for(var Ye=Re.length;Ye--&&Dt(rt,Re[Ye],0)>-1;);return Ye}function mf(Re,rt){for(var Ye=Re.length,Kt=0;Ye--;)Re[Ye]===rt&&++Kt;return Kt}var I0=Jn($l),gs=Jn(la);function zs(Re){return"\\"+Bs[Re]}function b0(Re,rt){return Re==null?i:Re[rt]}function B0(Re){return ys.test(Re)}function _s(Re){return To.test(Re)}function Qu(Re){for(var rt,Ye=[];!(rt=Re.next()).done;)Ye.push(rt.value);return Ye}function Tu(Re){var rt=-1,Ye=Array(Re.size);return Re.forEach(function(Kt,Xt){Ye[++rt]=[Xt,Kt]}),Ye}function Ei(Re,rt){return function(Ye){return Re(rt(Ye))}}function xo(Re,rt){for(var Ye=-1,Kt=Re.length,Xt=0,pr=[];++Ye-1}function ca(p,v){var x=this.__data__,P=ns(x,p);return P<0?(++this.size,x.push([p,v])):x[P][1]=v,this}u0.prototype.clear=Ua,u0.prototype.delete=Ef,u0.prototype.get=cc,u0.prototype.has=ws,u0.prototype.set=ca;function jo(p){var v=-1,x=p==null?0:p.length;for(this.clear();++v=v?p:v)),p}function zo(p,v,x,P,W,ee){var he,De=v&T,be=v&B,Et=v&H;if(x&&(he=W?x(p,P,W,ee):x(p)),he!==i)return he;if(!bu(p))return p;var St=tr(p);if(St){if(he=xs(p),!De)return iu(p,he)}else{var At=Iu(p),on=At==Gt||At==Er;if(Zs(p))return mc(p,De);if(At==vr||At==dt||on&&!W){if(he=be||on?{}:Dc(p),!De)return be?rs(p,ol(he,p)):oo(p,Df(he,p))}else{if(!$r[At])return W?p:{};he=Th(p,At,De)}}ee||(ee=new ul);var kn=ee.get(p);if(kn)return kn;ee.set(p,he),bd(p)?p.forEach(function(ar){he.add(zo(ar,v,x,ar,p,ee))}):Dp(p)&&p.forEach(function(ar,ui){he.set(ui,zo(ar,v,x,ui,p,ee))});var rr=Et?be?sr:r1:be?dn:No,br=St?i:rr(p);return it(br||p,function(ar,ui){br&&(ui=ar,ar=p[ui]),Ts(he,ui,zo(ar,v,x,ui,p,ee))}),he}function wf(p){var v=No(p);return function(x){return Wc(x,p,v)}}function Wc(p,v,x){var P=x.length;if(p==null)return!P;for(p=xn(p);P--;){var W=x[P],ee=v[W],he=p[W];if(he===i&&!(W in p)||!ee(he))return!1}return!0}function pc(p,v,x){if(typeof p!="function")throw new ti(_);return Ja(function(){p.apply(i,x)},v)}function Ol(p,v,x,P){var W=-1,ee=sn,he=!0,De=p.length,be=[],Et=v.length;if(!De)return be;x&&(v=Ft(v,_i(x))),P?(ee=rn,he=!1):v.length>=a&&(ee=rl,he=!1,v=new y0(v));e:for(;++WW?0:W+x),P=P===i||P>W?W:Mr(P),P<0&&(P+=W),P=x>P?0:Sp(P);x0&&x(De)?v>1?qi(De,v-1,x,P,W):Dn(W,De):P||(W[W.length]=De)}return W}var g=gc(),y=gc(!0);function R(p,v){return p&&g(p,v,No)}function F(p,v){return p&&y(p,v,No)}function b(p,v){return It(v,function(x){return Ra(p[x])})}function J(p,v){v=Vs(v,p);for(var x=0,P=v.length;p!=null&&xv}function Lt(p,v){return p!=null&&li.call(p,v)}function xr(p,v){return p!=null&&v in xn(p)}function io(p,v,x){return p>=Kn(v,x)&&p=120&&St.length>=120)?new y0(he&&St):i}St=p[0];var At=-1,on=De[0];e:for(;++At-1;)De!==p&&Mo.call(De,be,1),Mo.call(p,be,1);return p}function ad(p,v){for(var x=p?v.length:0,P=x-1;x--;){var W=v[x];if(x==P||W!==ee){var ee=W;D0(W)?Mo.call(p,W,1):A2(p,W)}}return p}function fd(p,v){return p+Ds(Do()*(v-p+1))}function C2(p,v,x,P){for(var W=-1,ee=ni($u((v-p)/(x||1)),0),he=Ye(ee);ee--;)he[P?ee:++W]=p,p+=x;return he}function Yc(p,v){var x="";if(!p||v<1||v>zt)return x;do v%2&&(x+=p),v=Ds(v/2),v&&(p+=p);while(v);return x}function Ir(p,v){return l1(P2(p,v,so),p+"")}function cd(p){return Ha(Nc(p))}function dd(p,v){var x=Nc(p);return Sc(x,ro(v,0,x.length))}function Ya(p,v,x,P){if(!bu(p))return p;v=Vs(v,p);for(var W=-1,ee=v.length,he=ee-1,De=p;De!=null&&++WW?0:W+v),x=x>W?W:x,x<0&&(x+=W),W=v>x?0:x-v>>>0,v>>>=0;for(var ee=Ye(W);++P>>1,he=p[ee];he!==null&&!Bl(he)&&(x?he<=v:he=a){var Et=v?null:fm(p);if(Et)return e0(Et);he=!1,W=rl,be=new y0}else be=v?[]:De;e:for(;++P=P?p:sl(p,v,x)}var Zc=Es||function(p){return ji.clearTimeout(p)};function mc(p,v){if(v)return p.slice();var x=p.length,P=Hi?Hi(x):new p.constructor(x);return p.copy(P),P}function yc(p){var v=new p.constructor(p.byteLength);return new Oo(v).set(new Oo(p)),v}function hd(p,v){var x=v?yc(p.buffer):p.buffer;return new p.constructor(x,p.byteOffset,p.byteLength)}function Eh(p){var v=new p.constructor(p.source,k0.exec(p));return v.lastIndex=p.lastIndex,v}function Cf(p){return Ar?xn(Ar.call(p)):{}}function $c(p,v){var x=v?yc(p.buffer):p.buffer;return new p.constructor(x,p.byteOffset,p.length)}function Dh(p,v){if(p!==v){var x=p!==i,P=p===null,W=p===p,ee=Bl(p),he=v!==i,De=v===null,be=v===v,Et=Bl(v);if(!De&&!Et&&!ee&&p>v||ee&&he&&be&&!De&&!Et||P&&he&&be||!x&&be||!W)return 1;if(!P&&!ee&&!Et&&p=De)return be;var Et=x[P];return be*(Et=="desc"?-1:1)}}return p.index-v.index}function Gs(p,v,x,P){for(var W=-1,ee=p.length,he=x.length,De=-1,be=v.length,Et=ni(ee-he,0),St=Ye(be+Et),At=!P;++De1?x[W-1]:i,he=W>2?x[2]:i;for(ee=p.length>3&&typeof ee=="function"?(W--,ee):i,he&&s0(x[0],x[1],he)&&(ee=W<3?i:ee,W=1),v=xn(v);++P-1?W[ee?v[he]:he]:i}}function t1(p){return cl(function(v){var x=v.length,P=x,W=Vr.prototype.thru;for(p&&v.reverse();P--;){var ee=v[P];if(typeof ee!="function")throw new ti(_);if(W&&!he&&q0(ee)=="wrapper")var he=new Vr([],!0)}for(P=he?P:x;++P1&&di.reverse(),St&&beDe))return!1;var Et=ee.get(p),St=ee.get(v);if(Et&&St)return Et==v&&St==p;var At=-1,on=!0,kn=x&ne?new y0:i;for(ee.set(p,v),ee.set(v,p);++At1?"& ":"")+v[P],v=v.join(x>2?", ":" "),p.replace(gi,`{ +/* [wrapped with `+v+`] */ +`)}function us(p){return tr(p)||pl(p)||!!(v0&&p&&p[v0])}function D0(p,v){var x=typeof p;return v=v==null?zt:v,!!v&&(x=="number"||x!="symbol"&&bs.test(p))&&p>-1&&p%1==0&&p0){if(++v>=ct)return arguments[0]}else v=0;return p.apply(i,arguments)}}function Sc(p,v){var x=-1,P=p.length,W=P-1;for(v=v===i?P:v;++x1?p[v-1]:i;return x=typeof x=="function"?(p.pop(),x):i,Td(p,x)});function zh(p){var v=Y(p);return v.__chain__=!0,v}function Hh(p,v){return v(p),p}function g1(p,v){return v(p)}var $2=cl(function(p){var v=p.length,x=v?p[0]:0,P=this.__wrapped__,W=function(ee){return Wa(ee,p)};return v>1||this.__actions__.length||!(P instanceof at)||!D0(x)?this.thru(W):(P=P.slice(x,+x+(v?1:0)),P.__actions__.push({func:g1,args:[W],thisArg:i}),new Vr(P,this.__chain__).thru(function(ee){return v&&!ee.length&&ee.push(i),ee}))});function qh(){return zh(this)}function ep(){return new Vr(this.value(),this.__chain__)}function Wh(){this.__values__===i&&(this.__values__=fv(this.value()));var p=this.__index__>=this.__values__.length,v=p?i:this.__values__[this.__index__++];return{done:p,value:v}}function _m(){return this}function Em(p){for(var v,x=this;x instanceof ii;){var P=b2(x);P.__index__=0,P.__values__=i,v?W.__wrapped__=P:v=P;var W=P;x=x.__wrapped__}return W.__wrapped__=p,v}function If(){var p=this.__wrapped__;if(p instanceof at){var v=p;return this.__actions__.length&&(v=new at(this)),v=v.reverse(),v.__actions__.push({func:g1,args:[G2],thisArg:i}),new Vr(v,this.__chain__)}return this.thru(G2)}function bf(){return _h(this.__wrapped__,this.__actions__)}var Cd=Ka(function(p,v,x){li.call(p,x)?++p[x]:Gu(p,x,1)});function Dm(p,v,x){var P=tr(p)?Mt:od;return x&&s0(p,v,x)&&(v=i),P(p,Vn(v,3))}function tp(p,v){var x=tr(p)?It:Vc;return x(p,Vn(v,3))}var xd=Ll(z2),np=Ll(a1);function Vh(p,v){return qi(_1(p,v),1)}function rp(p,v){return qi(_1(p,v),kt)}function Gh(p,v,x){return x=x===i?1:Mr(x),qi(_1(p,v),x)}function Yh(p,v){var x=tr(p)?it:Cs;return x(p,Vn(v,3))}function ip(p,v){var x=tr(p)?Ct:pa;return x(p,Vn(v,3))}var wm=Ka(function(p,v,x){li.call(p,x)?p[x].push(v):Gu(p,x,[v])});function Sm(p,v,x,P){p=hl(p)?p:Nc(p),x=x&&!P?Mr(x):0;var W=p.length;return x<0&&(x=ni(W+x,0)),S1(p)?x<=W&&p.indexOf(v,x)>-1:!!W&&Dt(p,v,x)>-1}var Tm=Ir(function(p,v,x){var P=-1,W=typeof v=="function",ee=hl(p)?Ye(p.length):[];return Cs(p,function(he){ee[++P]=W?oe(v,he,x):Ml(he,v,x)}),ee}),Kh=Ka(function(p,v,x){Gu(p,x,v)});function _1(p,v){var x=tr(p)?Ft:S2;return x(p,Vn(v,3))}function Cm(p,v,x,P){return p==null?[]:(tr(v)||(v=v==null?[]:[v]),x=P?i:x,tr(x)||(x=x==null?[]:[x]),g0(p,v,x))}var up=Ka(function(p,v,x){p[x?0:1].push(v)},function(){return[[],[]]});function op(p,v,x){var P=tr(p)?dr:wr,W=arguments.length<3;return P(p,Vn(v,4),x,W,Cs)}function xm(p,v,x){var P=tr(p)?er:wr,W=arguments.length<3;return P(p,Vn(v,4),x,W,pa)}function Rm(p,v){var x=tr(p)?It:Vc;return x(p,Od(Vn(v,3)))}function Xh(p){var v=tr(p)?Ha:cd;return v(p)}function Am(p,v,x){(x?s0(p,v,x):v===i)?v=1:v=Mr(v);var P=tr(p)?qa:dd;return P(p,v)}function Om(p){var v=tr(p)?da:ll;return v(p)}function lp(p){if(p==null)return 0;if(hl(p))return S1(p)?tu(p):p.length;var v=Iu(p);return v==w||v==Qt?p.size:Va(p).length}function sp(p,v,x){var P=tr(p)?Cr:yh;return x&&s0(p,v,x)&&(v=i),P(p,Vn(v,3))}var Ca=Ir(function(p,v){if(p==null)return[];var x=v.length;return x>1&&s0(p,v[0],v[1])?v=[]:x>2&&s0(v[0],v[1],v[2])&&(v=[v[0]]),g0(p,qi(v,1),[])}),E1=fa||function(){return ji.Date.now()};function ap(p,v){if(typeof v!="function")throw new ti(_);return p=Mr(p),function(){if(--p<1)return v.apply(this,arguments)}}function Qh(p,v,x){return v=x?i:v,v=p&&v==null?p.length:v,hn(p,me,i,i,i,i,v)}function Rd(p,v){var x;if(typeof v!="function")throw new ti(_);return p=Mr(p),function(){return--p>0&&(x=v.apply(this,arguments)),p<=1&&(v=i),x}}var D1=Ir(function(p,v,x){var P=m;if(x.length){var W=xo(x,yr(D1));P|=_e}return hn(p,P,v,x,W)}),Jh=Ir(function(p,v,x){var P=m|pe;if(x.length){var W=xo(x,yr(Jh));P|=_e}return hn(v,P,p,x,W)});function fp(p,v,x){v=x?i:v;var P=hn(p,ve,i,i,i,i,i,v);return P.placeholder=fp.placeholder,P}function Zh(p,v,x){v=x?i:v;var P=hn(p,ue,i,i,i,i,i,v);return P.placeholder=Zh.placeholder,P}function cp(p,v,x){var P,W,ee,he,De,be,Et=0,St=!1,At=!1,on=!0;if(typeof p!="function")throw new ti(_);v=vl(v)||0,bu(x)&&(St=!!x.leading,At="maxWait"in x,ee=At?ni(vl(x.maxWait)||0,v):ee,on="trailing"in x?!!x.trailing:on);function kn(ao){var Ms=P,C0=W;return P=W=i,Et=ao,he=p.apply(C0,Ms),he}function rr(ao){return Et=ao,De=Ja(ui,v),St?kn(ao):he}function br(ao){var Ms=ao-be,C0=ao-Et,kv=v-Ms;return At?Kn(kv,ee-C0):kv}function ar(ao){var Ms=ao-be,C0=ao-Et;return be===i||Ms>=v||Ms<0||At&&C0>=ee}function ui(){var ao=E1();if(ar(ao))return di(ao);De=Ja(ui,br(ao))}function di(ao){return De=i,on&&P?kn(ao):(P=W=i,he)}function zl(){De!==i&&Zc(De),Et=0,P=be=W=De=i}function Zi(){return De===i?he:di(E1())}function a0(){var ao=E1(),Ms=ar(ao);if(P=arguments,W=this,be=ao,Ms){if(De===i)return rr(be);if(At)return Zc(De),De=Ja(ui,v),kn(be)}return De===i&&(De=Ja(ui,v)),he}return a0.cancel=zl,a0.flush=Zi,a0}var $h=Ir(function(p,v){return pc(p,1,v)}),ev=Ir(function(p,v,x){return pc(p,vl(v)||0,x)});function dp(p){return hn(p,we)}function Ad(p,v){if(typeof p!="function"||v!=null&&typeof v!="function")throw new ti(_);var x=function(){var P=arguments,W=v?v.apply(this,P):P[0],ee=x.cache;if(ee.has(W))return ee.get(W);var he=p.apply(this,P);return x.cache=ee.set(W,he)||ee,he};return x.cache=new(Ad.Cache||jo),x}Ad.Cache=jo;function Od(p){if(typeof p!="function")throw new ti(_);return function(){var v=arguments;switch(v.length){case 0:return!p.call(this);case 1:return!p.call(this,v[0]);case 2:return!p.call(this,v[0],v[1]);case 3:return!p.call(this,v[0],v[1],v[2])}return!p.apply(this,v)}}function qo(p){return Rd(2,p)}var Md=k2(function(p,v){v=v.length==1&&tr(v[0])?Ft(v[0],_i(Vn())):Ft(qi(v,1),_i(Vn()));var x=v.length;return Ir(function(P){for(var W=-1,ee=Kn(P.length,x);++W=v}),pl=uo(function(){return arguments}())?uo:function(p){return Yu(p)&&li.call(p,"callee")&&!Uo.call(p,"callee")},tr=Ye.isArray,Js=Ee?_i(Ee):Ve;function hl(p){return p!=null&&Pd(p.length)&&!Ra(p)}function lo(p){return Yu(p)&&hl(p)}function rv(p){return p===!0||p===!1||Yu(p)&>(p)==an}var Zs=r0||jp,yp=Ae?_i(Ae):ze;function Fm(p){return Yu(p)&&p.nodeType===1&&!xc(p)}function iv(p){if(p==null)return!0;if(hl(p)&&(tr(p)||typeof p=="string"||typeof p.splice=="function"||Zs(p)||Aa(p)||pl(p)))return!p.length;var v=Iu(p);if(v==w||v==Qt)return!p.size;if(Nf(p))return!Va(p).length;for(var x in p)if(li.call(p,x))return!1;return!0}function gp(p,v){return lt(p,v)}function Pm(p,v,x){x=typeof x=="function"?x:i;var P=x?x(p,v):i;return P===i?lt(p,v,i,x):!!P}function _p(p){if(!Yu(p))return!1;var v=gt(p);return v==ln||v==lr||typeof p.message=="string"&&typeof p.name=="string"&&!xc(p)}function Cc(p){return typeof p=="number"&&nu(p)}function Ra(p){if(!bu(p))return!1;var v=gt(p);return v==Gt||v==Er||v==nn||v==fr}function Ep(p){return typeof p=="number"&&p==Mr(p)}function Pd(p){return typeof p=="number"&&p>-1&&p%1==0&&p<=zt}function bu(p){var v=typeof p;return p!=null&&(v=="object"||v=="function")}function Yu(p){return p!=null&&typeof p=="object"}var Dp=Z?_i(Z):Wn;function wp(p,v){return p===v||si(p,v,jn(v))}function uv(p,v,x){return x=typeof x=="function"?x:i,si(p,v,jn(v),x)}function Im(p){return ov(p)&&p!=+p}function bm(p){if(Nl(p))throw new Xt(c);return ur(p)}function Bm(p){return p===null}function Id(p){return p==null}function ov(p){return typeof p=="number"||Yu(p)&>(p)==jt}function xc(p){if(!Yu(p)||gt(p)!=vr)return!1;var v=il(p);if(v===null)return!0;var x=li.call(v,"constructor")&&v.constructor;return typeof x=="function"&&x instanceof x&&Fu.call(x)==aa}var w1=ke?_i(ke):ci;function Um(p){return Ep(p)&&p>=-zt&&p<=zt}var bd=Je?_i(Je):Qi;function S1(p){return typeof p=="string"||!tr(p)&&Yu(p)&>(p)==wu}function Bl(p){return typeof p=="symbol"||Yu(p)&>(p)==po}var Aa=mt?_i(mt):Gr;function lv(p){return p===i}function jm(p){return Yu(p)&&Iu(p)==J0}function sv(p){return Yu(p)&>(p)==Ps}var av=yd(ld),zm=yd(function(p,v){return p<=v});function fv(p){if(!p)return[];if(hl(p))return S1(p)?ei(p):iu(p);if(Pu&&p[Pu])return Qu(p[Pu]());var v=Iu(p),x=v==w?Tu:v==Qt?e0:Nc;return x(p)}function Oa(p){if(!p)return p===0?p:0;if(p=vl(p),p===kt||p===-kt){var v=p<0?-1:1;return v*nt}return p===p?p:0}function Mr(p){var v=Oa(p),x=v%1;return v===v?x?v-x:v:0}function Sp(p){return p?ro(Mr(p),0,fe):0}function vl(p){if(typeof p=="number")return p;if(Bl(p))return X;if(bu(p)){var v=typeof p.valueOf=="function"?p.valueOf():p;p=bu(v)?v+"":v}if(typeof p!="string")return p===0?p:+p;p=Nu(p);var x=f0.test(p);return x||L0.test(p)?Us(p.slice(2),x?2:8):ai.test(p)?X:+p}function gu(p){return ko(p,dn(p))}function T1(p){return p?ro(Mr(p),-zt,zt):p===0?p:0}function Ui(p){return p==null?"":al(p)}var Tp=o0(function(p,v){if(Nf(v)||hl(v)){ko(v,No(v),p);return}for(var x in v)li.call(v,x)&&Ts(p,x,v[x])}),Bd=o0(function(p,v){ko(v,dn(v),p)}),T0=o0(function(p,v,x,P){ko(v,dn(v),p,P)}),Os=o0(function(p,v,x,P){ko(v,No(v),p,P)}),Bf=cl(Wa);function Ud(p,v){var x=ri(p);return v==null?x:Df(x,v)}var Cp=Ir(function(p,v){p=xn(p);var x=-1,P=v.length,W=P>2?v[2]:i;for(W&&s0(v[0],v[1],W)&&(P=1);++x1),ee}),ko(p,sr(p),x),P&&(x=zo(x,T|B|H,cm));for(var W=v.length;W--;)A2(x,v[W]);return x});function A1(p,v){return tf(p,Od(Vn(v)))}var Ap=cl(function(p,v){return p==null?{}:vh(p,v)});function tf(p,v){if(p==null)return{};var x=Ft(sr(p),function(P){return[P]});return v=Vn(v),mh(p,x,function(P,W){return v(P,W[0])})}function Hm(p,v,x){v=Vs(v,p);var P=-1,W=v.length;for(W||(W=1,p=i);++Pv){var P=p;p=v,v=P}if(x||p%1||v%1){var W=Do();return Kn(p+W*(v-p+Ba("1e-"+((W+"").length-1))),v)}return fd(p,v)}var Gd=xf(function(p,v,x){return v=v.toLowerCase(),p+(x?W0(v):v)});function W0(p){return kp(Ui(p).toLowerCase())}function Yd(p){return p=Ui(p),p&&p.replace($n,I0).replace(Zo,"")}function Wm(p,v,x){p=Ui(p),v=al(v);var P=p.length;x=x===i?P:ro(Mr(x),0,P);var W=x;return x-=v.length,x>=0&&p.slice(x,W)==v}function k1(p){return p=Ui(p),p&&Is.test(p)?p.replace(au,gs):p}function Vm(p){return p=Ui(p),p&&en.test(p)?p.replace(yi,"\\$&"):p}var Gm=xf(function(p,v,x){return p+(x?"-":"")+v.toLowerCase()}),dv=xf(function(p,v,x){return p+(x?" ":"")+v.toLowerCase()}),Ym=wh("toLowerCase");function pv(p,v,x){p=Ui(p),v=Mr(v);var P=v?tu(p):0;if(!v||P>=v)return p;var W=(v-P)/2;return Ea(Ds(W),x)+p+Ea($u(W),x)}function Km(p,v,x){p=Ui(p),v=Mr(v);var P=v?tu(p):0;return v&&P>>0,x?(p=Ui(p),p&&(typeof v=="string"||v!=null&&!w1(v))&&(v=al(v),!v&&B0(p))?ma(ei(p),0,x):p.split(v,x)):[]}var Hf=xf(function(p,v,x){return p+(x?" ":"")+kp(v)});function vv(p,v,x){return p=Ui(p),x=x==null?0:ro(Mr(x),0,p.length),v=al(v),p.slice(x,x+v.length)==v}function mv(p,v,x){var P=Y.templateSettings;x&&s0(p,v,x)&&(v=i),p=Ui(p),v=T0({},v,P,Af);var W=T0({},v.imports,P.imports,Af),ee=No(W),he=P0(W,ee),De,be,Et=0,St=v.interpolate||tl,At="__p += '",on=yu((v.escape||tl).source+"|"+St.source+"|"+(St===ho?Ql:tl).source+"|"+(v.evaluate||tl).source+"|$","g"),kn="//# sourceURL="+(li.call(v,"sourceURL")?(v.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++fc+"]")+` +`;p.replace(on,function(ar,ui,di,zl,Zi,a0){return di||(di=zl),At+=p.slice(Et,a0).replace(c0,zs),ui&&(De=!0,At+=`' + +__e(`+ui+`) + +'`),Zi&&(be=!0,At+=`'; +`+Zi+`; +__p += '`),di&&(At+=`' + +((__t = (`+di+`)) == null ? '' : __t) + +'`),Et=a0+ar.length,ar}),At+=`'; +`;var rr=li.call(v,"variable")&&v.variable;if(!rr)At=`with (obj) { +`+At+` +} +`;else if(Jo.test(rr))throw new Xt(t);At=(be?At.replace(Xr,""):At).replace(O0,"$1").replace(M0,"$1;"),At="function("+(rr||"obj")+`) { +`+(rr?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(De?", __e = _.escape":"")+(be?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+At+`return __p +}`;var br=wv(function(){return pr(ee,kn+"return "+At).apply(i,he)});if(br.source=At,_p(br))throw br;return br}function yv(p){return Ui(p).toLowerCase()}function Kd(p){return Ui(p).toUpperCase()}function Xd(p,v,x){if(p=Ui(p),p&&(x||v===i))return Nu(p);if(!p||!(v=al(v)))return p;var P=ei(p),W=ei(v),ee=vf(P,W),he=Tl(P,W)+1;return ma(P,ee,he).join("")}function Mp(p,v,x){if(p=Ui(p),p&&(x||v===i))return p.slice(0,h0(p)+1);if(!p||!(v=al(v)))return p;var P=ei(p),W=Tl(P,ei(v))+1;return ma(P,0,W).join("")}function gv(p,v,x){if(p=Ui(p),p&&(x||v===i))return p.replace(bn,"");if(!p||!(v=al(v)))return p;var P=ei(p),W=vf(P,ei(v));return ma(P,W).join("")}function Qd(p,v){var x=Ie,P=je;if(bu(v)){var W="separator"in v?v.separator:W;x="length"in v?Mr(v.length):x,P="omission"in v?al(v.omission):P}p=Ui(p);var ee=p.length;if(B0(p)){var he=ei(p);ee=he.length}if(x>=ee)return p;var De=x-tu(P);if(De<1)return P;var be=he?ma(he,0,De).join(""):p.slice(0,De);if(W===i)return be+P;if(he&&(De+=be.length-De),w1(W)){if(p.slice(De).search(W)){var Et,St=be;for(W.global||(W=yu(W.source,Ui(k0.exec(W))+"g")),W.lastIndex=0;Et=W.exec(St);)var At=Et.index;be=be.slice(0,At===i?De:At)}}else if(p.indexOf(al(W),De)!=De){var on=be.lastIndexOf(W);on>-1&&(be=be.slice(0,on))}return be+P}function _v(p){return p=Ui(p),p&&ki.test(p)?p.replace(Po,Bi):p}var Ev=xf(function(p,v,x){return p+(x?" ":"")+v.toUpperCase()}),kp=wh("toUpperCase");function Dv(p,v,x){return p=Ui(p),v=x?i:v,v===i?_s(p)?gf(p):_o(p):p.match(v)||[]}var wv=Ir(function(p,v){try{return oe(p,i,v)}catch(x){return _p(x)?x:new Xt(x)}}),$m=cl(function(p,v){return it(v,function(x){x=Fl(x),Gu(p,x,D1(p[x],p))}),p});function Sv(p){var v=p==null?0:p.length,x=Vn();return p=v?Ft(p,function(P){if(typeof P[1]!="function")throw new ti(_);return[x(P[0]),P[1]]}):[],Ir(function(P){for(var W=-1;++Wzt)return[];var x=fe,P=Kn(p,fe);v=Vn(v),p-=fe;for(var W=Co(P,v);++x0||v<0)?new at(x):(p<0?x=x.takeRight(-p):p&&(x=x.drop(p)),v!==i&&(v=Mr(v),x=v<0?x.dropRight(-v):x.take(v-p)),x)},at.prototype.takeRightWhile=function(p){return this.reverse().takeWhile(p).reverse()},at.prototype.toArray=function(){return this.take(fe)},R(at.prototype,function(p,v){var x=/^(?:filter|find|map|reject)|While$/.test(v),P=/^(?:head|last)$/.test(v),W=Y[P?"take"+(v=="last"?"Right":""):v],ee=P||/^find/.test(v);!W||(Y.prototype[v]=function(){var he=this.__wrapped__,De=P?[1]:arguments,be=he instanceof at,Et=De[0],St=be||tr(he),At=function(ui){var di=W.apply(Y,Dn([ui],De));return P&&on?di[0]:di};St&&x&&typeof Et=="function"&&Et.length!=1&&(be=St=!1);var on=this.__chain__,kn=!!this.__actions__.length,rr=ee&&!on,br=be&&!kn;if(!ee&&St){he=br?he:new at(this);var ar=p.apply(he,De);return ar.__actions__.push({func:g1,args:[At],thisArg:i}),new Vr(ar,on)}return rr&&br?p.apply(this,De):(ar=this.thru(At),rr?P?ar.value()[0]:ar.value():ar)})}),it(["pop","push","shift","sort","splice","unshift"],function(p){var v=Jr[p],x=/^(?:push|sort|unshift)$/.test(p)?"tap":"thru",P=/^(?:pop|shift)$/.test(p);Y.prototype[p]=function(){var W=arguments;if(P&&!this.__chain__){var ee=this.value();return v.apply(tr(ee)?ee:[],W)}return this[x](function(he){return v.apply(tr(he)?he:[],W)})}}),R(at.prototype,function(p,v){var x=Y[v];if(x){var P=x.name+"";li.call(On,P)||(On[P]=[]),On[P].push({name:v,func:x})}}),On[ga(i,pe).name]=[{name:"wrapper",func:i}],at.prototype.clone=Di,at.prototype.reverse=ru,at.prototype.value=wo,Y.prototype.at=$2,Y.prototype.chain=qh,Y.prototype.commit=ep,Y.prototype.next=Wh,Y.prototype.plant=Em,Y.prototype.reverse=If,Y.prototype.toJSON=Y.prototype.valueOf=Y.prototype.value=bf,Y.prototype.first=Y.prototype.head,Pu&&(Y.prototype[Pu]=_m),Y},n0=t0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(ji._=n0,define(function(){return n0})):z?((z.exports=n0)._=n0,U._=n0):ji._=n0}).call(Wv)});var yD=Ke((wW,mD)=>{"use strict";var Pi=mD.exports;mD.exports.default=Pi;var Du="[",jy="]",Vv="\x07",P_=";",LS=process.env.TERM_PROGRAM==="Apple_Terminal";Pi.cursorTo=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");return typeof o!="number"?Du+(i+1)+"G":Du+(o+1)+";"+(i+1)+"H"};Pi.cursorMove=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");let a="";return i<0?a+=Du+-i+"D":i>0&&(a+=Du+i+"C"),o<0?a+=Du+-o+"A":o>0&&(a+=Du+o+"B"),a};Pi.cursorUp=(i=1)=>Du+i+"A";Pi.cursorDown=(i=1)=>Du+i+"B";Pi.cursorForward=(i=1)=>Du+i+"C";Pi.cursorBackward=(i=1)=>Du+i+"D";Pi.cursorLeft=Du+"G";Pi.cursorSavePosition=LS?"7":Du+"s";Pi.cursorRestorePosition=LS?"8":Du+"u";Pi.cursorGetPosition=Du+"6n";Pi.cursorNextLine=Du+"E";Pi.cursorPrevLine=Du+"F";Pi.cursorHide=Du+"?25l";Pi.cursorShow=Du+"?25h";Pi.eraseLines=i=>{let o="";for(let a=0;a[jy,"8",P_,P_,o,Vv,i,jy,"8",P_,P_,Vv].join("");Pi.image=(i,o={})=>{let a=`${jy}1337;File=inline=1`;return o.width&&(a+=`;width=${o.width}`),o.height&&(a+=`;height=${o.height}`),o.preserveAspectRatio===!1&&(a+=";preserveAspectRatio=0"),a+":"+i.toString("base64")+Vv};Pi.iTerm={setCwd:(i=process.cwd())=>`${jy}50;CurrentDir=${i}${Vv}`,annotation:(i,o={})=>{let a=`${jy}1337;`,c=typeof o.x!="undefined",_=typeof o.y!="undefined";if((c||_)&&!(c&&_&&typeof o.length!="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return i=i.replace(/\|/g,""),a+=o.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",o.length>0?a+=(c?[i,o.length,o.x,o.y]:[o.length,i]).join("|"):a+=i,a+Vv}}});var PS=Ke((SW,gD)=>{"use strict";var NS=(i,o)=>{for(let a of Reflect.ownKeys(o))Object.defineProperty(i,a,Object.getOwnPropertyDescriptor(o,a));return i};gD.exports=NS;gD.exports.default=NS});var bS=Ke((TW,I_)=>{"use strict";var AI=PS(),b_=new WeakMap,IS=(i,o={})=>{if(typeof i!="function")throw new TypeError("Expected a function");let a,c=0,_=i.displayName||i.name||"",t=function(...M){if(b_.set(t,++c),c===1)a=i.apply(this,M),i=null;else if(o.throw===!0)throw new Error(`Function \`${_}\` can only be called once`);return a};return AI(t,i),b_.set(t,c),t};I_.exports=IS;I_.exports.default=IS;I_.exports.callCount=i=>{if(!b_.has(i))throw new Error(`The given function \`${i.name}\` is not wrapped by the \`onetime\` package`);return b_.get(i)}});var BS=Ke((CW,B_)=>{B_.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&B_.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&B_.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var wD=Ke((xW,zy)=>{var OI=require("assert"),Hy=BS(),MI=/^win/i.test(process.platform),U_=require("events");typeof U_!="function"&&(U_=U_.EventEmitter);var Yl;process.__signal_exit_emitter__?Yl=process.__signal_exit_emitter__:(Yl=process.__signal_exit_emitter__=new U_,Yl.count=0,Yl.emitted={});Yl.infinite||(Yl.setMaxListeners(Infinity),Yl.infinite=!0);zy.exports=function(i,o){OI.equal(typeof i,"function","a callback must be provided for exit handler"),qy===!1&&US();var a="exit";o&&o.alwaysLast&&(a="afterexit");var c=function(){Yl.removeListener(a,i),Yl.listeners("exit").length===0&&Yl.listeners("afterexit").length===0&&_D()};return Yl.on(a,i),c};zy.exports.unload=_D;function _D(){!qy||(qy=!1,Hy.forEach(function(i){try{process.removeListener(i,ED[i])}catch(o){}}),process.emit=DD,process.reallyExit=jS,Yl.count-=1)}function Gv(i,o,a){Yl.emitted[i]||(Yl.emitted[i]=!0,Yl.emit(i,o,a))}var ED={};Hy.forEach(function(i){ED[i]=function(){var a=process.listeners(i);a.length===Yl.count&&(_D(),Gv("exit",null,i),Gv("afterexit",null,i),MI&&i==="SIGHUP"&&(i="SIGINT"),process.kill(process.pid,i))}});zy.exports.signals=function(){return Hy};zy.exports.load=US;var qy=!1;function US(){qy||(qy=!0,Yl.count+=1,Hy=Hy.filter(function(i){try{return process.on(i,ED[i]),!0}catch(o){return!1}}),process.emit=LI,process.reallyExit=kI)}var jS=process.reallyExit;function kI(i){process.exitCode=i||0,Gv("exit",process.exitCode,null),Gv("afterexit",process.exitCode,null),jS.call(process,process.exitCode)}var DD=process.emit;function LI(i,o){if(i==="exit"){o!==void 0&&(process.exitCode=o);var a=DD.apply(this,arguments);return Gv("exit",process.exitCode,null),Gv("afterexit",process.exitCode,null),a}else return DD.apply(this,arguments)}});var HS=Ke((RW,zS)=>{"use strict";var NI=bS(),FI=wD();zS.exports=NI(()=>{FI(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})});var SD=Ke(Yv=>{"use strict";var PI=HS(),j_=!1;Yv.show=(i=process.stderr)=>{!i.isTTY||(j_=!1,i.write("[?25h"))};Yv.hide=(i=process.stderr)=>{!i.isTTY||(PI(),j_=!0,i.write("[?25l"))};Yv.toggle=(i,o)=>{i!==void 0&&(j_=i),j_?Yv.show(o):Yv.hide(o)}});var GS=Ke(Wy=>{"use strict";var qS=Wy&&Wy.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Wy,"__esModule",{value:!0});var WS=qS(yD()),VS=qS(SD()),II=(i,{showCursor:o=!1}={})=>{let a=0,c="",_=!1,t=M=>{!o&&!_&&(VS.default.hide(),_=!0);let N=M+` +`;N!==c&&(c=N,i.write(WS.default.eraseLines(a)+N),a=N.split(` +`).length)};return t.clear=()=>{i.write(WS.default.eraseLines(a)),c="",a=0},t.done=()=>{c="",a=0,o||(VS.default.show(),_=!1)},t};Wy.default={create:II}});var KS=Ke((MW,YS)=>{YS.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var JS=Ke(Pa=>{"use strict";var XS=KS(),jc=process.env;Object.defineProperty(Pa,"_vendors",{value:XS.map(function(i){return i.constant})});Pa.name=null;Pa.isPR=null;XS.forEach(function(i){var o=Array.isArray(i.env)?i.env:[i.env],a=o.every(function(c){return QS(c)});if(Pa[i.constant]=a,a)switch(Pa.name=i.name,typeof i.pr){case"string":Pa.isPR=!!jc[i.pr];break;case"object":"env"in i.pr?Pa.isPR=i.pr.env in jc&&jc[i.pr.env]!==i.pr.ne:"any"in i.pr?Pa.isPR=i.pr.any.some(function(c){return!!jc[c]}):Pa.isPR=QS(i.pr);break;default:Pa.isPR=null}});Pa.isCI=!!(jc.CI||jc.CONTINUOUS_INTEGRATION||jc.BUILD_NUMBER||jc.RUN_ID||Pa.name);function QS(i){return typeof i=="string"?!!jc[i]:Object.keys(i).every(function(o){return jc[o]===i[o]})}});var $S=Ke((LW,ZS)=>{"use strict";ZS.exports=JS().isCI});var tT=Ke((NW,eT)=>{"use strict";var bI=i=>{let o=new Set;do for(let a of Reflect.ownKeys(i))o.add([i,a]);while((i=Reflect.getPrototypeOf(i))&&i!==Object.prototype);return o};eT.exports=(i,{include:o,exclude:a}={})=>{let c=_=>{let t=M=>typeof M=="string"?_===M:M.test(_);return o?o.some(t):a?!a.some(t):!0};for(let[_,t]of bI(i.constructor.prototype)){if(t==="constructor"||!c(t))continue;let M=Reflect.getOwnPropertyDescriptor(_,t);M&&typeof M.value=="function"&&(i[t]=i[t].bind(i))}return i}});var sT=Ke(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});var Kv,Vy,z_,H_,TD;typeof window=="undefined"||typeof MessageChannel!="function"?(Xv=null,CD=null,xD=function(){if(Xv!==null)try{var i=lu.unstable_now();Xv(!0,i),Xv=null}catch(o){throw setTimeout(xD,0),o}},nT=Date.now(),lu.unstable_now=function(){return Date.now()-nT},Kv=function(i){Xv!==null?setTimeout(Kv,0,i):(Xv=i,setTimeout(xD,0))},Vy=function(i,o){CD=setTimeout(i,o)},z_=function(){clearTimeout(CD)},H_=function(){return!1},TD=lu.unstable_forceFrameRate=function(){}):(q_=window.performance,RD=window.Date,rT=window.setTimeout,iT=window.clearTimeout,typeof console!="undefined"&&(uT=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof uT!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof q_=="object"&&typeof q_.now=="function"?lu.unstable_now=function(){return q_.now()}:(oT=RD.now(),lu.unstable_now=function(){return RD.now()-oT}),Gy=!1,Yy=null,W_=-1,AD=5,OD=0,H_=function(){return lu.unstable_now()>=OD},TD=function(){},lu.unstable_forceFrameRate=function(i){0>i||125G_(M,a))O!==void 0&&0>G_(O,M)?(i[c]=O,i[N]=a,c=N):(i[c]=M,i[t]=a,c=t);else if(O!==void 0&&0>G_(O,a))i[c]=O,i[N]=a,c=N;else break e}}return o}return null}function G_(i,o){var a=i.sortIndex-o.sortIndex;return a!==0?a:i.id-o.id}var ec=[],d2=[],BI=1,Fs=null,ps=3,K_=!1,$p=!1,Ky=!1;function X_(i){for(var o=df(d2);o!==null;){if(o.callback===null)Y_(d2);else if(o.startTime<=i)Y_(d2),o.sortIndex=o.expirationTime,kD(ec,o);else break;o=df(d2)}}function LD(i){if(Ky=!1,X_(i),!$p)if(df(ec)!==null)$p=!0,Kv(ND);else{var o=df(d2);o!==null&&Vy(LD,o.startTime-i)}}function ND(i,o){$p=!1,Ky&&(Ky=!1,z_()),K_=!0;var a=ps;try{for(X_(o),Fs=df(ec);Fs!==null&&(!(Fs.expirationTime>o)||i&&!H_());){var c=Fs.callback;if(c!==null){Fs.callback=null,ps=Fs.priorityLevel;var _=c(Fs.expirationTime<=o);o=lu.unstable_now(),typeof _=="function"?Fs.callback=_:Fs===df(ec)&&Y_(ec),X_(o)}else Y_(ec);Fs=df(ec)}if(Fs!==null)var t=!0;else{var M=df(d2);M!==null&&Vy(LD,M.startTime-o),t=!1}return t}finally{Fs=null,ps=a,K_=!1}}function lT(i){switch(i){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var UI=TD;lu.unstable_ImmediatePriority=1;lu.unstable_UserBlockingPriority=2;lu.unstable_NormalPriority=3;lu.unstable_IdlePriority=5;lu.unstable_LowPriority=4;lu.unstable_runWithPriority=function(i,o){switch(i){case 1:case 2:case 3:case 4:case 5:break;default:i=3}var a=ps;ps=i;try{return o()}finally{ps=a}};lu.unstable_next=function(i){switch(ps){case 1:case 2:case 3:var o=3;break;default:o=ps}var a=ps;ps=o;try{return i()}finally{ps=a}};lu.unstable_scheduleCallback=function(i,o,a){var c=lu.unstable_now();if(typeof a=="object"&&a!==null){var _=a.delay;_=typeof _=="number"&&0<_?c+_:c,a=typeof a.timeout=="number"?a.timeout:lT(i)}else a=lT(i),_=c;return a=_+a,i={id:BI++,callback:o,priorityLevel:i,startTime:_,expirationTime:a,sortIndex:-1},_>c?(i.sortIndex=_,kD(d2,i),df(ec)===null&&i===df(d2)&&(Ky?z_():Ky=!0,Vy(LD,_-c))):(i.sortIndex=a,kD(ec,i),$p||K_||($p=!0,Kv(ND))),i};lu.unstable_cancelCallback=function(i){i.callback=null};lu.unstable_wrapCallback=function(i){var o=ps;return function(){var a=ps;ps=o;try{return i.apply(this,arguments)}finally{ps=a}}};lu.unstable_getCurrentPriorityLevel=function(){return ps};lu.unstable_shouldYield=function(){var i=lu.unstable_now();X_(i);var o=df(ec);return o!==Fs&&Fs!==null&&o!==null&&o.callback!==null&&o.startTime<=i&&o.expirationTime{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(Ii,"__esModule",{value:!0});var i=!1,o=!1,a=!0,c,_,t,M,N;if(typeof window=="undefined"||typeof MessageChannel!="function"){var O=null,T=null,B=function(){if(O!==null)try{var wt=Ii.unstable_now(),bt=!0;O(bt,wt),O=null}catch(Hn){throw setTimeout(B,0),Hn}},H=Date.now();Ii.unstable_now=function(){return Date.now()-H},c=function(wt){O!==null?setTimeout(c,0,wt):(O=wt,setTimeout(B,0))},_=function(wt,bt){T=setTimeout(wt,bt)},t=function(){clearTimeout(T)},M=function(){return!1},N=Ii.unstable_forceFrameRate=function(){}}else{var q=window.performance,ne=window.Date,m=window.setTimeout,pe=window.clearTimeout;if(typeof console!="undefined"){var ge=window.requestAnimationFrame,ve=window.cancelAnimationFrame;typeof ge!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof ve!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if(typeof q=="object"&&typeof q.now=="function")Ii.unstable_now=function(){return q.now()};else{var ue=ne.now();Ii.unstable_now=function(){return ne.now()-ue}}var _e=!1,ce=null,me=-1,re=5,we=0,Ie=300,je=!1;if(o&&navigator!==void 0&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0){var ct=navigator.scheduling;M=function(){var wt=Ii.unstable_now();return wt>=we?je||ct.isInputPending()?!0:wt>=Ie:!1},N=function(){je=!0}}else M=function(){return Ii.unstable_now()>=we},N=function(){};Ii.unstable_forceFrameRate=function(wt){if(wt<0||wt>125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported");return}wt>0?re=Math.floor(1e3/wt):re=5};var pt=function(){if(ce!==null){var wt=Ii.unstable_now();we=wt+re;var bt=!0;try{var Hn=ce(bt,wt);Hn?tt.postMessage(null):(_e=!1,ce=null)}catch(qr){throw tt.postMessage(null),qr}}else _e=!1;je=!1},Xe=new MessageChannel,tt=Xe.port2;Xe.port1.onmessage=pt,c=function(wt){ce=wt,_e||(_e=!0,tt.postMessage(null))},_=function(wt,bt){me=m(function(){wt(Ii.unstable_now())},bt)},t=function(){pe(me),me=-1}}function He(wt,bt){var Hn=wt.length;wt.push(bt),nt(wt,bt,Hn)}function kt(wt){var bt=wt[0];return bt===void 0?null:bt}function zt(wt){var bt=wt[0];if(bt!==void 0){var Hn=wt.pop();return Hn!==bt&&(wt[0]=Hn,X(wt,Hn,0)),bt}else return null}function nt(wt,bt,Hn){for(var qr=Hn;;){var Ki=Math.floor((qr-1)/2),Qr=wt[Ki];if(Qr!==void 0&&fe(Qr,bt)>0)wt[Ki]=bt,wt[qr]=Qr,qr=Ki;else return}}function X(wt,bt,Hn){for(var qr=Hn,Ki=wt.length;qrfr){if(fr*=2,fr>jr){console.error("Scheduler Profiling: Event log exceeded maximum size. Don't forget to call `stopLoggingProfilingEvents()`."),Dr();return}var Hn=new Int32Array(fr*4);Hn.set(Qt),zr=Hn.buffer,Qt=Hn}Qt.set(wt,bt)}}function mi(){fr=vr,zr=new ArrayBuffer(fr*4),Qt=new Int32Array(zr),wu=0}function Dr(){var wt=zr;return fr=0,zr=null,Qt=null,wu=0,wt}function el(wt,bt){a&&(Gt[Xn]++,Qt!==null&&su([po,bt*1e3,wt.id,wt.priorityLevel]))}function Ko(wt,bt){a&&(Gt[Er]=xe,Gt[w]=0,Gt[Xn]--,Qt!==null&&su([A0,bt*1e3,wt.id]))}function Uu(wt,bt){a&&(Gt[Xn]--,Qt!==null&&su([Ps,bt*1e3,wt.id]))}function Xo(wt,bt){a&&(Gt[Er]=xe,Gt[w]=0,Gt[Xn]--,Qt!==null&&su([J0,bt*1e3,wt.id]))}function Xr(wt,bt){a&&(an++,Gt[Er]=wt.priorityLevel,Gt[w]=wt.id,Gt[jt]=an,Qt!==null&&su([Z0,bt*1e3,wt.id,an]))}function O0(wt,bt){a&&(Gt[Er]=xe,Gt[w]=0,Gt[jt]=0,Qt!==null&&su([$0,bt*1e3,wt.id,an]))}function M0(wt){a&&(Mn++,Qt!==null&&su([Wt,wt*1e3,Mn]))}function Po(wt){a&&Qt!==null&&su([xi,wt*1e3,Mn])}var au=1073741823,ki=-1,Is=250,Xl=5e3,Io=1e4,ho=au,Hr=[],Ri=[],Qo=1,yi=!1,en=null,bn=dt,Ai=!1,gi=!1,Vt=!1;function Au(wt){for(var bt=kt(Ri);bt!==null;){if(bt.callback===null)zt(Ri);else if(bt.startTime<=wt)zt(Ri),bt.sortIndex=bt.expirationTime,He(Hr,bt),a&&(el(bt,wt),bt.isQueued=!0);else return;bt=kt(Ri)}}function eu(wt){if(Vt=!1,Au(wt),!gi)if(kt(Hr)!==null)gi=!0,c(Jo);else{var bt=kt(Ri);bt!==null&&_(eu,bt.startTime-wt)}}function Jo(wt,bt){a&&Po(bt),gi=!1,Vt&&(Vt=!1,t()),Ai=!0;var Hn=bn;try{if(a)try{return Yi(wt,bt)}catch(Qr){if(en!==null){var qr=Ii.unstable_now();Xo(en,qr),en.isQueued=!1}throw Qr}else return Yi(wt,bt)}finally{if(en=null,bn=Hn,Ai=!1,a){var Ki=Ii.unstable_now();M0(Ki)}}}function Yi(wt,bt){var Hn=bt;for(Au(Hn),en=kt(Hr);en!==null&&!(i&&yi)&&!(en.expirationTime>Hn&&(!wt||M()));){var qr=en.callback;if(qr!==null){en.callback=null,bn=en.priorityLevel;var Ki=en.expirationTime<=Hn;Xr(en,Hn);var Qr=qr(Ki);Hn=Ii.unstable_now(),typeof Qr=="function"?(en.callback=Qr,O0(en,Hn)):(a&&(Ko(en,Hn),en.isQueued=!1),en===kt(Hr)&&zt(Hr)),Au(Hn)}else zt(Hr);en=kt(Hr)}if(en!==null)return!0;var Ou=kt(Ri);return Ou!==null&&_(eu,Ou.startTime-Hn),!1}function Ql(wt,bt){switch(wt){case le:case qe:case dt:case Rt:case nn:break;default:wt=dt}var Hn=bn;bn=wt;try{return bt()}finally{bn=Hn}}function k0(wt){var bt;switch(bn){case le:case qe:case dt:bt=dt;break;default:bt=bn;break}var Hn=bn;bn=bt;try{return wt()}finally{bn=Hn}}function ai(wt){var bt=bn;return function(){var Hn=bn;bn=bt;try{return wt.apply(this,arguments)}finally{bn=Hn}}}function f0(wt){switch(wt){case le:return ki;case qe:return Is;case nn:return ho;case Rt:return Io;case dt:default:return Xl}}function Jl(wt,bt,Hn){var qr=Ii.unstable_now(),Ki,Qr;if(typeof Hn=="object"&&Hn!==null){var Ou=Hn.delay;typeof Ou=="number"&&Ou>0?Ki=qr+Ou:Ki=qr,Qr=typeof Hn.timeout=="number"?Hn.timeout:f0(wt)}else Qr=f0(wt),Ki=qr;var vo=Ki+Qr,Li={id:Qo++,callback:bt,priorityLevel:wt,startTime:Ki,expirationTime:vo,sortIndex:-1};return a&&(Li.isQueued=!1),Ki>qr?(Li.sortIndex=Ki,He(Ri,Li),kt(Hr)===null&&Li===kt(Ri)&&(Vt?t():Vt=!0,_(eu,Ki-qr))):(Li.sortIndex=vo,He(Hr,Li),a&&(el(Li,qr),Li.isQueued=!0),!gi&&!Ai&&(gi=!0,c(Jo))),Li}function L0(){yi=!0}function bs(){yi=!1,!gi&&!Ai&&(gi=!0,c(Jo))}function $n(){return kt(Hr)}function tl(wt){if(a&&wt.isQueued){var bt=Ii.unstable_now();Uu(wt,bt),wt.isQueued=!1}wt.callback=null}function c0(){return bn}function bo(){var wt=Ii.unstable_now();Au(wt);var bt=kt(Hr);return bt!==en&&en!==null&&bt!==null&&bt.callback!==null&&bt.startTime<=wt&&bt.expirationTime{"use strict";process.env.NODE_ENV==="production"?FD.exports=sT():FD.exports=aT()});var fT=Ke((bW,Xy)=>{Xy.exports=function i(o){"use strict";var a=Iy(),c=Mi(),_=Q_();function t(g){for(var y="https://reactjs.org/docs/error-decoder.html?invariant="+g,R=1;RQo||(g.current=Ri[Qo],Ri[Qo]=null,Qo--)}function en(g,y){Qo++,Ri[Qo]=g.current,g.current=y}var bn={},Ai={current:bn},gi={current:!1},Vt=bn;function Au(g,y){var R=g.type.contextTypes;if(!R)return bn;var F=g.stateNode;if(F&&F.__reactInternalMemoizedUnmaskedChildContext===y)return F.__reactInternalMemoizedMaskedChildContext;var b={},J;for(J in R)b[J]=y[J];return F&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=y,g.__reactInternalMemoizedMaskedChildContext=b),b}function eu(g){return g=g.childContextTypes,g!=null}function Jo(g){yi(gi,g),yi(Ai,g)}function Yi(g){yi(gi,g),yi(Ai,g)}function Ql(g,y,R){if(Ai.current!==bn)throw Error(t(168));en(Ai,y,g),en(gi,R,g)}function k0(g,y,R){var F=g.stateNode;if(g=y.childContextTypes,typeof F.getChildContext!="function")return R;F=F.getChildContext();for(var b in F)if(!(b in g))throw Error(t(108,Ie(y)||"Unknown",b));return a({},R,{},F)}function ai(g){var y=g.stateNode;return y=y&&y.__reactInternalMemoizedMergedChildContext||bn,Vt=Ai.current,en(Ai,y,g),en(gi,gi.current,g),!0}function f0(g,y,R){var F=g.stateNode;if(!F)throw Error(t(169));R?(y=k0(g,y,Vt),F.__reactInternalMemoizedMergedChildContext=y,yi(gi,g),yi(Ai,g),en(Ai,y,g)):yi(gi,g),en(gi,R,g)}var Jl=_.unstable_runWithPriority,L0=_.unstable_scheduleCallback,bs=_.unstable_cancelCallback,$n=_.unstable_shouldYield,tl=_.unstable_requestPaint,c0=_.unstable_now,bo=_.unstable_getCurrentPriorityLevel,Sl=_.unstable_ImmediatePriority,N0=_.unstable_UserBlockingPriority,wt=_.unstable_NormalPriority,bt=_.unstable_LowPriority,Hn=_.unstable_IdlePriority,qr={},Ki=tl!==void 0?tl:function(){},Qr=null,Ou=null,vo=!1,Li=c0(),mo=1e4>Li?c0:function(){return c0()-Li};function vs(){switch(bo()){case Sl:return 99;case N0:return 98;case wt:return 97;case bt:return 96;case Hn:return 95;default:throw Error(t(332))}}function Tt(g){switch(g){case 99:return Sl;case 98:return N0;case 97:return wt;case 96:return bt;case 95:return Hn;default:throw Error(t(332))}}function d0(g,y){return g=Tt(g),Jl(g,y)}function nl(g,y,R){return g=Tt(g),L0(g,y,R)}function Zl(g){return Qr===null?(Qr=[g],Ou=L0(Sl,ms)):Qr.push(g),qr}function ju(){if(Ou!==null){var g=Ou;Ou=null,bs(g)}ms()}function ms(){if(!vo&&Qr!==null){vo=!0;var g=0;try{var y=Qr;d0(99,function(){for(;g=y&&(h0=!0),g.firstContext=null)}function ku(g,y){if(Mu!==g&&y!==!1&&y!==0)if((typeof y!="number"||y===1073741823)&&(Mu=g,y=1073741823),y={context:g,observedBits:y,next:null},Si===null){if(cr===null)throw Error(t(308));Si=y,cr.dependencies={expirationTime:0,firstContext:y,responders:null}}else Si=Si.next=y;return ln?g._currentValue:g._currentValue2}var p0=!1;function qu(g){return{baseState:g,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ia(g){return{baseState:g.baseState,firstUpdate:g.firstUpdate,lastUpdate:g.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function yo(g,y){return{expirationTime:g,suspenseConfig:y,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ua(g,y){g.lastUpdate===null?g.firstUpdate=g.lastUpdate=y:(g.lastUpdate.next=y,g.lastUpdate=y)}function Zo(g,y){var R=g.alternate;if(R===null){var F=g.updateQueue,b=null;F===null&&(F=g.updateQueue=qu(g.memoizedState))}else F=g.updateQueue,b=R.updateQueue,F===null?b===null?(F=g.updateQueue=qu(g.memoizedState),b=R.updateQueue=qu(R.memoizedState)):F=g.updateQueue=Ia(b):b===null&&(b=R.updateQueue=Ia(F));b===null||F===b?ua(F,y):F.lastUpdate===null||b.lastUpdate===null?(ua(F,y),ua(b,y)):(ua(F,y),b.lastUpdate=y)}function oa(g,y){var R=g.updateQueue;R=R===null?g.updateQueue=qu(g.memoizedState):ba(g,R),R.lastCapturedUpdate===null?R.firstCapturedUpdate=R.lastCapturedUpdate=y:(R.lastCapturedUpdate.next=y,R.lastCapturedUpdate=y)}function ba(g,y){var R=g.alternate;return R!==null&&y===R.updateQueue&&(y=g.updateQueue=Ia(y)),y}function ys(g,y,R,F,b,J){switch(R.tag){case 1:return g=R.payload,typeof g=="function"?g.call(J,F,b):g;case 3:g.effectTag=g.effectTag&-4097|64;case 0:if(g=R.payload,b=typeof g=="function"?g.call(J,F,b):g,b==null)break;return a({},F,b);case 2:p0=!0}return F}function To(g,y,R,F,b){p0=!1,y=ba(g,y);for(var J=y.baseState,de=null,gt=0,xt=y.firstUpdate,Lt=J;xt!==null;){var xr=xt.expirationTime;xrci?(Qi=ur,ur=null):Qi=ur.sibling;var Gr=du(Ve,ur,lt[ci],$t);if(Gr===null){ur===null&&(ur=Qi);break}g&&ur&&Gr.alternate===null&&y(Ve,ur),ze=J(Gr,ze,ci),si===null?Wn=Gr:si.sibling=Gr,si=Gr,ur=Qi}if(ci===lt.length)return R(Ve,ur),Wn;if(ur===null){for(;cici?(Qi=ur,ur=null):Qi=ur.sibling;var Cu=du(Ve,ur,Gr.value,$t);if(Cu===null){ur===null&&(ur=Qi);break}g&&ur&&Cu.alternate===null&&y(Ve,ur),ze=J(Cu,ze,ci),si===null?Wn=Cu:si.sibling=Cu,si=Cu,ur=Qi}if(Gr.done)return R(Ve,ur),Wn;if(ur===null){for(;!Gr.done;ci++,Gr=lt.next())Gr=io(Ve,Gr.value,$t),Gr!==null&&(ze=J(Gr,ze,ci),si===null?Wn=Gr:si.sibling=Gr,si=Gr);return Wn}for(ur=F(Ve,ur);!Gr.done;ci++,Gr=lt.next())Gr=Ho(ur,Ve,ci,Gr.value,$t),Gr!==null&&(g&&Gr.alternate!==null&&ur.delete(Gr.key===null?ci:Gr.key),ze=J(Gr,ze,ci),si===null?Wn=Gr:si.sibling=Gr,si=Gr);return g&&ur.forEach(function(Va){return y(Ve,Va)}),Wn}return function(Ve,ze,lt,$t){var Wn=typeof lt=="object"&<!==null&<.type===B&<.key===null;Wn&&(lt=lt.props.children);var si=typeof lt=="object"&<!==null;if(si)switch(lt.$$typeof){case O:e:{for(si=lt.key,Wn=ze;Wn!==null;){if(Wn.key===si)if(Wn.tag===7?lt.type===B:Wn.elementType===lt.type){R(Ve,Wn.sibling),ze=b(Wn,lt.type===B?lt.props.children:lt.props,$t),ze.ref=js(Ve,Wn,lt),ze.return=Ve,Ve=ze;break e}else{R(Ve,Wn);break}else y(Ve,Wn);Wn=Wn.sibling}lt.type===B?(ze=ro(lt.props.children,Ve.mode,$t,lt.key),ze.return=Ve,Ve=ze):($t=Wa(lt.type,lt.key,lt.props,null,Ve.mode,$t),$t.ref=js(Ve,ze,lt),$t.return=Ve,Ve=$t)}return de(Ve);case T:e:{for(Wn=lt.key;ze!==null;){if(ze.key===Wn)if(ze.tag===4&&ze.stateNode.containerInfo===lt.containerInfo&&ze.stateNode.implementation===lt.implementation){R(Ve,ze.sibling),ze=b(ze,lt.children||[],$t),ze.return=Ve,Ve=ze;break e}else{R(Ve,ze);break}else y(Ve,ze);ze=ze.sibling}ze=wf(lt,Ve.mode,$t),ze.return=Ve,Ve=ze}return de(Ve)}if(typeof lt=="string"||typeof lt=="number")return lt=""+lt,ze!==null&&ze.tag===6?(R(Ve,ze.sibling),ze=b(ze,lt,$t),ze.return=Ve,Ve=ze):(R(Ve,ze),ze=zo(lt,Ve.mode,$t),ze.return=Ve,Ve=ze),de(Ve);if(go(lt))return Ml(Ve,ze,lt,$t);if(re(lt))return uo(Ve,ze,lt,$t);if(si&&ji(Ve,lt),typeof lt=="undefined"&&!Wn)switch(Ve.tag){case 1:case 0:throw Ve=Ve.type,Error(t(152,Ve.displayName||Ve.name||"Component"))}return R(Ve,ze)}}var z=U(!0),G=U(!1),$={},Ce={current:$},Ee={current:$},Ae={current:$};function Z(g){if(g===$)throw Error(t(174));return g}function ke(g,y){en(Ae,y,g),en(Ee,g,g),en(Ce,$,g),y=kt(y),yi(Ce,g),en(Ce,y,g)}function Je(g){yi(Ce,g),yi(Ee,g),yi(Ae,g)}function mt(g){var y=Z(Ae.current),R=Z(Ce.current);y=zt(R,g.type,y),R!==y&&(en(Ee,g,g),en(Ce,y,g))}function oe(g){Ee.current===g&&(yi(Ce,g),yi(Ee,g))}var We={current:0};function it(g){for(var y=g;y!==null;){if(y.tag===13){var R=y.memoizedState;if(R!==null&&(R=R.dehydrated,R===null||Xr(R)||O0(R)))return y}else if(y.tag===19&&y.memoizedProps.revealOrder!==void 0){if((y.effectTag&64)!=0)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===g)break;for(;y.sibling===null;){if(y.return===null||y.return===g)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}function Ct(g,y){return{responder:g,props:y}}var Mt=M.ReactCurrentDispatcher,It=M.ReactCurrentBatchConfig,sn=0,rn=null,Ft=null,Dn=null,dr=null,er=null,Cr=null,An=0,Lr=null,_o=0,Nr=!1,ut=null,Dt=0;function et(){throw Error(t(321))}function Pt(g,y){if(y===null)return!1;for(var R=0;RAn&&(An=xr,ja(An))):(dc(xr,xt.suspenseConfig),J=xt.eagerReducer===g?xt.eagerState:g(J,xt.action)),de=xt,xt=xt.next}while(xt!==null&&xt!==F);Lt||(gt=de,b=J),Ne(J,y.memoizedState)||(h0=!0),y.memoizedState=J,y.baseUpdate=gt,y.baseState=b,R.lastRenderedState=J}return[y.memoizedState,R.dispatch]}function Co(g){var y=Jn();return typeof g=="function"&&(g=g()),y.memoizedState=y.baseState=g,g=y.queue={last:null,dispatch:null,lastRenderedReducer:fu,lastRenderedState:g},g=g.dispatch=zs.bind(null,rn,g),[y.memoizedState,g]}function $o(g){return Lu(fu,g)}function Nu(g,y,R,F){return g={tag:g,create:y,destroy:R,deps:F,next:null},Lr===null?(Lr={lastEffect:null},Lr.lastEffect=g.next=g):(y=Lr.lastEffect,y===null?Lr.lastEffect=g.next=g:(R=y.next,y.next=g,g.next=R,Lr.lastEffect=g)),g}function _i(g,y,R,F){var b=Jn();_o|=g,b.memoizedState=Nu(y,R,void 0,F===void 0?null:F)}function P0(g,y,R,F){var b=wr();F=F===void 0?null:F;var J=void 0;if(Ft!==null){var de=Ft.memoizedState;if(J=de.destroy,F!==null&&Pt(F,de.deps)){Nu(0,R,J,F);return}}_o|=g,b.memoizedState=Nu(y,R,J,F)}function rl(g,y){return _i(516,192,g,y)}function vf(g,y){return P0(516,192,g,y)}function Tl(g,y){if(typeof y=="function")return g=g(),y(g),function(){y(null)};if(y!=null)return g=g(),y.current=g,function(){y.current=null}}function mf(){}function I0(g,y){return Jn().memoizedState=[g,y===void 0?null:y],g}function gs(g,y){var R=wr();y=y===void 0?null:y;var F=R.memoizedState;return F!==null&&y!==null&&Pt(y,F[1])?F[0]:(R.memoizedState=[g,y],g)}function zs(g,y,R){if(!(25>Dt))throw Error(t(301));var F=g.alternate;if(g===rn||F!==null&&F===rn)if(Nr=!0,g={expirationTime:sn,suspenseConfig:null,action:R,eagerReducer:null,eagerState:null,next:null},ut===null&&(ut=new Map),R=ut.get(y),R===void 0)ut.set(y,g);else{for(y=R;y.next!==null;)y=y.next;y.next=g}else{var b=wo(),J=fi.suspense;b=Un(b,g,J),J={expirationTime:b,suspenseConfig:J,action:R,eagerReducer:null,eagerState:null,next:null};var de=y.last;if(de===null)J.next=J;else{var gt=de.next;gt!==null&&(J.next=gt),de.next=J}if(y.last=J,g.expirationTime===0&&(F===null||F.expirationTime===0)&&(F=y.lastRenderedReducer,F!==null))try{var xt=y.lastRenderedState,Lt=F(xt,R);if(J.eagerReducer=F,J.eagerState=Lt,Ne(Lt,xt))return}catch(xr){}finally{}to(g,b)}}var b0={readContext:ku,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useLayoutEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useResponder:et,useDeferredValue:et,useTransition:et},B0={readContext:ku,useCallback:I0,useContext:ku,useEffect:rl,useImperativeHandle:function(g,y,R){return R=R!=null?R.concat([g]):null,_i(4,36,Tl.bind(null,y,g),R)},useLayoutEffect:function(g,y){return _i(4,36,g,y)},useMemo:function(g,y){var R=Jn();return y=y===void 0?null:y,g=g(),R.memoizedState=[g,y],g},useReducer:function(g,y,R){var F=Jn();return y=R!==void 0?R(y):y,F.memoizedState=F.baseState=y,g=F.queue={last:null,dispatch:null,lastRenderedReducer:g,lastRenderedState:y},g=g.dispatch=zs.bind(null,rn,g),[F.memoizedState,g]},useRef:function(g){var y=Jn();return g={current:g},y.memoizedState=g},useState:Co,useDebugValue:mf,useResponder:Ct,useDeferredValue:function(g,y){var R=Co(g),F=R[0],b=R[1];return rl(function(){_.unstable_next(function(){var J=It.suspense;It.suspense=y===void 0?null:y;try{b(g)}finally{It.suspense=J}})},[g,y]),F},useTransition:function(g){var y=Co(!1),R=y[0],F=y[1];return[I0(function(b){F(!0),_.unstable_next(function(){var J=It.suspense;It.suspense=g===void 0?null:g;try{F(!1),b()}finally{It.suspense=J}})},[g,R]),R]}},_s={readContext:ku,useCallback:gs,useContext:ku,useEffect:vf,useImperativeHandle:function(g,y,R){return R=R!=null?R.concat([g]):null,P0(4,36,Tl.bind(null,y,g),R)},useLayoutEffect:function(g,y){return P0(4,36,g,y)},useMemo:function(g,y){var R=wr();y=y===void 0?null:y;var F=R.memoizedState;return F!==null&&y!==null&&Pt(y,F[1])?F[0]:(g=g(),R.memoizedState=[g,y],g)},useReducer:Lu,useRef:function(){return wr().memoizedState},useState:$o,useDebugValue:mf,useResponder:Ct,useDeferredValue:function(g,y){var R=$o(g),F=R[0],b=R[1];return vf(function(){_.unstable_next(function(){var J=It.suspense;It.suspense=y===void 0?null:y;try{b(g)}finally{It.suspense=J}})},[g,y]),F},useTransition:function(g){var y=$o(!1),R=y[0],F=y[1];return[gs(function(b){F(!0),_.unstable_next(function(){var J=It.suspense;It.suspense=g===void 0?null:g;try{F(!1),b()}finally{It.suspense=J}})},[g,R]),R]}},Qu=null,Tu=null,Ei=!1;function xo(g,y){var R=H0(5,null,null,0);R.elementType="DELETED",R.type="DELETED",R.stateNode=y,R.return=g,R.effectTag=8,g.lastEffect!==null?(g.lastEffect.nextEffect=R,g.lastEffect=R):g.firstEffect=g.lastEffect=R}function e0(g,y){switch(g.tag){case 5:return y=Uu(y,g.type,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 6:return y=Xo(y,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 13:return!1;default:return!1}}function U0(g){if(Ei){var y=Tu;if(y){var R=y;if(!e0(g,y)){if(y=M0(R),!y||!e0(g,y)){g.effectTag=g.effectTag&-1025|2,Ei=!1,Qu=g;return}xo(Qu,R)}Qu=g,Tu=Po(y)}else g.effectTag=g.effectTag&-1025|2,Ei=!1,Qu=g}}function sa(g){for(g=g.return;g!==null&&g.tag!==5&&g.tag!==3&&g.tag!==13;)g=g.return;Qu=g}function es(g){if(!w||g!==Qu)return!1;if(!Ei)return sa(g),Ei=!0,!1;var y=g.type;if(g.tag!==5||y!=="head"&&y!=="body"&&!dt(y,g.memoizedProps))for(y=Tu;y;)xo(g,y),y=M0(y);if(sa(g),g.tag===13){if(!w)throw Error(t(316));if(g=g.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(t(317));Tu=Is(g)}else Tu=Qu?M0(g.stateNode):null;return!0}function tu(){w&&(Tu=Qu=null,Ei=!1)}var ei=M.ReactCurrentOwner,h0=!1;function Bi(g,y,R,F){y.child=g===null?G(y,null,R,F):z(y,g.child,R,F)}function Ci(g,y,R,F,b){R=R.render;var J=y.ref;return F0(y,b),F=un(g,y,R,F,J,b),g!==null&&!h0?(y.updateQueue=g.updateQueue,y.effectTag&=-517,g.expirationTime<=b&&(g.expirationTime=0),yu(g,y,b)):(y.effectTag|=1,Bi(g,y,F,b),y.child)}function yf(g,y,R,F,b,J){if(g===null){var de=R.type;return typeof de=="function"&&!Df(de)&&de.defaultProps===void 0&&R.compare===null&&R.defaultProps===void 0?(y.tag=15,y.type=de,gf(g,y,de,F,b,J)):(g=Wa(R.type,null,F,null,y.mode,J),g.ref=y.ref,g.return=y,y.child=g)}return de=g.child,by)&&Vr.set(g,y)))}}function i0(g,y){g.expirationTimeg?y:g)}function no(g){if(g.lastExpiredTime!==0)g.callbackExpirationTime=1073741823,g.callbackPriority=99,g.callbackNode=Zl(u0.bind(null,g));else{var y=m0(g),R=g.callbackNode;if(y===0)R!==null&&(g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90);else{var F=wo();if(y===1073741823?F=99:y===1||y===2?F=95:(F=10*(1073741821-y)-10*(1073741821-F),F=0>=F?99:250>=F?98:5250>=F?97:95),R!==null){var b=g.callbackPriority;if(g.callbackExpirationTime===y&&b>=F)return;R!==qr&&bs(R)}g.callbackExpirationTime=y,g.callbackPriority=F,y=y===1073741823?Zl(u0.bind(null,g)):nl(F,j0.bind(null,g),{timeout:10*(1073741821-y)-mo()}),g.callbackNode=y}}}function j0(g,y){if(ru=0,y)return y=wo(),pa(g,y),no(g),null;var R=m0(g);if(R!==0){if(y=g.callbackNode,(Fn&(nu|cu))!==Rr)throw Error(t(327));if(Ws(),g===ae&&R===Fe||ws(g,R),ie!==null){var F=Fn;Fn|=nu;var b=jo(g);do try{rd();break}catch(gt){ca(g,gt)}while(1);if(zu(),Fn=F,$u.current=b,Oe===ni)throw y=st,ws(g,R),Ol(g,R),no(g),y;if(ie===null)switch(b=g.finishedWork=g.current.alternate,g.finishedExpirationTime=R,F=Oe,ae=null,F){case Ni:case ni:throw Error(t(345));case Kn:pa(g,2=R){g.lastPingedTime=R,ws(g,R);break}}if(J=m0(g),J!==0&&J!==R)break;if(F!==0&&F!==R){g.lastPingedTime=F;break}g.timeoutHandle=an(Rl.bind(null,g),b);break}Rl(g);break;case Eo:if(Ol(g,R),F=g.lastSuspendedTime,R===F&&(g.nextKnownPendingLevel=qc(b)),_n&&(b=g.lastPingedTime,b===0||b>=R)){g.lastPingedTime=R,ws(g,R);break}if(b=m0(g),b!==0&&b!==R)break;if(F!==0&&F!==R){g.lastPingedTime=F;break}if(Jt!==1073741823?F=10*(1073741821-Jt)-mo():yt===1073741823?F=0:(F=10*(1073741821-yt)-5e3,b=mo(),R=10*(1073741821-R)-b,F=b-F,0>F&&(F=0),F=(120>F?120:480>F?480:1080>F?1080:1920>F?1920:3e3>F?3e3:4320>F?4320:1960*_f(F/1960))-F,R=F?F=0:(b=de.busyDelayMs|0,J=mo()-(10*(1073741821-J)-(de.timeoutMs|0||5e3)),F=J<=b?0:b+F-J),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Hr(b))}Oe!==Do&&(Oe=Kn),J=Cl(J,b),xt=F;do{switch(xt.tag){case 3:de=J,xt.effectTag|=4096,xt.expirationTime=y;var ze=Es(xt,de,y);oa(xt,ze);break e;case 1:de=J;var lt=xt.type,$t=xt.stateNode;if((xt.effectTag&64)==0&&(typeof lt.getDerivedStateFromError=="function"||$t!==null&&typeof $t.componentDidCatch=="function"&&(mr===null||!mr.has($t)))){xt.effectTag|=4096,xt.expirationTime=y;var Wn=fa(xt,de,y);oa(xt,Wn);break e}}xt=xt.return}while(xt!==null)}ie=y0(ie)}catch(si){y=si;continue}break}while(1)}function jo(){var g=$u.current;return $u.current=b0,g===null?b0:g}function dc(g,y){gSn&&(Sn=g)}function D2(){for(;ie!==null;)ie=id(ie)}function rd(){for(;ie!==null&&!$n();)ie=id(ie)}function id(g){var y=qa(g.alternate,g,Fe);return g.memoizedProps=g.pendingProps,y===null&&(y=y0(g)),Ds.current=null,y}function y0(g){ie=g;do{var y=ie.alternate;if(g=ie.return,(ie.effectTag&2048)==0){e:{var R=y;y=ie;var F=Fe,b=y.pendingProps;switch(y.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:eu(y.type)&&Jo(y);break;case 3:Je(y),Yi(y),b=y.stateNode,b.pendingContext&&(b.context=b.pendingContext,b.pendingContext=null),(R===null||R.child===null)&&es(y)&&Ju(y),Jr(y);break;case 5:oe(y);var J=Z(Ae.current);if(F=y.type,R!==null&&y.stateNode!=null)Wu(R,y,F,b,J),R.ref!==y.ref&&(y.effectTag|=128);else if(b){if(R=Z(Ce.current),es(y)){if(b=y,!w)throw Error(t(175));R=au(b.stateNode,b.type,b.memoizedProps,J,R,b),b.updateQueue=R,R=R!==null,R&&Ju(y)}else{var de=fe(F,b,J,R,y);ti(de,y,!1,!1),y.stateNode=de,le(de,F,b,J,R)&&Ju(y)}y.ref!==null&&(y.effectTag|=128)}else if(y.stateNode===null)throw Error(t(166));break;case 6:if(R&&y.stateNode!=null)Rn(R,y,R.memoizedProps,b);else{if(typeof b!="string"&&y.stateNode===null)throw Error(t(166));if(R=Z(Ae.current),J=Z(Ce.current),es(y)){if(R=y,!w)throw Error(t(176));(R=ki(R.stateNode,R.memoizedProps,R))&&Ju(y)}else y.stateNode=nn(b,R,J,y)}break;case 11:break;case 13:if(yi(We,y),b=y.memoizedState,(y.effectTag&64)!=0){y.expirationTime=F;break e}b=b!==null,J=!1,R===null?y.memoizedProps.fallback!==void 0&&es(y):(F=R.memoizedState,J=F!==null,b||F===null||(F=R.child.sibling,F!==null&&(de=y.firstEffect,de!==null?(y.firstEffect=F,F.nextEffect=de):(y.firstEffect=y.lastEffect=F,F.nextEffect=null),F.effectTag=8))),b&&!J&&(y.mode&2)!=0&&(R===null&&y.memoizedProps.unstable_avoidThisFallback!==!0||(We.current&1)!=0?Oe===Ni&&(Oe=eo):((Oe===Ni||Oe===eo)&&(Oe=Eo),Sn!==0&&ae!==null&&(Ol(ae,Fe),Cs(ae,Sn)))),Er&&b&&(y.effectTag|=4),Gt&&(b||J)&&(y.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Je(y),Jr(y);break;case 10:Su(y);break;case 9:break;case 14:break;case 17:eu(y.type)&&Jo(y);break;case 19:if(yi(We,y),b=y.memoizedState,b===null)break;if(J=(y.effectTag&64)!=0,de=b.rendering,de===null){if(J)Fu(b,!1);else if(Oe!==Ni||R!==null&&(R.effectTag&64)!=0)for(R=y.child;R!==null;){if(de=it(R),de!==null){for(y.effectTag|=64,Fu(b,!1),R=de.updateQueue,R!==null&&(y.updateQueue=R,y.effectTag|=4),b.lastEffect===null&&(y.firstEffect=null),y.lastEffect=b.lastEffect,R=F,b=y.child;b!==null;)J=b,F=R,J.effectTag&=2,J.nextEffect=null,J.firstEffect=null,J.lastEffect=null,de=J.alternate,de===null?(J.childExpirationTime=0,J.expirationTime=F,J.child=null,J.memoizedProps=null,J.memoizedState=null,J.updateQueue=null,J.dependencies=null):(J.childExpirationTime=de.childExpirationTime,J.expirationTime=de.expirationTime,J.child=de.child,J.memoizedProps=de.memoizedProps,J.memoizedState=de.memoizedState,J.updateQueue=de.updateQueue,F=de.dependencies,J.dependencies=F===null?null:{expirationTime:F.expirationTime,firstContext:F.firstContext,responders:F.responders}),b=b.sibling;en(We,We.current&1|2,y),y=y.child;break e}R=R.sibling}}else{if(!J)if(R=it(de),R!==null){if(y.effectTag|=64,J=!0,R=R.updateQueue,R!==null&&(y.updateQueue=R,y.effectTag|=4),Fu(b,!0),b.tail===null&&b.tailMode==="hidden"&&!de.alternate){y=y.lastEffect=b.lastEffect,y!==null&&(y.nextEffect=null);break}}else mo()>b.tailExpiration&&1b&&(b=F),de>b&&(b=de),J=J.sibling;R.childExpirationTime=b}if(y!==null)return y;g!==null&&(g.effectTag&2048)==0&&(g.firstEffect===null&&(g.firstEffect=ie.firstEffect),ie.lastEffect!==null&&(g.lastEffect!==null&&(g.lastEffect.nextEffect=ie.firstEffect),g.lastEffect=ie.lastEffect),1g?y:g}function Rl(g){var y=vs();return d0(99,ul.bind(null,g,y)),null}function ul(g,y){do Ws();while(ri!==null);if((Fn&(nu|cu))!==Rr)throw Error(t(327));var R=g.finishedWork,F=g.finishedExpirationTime;if(R===null)return null;if(g.finishedWork=null,g.finishedExpirationTime=0,R===g.current)throw Error(t(177));g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90,g.nextKnownPendingLevel=0;var b=qc(R);if(g.firstPendingTime=b,F<=g.lastSuspendedTime?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:F<=g.firstSuspendedTime&&(g.firstSuspendedTime=F-1),F<=g.lastPingedTime&&(g.lastPingedTime=0),F<=g.lastExpiredTime&&(g.lastExpiredTime=0),g===ae&&(ie=ae=null,Fe=0),1=R?Xt(g,y,R):(en(We,We.current&1,y),y=yu(g,y,R),y!==null?y.sibling:null);en(We,We.current&1,y);break;case 19:if(F=y.childExpirationTime>=R,(g.effectTag&64)!=0){if(F)return xn(g,y,R);y.effectTag|=64}if(b=y.memoizedState,b!==null&&(b.rendering=null,b.tail=null),en(We,We.current,y),!F)return null}return yu(g,y,R)}h0=!1}}else h0=!1;switch(y.expirationTime=0,y.tag){case 2:if(F=y.type,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,b=Au(y,Ai.current),F0(y,R),b=un(null,y,F,g,b,R),y.effectTag|=1,typeof b=="object"&&b!==null&&typeof b.render=="function"&&b.$$typeof===void 0){if(y.tag=1,fn(),eu(F)){var J=!0;ai(y)}else J=!1;y.memoizedState=b.state!==null&&b.state!==void 0?b.state:null;var de=F.getDerivedStateFromProps;typeof de=="function"&&$l(y,F,de,g),b.updater=la,y.stateNode=b,b._reactInternalFiber=y,Us(y,F,g,R),y=rt(null,y,F,!0,J,R)}else y.tag=0,Bi(null,y,b,R),y=y.child;return y;case 16:if(b=y.elementType,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,we(b),b._status!==1)throw b._result;switch(b=b._result,y.type=b,J=y.tag=ol(b),g=Yn(b,g),J){case 0:y=n0(null,y,b,g,R);break;case 1:y=Re(null,y,b,g,R);break;case 11:y=Ci(null,y,b,g,R);break;case 14:y=yf(null,y,b,Yn(b.type,g),F,R);break;default:throw Error(t(306,b,""))}return y;case 0:return F=y.type,b=y.pendingProps,b=y.elementType===F?b:Yn(F,b),n0(g,y,F,b,R);case 1:return F=y.type,b=y.pendingProps,b=y.elementType===F?b:Yn(F,b),Re(g,y,F,b,R);case 3:if(Ye(y),F=y.updateQueue,F===null)throw Error(t(282));if(b=y.memoizedState,b=b!==null?b.element:null,To(y,F,y.pendingProps,null,R),F=y.memoizedState.element,F===b)tu(),y=yu(g,y,R);else{if((b=y.stateNode.hydrate)&&(w?(Tu=Po(y.stateNode.containerInfo),Qu=y,b=Ei=!0):b=!1),b)for(R=G(y,null,F,R),y.child=R;R;)R.effectTag=R.effectTag&-3|1024,R=R.sibling;else Bi(g,y,F,R),tu();y=y.child}return y;case 5:return mt(y),g===null&&U0(y),F=y.type,b=y.pendingProps,J=g!==null?g.memoizedProps:null,de=b.children,dt(F,b)?de=null:J!==null&&dt(F,J)&&(y.effectTag|=16),t0(g,y),y.mode&4&&R!==1&&Rt(F,b)?(y.expirationTime=y.childExpirationTime=1,y=null):(Bi(g,y,de,R),y=y.child),y;case 6:return g===null&&U0(y),null;case 13:return Xt(g,y,R);case 4:return ke(y,y.stateNode.containerInfo),F=y.pendingProps,g===null?y.child=z(y,null,F,R):Bi(g,y,F,R),y.child;case 11:return F=y.type,b=y.pendingProps,b=y.elementType===F?b:Yn(F,b),Ci(g,y,F,b,R);case 7:return Bi(g,y,y.pendingProps,R),y.child;case 8:return Bi(g,y,y.pendingProps.children,R),y.child;case 12:return Bi(g,y,y.pendingProps.children,R),y.child;case 10:e:{if(F=y.type._context,b=y.pendingProps,de=y.memoizedProps,J=b.value,Hu(y,J),de!==null){var gt=de.value;if(J=Ne(gt,J)?0:(typeof F._calculateChangedBits=="function"?F._calculateChangedBits(gt,J):1073741823)|0,J===0){if(de.children===b.children&&!gi.current){y=yu(g,y,R);break e}}else for(gt=y.child,gt!==null&&(gt.return=y);gt!==null;){var xt=gt.dependencies;if(xt!==null){de=gt.child;for(var Lt=xt.firstContext;Lt!==null;){if(Lt.context===F&&(Lt.observedBits&J)!=0){gt.tag===1&&(Lt=yo(R,null),Lt.tag=2,Zo(gt,Lt)),gt.expirationTime=y&&g<=y}function Ol(g,y){var R=g.firstSuspendedTime,F=g.lastSuspendedTime;Ry||R===0)&&(g.lastSuspendedTime=y),y<=g.lastPingedTime&&(g.lastPingedTime=0),y<=g.lastExpiredTime&&(g.lastExpiredTime=0)}function Cs(g,y){y>g.firstPendingTime&&(g.firstPendingTime=y);var R=g.firstSuspendedTime;R!==0&&(y>=R?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:y>=g.lastSuspendedTime&&(g.lastSuspendedTime=y+1),y>g.nextKnownPendingLevel&&(g.nextKnownPendingLevel=y))}function pa(g,y){var R=g.lastExpiredTime;(R===0||R>y)&&(g.lastExpiredTime=y)}function od(g){var y=g._reactInternalFiber;if(y===void 0)throw typeof g.render=="function"?Error(t(188)):Error(t(268,Object.keys(g)));return g=Xe(y),g===null?null:g.stateNode}function ha(g,y){g=g.memoizedState,g!==null&&g.dehydrated!==null&&g.retryTime{"use strict";Object.defineProperty(tc,"__esModule",{value:!0});var jI=0;tc.__interactionsRef=null;tc.__subscriberRef=null;tc.unstable_clear=function(i){return i()};tc.unstable_getCurrent=function(){return null};tc.unstable_getThreadID=function(){return++jI};tc.unstable_trace=function(i,o,a){return a()};tc.unstable_wrap=function(i){return i};tc.unstable_subscribe=function(){};tc.unstable_unsubscribe=function(){}});var dT=Ke(mu=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(mu,"__esModule",{value:!0});var i=!0,o=0,a=0,c=0;mu.__interactionsRef=null,mu.__subscriberRef=null,i&&(mu.__interactionsRef={current:new Set},mu.__subscriberRef={current:null});function _(ue){if(!i)return ue();var _e=mu.__interactionsRef.current;mu.__interactionsRef.current=new Set;try{return ue()}finally{mu.__interactionsRef.current=_e}}function t(){return i?mu.__interactionsRef.current:null}function M(){return++c}function N(ue,_e,ce){var me=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(!i)return ce();var re={__count:1,id:a++,name:ue,timestamp:_e},we=mu.__interactionsRef.current,Ie=new Set(we);Ie.add(re),mu.__interactionsRef.current=Ie;var je=mu.__subscriberRef.current,ct;try{je!==null&&je.onInteractionTraced(re)}finally{try{je!==null&&je.onWorkStarted(Ie,me)}finally{try{ct=ce()}finally{mu.__interactionsRef.current=we;try{je!==null&&je.onWorkStopped(Ie,me)}finally{re.__count--,je!==null&&re.__count===0&&je.onInteractionScheduledWorkCompleted(re)}}}}return ct}function O(ue){var _e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:o;if(!i)return ue;var ce=mu.__interactionsRef.current,me=mu.__subscriberRef.current;me!==null&&me.onWorkScheduled(ce,_e),ce.forEach(function(Ie){Ie.__count++});var re=!1;function we(){var Ie=mu.__interactionsRef.current;mu.__interactionsRef.current=ce,me=mu.__subscriberRef.current;try{var je;try{me!==null&&me.onWorkStarted(ce,_e)}finally{try{je=ue.apply(void 0,arguments)}finally{mu.__interactionsRef.current=Ie,me!==null&&me.onWorkStopped(ce,_e)}}return je}finally{re||(re=!0,ce.forEach(function(ct){ct.__count--,me!==null&&ct.__count===0&&me.onInteractionScheduledWorkCompleted(ct)}))}}return we.cancel=function(){me=mu.__subscriberRef.current;try{me!==null&&me.onWorkCanceled(ce,_e)}finally{ce.forEach(function(je){je.__count--,me&&je.__count===0&&me.onInteractionScheduledWorkCompleted(je)})}},we}var T=null;i&&(T=new Set);function B(ue){i&&(T.add(ue),T.size===1&&(mu.__subscriberRef.current={onInteractionScheduledWorkCompleted:ne,onInteractionTraced:q,onWorkCanceled:ve,onWorkScheduled:m,onWorkStarted:pe,onWorkStopped:ge}))}function H(ue){i&&(T.delete(ue),T.size===0&&(mu.__subscriberRef.current=null))}function q(ue){var _e=!1,ce=null;if(T.forEach(function(me){try{me.onInteractionTraced(ue)}catch(re){_e||(_e=!0,ce=re)}}),_e)throw ce}function ne(ue){var _e=!1,ce=null;if(T.forEach(function(me){try{me.onInteractionScheduledWorkCompleted(ue)}catch(re){_e||(_e=!0,ce=re)}}),_e)throw ce}function m(ue,_e){var ce=!1,me=null;if(T.forEach(function(re){try{re.onWorkScheduled(ue,_e)}catch(we){ce||(ce=!0,me=we)}}),ce)throw me}function pe(ue,_e){var ce=!1,me=null;if(T.forEach(function(re){try{re.onWorkStarted(ue,_e)}catch(we){ce||(ce=!0,me=we)}}),ce)throw me}function ge(ue,_e){var ce=!1,me=null;if(T.forEach(function(re){try{re.onWorkStopped(ue,_e)}catch(we){ce||(ce=!0,me=we)}}),ce)throw me}function ve(ue,_e){var ce=!1,me=null;if(T.forEach(function(re){try{re.onWorkCanceled(ue,_e)}catch(we){ce||(ce=!0,me=we)}}),ce)throw me}mu.unstable_clear=_,mu.unstable_getCurrent=t,mu.unstable_getThreadID=M,mu.unstable_trace=N,mu.unstable_wrap=O,mu.unstable_subscribe=B,mu.unstable_unsubscribe=H}()});var pT=Ke((jW,PD)=>{"use strict";process.env.NODE_ENV==="production"?PD.exports=cT():PD.exports=dT()});var hT=Ke((zW,Qy)=>{"use strict";process.env.NODE_ENV!=="production"&&(Qy.exports=function i(o){"use strict";var a=Iy(),c=Mi(),_=hD(),t=Q_(),M=pT(),N=0,O=1,T=2,B=3,H=4,q=5,ne=6,m=7,pe=8,ge=9,ve=10,ue=11,_e=12,ce=13,me=14,re=15,we=16,Ie=17,je=18,ct=19,pt=20,Xe=21,tt=function(){};tt=function(f,d){for(var E=arguments.length,C=new Array(E>2?E-2:0),A=2;A8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!f){if(typeof console!="undefined"){var j=C.map(function(se){return""+se});j.unshift("Warning: "+d),Function.prototype.apply.call(console.error,console,j)}try{var V=0,te="Warning: "+d.replace(/%s/g,function(){return C[V++]});throw new Error(te)}catch(se){}}};var He=tt;function kt(f){return f._reactInternalFiber}function zt(f,d){f._reactInternalFiber=d}var nt=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;nt.hasOwnProperty("ReactCurrentDispatcher")||(nt.ReactCurrentDispatcher={current:null}),nt.hasOwnProperty("ReactCurrentBatchConfig")||(nt.ReactCurrentBatchConfig={suspense:null});var X=typeof Symbol=="function"&&Symbol.for,fe=X?Symbol.for("react.element"):60103,xe=X?Symbol.for("react.portal"):60106,le=X?Symbol.for("react.fragment"):60107,qe=X?Symbol.for("react.strict_mode"):60108,dt=X?Symbol.for("react.profiler"):60114,Rt=X?Symbol.for("react.provider"):60109,nn=X?Symbol.for("react.context"):60110,an=X?Symbol.for("react.concurrent_mode"):60111,Mn=X?Symbol.for("react.forward_ref"):60112,lr=X?Symbol.for("react.suspense"):60113,ln=X?Symbol.for("react.suspense_list"):60120,Gt=X?Symbol.for("react.memo"):60115,Er=X?Symbol.for("react.lazy"):60116,w=X?Symbol.for("react.fundamental"):60117,jt=X?Symbol.for("react.responder"):60118,Xn=X?Symbol.for("react.scope"):60119,vr=typeof Symbol=="function"&&Symbol.iterator,jr="@@iterator";function fr(f){if(f===null||typeof f!="object")return null;var d=vr&&f[vr]||f[jr];return typeof d=="function"?d:null}var zr=He;zr=function(f,d){if(!f){for(var E=nt.ReactDebugCurrentFrame,C=E.getStackAddendum(),A=arguments.length,j=new Array(A>2?A-2:0),V=2;V import('./MyComponent'))`,C),f._status=A0,f._result=A}},function(C){f._status===po&&(f._status=J0,f._result=C)})}}function $0(f,d,E){var C=d.displayName||d.name||"";return f.displayName||(C!==""?E+"("+C+")":E)}function Wt(f){if(f==null)return null;if(typeof f.tag=="number"&&He(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof f=="function")return f.displayName||f.name||null;if(typeof f=="string")return f;switch(f){case le:return"Fragment";case xe:return"Portal";case dt:return"Profiler";case qe:return"StrictMode";case lr:return"Suspense";case ln:return"SuspenseList"}if(typeof f=="object")switch(f.$$typeof){case nn:return"Context.Consumer";case Rt:return"Context.Provider";case Mn:return $0(f,f.render,"ForwardRef");case Gt:return Wt(f.type);case Er:{var d=f,E=Ps(d);if(E)return Wt(E);break}}return null}var xi=0,su=1,mi=2,Dr=4,el=6,Ko=8,Uu=16,Xo=32,Xr=64,O0=128,M0=256,Po=512,au=1024,ki=1028,Is=932,Xl=2047,Io=2048,ho=4096,Hr=!0,Ri=!0,Qo=!0,yi=!0,en=!0,bn=!0,Ai=!1,gi=!1,Vt=!1,Au=!1,eu=!1,Jo=!0,Yi=!1,Ql=!1,k0=!1,ai=!1,f0=!1,Jl=nt.ReactCurrentOwner;function L0(f){var d=f,E=f;if(f.alternate)for(;d.return;)d=d.return;else{var C=d;do d=C,(d.effectTag&(mi|au))!==xi&&(E=d.return),C=d.return;while(C)}return d.tag===B?E:null}function bs(f){return L0(f)===f}function $n(f){{var d=Jl.current;if(d!==null&&d.tag===O){var E=d,C=E.stateNode;C._warnedAboutRefsInRender||He(!1,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",Wt(E.type)||"A component"),C._warnedAboutRefsInRender=!0}}var A=kt(f);return A?L0(A)===A:!1}function tl(f){if(L0(f)!==f)throw Error("Unable to find node on an unmounted component.")}function c0(f){var d=f.alternate;if(!d){var E=L0(f);if(E===null)throw Error("Unable to find node on an unmounted component.");return E!==f?null:f}for(var C=f,A=d;;){var j=C.return;if(j===null)break;var V=j.alternate;if(V===null){var te=j.return;if(te!==null){C=A=te;continue}break}if(j.child===V.child){for(var se=j.child;se;){if(se===C)return tl(j),f;if(se===A)return tl(j),d;se=se.sibling}throw Error("Unable to find node on an unmounted component.")}if(C.return!==A.return)C=j,A=V;else{for(var Ue=!1,Qe=j.child;Qe;){if(Qe===C){Ue=!0,C=j,A=V;break}if(Qe===A){Ue=!0,A=j,C=V;break}Qe=Qe.sibling}if(!Ue){for(Qe=V.child;Qe;){if(Qe===C){Ue=!0,C=V,A=j;break}if(Qe===A){Ue=!0,A=V,C=j;break}Qe=Qe.sibling}if(!Ue)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(C.alternate!==A)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(C.tag!==B)throw Error("Unable to find node on an unmounted component.");return C.stateNode.current===C?f:d}function bo(f){var d=c0(f);if(!d)return null;for(var E=d;;){if(E.tag===q||E.tag===ne)return E;if(E.child){E.child.return=E,E=E.child;continue}if(E===d)return null;for(;!E.sibling;){if(!E.return||E.return===d)return null;E=E.return}E.sibling.return=E.return,E=E.sibling}return null}function Sl(f){var d=c0(f);if(!d)return null;for(var E=d;;){if(E.tag===q||E.tag===ne||Vt&&E.tag===pt)return E;if(E.child&&E.tag!==H){E.child.return=E,E=E.child;continue}if(E===d)return null;for(;!E.sibling;){if(!E.return||E.return===d)return null;E=E.return}E.sibling.return=E.return,E=E.sibling}return null}var N0=o.getPublicInstance,wt=o.getRootHostContext,bt=o.getChildHostContext,Hn=o.prepareForCommit,qr=o.resetAfterCommit,Ki=o.createInstance,Qr=o.appendInitialChild,Ou=o.finalizeInitialChildren,vo=o.prepareUpdate,Li=o.shouldSetTextContent,mo=o.shouldDeprioritizeSubtree,vs=o.createTextInstance,Tt=o.setTimeout,d0=o.clearTimeout,nl=o.noTimeout,Zl=o.now,ju=o.isPrimaryRenderer,ms=o.warnsIfNotActing,Bo=o.supportsMutation,Q=o.supportsPersistence,Se=o.supportsHydration,Ne=o.mountResponderInstance,Le=o.unmountResponderInstance,ht=o.getFundamentalComponentInstance,Yn=o.mountFundamentalComponent,Cn=o.shouldUpdateFundamentalComponent,cr=o.getInstanceFromNode,Si=o.appendChild,Mu=o.appendChildToContainer,zu=o.commitTextUpdate,Hu=o.commitMount,Su=o.commitUpdate,Ti=o.insertBefore,F0=o.insertInContainerBefore,ku=o.removeChild,p0=o.removeChildFromContainer,qu=o.resetTextContent,Ia=o.hideInstance,yo=o.hideTextInstance,ua=o.unhideInstance,Zo=o.unhideTextInstance,oa=o.updateFundamentalComponent,ba=o.unmountFundamentalComponent,ys=o.cloneInstance,To=o.createContainerChildSet,Qn=o.appendChildToContainerChildSet,fc=o.finalizeContainerChildren,fi=o.replaceContainerChildren,$r=o.cloneHiddenInstance,$l=o.cloneHiddenTextInstance,la=o.cloneInstance,hf=o.canHydrateInstance,Bs=o.canHydrateTextInstance,Ba=o.canHydrateSuspenseInstance,Us=o.isSuspenseInstancePending,go=o.isSuspenseInstanceFallback,js=o.registerSuspenseInstanceRetry,ji=o.getNextHydratableSibling,U=o.getFirstHydratableChild,z=o.hydrateInstance,G=o.hydrateTextInstance,$=o.hydrateSuspenseInstance,Ce=o.getNextHydratableInstanceAfterSuspenseInstance,Ee=o.commitHydratedContainer,Ae=o.commitHydratedSuspenseInstance,Z=o.clearSuspenseBoundary,ke=o.clearSuspenseBoundaryFromContainer,Je=o.didNotMatchHydratedContainerTextInstance,mt=o.didNotMatchHydratedTextInstance,oe=o.didNotHydrateContainerInstance,We=o.didNotHydrateInstance,it=o.didNotFindHydratableContainerInstance,Ct=o.didNotFindHydratableContainerTextInstance,Mt=o.didNotFindHydratableContainerSuspenseInstance,It=o.didNotFindHydratableInstance,sn=o.didNotFindHydratableTextInstance,rn=o.didNotFindHydratableSuspenseInstance,Ft=/^(.*)[\\\/]/,Dn=function(f,d,E){var C="";if(d){var A=d.fileName,j=A.replace(Ft,"");if(/^index\./.test(j)){var V=A.match(Ft);if(V){var te=V[1];if(te){var se=te.replace(Ft,"");j=se+"/"+j}}}C=" (at "+j+":"+d.lineNumber+")"}else E&&(C=" (created by "+E+")");return` + in `+(f||"Unknown")+C},dr=nt.ReactDebugCurrentFrame;function er(f){switch(f.tag){case B:case H:case ne:case m:case ve:case ge:return"";default:var d=f._debugOwner,E=f._debugSource,C=Wt(f.type),A=null;return d&&(A=Wt(d.type)),Dn(C,E,A)}}function Cr(f){var d="",E=f;do d+=er(E),E=E.return;while(E);return d}var An=null,Lr=null;function _o(){{if(An===null)return null;var f=An._debugOwner;if(f!==null&&typeof f!="undefined")return Wt(f.type)}return null}function Nr(){return An===null?"":Cr(An)}function ut(){dr.getCurrentStack=null,An=null,Lr=null}function Dt(f){dr.getCurrentStack=Nr,An=f,Lr=null}function et(f){Lr=f}var Pt="\u269B",un="\u26D4",fn=typeof performance!="undefined"&&typeof performance.mark=="function"&&typeof performance.clearMarks=="function"&&typeof performance.measure=="function"&&typeof performance.clearMeasures=="function",Jn=null,wr=null,fu=null,Lu=!1,Co=!1,$o=!1,Nu=0,_i=0,P0=new Set,rl=function(f){return Pt+" "+f},vf=function(f,d){var E=d?un+" ":Pt+" ",C=d?" Warning: "+d:"";return""+E+f+C},Tl=function(f){performance.mark(rl(f))},mf=function(f){performance.clearMarks(rl(f))},I0=function(f,d,E){var C=rl(d),A=vf(f,E);try{performance.measure(A,C)}catch(j){}performance.clearMarks(C),performance.clearMeasures(A)},gs=function(f,d){return f+" (#"+d+")"},zs=function(f,d,E){return E===null?f+" ["+(d?"update":"mount")+"]":f+"."+E},b0=function(f,d){var E=Wt(f.type)||"Unknown",C=f._debugID,A=f.alternate!==null,j=zs(E,A,d);if(Lu&&P0.has(j))return!1;P0.add(j);var V=gs(j,C);return Tl(V),!0},B0=function(f,d){var E=Wt(f.type)||"Unknown",C=f._debugID,A=f.alternate!==null,j=zs(E,A,d),V=gs(j,C);mf(V)},_s=function(f,d,E){var C=Wt(f.type)||"Unknown",A=f._debugID,j=f.alternate!==null,V=zs(C,j,d),te=gs(V,A);I0(V,te,E)},Qu=function(f){switch(f.tag){case B:case q:case ne:case H:case m:case ve:case ge:case pe:return!0;default:return!1}},Tu=function(){wr!==null&&fu!==null&&B0(fu,wr),fu=null,wr=null,$o=!1},Ei=function(){for(var f=Jn;f;)f._debugIsCurrentlyTiming&&_s(f,null,null),f=f.return},xo=function(f){f.return!==null&&xo(f.return),f._debugIsCurrentlyTiming&&b0(f,null)},e0=function(){Jn!==null&&xo(Jn)};function U0(){Hr&&_i++}function sa(){Hr&&(Lu&&(Co=!0),wr!==null&&wr!=="componentWillMount"&&wr!=="componentWillReceiveProps"&&($o=!0))}function es(f){if(Hr){if(!fn||Qu(f)||(Jn=f,!b0(f,null)))return;f._debugIsCurrentlyTiming=!0}}function tu(f){if(Hr){if(!fn||Qu(f))return;f._debugIsCurrentlyTiming=!1,B0(f,null)}}function ei(f){if(Hr){if(!fn||Qu(f)||(Jn=f.return,!f._debugIsCurrentlyTiming))return;f._debugIsCurrentlyTiming=!1,_s(f,null,null)}}function h0(f){if(Hr){if(!fn||Qu(f)||(Jn=f.return,!f._debugIsCurrentlyTiming))return;f._debugIsCurrentlyTiming=!1;var d=f.tag===ce?"Rendering was suspended":"An error was thrown inside this error boundary";_s(f,null,d)}}function Bi(f,d){if(Hr){if(!fn||(Tu(),!b0(f,d)))return;fu=f,wr=d}}function Ci(){if(Hr){if(!fn)return;if(wr!==null&&fu!==null){var f=$o?"Scheduled a cascading update":null;_s(fu,wr,f)}wr=null,fu=null}}function yf(f){if(Hr){if(Jn=f,!fn)return;Nu=0,Tl("(React Tree Reconciliation)"),e0()}}function gf(f,d){if(Hr){if(!fn)return;var E=null;if(f!==null)if(f.tag===B)E="A top-level update interrupted the previous render";else{var C=Wt(f.type)||"Unknown";E="An update to "+C+" interrupted the previous render"}else Nu>1&&(E="There were cascading updates");Nu=0;var A=d?"(React Tree Reconciliation: Completed Root)":"(React Tree Reconciliation: Yielded)";Ei(),I0(A,"(React Tree Reconciliation)",E)}}function t0(){if(Hr){if(!fn)return;Lu=!0,Co=!1,P0.clear(),Tl("(Committing Changes)")}}function n0(){if(Hr){if(!fn)return;var f=null;Co?f="Lifecycle hook scheduled a cascading update":Nu>0&&(f="Caused by a cascading update in earlier commit"),Co=!1,Nu++,Lu=!1,P0.clear(),I0("(Committing Changes)","(Committing Changes)",f)}}function Re(){if(Hr){if(!fn)return;_i=0,Tl("(Committing Snapshot Effects)")}}function rt(){if(Hr){if(!fn)return;var f=_i;_i=0,I0("(Committing Snapshot Effects: "+f+" Total)","(Committing Snapshot Effects)",null)}}function Ye(){if(Hr){if(!fn)return;_i=0,Tl("(Committing Host Effects)")}}function Kt(){if(Hr){if(!fn)return;var f=_i;_i=0,I0("(Committing Host Effects: "+f+" Total)","(Committing Host Effects)",null)}}function Xt(){if(Hr){if(!fn)return;_i=0,Tl("(Calling Lifecycle Methods)")}}function pr(){if(Hr){if(!fn)return;var f=_i;_i=0,I0("(Calling Lifecycle Methods: "+f+" Total)","(Calling Lifecycle Methods)",null)}}var Wr=[],xn;xn=[];var yu=-1;function Ju(f){return{current:f}}function ti(f,d){if(yu<0){He(!1,"Unexpected pop.");return}d!==xn[yu]&&He(!1,"Unexpected Fiber popped."),f.current=Wr[yu],Wr[yu]=null,xn[yu]=null,yu--}function Jr(f,d,E){yu++,Wr[yu]=f.current,xn[yu]=E,f.current=d}var Wu;Wu={};var Rn={};Object.freeze(Rn);var Ro=Ju(Rn),Fu=Ju(!1),li=Rn;function Cl(f,d,E){return ai?Rn:E&&Xi(d)?li:Ro.current}function Hs(f,d,E){if(!ai){var C=f.stateNode;C.__reactInternalMemoizedUnmaskedChildContext=d,C.__reactInternalMemoizedMaskedChildContext=E}}function Vu(f,d){if(ai)return Rn;var E=f.type,C=E.contextTypes;if(!C)return Rn;var A=f.stateNode;if(A&&A.__reactInternalMemoizedUnmaskedChildContext===d)return A.__reactInternalMemoizedMaskedChildContext;var j={};for(var V in C)j[V]=d[V];{var te=Wt(E)||"Unknown";_(C,j,"context",te,Nr)}return A&&Hs(f,d,j),j}function aa(){return ai?!1:Fu.current}function Xi(f){if(ai)return!1;var d=f.childContextTypes;return d!=null}function qs(f){ai||(ti(Fu,f),ti(Ro,f))}function Ao(f){ai||(ti(Fu,f),ti(Ro,f))}function zi(f,d,E){if(!ai){if(Ro.current!==Rn)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Jr(Ro,d,f),Jr(Fu,E,f)}}function Oo(f,d,E){if(ai)return E;var C=f.stateNode,A=d.childContextTypes;if(typeof C.getChildContext!="function"){{var j=Wt(d)||"Unknown";Wu[j]||(Wu[j]=!0,He(!1,"%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",j,j))}return E}var V;et("getChildContext"),Bi(f,"getChildContext"),V=C.getChildContext(),Ci(),et(null);for(var te in V)if(!(te in A))throw Error((Wt(d)||"Unknown")+'.getChildContext(): key "'+te+'" is not defined in childContextTypes.');{var se=Wt(d)||"Unknown";_(A,V,"child context",se,Nr)}return a({},E,{},V)}function Hi(f){if(ai)return!1;var d=f.stateNode,E=d&&d.__reactInternalMemoizedMergedChildContext||Rn;return li=Ro.current,Jr(Ro,E,f),Jr(Fu,Fu.current,f),!0}function il(f,d,E){if(!ai){var C=f.stateNode;if(!C)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(E){var A=Oo(f,d,li);C.__reactInternalMemoizedMergedChildContext=A,ti(Fu,f),ti(Ro,f),Jr(Ro,A,f),Jr(Fu,E,f)}else ti(Fu,f),Jr(Fu,E,f)}}function xl(f){if(ai)return Rn;if(!(bs(f)&&f.tag===O))throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var d=f;do{switch(d.tag){case B:return d.stateNode.context;case O:{var E=d.type;if(Xi(E))return d.stateNode.__reactInternalMemoizedMergedChildContext;break}}d=d.return}while(d!==null);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}var Uo=1,Mo=2,v0=t.unstable_runWithPriority,Pu=t.unstable_scheduleCallback,Zu=t.unstable_cancelCallback,ts=t.unstable_shouldYield,Es=t.unstable_requestPaint,fa=t.unstable_now,_f=t.unstable_getCurrentPriorityLevel,$u=t.unstable_ImmediatePriority,Ds=t.unstable_UserBlockingPriority,Rr=t.unstable_NormalPriority,r0=t.unstable_LowPriority,nu=t.unstable_IdlePriority;if(bn&&!(M.__interactionsRef!=null&&M.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling");var cu={},Ni=99,ni=98,Kn=97,eo=96,Eo=95,Do=90,Fn=ts,ae=Es!==void 0?Es:function(){},ie=null,Fe=null,Oe=!1,st=fa(),yt=st<1e4?fa:function(){return fa()-st};function Jt(){switch(_f()){case $u:return Ni;case Ds:return ni;case Rr:return Kn;case r0:return eo;case nu:return Eo;default:throw Error("Unknown priority level.")}}function On(f){switch(f){case Ni:return $u;case ni:return Ds;case Kn:return Rr;case eo:return r0;case Eo:return nu;default:throw Error("Unknown priority level.")}}function Sn(f,d){var E=On(f);return v0(E,d)}function _n(f,d,E){var C=On(f);return Pu(C,d,E)}function Tn(f){return ie===null?(ie=[f],Fe=Pu($u,Fi)):ie.push(f),cu}function ir(f){f!==cu&&Zu(f)}function Bt(){if(Fe!==null){var f=Fe;Fe=null,Zu(f)}Fi()}function Fi(){if(!Oe&&ie!==null){Oe=!0;var f=0;try{var d=!0,E=ie;Sn(Ni,function(){for(;f1?d-1:0),C=1;C2?E-2:0),A=2;A0&&(za.forEach(function(Nt){f.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),za=[]);var d=new Set;Ha.length>0&&(Ha.forEach(function(Nt){d.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),Ha=[]);var E=new Set;qa.length>0&&(qa.forEach(function(Nt){E.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),qa=[]);var C=new Set;da.length>0&&(da.forEach(function(Nt){C.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),da=[]);var A=new Set;Ss.length>0&&(Ss.forEach(function(Nt){A.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),Ss=[]);var j=new Set;if(Ts.length>0&&(Ts.forEach(function(Nt){j.add(Wt(Nt.type)||"Component"),ns.add(Nt.type)}),Ts=[]),d.size>0){var V=z0(d);He(!1,`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. + +Please update the following components: %s`,V)}if(C.size>0){var te=z0(C);He(!1,`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state + +Please update the following components: %s`,te)}if(j.size>0){var se=z0(j);He(!1,`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. + +Please update the following components: %s`,se)}if(f.size>0){var Ue=z0(f);Ws(!1,`componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. +* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Ue)}if(E.size>0){var Qe=z0(E);Ws(!1,`componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state +* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Qe)}if(A.size>0){var vt=z0(A);Ws(!1,`componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,vt)}};var H0=new Map,Df=new Set;Al.recordLegacyContextWarning=function(f,d){var E=ud(f);if(E===null){He(!1,"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!Df.has(f.type)){var C=H0.get(E);(f.type.contextTypes!=null||f.type.childContextTypes!=null||d!==null&&typeof d.getChildContext=="function")&&(C===void 0&&(C=[],H0.set(E,C)),C.push(f))}},Al.flushLegacyContextWarning=function(){H0.forEach(function(f,d){var E=new Set;f.forEach(function(j){E.add(Wt(j.type)||"Component"),Df.add(j.type)});var C=z0(E),A=Cr(d);He(!1,`Legacy context API has been detected within a strict-mode tree. + +The old API will be supported in all 16.x releases, but applications using it should migrate to the new version. + +Please update the following components: %s + +Learn more about this warning here: https://fb.me/react-legacy-context%s`,C,A)})},Al.discardPendingWarnings=function(){za=[],Ha=[],qa=[],da=[],Ss=[],Ts=[],H0=new Map}}var ol=null,Gu=null,Wa=function(f){ol=f};function ro(f){{if(ol===null)return f;var d=ol(f);return d===void 0?f:d.current}}function zo(f){return ro(f)}function wf(f){{if(ol===null)return f;var d=ol(f);if(d===void 0){if(f!=null&&typeof f.render=="function"){var E=ro(f.render);if(f.render!==E){var C={$$typeof:Mn,render:E};return f.displayName!==void 0&&(C.displayName=f.displayName),C}}return f}return d.current}}function Wc(f,d){{if(ol===null)return!1;var E=f.elementType,C=d.type,A=!1,j=typeof C=="object"&&C!==null?C.$$typeof:null;switch(f.tag){case O:{typeof C=="function"&&(A=!0);break}case N:{(typeof C=="function"||j===Er)&&(A=!0);break}case ue:{(j===Mn||j===Er)&&(A=!0);break}case me:case re:{(j===Gt||j===Er)&&(A=!0);break}default:return!1}if(A){var V=ol(E);if(V!==void 0&&V===ol(C))return!0}return!1}}function pc(f){{if(ol===null||typeof WeakSet!="function")return;Gu===null&&(Gu=new WeakSet),Gu.add(f)}}var Ol=function(f,d){{if(ol===null)return;var E=d.staleFamilies,C=d.updatedFamilies;nf(),Op(function(){pa(f.current,C,E)})}},Cs=function(f,d){{if(f.context!==Rn)return;nf(),pv(function(){o_(d,f,null,null)})}};function pa(f,d,E){{var C=f.alternate,A=f.child,j=f.sibling,V=f.tag,te=f.type,se=null;switch(V){case N:case re:case O:se=te;break;case ue:se=te.render;break;default:break}if(ol===null)throw new Error("Expected resolveFamily to be set during hot reload.");var Ue=!1,Qe=!1;if(se!==null){var vt=ol(se);vt!==void 0&&(E.has(vt)?Qe=!0:d.has(vt)&&(V===O?Qe=!0:Ue=!0))}Gu!==null&&(Gu.has(f)||C!==null&&Gu.has(C))&&(Qe=!0),Qe&&(f._debugNeedsRemount=!0),(Qe||Ue)&&yl(f,Un),A!==null&&!Qe&&pa(A,d,E),j!==null&&pa(j,d,E)}}var od=function(f,d){{var E=new Set,C=new Set(d.map(function(A){return A.current}));return ha(f.current,C,E),E}};function ha(f,d,E){{var C=f.child,A=f.sibling,j=f.tag,V=f.type,te=null;switch(j){case N:case re:case O:te=V;break;case ue:te=V.render;break;default:break}var se=!1;te!==null&&d.has(te)&&(se=!0),se?hc(f,E):C!==null&&ha(C,d,E),A!==null&&ha(A,d,E)}}function hc(f,d){{var E=Vc(f,d);if(E)return;for(var C=f;;){switch(C.tag){case q:d.add(C.stateNode);return;case H:d.add(C.stateNode.containerInfo);return;case B:d.add(C.stateNode.containerInfo);return}if(C.return===null)throw new Error("Expected to reach root first.");C=C.return}}}function Vc(f,d){for(var E=f,C=!1;;){if(E.tag===q)C=!0,d.add(E.stateNode);else if(E.child!==null){E.child.return=E,E=E.child;continue}if(E===f)return C;for(;E.sibling===null;){if(E.return===null||E.return===f)return C;E=E.return}E.sibling.return=E.return,E=E.sibling}return!1}function qi(f,d){if(f&&f.defaultProps){var E=a({},d),C=f.defaultProps;for(var A in C)E[A]===void 0&&(E[A]=C[A]);return E}return d}function g(f){if(Z0(f),f._status!==A0)throw f._result;return f._result}var y=Ju(null),R;R={};var F=null,b=null,J=null,de=!1;function gt(){F=null,b=null,J=null,de=!1}function xt(){de=!0}function Lt(){de=!1}function xr(f,d){var E=f.type._context;ju?(Jr(y,E._currentValue,f),E._currentValue=d,E._currentRenderer===void 0||E._currentRenderer===null||E._currentRenderer===R||He(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),E._currentRenderer=R):(Jr(y,E._currentValue2,f),E._currentValue2=d,E._currentRenderer2===void 0||E._currentRenderer2===null||E._currentRenderer2===R||He(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),E._currentRenderer2=R)}function io(f){var d=y.current;ti(y,f);var E=f.type._context;ju?E._currentValue=d:E._currentValue2=d}function du(f,d,E){if(y0(E,d))return 0;var C=typeof f._calculateChangedBits=="function"?f._calculateChangedBits(E,d):Vr;return(C&Vr)!==C&&Qt(!1,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",C),C|0}function Ho(f,d){for(var E=f;E!==null;){var C=E.alternate;if(E.childExpirationTime=d&&sp(),E.firstContext=null)}}function Ve(f,d){if(de&&Qt(!1,"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),J!==f){if(!(d===!1||d===0)){var E;typeof d!="number"||d===Vr?(J=f,E=Vr):E=d;var C={context:f,observedBits:E,next:null};if(b===null){if(F===null)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");b=C,F.dependencies={expirationTime:at,firstContext:C,responders:null}}else b=b.next=C}}return ju?f._currentValue:f._currentValue2}var ze=0,lt=1,$t=2,Wn=3,si=!1,ur,ci;ur=!1,ci=null;function Qi(f){var d={baseState:f,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return d}function Gr(f){var d={baseState:f.baseState,firstUpdate:f.firstUpdate,lastUpdate:f.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return d}function Cu(f,d){var E={expirationTime:f,suspenseConfig:d,tag:ze,payload:null,callback:null,next:null,nextEffect:null};return E.priority=Jt(),E}function Va(f,d){f.lastUpdate===null?f.firstUpdate=f.lastUpdate=d:(f.lastUpdate.next=d,f.lastUpdate=d)}function Ga(f,d){var E=f.alternate,C,A;E===null?(C=f.updateQueue,A=null,C===null&&(C=f.updateQueue=Qi(f.memoizedState))):(C=f.updateQueue,A=E.updateQueue,C===null?A===null?(C=f.updateQueue=Qi(f.memoizedState),A=E.updateQueue=Qi(E.memoizedState)):C=f.updateQueue=Gr(A):A===null&&(A=E.updateQueue=Gr(C))),A===null||C===A?Va(C,d):C.lastUpdate===null||A.lastUpdate===null?(Va(C,d),Va(A,d)):(Va(C,d),A.lastUpdate=d),f.tag===O&&(ci===C||A!==null&&ci===A)&&!ur&&(He(!1,"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."),ur=!0)}function ld(f,d){var E=f.updateQueue;E===null?E=f.updateQueue=Qi(f.memoizedState):E=S2(f,E),E.lastCapturedUpdate===null?E.firstCapturedUpdate=E.lastCapturedUpdate=d:(E.lastCapturedUpdate.next=d,E.lastCapturedUpdate=d)}function S2(f,d){var E=f.alternate;return E!==null&&d===E.updateQueue&&(d=f.updateQueue=Gr(d)),d}function T2(f,d,E,C,A,j){switch(E.tag){case lt:{var V=E.payload;if(typeof V=="function"){xt(),Ri&&f.mode&mr&&V.call(j,C,A);var te=V.call(j,C,A);return Lt(),te}return V}case Wn:f.effectTag=f.effectTag&~ho|Xr;case ze:{var se=E.payload,Ue;return typeof se=="function"?(xt(),Ri&&f.mode&mr&&se.call(j,C,A),Ue=se.call(j,C,A),Lt()):Ue=se,Ue==null?C:a({},C,Ue)}case $t:return si=!0,C}return C}function Sf(f,d,E,C,A){si=!1,d=S2(f,d),ci=d;for(var j=d.baseState,V=null,te=at,se=d.firstUpdate,Ue=j;se!==null;){var Qe=se.expirationTime;if(Qe from render. Or maybe you meant to call this function rather than return it."))}function Eh(f){function d(ot,Ot){if(!!f){var $e=ot.lastEffect;$e!==null?($e.nextEffect=Ot,ot.lastEffect=Ot):ot.firstEffect=ot.lastEffect=Ot,Ot.nextEffect=null,Ot.effectTag=Ko}}function E(ot,Ot){if(!f)return null;for(var $e=Ot;$e!==null;)d(ot,$e),$e=$e.sibling;return null}function C(ot,Ot){for(var $e=new Map,Ut=Ot;Ut!==null;)Ut.key!==null?$e.set(Ut.key,Ut):$e.set(Ut.index,Ut),Ut=Ut.sibling;return $e}function A(ot,Ot,$e){var Ut=C0(ot,Ot,$e);return Ut.index=0,Ut.sibling=null,Ut}function j(ot,Ot,$e){if(ot.index=$e,!f)return Ot;var Ut=ot.alternate;if(Ut!==null){var Pn=Ut.index;return PnKr?(xu=hr,hr=null):xu=hr.sibling;var So=Nt(ot,hr,$e[Kr],Ut);if(So===null){hr===null&&(hr=xu);break}f&&hr&&So.alternate===null&&d(ot,hr),hu=j(So,hu,Kr),Ku===null?pi=So:Ku.sibling=So,Ku=So,hr=xu}if(Kr===$e.length)return E(ot,hr),pi;if(hr===null){for(;Kr<$e.length;Kr++){var Vo=vt(ot,$e[Kr],Ut);Vo!==null&&(hu=j(Vo,hu,Kr),Ku===null?pi=Vo:Ku.sibling=Vo,Ku=Vo)}return pi}for(var ks=C(ot,hr);Kr<$e.length;Kr++){var Xu=Yt(ks,ot,Kr,$e[Kr],Ut);Xu!==null&&(f&&Xu.alternate!==null&&ks.delete(Xu.key===null?Kr:Xu.key),hu=j(Xu,hu,Kr),Ku===null?pi=Xu:Ku.sibling=Xu,Ku=Xu)}return f&&ks.forEach(function(gl){return d(ot,gl)}),pi}function kr(ot,Ot,$e,Ut){var Pn=fr($e);if(typeof Pn!="function")throw Error("An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.");{typeof Symbol=="function"&&$e[Symbol.toStringTag]==="Generator"&&(Qc||Qt(!1,"Using Generators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. Keep in mind you might need to polyfill these features for older browsers."),Qc=!0),$e.entries===Pn&&(pd||Qt(!1,"Using Maps as children is unsupported and will likely yield unexpected results. Convert it to a sequence/iterable of keyed ReactElements instead."),pd=!0);var vn=Pn.call($e);if(vn)for(var Wi=null,pi=vn.next();!pi.done;pi=vn.next()){var Ku=pi.value;Wi=Ht(Ku,Wi)}}var hr=Pn.call($e);if(hr==null)throw Error("An iterable object provided no iterator.");for(var hu=null,Kr=null,xu=Ot,So=0,Vo=0,ks=null,Xu=hr.next();xu!==null&&!Xu.done;Vo++,Xu=hr.next()){xu.index>Vo?(ks=xu,xu=null):ks=xu.sibling;var gl=Nt(ot,xu,Xu.value,Ut);if(gl===null){xu===null&&(xu=ks);break}f&&xu&&gl.alternate===null&&d(ot,xu),So=j(gl,So,Vo),Kr===null?hu=gl:Kr.sibling=gl,Kr=gl,xu=ks}if(Xu.done)return E(ot,xu),hu;if(xu===null){for(;!Xu.done;Vo++,Xu=hr.next()){var uf=vt(ot,Xu.value,Ut);uf!==null&&(So=j(uf,So,Vo),Kr===null?hu=uf:Kr.sibling=uf,Kr=uf)}return hu}for(var V0=C(ot,xu);!Xu.done;Vo++,Xu=hr.next()){var Ls=Yt(V0,ot,Vo,Xu.value,Ut);Ls!==null&&(f&&Ls.alternate!==null&&V0.delete(Ls.key===null?Vo:Ls.key),So=j(Ls,So,Vo),Kr===null?hu=Ls:Kr.sibling=Ls,Kr=Ls)}return f&&V0.forEach(function($d){return d(ot,$d)}),hu}function oi(ot,Ot,$e,Ut){if(Ot!==null&&Ot.tag===ne){E(ot,Ot.sibling);var Pn=A(Ot,$e,Ut);return Pn.return=ot,Pn}E(ot,Ot);var vn=_y($e,ot.mode,Ut);return vn.return=ot,vn}function Oi(ot,Ot,$e,Ut){for(var Pn=$e.key,vn=Ot;vn!==null;){if(vn.key===Pn)if(vn.tag===m?$e.type===le:vn.elementType===$e.type||Wc(vn,$e)){E(ot,vn.sibling);var Wi=A(vn,$e.type===le?$e.props.children:$e.props,Ut);return Wi.ref=mc(ot,vn,$e),Wi.return=ot,Wi._debugSource=$e._source,Wi._debugOwner=$e._owner,Wi}else{E(ot,vn);break}else d(ot,vn);vn=vn.sibling}if($e.type===le){var pi=rf($e.props.children,ot.mode,Ut,$e.key);return pi.return=ot,pi}else{var Ku=gy($e,ot.mode,Ut);return Ku.ref=mc(ot,Ot,$e),Ku.return=ot,Ku}}function Fo(ot,Ot,$e,Ut){for(var Pn=$e.key,vn=Ot;vn!==null;){if(vn.key===Pn)if(vn.tag===H&&vn.stateNode.containerInfo===$e.containerInfo&&vn.stateNode.implementation===$e.implementation){E(ot,vn.sibling);var Wi=A(vn,$e.children||[],Ut);return Wi.return=ot,Wi}else{E(ot,vn);break}else d(ot,vn);vn=vn.sibling}var pi=Ey($e,ot.mode,Ut);return pi.return=ot,pi}function $i(ot,Ot,$e,Ut){var Pn=typeof $e=="object"&&$e!==null&&$e.type===le&&$e.key===null;Pn&&($e=$e.props.children);var vn=typeof $e=="object"&&$e!==null;if(vn)switch($e.$$typeof){case fe:return V(Oi(ot,Ot,$e,Ut));case xe:return V(Fo(ot,Ot,$e,Ut))}if(typeof $e=="string"||typeof $e=="number")return V(oi(ot,Ot,""+$e,Ut));if(Zc($e))return yn(ot,Ot,$e,Ut);if(fr($e))return kr(ot,Ot,$e,Ut);if(vn&&yc(ot,$e),typeof $e=="function"&&hd(),typeof $e=="undefined"&&!Pn)switch(ot.tag){case O:{var Wi=ot.stateNode;if(Wi.render._isMockFunction)break}case N:{var pi=ot.type;throw Error((pi.displayName||pi.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}}return E(ot,Ot)}return $i}var Cf=Eh(!0),$c=Eh(!1);function Dh(f,d){if(!(f===null||d.child===f.child))throw Error("Resuming work not yet implemented.");if(d.child!==null){var E=d.child,C=C0(E,E.pendingProps,E.expirationTime);for(d.child=C,C.return=d;E.sibling!==null;)E=E.sibling,C=C.sibling=C0(E,E.pendingProps,E.expirationTime),C.return=d;C.sibling=null}}function am(f,d){for(var E=f.child;E!==null;)kv(E,d),E=E.sibling}var Gs={},ya=Ju(Gs),iu=Ju(Gs),ko=Ju(Gs);function oo(f){if(f===Gs)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return f}function rs(){var f=oo(ko.current);return f}function Ka(f,d){Jr(ko,d,f),Jr(iu,f,f),Jr(ya,Gs,f);var E=wt(d);ti(ya,f),Jr(ya,E,f)}function o0(f){ti(ya,f),ti(iu,f),ti(ko,f)}function fl(){var f=oo(ya.current);return f}function gc(f){var d=oo(ko.current),E=oo(ya.current),C=bt(E,f.type,d);E!==C&&(Jr(iu,f,f),Jr(ya,C,f))}function L2(f){iu.current===f&&(ti(ya,f),ti(iu,f))}var wh=0,xf=1,Rf=1,e1=2,Ll=Ju(wh);function t1(f,d){return(f&d)!=0}function ga(f){return f&xf}function vd(f,d){return f&xf|d}function md(f,d){return f|d}function Fr(f,d){Jr(Ll,d,f)}function Ea(f){ti(Ll,f)}function N2(f,d){var E=f.memoizedState;if(E!==null)return E.dehydrated!==null;var C=f.memoizedProps;return C.fallback===void 0?!1:C.unstable_avoidThisFallback!==!0?!0:!d}function n1(f){for(var d=f;d!==null;){if(d.tag===ce){var E=d.memoizedState;if(E!==null){var C=E.dehydrated;if(C===null||Us(C)||go(C))return d}}else if(d.tag===ct&&d.memoizedProps.revealOrder!==void 0){var A=(d.effectTag&Xr)!==xi;if(A)return d}else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===f)return null;for(;d.sibling===null;){if(d.return===null||d.return===f)return null;d=d.return}d.sibling.return=d.return,d=d.sibling}return null}var yd={},wi=Array.isArray;function F2(f,d,E,C){return{fiber:C,props:d,responder:f,rootEventTypes:null,state:E}}function fm(f,d,E,C,A){var j=yd,V=f.getInitialState;V!==null&&(j=V(d));var te=F2(f,d,j,E);if(!A)for(var se=E;se!==null;){var Ue=se.tag;if(Ue===q){A=se.stateNode;break}else if(Ue===B){A=se.stateNode.containerInfo;break}se=se.return}Ne(f,te,d,j,A),C.set(f,te)}function gd(f,d,E,C,A){var j,V;if(f&&(j=f.responder,V=f.props),!(j&&j.$$typeof===jt))throw Error("An invalid value was used as an event listener. Expect one or many event listeners created via React.unstable_useResponder().");var te=V;if(E.has(j)){Qt(!1,'Duplicate event responder "%s" found in event listeners. Event listeners passed to elements cannot use the same event responder more than once.',j.displayName);return}E.add(j);var se=C.get(j);se===void 0?fm(j,te,d,C,A):(se.props=te,se.fiber=d)}function hn(f,d,E){var C=new Set,A=d.dependencies;if(f!=null){A===null&&(A=d.dependencies={expirationTime:at,firstContext:null,responders:new Map});var j=A.responders;if(j===null&&(j=new Map),wi(f))for(var V=0,te=f.length;V0){var j=A.dispatch;if(xs!==null){var V=xs.get(A);if(V!==void 0){xs.delete(A);var te=C.memoizedState,se=V;do{var Ue=se.action;te=f(te,Ue),se=se.next}while(se!==null);return y0(te,C.memoizedState)||sp(),C.memoizedState=te,C.baseUpdate===A.last&&(C.baseState=te),A.lastRenderedState=te,[te,j]}}return[C.memoizedState,j]}var Qe=A.last,vt=C.baseUpdate,Nt=C.baseState,Yt;if(vt!==null?(Qe!==null&&(Qe.next=null),Yt=vt.next):Yt=Qe!==null?Qe.next:null,Yt!==null){var Ht=Nt,yn=null,kr=null,oi=vt,Oi=Yt,Fo=!1;do{var $i=Oi.expirationTime;if($iIu&&(Iu=$i,Qd(Iu));else if(gv($i,Oi.suspenseConfig),Oi.eagerReducer===f)Ht=Oi.eagerState;else{var ot=Oi.action;Ht=f(Ht,ot)}oi=Oi,Oi=Oi.next}while(Oi!==null&&Oi!==Yt);Fo||(kr=oi,yn=Ht),y0(Ht,C.memoizedState)||sp(),C.memoizedState=Ht,C.baseUpdate=kr,C.baseState=yn,A.lastRenderedState=Ht}var Ot=A.dispatch;return[C.memoizedState,Ot]}function Pf(f){var d=wc();typeof f=="function"&&(f=f()),d.memoizedState=d.baseState=f;var E=d.queue={last:null,dispatch:null,lastRenderedReducer:P2,lastRenderedState:f},C=E.dispatch=a1.bind(null,dl,E);return[d.memoizedState,C]}function o1(f){return u1(P2,f)}function Ja(f,d,E,C){var A={tag:f,create:d,destroy:E,deps:C,next:null};if(is===null)is=Qa(),is.lastEffect=A.next=A;else{var j=is.lastEffect;if(j===null)is.lastEffect=A.next=A;else{var V=j.next;j.next=A,A.next=V,is.lastEffect=A}}return A}function l1(f){var d=wc(),E={current:f};return Object.seal(E),d.memoizedState=E,E}function I2(f){var d=i1();return d.memoizedState}function wd(f,d,E,C){var A=wc(),j=C===void 0?null:C;kf|=f,A.memoizedState=Ja(d,E,void 0,j)}function Sc(f,d,E,C){var A=i1(),j=C===void 0?null:C,V=void 0;if(jn!==null){var te=jn.memoizedState;if(V=te.destroy,j!==null){var se=te.deps;if(Nf(j,se)){Ja(Of,E,V,j);return}}}kf|=f,A.memoizedState=Ja(d,E,V,j)}function s1(f,d){return typeof jest!="undefined"&&Mv(dl),wd(Dr|Po,sr|r1,f,d)}function Fl(f,d){return typeof jest!="undefined"&&Mv(dl),Sc(Dr|Po,sr|r1,f,d)}function Da(f,d){return wd(Dr,Mf|cl,f,d)}function Ch(f,d){return Sc(Dr,Mf|cl,f,d)}function b2(f,d){if(typeof d=="function"){var E=d,C=f();return E(C),function(){E(null)}}else if(d!=null){var A=d;A.hasOwnProperty("current")||Qt(!1,"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(A).join(", ")+"}");var j=f();return A.current=j,function(){A.current=null}}}function B2(f,d,E){typeof d!="function"&&Qt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",d!==null?typeof d:"null");var C=E!=null?E.concat([f]):null;return wd(Dr,Mf|cl,b2.bind(null,d,f),C)}function xh(f,d,E){typeof d!="function"&&Qt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",d!==null?typeof d:"null");var C=E!=null?E.concat([f]):null;return Sc(Dr,Mf|cl,b2.bind(null,d,f),C)}function Sd(f,d){}var Rh=Sd;function Pl(f,d){var E=wc(),C=d===void 0?null:d;return E.memoizedState=[f,C],f}function os(f,d){var E=i1(),C=d===void 0?null:d,A=E.memoizedState;if(A!==null&&C!==null){var j=A[1];if(Nf(C,j))return A[0]}return E.memoizedState=[f,C],f}function Rs(f,d){var E=wc(),C=d===void 0?null:d,A=f();return E.memoizedState=[A,C],A}function Ys(f,d){var E=i1(),C=d===void 0?null:d,A=E.memoizedState;if(A!==null&&C!==null){var j=A[1];if(Nf(C,j))return A[0]}var V=f();return E.memoizedState=[V,C],V}function U2(f,d){var E=Pf(f),C=E[0],A=E[1];return s1(function(){t.unstable_next(function(){var j=q0.suspense;q0.suspense=d===void 0?null:d;try{A(f)}finally{q0.suspense=j}})},[f,d]),C}function Ah(f,d){var E=o1(f),C=E[0],A=E[1];return Fl(function(){t.unstable_next(function(){var j=q0.suspense;q0.suspense=d===void 0?null:d;try{A(f)}finally{q0.suspense=j}})},[f,d]),C}function j2(f){var d=Pf(!1),E=d[0],C=d[1],A=Pl(function(j){C(!0),t.unstable_next(function(){var V=q0.suspense;q0.suspense=f===void 0?null:f;try{C(!1),j()}finally{q0.suspense=V}})},[f,E]);return[A,E]}function z2(f){var d=o1(!1),E=d[0],C=d[1],A=os(function(j){C(!0),t.unstable_next(function(){var V=q0.suspense;q0.suspense=f===void 0?null:f;try{C(!1),j()}finally{q0.suspense=V}})},[f,E]);return[A,E]}function a1(f,d,E){if(!(Dc=0){var E=c1()-d1;f.actualDuration+=E,d&&(f.selfBaseDuration=E),d1=-1}}var bl=null,$a=null,wa=!1;function V2(){wa&&Qt(!1,"We should not be hydrating here. This is a bug in React. Please file a bug.")}function G2(f){if(!Se)return!1;var d=f.stateNode.containerInfo;return $a=U(d),bl=f,wa=!0,!0}function hm(f,d){return Se?($a=ji(d),X2(f),wa=!0,!0):!1}function Y2(f,d){switch(f.tag){case B:oe(f.stateNode.containerInfo,d);break;case q:We(f.type,f.memoizedProps,f.stateNode,d);break}var E=rE();E.stateNode=d,E.return=f,E.effectTag=Ko,f.lastEffect!==null?(f.lastEffect.nextEffect=E,f.lastEffect=E):f.firstEffect=f.lastEffect=E}function Fh(f,d){switch(d.effectTag=d.effectTag&~au|mi,f.tag){case B:{var E=f.stateNode.containerInfo;switch(d.tag){case q:var C=d.type,A=d.pendingProps;it(E,C,A);break;case ne:var j=d.pendingProps;Ct(E,j);break;case ce:Mt(E);break}break}case q:{var V=f.type,te=f.memoizedProps,se=f.stateNode;switch(d.tag){case q:var Ue=d.type,Qe=d.pendingProps;It(V,te,se,Ue,Qe);break;case ne:var vt=d.pendingProps;sn(V,te,se,vt);break;case ce:rn(V,te,se);break}break}default:return}}function Ph(f,d){switch(f.tag){case q:{var E=f.type,C=f.pendingProps,A=hf(d,E,C);return A!==null?(f.stateNode=A,!0):!1}case ne:{var j=f.pendingProps,V=Bs(d,j);return V!==null?(f.stateNode=V,!0):!1}case ce:{if(Ai){var te=Ba(d);if(te!==null){var se={dehydrated:te,retryTime:Di};f.memoizedState=se;var Ue=iE(te);return Ue.return=f,f.child=Ue,!0}}return!1}default:return!1}}function K2(f){if(!!wa){var d=$a;if(!d){Fh(bl,f),wa=!1,bl=f;return}var E=d;if(!Ph(f,d)){if(d=ji(E),!d||!Ph(f,d)){Fh(bl,f),wa=!1,bl=f;return}Y2(bl,E)}bl=f,$a=U(d)}}function vm(f,d,E){if(!Se)throw Error("Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var C=f.stateNode,A=z(C,f.type,f.memoizedProps,d,E,f);return f.updateQueue=A,A!==null}function mm(f){if(!Se)throw Error("Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var d=f.stateNode,E=f.memoizedProps,C=G(d,E,f);if(C){var A=bl;if(A!==null)switch(A.tag){case B:{var j=A.stateNode.containerInfo;Je(j,d,E);break}case q:{var V=A.type,te=A.memoizedProps,se=A.stateNode;mt(V,te,se,d,E);break}}}return C}function Ih(f){if(!Se)throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var d=f.memoizedState,E=d!==null?d.dehydrated:null;if(!E)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");$(E,f)}function ym(f){if(!Se)throw Error("Expected skipPastDehydratedSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var d=f.memoizedState,E=d!==null?d.dehydrated:null;if(!E)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return Ce(E)}function X2(f){for(var d=f.return;d!==null&&d.tag!==q&&d.tag!==B&&d.tag!==ce;)d=d.return;bl=d}function h1(f){if(!Se||f!==bl)return!1;if(!wa)return X2(f),wa=!0,!1;var d=f.type;if(f.tag!==q||d!=="head"&&d!=="body"&&!Li(d,f.memoizedProps))for(var E=$a;E;)Y2(f,E),E=ji(E);return X2(f),f.tag===ce?$a=ym(f):$a=bl?ji(f.stateNode):null,!0}function v1(){!Se||(bl=null,$a=null,wa=!1)}var m1=nt.ReactCurrentOwner,Sa=!1,Q2,Ks,Xs,Qs,J2,Ta,y1,Td,Tc,Z2;Q2={},Ks={},Xs={},Qs={},J2={},Ta=!1,y1=!1,Td={},Tc={},Z2={};function w0(f,d,E,C){f===null?d.child=$c(d,null,E,C):d.child=Cf(d,f.child,E,C)}function bh(f,d,E,C){d.child=Cf(d,f.child,null,C),d.child=Cf(d,null,E,C)}function Bh(f,d,E,C,A){if(d.type!==d.elementType){var j=E.propTypes;j&&_(j,C,"prop",Wt(E),Nr)}var V=E.render,te=d.ref,se;return uo(d,A),m1.current=d,et("render"),se=Ff(f,d,V,C,te,A),Ri&&d.mode&mr&&d.memoizedState!==null&&(se=Ff(f,d,V,C,te,A)),et(null),f!==null&&!Sa?(_d(f,d,A),Ca(f,d,A)):(d.effectTag|=su,w0(f,d,se,A),d.child)}function Uh(f,d,E,C,A,j){if(f===null){var V=E.type;if(ao(V)&&E.compare===null&&E.defaultProps===void 0){var te=V;return te=ro(V),d.tag=re,d.type=te,tp(d,V),jh(f,d,te,C,A,j)}{var se=V.propTypes;se&&_(se,C,"prop",Wt(V),Nr)}var Ue=yy(E.type,null,C,null,d.mode,j);return Ue.ref=d.ref,Ue.return=d,d.child=Ue,Ue}{var Qe=E.type,vt=Qe.propTypes;vt&&_(vt,C,"prop",Wt(Qe),Nr)}var Nt=f.child;if(A component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",se,se),Q2[se]=!0)}d.mode&mr&&Al.recordLegacyContextWarning(d,null),m1.current=d,te=Ff(null,d,E,A,j,C)}if(d.effectTag|=su,typeof te=="object"&&te!==null&&typeof te.render=="function"&&te.$$typeof===void 0){{var Ue=Wt(E)||"Unknown";Ks[Ue]||(He(!1,"The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",Ue,Ue,Ue),Ks[Ue]=!0)}d.tag=O,Ed();var Qe=!1;Xi(E)?(Qe=!0,Hi(d)):Qe=!1,d.memoizedState=te.state!==null&&te.state!==void 0?te.state:null;var vt=E.getDerivedStateFromProps;return typeof vt=="function"&&Tf(d,E,vt,A),al(d,te),vc(d,E,A,C),ep(null,d,E,!0,Qe,C)}else return d.tag=N,ai&&E.contextTypes&&He(!1,"%s uses the legacy contextTypes API which is no longer supported. Use React.createContext() with React.useContext() instead.",Wt(E)||"Unknown"),Ri&&d.mode&mr&&d.memoizedState!==null&&(te=Ff(null,d,E,A,j,C)),w0(null,d,te,C),tp(d,E),d.child}function tp(f,d){if(d&&d.childContextTypes&&He(!1,"%s(...): childContextTypes cannot be defined on a function component.",d.displayName||d.name||"Component"),f.ref!==null){var E="",C=_o();C&&(E+=` + +Check the render method of \``+C+"`.");var A=C||f._debugID||"",j=f._debugSource;j&&(A=j.fileName+":"+j.lineNumber),J2[A]||(J2[A]=!0,Qt(!1,"Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",E))}if(Ql&&d.defaultProps!==void 0){var V=Wt(d)||"Unknown";Z2[V]||(He(!1,"%s: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.",V),Z2[V]=!0)}if(typeof d.getDerivedStateFromProps=="function"){var te=Wt(d)||"Unknown";Qs[te]||(He(!1,"%s: Function components do not support getDerivedStateFromProps.",te),Qs[te]=!0)}if(typeof d.contextType=="object"&&d.contextType!==null){var se=Wt(d)||"Unknown";Xs[se]||(He(!1,"%s: Function components do not support contextType.",se),Xs[se]=!0)}}var xd={dehydrated:null,retryTime:at};function np(f,d,E){return t1(f,e1)&&(d===null||d.memoizedState!==null)}function Vh(f,d,E){var C=d.mode,A=d.pendingProps;s_(d)&&(d.effectTag|=Xr);var j=Ll.current,V=!1,te=(d.effectTag&Xr)!==xi;if(te||np(j,f,d)?(V=!0,d.effectTag&=~Xr):(f===null||f.memoizedState!==null)&&A.fallback!==void 0&&A.unstable_avoidThisFallback!==!0&&(j=md(j,Rf)),j=ga(j),Fr(d,j),"maxDuration"in A&&(y1||(y1=!0,Qt(!1,"maxDuration has been removed from React. Remove the maxDuration prop."))),f===null){if(A.fallback!==void 0&&(K2(d),Ai)){var se=d.memoizedState;if(se!==null){var Ue=se.dehydrated;if(Ue!==null)return Gh(d,Ue,E)}}if(V){var Qe=A.fallback,vt=rf(null,C,at,null);if(vt.return=d,(d.mode&Y)===Ar){var Nt=d.memoizedState,Yt=Nt!==null?d.child.child:d.child;vt.child=Yt;for(var Ht=Yt;Ht!==null;)Ht.return=vt,Ht=Ht.sibling}var yn=rf(Qe,C,E,null);return yn.return=d,vt.sibling=yn,d.memoizedState=xd,d.child=vt,yn}else{var kr=A.children;return d.memoizedState=null,d.child=$c(d,null,kr,E)}}else{var oi=f.memoizedState;if(oi!==null){if(Ai){var Oi=oi.dehydrated;if(Oi!==null)if(te){if(d.memoizedState!==null)return d.child=f.child,d.effectTag|=Xr,null;var Fo=A.fallback,$i=rf(null,C,at,null);if($i.return=d,$i.child=null,(d.mode&Y)===Ar)for(var ot=$i.child=d.child;ot!==null;)ot.return=$i,ot=ot.sibling;else Cf(d,f.child,null,E);if(en&&d.mode&ii){for(var Ot=0,$e=$i.child;$e!==null;)Ot+=$e.treeBaseDuration,$e=$e.sibling;$i.treeBaseDuration=Ot}var Ut=rf(Fo,C,E,null);return Ut.return=d,$i.sibling=Ut,Ut.effectTag|=mi,$i.childExpirationTime=at,d.memoizedState=xd,d.child=$i,Ut}else return Yh(f,d,Oi,oi,E)}var Pn=f.child,vn=Pn.sibling;if(V){var Wi=A.fallback,pi=C0(Pn,Pn.pendingProps,at);if(pi.return=d,(d.mode&Y)===Ar){var Ku=d.memoizedState,hr=Ku!==null?d.child.child:d.child;if(hr!==Pn.child){pi.child=hr;for(var hu=hr;hu!==null;)hu.return=pi,hu=hu.sibling}}if(en&&d.mode&ii){for(var Kr=0,xu=pi.child;xu!==null;)Kr+=xu.treeBaseDuration,xu=xu.sibling;pi.treeBaseDuration=Kr}var So=C0(vn,Wi,vn.expirationTime);return So.return=d,pi.sibling=So,pi.childExpirationTime=at,d.memoizedState=xd,d.child=pi,So}else{var Vo=A.children,ks=Pn.child,Xu=Cf(d,ks,Vo,E);return d.memoizedState=null,d.child=Xu}}else{var gl=f.child;if(V){var uf=A.fallback,V0=rf(null,C,at,null);if(V0.return=d,V0.child=gl,gl!==null&&(gl.return=V0),(d.mode&Y)===Ar){var Ls=d.memoizedState,$d=Ls!==null?d.child.child:d.child;V0.child=$d;for(var Gf=$d;Gf!==null;)Gf.return=V0,Gf=Gf.sibling}if(en&&d.mode&ii){for(var Fc=0,Hl=V0.child;Hl!==null;)Fc+=Hl.treeBaseDuration,Hl=Hl.sibling;V0.treeBaseDuration=Fc}var G0=rf(uf,C,E,null);return G0.return=d,V0.sibling=G0,G0.effectTag|=mi,V0.childExpirationTime=at,d.memoizedState=xd,d.child=V0,G0}else{d.memoizedState=null;var N1=A.children;return d.child=Cf(d,gl,N1,E)}}}}function rp(f,d,E){d.memoizedState=null;var C=d.pendingProps,A=C.children;return w0(f,d,A,E),d.child}function Gh(f,d,E){if((f.mode&Y)===Ar)Qt(!1,"Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOM.createBlockingRoot(container, { hydrate: true }).render(element) or remove the Suspense components from the server rendered components."),f.expirationTime=Un;else if(go(d)){var C=jl(),A=ws(C);bn&&x(A),f.expirationTime=A}else f.expirationTime=Di,bn&&x(Di);return null}function Yh(f,d,E,C,A){if(V2(),(d.mode&Y)===Ar||go(E))return rp(f,d,A);var j=f.childExpirationTime>=A;if(Sa||j){if(A. Use lowercase "%s" instead.',f,f.toLowerCase());break}case"forward":case"backward":{Qt(!1,'"%s" is not a valid value for revealOrder on . React uses the -s suffix in the spelling. Use "%ss" instead.',f,f.toLowerCase());break}default:Qt(!1,'"%s" is not a supported revealOrder on . Did you mean "together", "forwards" or "backwards"?',f);break}else Qt(!1,'%s is not a supported value for revealOrder on . Did you mean "together", "forwards" or "backwards"?',f)}function Kh(f,d){f!==void 0&&!Tc[f]&&(f!=="collapsed"&&f!=="hidden"?(Tc[f]=!0,Qt(!1,'"%s" is not a supported value for tail on . Did you mean "collapsed" or "hidden"?',f)):d!=="forwards"&&d!=="backwards"&&(Tc[f]=!0,Qt(!1,' is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',f)))}function _1(f,d){{var E=Array.isArray(f),C=!E&&typeof fr(f)=="function";if(E||C){var A=E?"array":"iterable";return Qt(!1,"A nested %s was passed to row #%s in . Wrap it in an additional SuspenseList to configure its revealOrder: ... {%s} ... ",A,d,A),!1}}return!0}function Cm(f,d){if((d==="forwards"||d==="backwards")&&f!==void 0&&f!==null&&f!==!1)if(Array.isArray(f)){for(var E=0;E. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',d)}}function up(f,d,E,C,A,j){var V=f.memoizedState;V===null?f.memoizedState={isBackwards:d,rendering:null,last:C,tail:E,tailExpiration:0,tailMode:A,lastEffect:j}:(V.isBackwards=d,V.rendering=null,V.last=C,V.tail=E,V.tailExpiration=0,V.tailMode=A,V.lastEffect=j)}function op(f,d,E){var C=d.pendingProps,A=C.revealOrder,j=C.tail,V=C.children;Tm(A),Kh(j,A),Cm(V,A),w0(f,d,V,E);var te=Ll.current,se=t1(te,e1);if(se)te=vd(te,e1),d.effectTag|=Xr;else{var Ue=f!==null&&(f.effectTag&Xr)!==xi;Ue&&wm(d,d.child,E),te=ga(te)}if(Fr(d,te),(d.mode&Y)===Ar)d.memoizedState=null;else switch(A){case"forwards":{var Qe=Sm(d.child),vt;Qe===null?(vt=d.child,d.child=null):(vt=Qe.sibling,Qe.sibling=null),up(d,!1,vt,Qe,j,d.lastEffect);break}case"backwards":{var Nt=null,Yt=d.child;for(d.child=null;Yt!==null;){var Ht=Yt.alternate;if(Ht!==null&&n1(Ht)===null){d.child=Yt;break}var yn=Yt.sibling;Yt.sibling=Nt,Nt=Yt,Yt=yn}up(d,!0,Nt,null,j,d.lastEffect);break}case"together":{up(d,!1,null,null,void 0,d.lastEffect);break}default:d.memoizedState=null}return d.child}function xm(f,d,E){Ka(d,d.stateNode.containerInfo);var C=d.pendingProps;return f===null?d.child=Cf(d,null,C,E):w0(f,d,C,E),d.child}function Rm(f,d,E){var C=d.type,A=C._context,j=d.pendingProps,V=d.memoizedProps,te=j.value;{var se=d.type.propTypes;se&&_(se,j,"prop","Context.Provider",Nr)}if(xr(d,te),V!==null){var Ue=V.value,Qe=du(A,te,Ue);if(Qe===0){if(V.children===j.children&&!aa())return Ca(f,d,E)}else Ml(d,A,Qe,E)}var vt=j.children;return w0(f,d,vt,E),d.child}var Xh=!1;function Am(f,d,E){var C=d.type;C._context===void 0?C!==C.Consumer&&(Xh||(Xh=!0,Qt(!1,"Rendering directly is not supported and will be removed in a future major release. Did you mean to render instead?"))):C=C._context;var A=d.pendingProps,j=A.children;typeof j!="function"&&He(!1,"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."),uo(d,E);var V=Ve(C,A.unstable_observedBits),te;return m1.current=d,et("render"),te=j(V),et(null),d.effectTag|=su,w0(f,d,te,E),d.child}function Om(f,d,E){var C=d.type.impl;if(C.reconcileChildren===!1)return null;var A=d.pendingProps,j=A.children;return w0(f,d,j,E),d.child}function lp(f,d,E){var C=d.pendingProps,A=C.children;return w0(f,d,A,E),d.child}function sp(){Sa=!0}function Ca(f,d,E){tu(d),f!==null&&(d.dependencies=f.dependencies),en&&Nh(d);var C=d.expirationTime;C!==at&&Qd(C);var A=d.childExpirationTime;return A=E;se&&(d.effectTag|=Dr)}break;case ce:{var Ue=d.memoizedState;if(Ue!==null){if(Ai&&Ue.dehydrated!==null){Fr(d,ga(Ll.current)),d.effectTag|=Xr;break}var Qe=d.child,vt=Qe.childExpirationTime;if(vt!==at&&vt>=E)return Vh(f,d,E);Fr(d,ga(Ll.current));var Nt=Ca(f,d,E);return Nt!==null?Nt.sibling:null}else Fr(d,ga(Ll.current));break}case ct:{var Yt=(f.effectTag&Xr)!==xi,Ht=d.childExpirationTime>=E;if(Yt){if(Ht)return op(f,d,E);d.effectTag|=Xr}var yn=d.memoizedState;if(yn!==null&&(yn.rendering=null,yn.tail=null),Fr(d,Ll.current),Ht)break;return null}}return Ca(f,d,E)}else Sa=!1}else Sa=!1;switch(d.expirationTime=at,d.tag){case T:return Dm(f,d,d.type,E);case we:{var kr=d.elementType;return bf(f,d,kr,C,E)}case N:{var oi=d.type,Oi=d.pendingProps,Fo=d.elementType===oi?Oi:qi(oi,Oi);return $2(f,d,oi,Fo,E)}case O:{var $i=d.type,ot=d.pendingProps,Ot=d.elementType===$i?ot:qi($i,ot);return qh(f,d,$i,Ot,E)}case B:return _m(f,d,E);case q:return Em(f,d,E);case ne:return If(f,d);case ce:return Vh(f,d,E);case H:return xm(f,d,E);case ue:{var $e=d.type,Ut=d.pendingProps,Pn=d.elementType===$e?Ut:qi($e,Ut);return Bh(f,d,$e,Pn,E)}case m:return gm(f,d,E);case pe:return zh(f,d,E);case _e:return Hh(f,d,E);case ve:return Rm(f,d,E);case ge:return Am(f,d,E);case me:{var vn=d.type,Wi=d.pendingProps,pi=qi(vn,Wi);if(d.type!==d.elementType){var Ku=vn.propTypes;Ku&&_(Ku,pi,"prop",Wt(vn),Nr)}return pi=qi(vn.type,pi),Uh(f,d,vn,pi,C,E)}case re:return jh(f,d,d.type,d.pendingProps,C,E);case Ie:{var hr=d.type,hu=d.pendingProps,Kr=d.elementType===hr?hu:qi(hr,hu);return Cd(f,d,hr,Kr,E)}case ct:return op(f,d,E);case pt:{if(Vt)return Om(f,d,E);break}case Xe:{if(Au)return lp(f,d,E);break}}throw Error("Unknown unit of work tag ("+d.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function Qh(f,d,E,C){return{currentFiber:f,impl:E,instance:null,prevProps:null,props:d,state:C}}function Rd(f){return f.tag===ce&&f.memoizedState!==null}function D1(f){return f.child.sibling.child}var Jh={};function fp(f,d,E){if(Au){if(f.tag===q){var C=f.type,A=f.memoizedProps,j=f.stateNode,V=N0(j);V!==null&&d(C,A||Jh,V)===!0&&E.push(V)}var te=f.child;Rd(f)&&(te=D1(f)),te!==null&&cp(te,d,E)}}function Zh(f,d){if(Au){if(f.tag===q){var E=f.type,C=f.memoizedProps,A=f.stateNode,j=N0(A);if(j!==null&&d(E,C,j)===!0)return j}var V=f.child;if(Rd(f)&&(V=D1(f)),V!==null)return $h(V,d)}return null}function cp(f,d,E){for(var C=f;C!==null;)fp(C,d,E),C=C.sibling}function $h(f,d){for(var E=f;E!==null;){var C=Zh(E,d);if(C!==null)return C;E=E.sibling}return null}function ev(f,d,E){if(Ad(f,d))E.push(f.stateNode.methods);else{var C=f.child;Rd(f)&&(C=D1(f)),C!==null&&dp(C,d,E)}}function dp(f,d,E){for(var C=f;C!==null;)ev(C,d,E),C=C.sibling}function Ad(f,d){return f.tag===Xe&&f.type===d&&f.stateNode!==null}function Od(f,d){return{getChildren:function(){var E=d.fiber,C=E.child,A=[];return C!==null&&dp(C,f,A),A.length===0?null:A},getChildrenFromRoot:function(){for(var E=d.fiber,C=E;C!==null;){var A=C.return;if(A===null||(C=A,C.tag===Xe&&C.type===f))break}var j=[];return dp(C.child,f,j),j.length===0?null:j},getParent:function(){for(var E=d.fiber.return;E!==null;){if(E.tag===Xe&&E.type===f)return E.stateNode.methods;E=E.return}return null},getProps:function(){var E=d.fiber;return E.memoizedProps},queryAllNodes:function(E){var C=d.fiber,A=C.child,j=[];return A!==null&&cp(A,E,j),j.length===0?null:j},queryFirstNode:function(E){var C=d.fiber,A=C.child;return A!==null?$h(A,E):null},containsNode:function(E){for(var C=cr(E);C!==null;){if(C.tag===Xe&&C.type===f&&C.stateNode===d)return!0;C=C.return}return!1}}}function qo(f){f.effectTag|=Dr}function Md(f){f.effectTag|=O0}var xa,ef,kd,Ld;if(Bo)xa=function(f,d,E,C){for(var A=d.child;A!==null;){if(A.tag===q||A.tag===ne)Qr(f,A.stateNode);else if(Vt&&A.tag===pt)Qr(f,A.stateNode.instance);else if(A.tag!==H){if(A.child!==null){A.child.return=A,A=A.child;continue}}if(A===d)return;for(;A.sibling===null;){if(A.return===null||A.return===d)return;A=A.return}A.sibling.return=A.return,A=A.sibling}},ef=function(f){},kd=function(f,d,E,C,A){var j=f.memoizedProps;if(j!==C){var V=d.stateNode,te=fl(),se=vo(V,E,j,C,A,te);d.updateQueue=se,se&&qo(d)}},Ld=function(f,d,E,C){E!==C&&qo(d)};else if(Q){xa=function(f,d,E,C){for(var A=d.child;A!==null;){e:if(A.tag===q){var j=A.stateNode;if(E&&C){var V=A.memoizedProps,te=A.type;j=$r(j,te,V,A)}Qr(f,j)}else if(A.tag===ne){var se=A.stateNode;if(E&&C){var Ue=A.memoizedProps;se=$l(se,Ue,A)}Qr(f,se)}else if(Vt&&A.tag===pt){var Qe=A.stateNode.instance;if(E&&C){var vt=A.memoizedProps,Nt=A.type;Qe=$r(Qe,Nt,vt,A)}Qr(f,Qe)}else if(A.tag!==H){if(A.tag===ce){if((A.effectTag&Dr)!==xi){var Yt=A.memoizedState!==null;if(Yt){var Ht=A.child;if(Ht!==null){Ht.child!==null&&(Ht.child.return=Ht,xa(f,Ht,!0,Yt));var yn=Ht.sibling;if(yn!==null){yn.return=A,A=yn;continue}}}}if(A.child!==null){A.child.return=A,A=A.child;continue}}else if(A.child!==null){A.child.return=A,A=A.child;continue}}if(A=A,A===d)return;for(;A.sibling===null;){if(A.return===null||A.return===d)return;A=A.return}A.sibling.return=A.return,A=A.sibling}};var pp=function(f,d,E,C){for(var A=d.child;A!==null;){e:if(A.tag===q){var j=A.stateNode;if(E&&C){var V=A.memoizedProps,te=A.type;j=$r(j,te,V,A)}Qn(f,j)}else if(A.tag===ne){var se=A.stateNode;if(E&&C){var Ue=A.memoizedProps;se=$l(se,Ue,A)}Qn(f,se)}else if(Vt&&A.tag===pt){var Qe=A.stateNode.instance;if(E&&C){var vt=A.memoizedProps,Nt=A.type;Qe=$r(Qe,Nt,vt,A)}Qn(f,Qe)}else if(A.tag!==H){if(A.tag===ce){if((A.effectTag&Dr)!==xi){var Yt=A.memoizedState!==null;if(Yt){var Ht=A.child;if(Ht!==null){Ht.child!==null&&(Ht.child.return=Ht,pp(f,Ht,!0,Yt));var yn=Ht.sibling;if(yn!==null){yn.return=A,A=yn;continue}}}}if(A.child!==null){A.child.return=A,A=A.child;continue}}else if(A.child!==null){A.child.return=A,A=A.child;continue}}if(A=A,A===d)return;for(;A.sibling===null;){if(A.return===null||A.return===d)return;A=A.return}A.sibling.return=A.return,A=A.sibling}};ef=function(f){var d=f.stateNode,E=f.firstEffect===null;if(!E){var C=d.containerInfo,A=To(C);pp(A,f,!1,!1),d.pendingChildren=A,qo(f),fc(C,A)}},kd=function(f,d,E,C,A){var j=f.stateNode,V=f.memoizedProps,te=d.firstEffect===null;if(te&&V===C){d.stateNode=j;return}var se=d.stateNode,Ue=fl(),Qe=null;if(V!==C&&(Qe=vo(se,E,V,C,A,Ue)),te&&Qe===null){d.stateNode=j;return}var vt=ys(j,Qe,E,V,C,d,te,se);Ou(vt,E,C,A,Ue)&&qo(d),d.stateNode=vt,te?qo(d):xa(vt,d,!1,!1)},Ld=function(f,d,E,C){if(E!==C){var A=rs(),j=fl();d.stateNode=vs(C,A,j,d),qo(d)}}}else ef=function(f){},kd=function(f,d,E,C,A){},Ld=function(f,d,E,C){};function Nd(f,d){switch(f.tailMode){case"hidden":{for(var E=f.tail,C=null;E!==null;)E.alternate!==null&&(C=E),E=E.sibling;C===null?f.tail=null:C.sibling=null;break}case"collapsed":{for(var A=f.tail,j=null;A!==null;)A.alternate!==null&&(j=A),A=A.sibling;j===null?!d&&f.tail!==null?f.tail.sibling=null:f.tail=null:j.sibling=null;break}}}function tv(f,d,E){var C=d.pendingProps;switch(d.tag){case T:break;case we:break;case re:case N:break;case O:{var A=d.type;Xi(A)&&qs(d);break}case B:{o0(d),Ao(d);var j=d.stateNode;if(j.pendingContext&&(j.context=j.pendingContext,j.pendingContext=null),f===null||f.child===null){var V=h1(d);V&&qo(d)}ef(d);break}case q:{L2(d);var te=rs(),se=d.type;if(f!==null&&d.stateNode!=null){if(kd(f,d,se,C,te),gi){var Ue=f.memoizedProps.listeners,Qe=C.listeners;Ue!==Qe&&qo(d)}f.ref!==d.ref&&Md(d)}else{if(!C){if(d.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");break}var vt=fl(),Nt=h1(d);if(Nt){if(vm(d,te,vt)&&qo(d),gi){var Yt=C.listeners;Yt!=null&&hn(Yt,d,te)}}else{var Ht=Ki(se,C,te,vt,d);if(xa(Ht,d,!1,!1),d.stateNode=Ht,gi){var yn=C.listeners;yn!=null&&hn(yn,d,te)}Ou(Ht,se,C,te,vt)&&qo(d)}d.ref!==null&&Md(d)}break}case ne:{var kr=C;if(f&&d.stateNode!=null){var oi=f.memoizedProps;Ld(f,d,oi,kr)}else{if(typeof kr!="string"&&d.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");var Oi=rs(),Fo=fl(),$i=h1(d);$i?mm(d)&&qo(d):d.stateNode=vs(kr,Oi,Fo,d)}break}case ue:break;case ce:{Ea(d);var ot=d.memoizedState;if(Ai&&ot!==null&&ot.dehydrated!==null)if(f===null){var Ot=h1(d);if(!Ot)throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");return Ih(d),bn&&x(Di),null}else return v1(),(d.effectTag&Xr)===xi&&(d.memoizedState=null),d.effectTag|=Dr,null;if((d.effectTag&Xr)!==xi)return d.expirationTime=E,d;var $e=ot!==null,Ut=!1;if(f===null)d.memoizedProps.fallback!==void 0&&h1(d);else{var Pn=f.memoizedState;if(Ut=Pn!==null,!$e&&Pn!==null){var vn=f.child.sibling;if(vn!==null){var Wi=d.firstEffect;Wi!==null?(d.firstEffect=vn,vn.nextEffect=Wi):(d.firstEffect=d.lastEffect=vn,vn.nextEffect=null),vn.effectTag=Ko}}}if($e&&!Ut&&(d.mode&Y)!==Ar){var pi=f===null&&d.memoizedProps.unstable_avoidThisFallback!==!0;pi||t1(Ll.current,Rf)?_v():Ev()}Q&&$e&&(d.effectTag|=Dr),Bo&&($e||Ut)&&(d.effectTag|=Dr),Yi&&d.updateQueue!==null&&d.memoizedProps.suspenseCallback!=null&&(d.effectTag|=Dr);break}case m:break;case pe:break;case _e:break;case H:o0(d),ef(d);break;case ve:io(d);break;case ge:break;case me:break;case Ie:{var Ku=d.type;Xi(Ku)&&qs(d);break}case ct:{Ea(d);var hr=d.memoizedState;if(hr===null)break;var hu=(d.effectTag&Xr)!==xi,Kr=hr.rendering;if(Kr===null)if(hu)Nd(hr,!1);else{var xu=Dv()&&(f===null||(f.effectTag&Xr)===xi);if(!xu)for(var So=d.child;So!==null;){var Vo=n1(So);if(Vo!==null){hu=!0,d.effectTag|=Xr,Nd(hr,!1);var ks=Vo.updateQueue;return ks!==null&&(d.updateQueue=ks,d.effectTag|=Dr),hr.lastEffect===null&&(d.firstEffect=null),d.lastEffect=hr.lastEffect,am(d,E),Fr(d,vd(Ll.current,e1)),d.child}So=So.sibling}}else{if(!hu){var Xu=n1(Kr);if(Xu!==null){d.effectTag|=Xr,hu=!0;var gl=Xu.updateQueue;if(gl!==null&&(d.updateQueue=gl,d.effectTag|=Dr),Nd(hr,!0),hr.tail===null&&hr.tailMode==="hidden"&&!Kr.alternate){var uf=d.lastEffect=hr.lastEffect;return uf!==null&&(uf.nextEffect=null),null}}else if(yt()>hr.tailExpiration&&E>Di){d.effectTag|=Xr,hu=!0,Nd(hr,!1);var V0=E-1;d.expirationTime=d.childExpirationTime=V0,bn&&x(V0)}}if(hr.isBackwards)Kr.sibling=d.child,d.child=Kr;else{var Ls=hr.last;Ls!==null?Ls.sibling=Kr:d.child=Kr,hr.last=Kr}}if(hr.tail!==null){if(hr.tailExpiration===0){var $d=500;hr.tailExpiration=yt()+$d}var Gf=hr.tail;hr.rendering=Gf,hr.tail=Gf.sibling,hr.lastEffect=d.lastEffect,Gf.sibling=null;var Fc=Ll.current;return hu?Fc=vd(Fc,e1):Fc=ga(Fc),Fr(d,Fc),Gf}break}case pt:{if(Vt){var Hl=d.type.impl,G0=d.stateNode;if(G0===null){var N1=Hl.getInitialState,v_;N1!==void 0&&(v_=N1(C)),G0=d.stateNode=Qh(d,C,Hl,v_||{});var m_=ht(G0);if(G0.instance=m_,Hl.reconcileChildren===!1)return null;xa(m_,d,!1,!1),Yn(G0)}else{var EE=G0.props;if(G0.prevProps=EE,G0.props=C,G0.currentFiber=d,Q){var y_=la(G0);G0.instance=y_,xa(y_,d,!1,!1)}var DE=Cn(G0);DE&&qo(d)}}break}case Xe:{if(Au)if(f===null){var wE=d.type,Ry={fiber:d,methods:null};if(d.stateNode=Ry,Ry.methods=Od(wE,Ry),gi){var g_=C.listeners;if(g_!=null){var SE=rs();hn(g_,d,SE)}}d.ref!==null&&(Md(d),qo(d))}else{if(gi){var TE=f.memoizedProps.listeners,CE=C.listeners;(TE!==CE||d.ref!==null)&&qo(d)}else d.ref!==null&&qo(d);f.ref!==d.ref&&Md(d)}break}default:throw Error("Unknown unit of work tag ("+d.tag+"). This error is likely caused by a bug in React. Please file an issue.")}return null}function Mm(f,d){switch(f.tag){case O:{var E=f.type;Xi(E)&&qs(f);var C=f.effectTag;return C&ho?(f.effectTag=C&~ho|Xr,f):null}case B:{o0(f),Ao(f);var A=f.effectTag;if((A&Xr)!==xi)throw Error("The root failed to unmount after an error. This is likely a bug in React. Please file an issue.");return f.effectTag=A&~ho|Xr,f}case q:return L2(f),null;case ce:{if(Ea(f),Ai){var j=f.memoizedState;if(j!==null&&j.dehydrated!==null){if(f.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");v1()}}var V=f.effectTag;return V&ho?(f.effectTag=V&~ho|Xr,f):null}case ct:return Ea(f),null;case H:return o0(f),null;case ve:return io(f),null;default:return null}}function nv(f){switch(f.tag){case O:{var d=f.type.childContextTypes;d!=null&&qs(f);break}case B:{o0(f),Ao(f);break}case q:{L2(f);break}case H:o0(f);break;case ce:Ea(f);break;case ct:Ea(f);break;case ve:io(f);break;default:break}}function hp(f,d){return{value:f,source:d,stack:Cr(d)}}var vp=function(f,d,E,C,A,j,V,te,se){var Ue=Array.prototype.slice.call(arguments,3);try{d.apply(E,Ue)}catch(Qe){this.onError(Qe)}};if(typeof window!="undefined"&&typeof window.dispatchEvent=="function"&&typeof document!="undefined"&&typeof document.createEvent=="function"){var mp=document.createElement("react"),km=function(f,d,E,C,A,j,V,te,se){if(typeof document=="undefined")throw Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");var Ue=document.createEvent("Event"),Qe=!0,vt=window.event,Nt=Object.getOwnPropertyDescriptor(window,"event"),Yt=Array.prototype.slice.call(arguments,3);function Ht(){mp.removeEventListener(Fo,Ht,!1),typeof window.event!="undefined"&&window.hasOwnProperty("event")&&(window.event=vt),d.apply(E,Yt),Qe=!1}var yn,kr=!1,oi=!1;function Oi($i){if(yn=$i.error,kr=!0,yn===null&&$i.colno===0&&$i.lineno===0&&(oi=!0),$i.defaultPrevented&&yn!=null&&typeof yn=="object")try{yn._suppressLogging=!0}catch(ot){}}var Fo="react-"+(f||"invokeguardedcallback");window.addEventListener("error",Oi),mp.addEventListener(Fo,Ht,!1),Ue.initEvent(Fo,!1,!1),mp.dispatchEvent(Ue),Nt&&Object.defineProperty(window,"event",Nt),Qe&&(kr?oi&&(yn=new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://fb.me/react-crossorigin-error for more information.")):yn=new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`),this.onError(yn)),window.removeEventListener("error",Oi)};vp=km}var Lm=vp,S0=!1,Fd=null,Nm={onError:function(f){S0=!0,Fd=f}};function pl(f,d,E,C,A,j,V,te,se){S0=!1,Fd=null,Lm.apply(Nm,arguments)}function tr(){return S0}function Js(){if(S0){var f=Fd;return S0=!1,Fd=null,f}else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")}function hl(f){return!0}function lo(f){var d=hl(f);if(d!==!1){var E=f.error;{var C=f.componentName,A=f.componentStack,j=f.errorBoundaryName,V=f.errorBoundaryFound,te=f.willRetry;if(E!=null&&E._suppressLogging){if(V&&te)return;console.error(E)}var se=C?"The above error occurred in the <"+C+"> component:":"The above error occurred in one of your React components:",Ue;V&&j?te?Ue="React will try to recreate this component tree from scratch "+("using the error boundary you provided, "+j+"."):Ue="This error was initially handled by the error boundary "+j+`. +Recreating the tree from scratch failed so React will unmount the tree.`:Ue=`Consider adding an error boundary to your tree to customize error handling behavior. +Visit https://fb.me/react-error-boundaries to learn more about error boundaries.`;var Qe=""+se+A+` + +`+(""+Ue);console.error(Qe)}}}var rv=null;rv=new Set;var Zs=typeof WeakSet=="function"?WeakSet:Set;function yp(f,d){var E=d.source,C=d.stack;C===null&&E!==null&&(C=Cr(E));var A={componentName:E!==null?Wt(E.type):null,componentStack:C!==null?C:"",error:d.value,errorBoundary:null,errorBoundaryName:null,errorBoundaryFound:!1,willRetry:!1};f!==null&&f.tag===O&&(A.errorBoundary=f.stateNode,A.errorBoundaryName=Wt(f.type),A.errorBoundaryFound=!0,A.willRetry=!0);try{lo(A)}catch(j){setTimeout(function(){throw j})}}var Fm=function(f,d){Bi(f,"componentWillUnmount"),d.props=f.memoizedProps,d.state=f.memoizedState,d.componentWillUnmount(),Ci()};function iv(f,d){if(pl(null,Fm,null,f,d),tr()){var E=Js();qf(f,E)}}function gp(f){var d=f.ref;if(d!==null)if(typeof d=="function"){if(pl(null,d,null,null),tr()){var E=Js();qf(f,E)}}else d.current=null}function Pm(f,d){if(pl(null,d,null),tr()){var E=Js();qf(f,E)}}function _p(f,d){switch(d.tag){case N:case ue:case re:{Cc(cm,Of,d);return}case O:{if(d.effectTag&M0&&f!==null){var E=f.memoizedProps,C=f.memoizedState;Bi(d,"getSnapshotBeforeUpdate");var A=d.stateNode;d.type===d.elementType&&!Ta&&(A.props!==d.memoizedProps&&Qt(!1,"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(d.type)||"instance"),A.state!==d.memoizedState&&Qt(!1,"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(d.type)||"instance"));var j=A.getSnapshotBeforeUpdate(d.elementType===d.type?E:qi(d.type,E),C);{var V=rv;j===void 0&&!V.has(d.type)&&(V.add(d.type),He(!1,"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",Wt(d.type)))}A.__reactInternalSnapshotBeforeUpdate=j,Ci()}return}case B:case q:case ne:case H:case Ie:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function Cc(f,d,E){var C=E.updateQueue,A=C!==null?C.lastEffect:null;if(A!==null){var j=A.next,V=j;do{if((V.tag&f)!==Of){var te=V.destroy;V.destroy=void 0,te!==void 0&&te()}if((V.tag&d)!==Of){var se=V.create;V.destroy=se();{var Ue=V.destroy;if(Ue!==void 0&&typeof Ue!="function"){var Qe=void 0;Ue===null?Qe=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof Ue.then=="function"?Qe=` + +It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: + +useEffect(() => { + async function fetchData() { + // You can await here + const response = await MyAPI.getData(someId); + // ... + } + fetchData(); +}, [someId]); // Or [] if effect doesn't need props or state + +Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching`:Qe=" You returned: "+Ue,He(!1,"An effect function must not return anything besides a function, which is used for clean-up.%s%s",Qe,Cr(E))}}}V=V.next}while(V!==j)}}function Ra(f){if((f.effectTag&Po)!==xi)switch(f.tag){case N:case ue:case re:{Cc(sr,Of,f),Cc(Of,r1,f);break}default:break}}function Ep(f,d,E,C){switch(E.tag){case N:case ue:case re:{Cc(dm,cl,E);break}case O:{var A=E.stateNode;if(E.effectTag&Dr)if(d===null)Bi(E,"componentDidMount"),E.type===E.elementType&&!Ta&&(A.props!==E.memoizedProps&&Qt(!1,"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance"),A.state!==E.memoizedState&&Qt(!1,"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance")),A.componentDidMount(),Ci();else{var j=E.elementType===E.type?d.memoizedProps:qi(E.type,d.memoizedProps),V=d.memoizedState;Bi(E,"componentDidUpdate"),E.type===E.elementType&&!Ta&&(A.props!==E.memoizedProps&&Qt(!1,"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance"),A.state!==E.memoizedState&&Qt(!1,"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance")),A.componentDidUpdate(j,V,A.__reactInternalSnapshotBeforeUpdate),Ci()}var te=E.updateQueue;te!==null&&(E.type===E.elementType&&!Ta&&(A.props!==E.memoizedProps&&Qt(!1,"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance"),A.state!==E.memoizedState&&Qt(!1,"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",Wt(E.type)||"instance")),g0(E,te,A,C));return}case B:{var se=E.updateQueue;if(se!==null){var Ue=null;if(E.child!==null)switch(E.child.tag){case q:Ue=N0(E.child.stateNode);break;case O:Ue=E.child.stateNode;break}g0(E,se,Ue,C)}return}case q:{var Qe=E.stateNode;if(d===null&&E.effectTag&Dr){var vt=E.type,Nt=E.memoizedProps;Hu(Qe,vt,Nt,E)}return}case ne:return;case H:return;case _e:{if(en){var Yt=E.memoizedProps.onRender;typeof Yt=="function"&&(bn?Yt(E.memoizedProps.id,d===null?"mount":"update",E.actualDuration,E.treeBaseDuration,E.actualStartTime,Il(),f.memoizedInteractions):Yt(E.memoizedProps.id,d===null?"mount":"update",E.actualDuration,E.treeBaseDuration,E.actualStartTime,Il()))}return}case ce:{Bl(f,E);return}case ct:case Ie:case pt:case Xe:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function Pd(f,d){if(Bo)for(var E=f;;){if(E.tag===q){var C=E.stateNode;d?Ia(C):ua(E.stateNode,E.memoizedProps)}else if(E.tag===ne){var A=E.stateNode;d?yo(A):Zo(A,E.memoizedProps)}else if(E.tag===ce&&E.memoizedState!==null&&E.memoizedState.dehydrated===null){var j=E.child.sibling;j.return=E,E=j;continue}else if(E.child!==null){E.child.return=E,E=E.child;continue}if(E===f)return;for(;E.sibling===null;){if(E.return===null||E.return===f)return;E=E.return}E.sibling.return=E.return,E=E.sibling}}function bu(f){var d=f.ref;if(d!==null){var E=f.stateNode,C;switch(f.tag){case q:C=N0(E);break;default:C=E}Au&&f.tag===Xe&&(C=E.methods),typeof d=="function"?d(C):(d.hasOwnProperty("current")||He(!1,"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().%s",Wt(f.type),Cr(f)),d.current=C)}}function Yu(f){var d=f.ref;d!==null&&(typeof d=="function"?d(null):d.current=null)}function Dp(f,d,E){switch(kn(d),d.tag){case N:case ue:case me:case re:{var C=d.updateQueue;if(C!==null){var A=C.lastEffect;if(A!==null){var j=A.next,V=E>Kn?Kn:E;Sn(V,function(){var oi=j;do{var Oi=oi.destroy;Oi!==void 0&&Pm(d,Oi),oi=oi.next}while(oi!==j)})}}break}case O:{gp(d);var te=d.stateNode;typeof te.componentWillUnmount=="function"&&iv(d,te);return}case q:{if(gi){var se=d.dependencies;if(se!==null){var Ue=se.responders;if(Ue!==null){for(var Qe=Array.from(Ue.values()),vt=0,Nt=Qe.length;vt component higher in the tree to provide a loading indicator or placeholder to display.`+Cr(E))}kp(),C=hp(C,E);var Nt=d;do{switch(Nt.tag){case B:{var Yt=C;Nt.effectTag|=ho,Nt.expirationTime=A;var Ht=sv(Nt,Yt,A);ld(Nt,Ht);return}case O:var yn=C,kr=Nt.type,oi=Nt.stateNode;if((Nt.effectTag&Xr)===xi&&(typeof kr.getDerivedStateFromError=="function"||oi!==null&&typeof oi.componentDidCatch=="function"&&!Ip(oi))){Nt.effectTag|=ho,Nt.expirationTime=A;var Oi=av(Nt,yn,A);ld(Nt,Oi);return}break;default:break}Nt=Nt.return}while(Nt!==null)}var Oa=Math.ceil,Mr=nt.ReactCurrentDispatcher,Sp=nt.ReactCurrentOwner,vl=nt.IsSomeRendererActing,gu=0,T1=1,Ui=2,Tp=4,Bd=8,T0=16,Os=32,Bf=0,Ud=1,Cp=2,C1=3,x1=4,xp=5,nr=gu,ml=null,Gn=null,Wo=at,Lo=Bf,jd=null,Ul=Un,R1=Un,Rc=null,Ac=at,zd=!1,Rp=0,No=500,dn=null,Hd=!1,qd=null,Oc=null,Mc=!1,kc=null,A1=Do,Ap=at,tf=null,Hm=50,Lc=0,Wd=null,cv=50,O1=0,Uf=null,jf=null,M1=at;function jl(){return(nr&(T0|Os))!==gu?no(yt()):(M1!==at||(M1=no(yt())),M1)}function Nc(){return no(yt())}function zf(f,d,E){var C=d.mode;if((C&Y)===Ar)return Un;var A=Jt();if((C&ri)===Ar)return A===Ni?Un:to;if((nr&T0)!==gu)return Wo;var j;if(E!==null)j=ca(f,E.timeoutMs|0||Ef);else switch(A){case Ni:j=Un;break;case ni:j=ja(f);break;case Kn:case eo:j=ws(f);break;case Eo:j=ru;break;default:throw Error("Expected a valid priority level")}return ml!==null&&j===Wo&&(j-=1),j}function qm(f,d){sy(),dy(f);var E=Vd(f,d);if(E===null){fy(f);return}Hp(f,d),sa();var C=Jt();if(d===Un?(nr&Bd)!==gu&&(nr&(T0|Os))===gu?(W(E,d),k1(E)):(W0(E),W(E,d),nr===gu&&Bt()):(W0(E),W(E,d)),(nr&Tp)!==gu&&(C===ni||C===Ni))if(tf===null)tf=new Map([[E,d]]);else{var A=tf.get(E);(A===void 0||A>d)&&tf.set(E,d)}}var yl=qm;function Vd(f,d){f.expirationTimeA?C:A}function W0(f){var d=f.lastExpiredTime;if(d!==at){f.callbackExpirationTime=Un,f.callbackPriority=Ni,f.callbackNode=Tn(k1.bind(null,f));return}var E=Gd(f),C=f.callbackNode;if(E===at){C!==null&&(f.callbackNode=null,f.callbackExpirationTime=at,f.callbackPriority=Do);return}var A=jl(),j=rd(A,E);if(C!==null){var V=f.callbackPriority,te=f.callbackExpirationTime;if(te===E&&V>=j)return;ir(C)}f.callbackExpirationTime=E,f.callbackPriority=j;var se;E===Un?se=Tn(k1.bind(null,f)):f0?se=_n(j,Yd.bind(null,f)):se=_n(j,Yd.bind(null,f),{timeout:j0(E)-yt()}),f.callbackNode=se}function Yd(f,d){if(M1=at,d){var E=jl();return Vp(f,E),W0(f),null}var C=Gd(f);if(C!==at){var A=f.callbackNode;if((nr&(T0|Os))!==gu)throw Error("Should not already be working.");if(nf(),(f!==ml||C!==Wo)&&(Hf(f,C),ee(f,C)),Gn!==null){var j=nr;nr|=T0;var V=mv(f),te=Kd(f);yf(Gn);do try{ey();break}catch(Qe){vv(f,Qe)}while(!0);if(gt(),nr=j,yv(V),bn&&Xd(te),Lo===Ud){var se=jd;throw zp(),Hf(f,C),Vf(f,C),W0(f),se}if(Gn!==null)zp();else{Rv();var Ue=f.finishedWork=f.current.alternate;f.finishedExpirationTime=C,Wm(f,Ue,Lo,C)}if(W0(f),f.callbackNode===A)return Yd.bind(null,f)}}return null}function Wm(f,d,E,C){switch(ml=null,E){case Bf:case Ud:throw Error("Root did not complete. This is a bug in React.");case Cp:{Vp(f,C>ru?ru:C);break}case C1:{Vf(f,C);var A=f.lastSuspendedTime;C===A&&(f.nextKnownPendingLevel=Lp(d)),p();var j=Ul===Un;if(j&&!(Jo&&Wf.current)){var V=Rp+No-yt();if(V>10){if(zd){var te=f.lastPingedTime;if(te===at||te>=C){f.lastPingedTime=C,Hf(f,C);break}}var se=Gd(f);if(se!==at&&se!==C)break;if(A!==at&&A!==C){f.lastPingedTime=A;break}f.timeoutHandle=Tt(so.bind(null,f),V);break}}so(f);break}case x1:{Vf(f,C);var Ue=f.lastSuspendedTime;if(C===Ue&&(f.nextKnownPendingLevel=Lp(d)),p(),!(Jo&&Wf.current)){if(zd){var Qe=f.lastPingedTime;if(Qe===at||Qe>=C){f.lastPingedTime=C,Hf(f,C);break}}var vt=Gd(f);if(vt!==at&&vt!==C)break;if(Ue!==at&&Ue!==C){f.lastPingedTime=Ue;break}var Nt;if(R1!==Un)Nt=j0(R1)-yt();else if(Ul===Un)Nt=0;else{var Yt=wv(Ul),Ht=yt(),yn=j0(C)-Ht,kr=Ht-Yt;kr<0&&(kr=0),Nt=Up(kr)-kr,yn10){f.timeoutHandle=Tt(so.bind(null,f),Nt);break}}so(f);break}case xp:{if(!(Jo&&Wf.current)&&Ul!==Un&&Rc!==null){var oi=jp(Ul,C,Rc);if(oi>10){Vf(f,C),f.timeoutHandle=Tt(so.bind(null,f),oi);break}}so(f);break}default:throw Error("Unknown root exit status.")}}function k1(f){var d=f.lastExpiredTime,E=d!==at?d:Un;if(f.finishedExpirationTime===E)so(f);else{if((nr&(T0|Os))!==gu)throw Error("Should not already be working.");if(nf(),(f!==ml||E!==Wo)&&(Hf(f,E),ee(f,E)),Gn!==null){var C=nr;nr|=T0;var A=mv(f),j=Kd(f);yf(Gn);do try{Sv();break}catch(te){vv(f,te)}while(!0);if(gt(),nr=C,yv(A),bn&&Xd(j),Lo===Ud){var V=jd;throw zp(),Hf(f,E),Vf(f,E),W0(f),V}if(Gn!==null)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");Rv(),f.finishedWork=f.current.alternate,f.finishedExpirationTime=E,Vm(f,Lo,E),W0(f)}}return null}function Vm(f,d,E){ml=null,(d===C1||d===x1)&&p(),so(f)}function Gm(f,d){Vp(f,d),W0(f),(nr&(T0|Os))===gu&&Bt()}function dv(){if((nr&(T1|T0|Os))!==gu){(nr&T0)!==gu&&Qt(!1,"unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.");return}Km(),nf()}function Ym(f){return Sn(Kn,f)}function pv(f,d,E,C){return Sn(Ni,f.bind(null,d,E,C))}function Km(){if(tf!==null){var f=tf;tf=null,f.forEach(function(d,E){Vp(E,d),W0(E)}),Bt()}}function Xm(f,d){var E=nr;nr|=T1;try{return f(d)}finally{nr=E,nr===gu&&Bt()}}function Qm(f,d){var E=nr;nr|=Ui;try{return f(d)}finally{nr=E,nr===gu&&Bt()}}function hv(f,d,E,C){var A=nr;nr|=Tp;try{return Sn(ni,f.bind(null,d,E,C))}finally{nr=A,nr===gu&&Bt()}}function Jm(f,d){var E=nr;nr&=~T1,nr|=Bd;try{return f(d)}finally{nr=E,nr===gu&&Bt()}}function Op(f,d){if((nr&(T0|Os))!==gu)throw Error("flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.");var E=nr;nr|=T1;try{return Sn(Ni,f.bind(null,d))}finally{nr=E,Bt()}}function Zm(f){var d=nr;nr|=T1;try{Sn(Ni,f)}finally{nr=d,nr===gu&&Bt()}}function Hf(f,d){f.finishedWork=null,f.finishedExpirationTime=at;var E=f.timeoutHandle;if(E!==nl&&(f.timeoutHandle=nl,d0(E)),Gn!==null)for(var C=Gn.return;C!==null;)nv(C),C=C.return;ml=f,Gn=C0(f.current,null,d),Wo=d,Lo=Bf,jd=null,Ul=Un,R1=Un,Rc=null,Ac=at,zd=!1,bn&&(jf=null),Al.discardPendingWarnings(),$s=null}function vv(f,d){do{try{if(gt(),Ed(),ut(),Gn===null||Gn.return===null)return Lo=Ud,jd=d,null;en&&Gn.mode&ii&&p1(Gn,!0),fv(f,Gn.return,Gn,d,Wo),Gn=Tv(Gn)}catch(E){d=E;continue}return}while(!0)}function mv(f){var d=Mr.current;return Mr.current=f1,d===null?f1:d}function yv(f){Mr.current=f}function Kd(f){if(bn){var d=M.__interactionsRef.current;return M.__interactionsRef.current=f.memoizedInteractions,d}return null}function Xd(f){bn&&(M.__interactionsRef.current=f)}function Mp(){Rp=yt()}function gv(f,d){fru&&(Ul=f),d!==null&&fru&&(R1=f,Rc=d)}function Qd(f){f>Ac&&(Ac=f)}function _v(){Lo===Bf&&(Lo=C1)}function Ev(){(Lo===Bf||Lo===C1)&&(Lo=x1),Ac!==at&&ml!==null&&(Vf(ml,Wo),u_(ml,Ac))}function kp(){Lo!==xp&&(Lo=Cp)}function Dv(){return Lo===Bf}function wv(f){var d=j0(f);return d-Ef}function $m(f,d){var E=j0(f);return E-(d.timeoutMs|0||Ef)}function Sv(){for(;Gn!==null;)Gn=Jd(Gn)}function ey(){for(;Gn!==null&&!Fn();)Gn=Jd(Gn)}function Jd(f){var d=f.alternate;es(f),Dt(f);var E;return en&&(f.mode&ii)!==Ar?(W2(f),E=L1(d,f,Wo),p1(f,!0)):E=L1(d,f,Wo),ut(),f.memoizedProps=f.pendingProps,E===null&&(E=Tv(f)),Sp.current=null,E}function Tv(f){Gn=f;do{var d=Gn.alternate,E=Gn.return;if((Gn.effectTag&Io)===xi){Dt(Gn);var C=void 0;if(!en||(Gn.mode&ii)===Ar?C=tv(d,Gn,Wo):(W2(Gn),C=tv(d,Gn,Wo),p1(Gn,!1)),ei(Gn),ut(),ty(Gn),C!==null)return C;if(E!==null&&(E.effectTag&Io)===xi){E.firstEffect===null&&(E.firstEffect=Gn.firstEffect),Gn.lastEffect!==null&&(E.lastEffect!==null&&(E.lastEffect.nextEffect=Gn.firstEffect),E.lastEffect=Gn.lastEffect);var A=Gn.effectTag;A>su&&(E.lastEffect!==null?E.lastEffect.nextEffect=Gn:E.firstEffect=Gn,E.lastEffect=Gn)}}else{var j=Mm(Gn,Wo);if(en&&(Gn.mode&ii)!==Ar){p1(Gn,!1);for(var V=Gn.actualDuration,te=Gn.child;te!==null;)V+=te.actualDuration,te=te.sibling;Gn.actualDuration=V}if(j!==null)return h0(Gn),j.effectTag&=Xl,j;ei(Gn),E!==null&&(E.firstEffect=E.lastEffect=null,E.effectTag|=Io)}var se=Gn.sibling;if(se!==null)return se;Gn=E}while(Gn!==null);return Lo===Bf&&(Lo=xp),null}function Lp(f){var d=f.expirationTime,E=f.childExpirationTime;return d>E?d:E}function ty(f){if(!(Wo!==Di&&f.childExpirationTime===Di)){var d=at;if(en&&(f.mode&ii)!==Ar){for(var E=f.actualDuration,C=f.selfBaseDuration,A=f.alternate===null||f.child!==f.alternate.child,j=f.child;j!==null;){var V=j.expirationTime,te=j.childExpirationTime;V>d&&(d=V),te>d&&(d=te),A&&(E+=j.actualDuration),C+=j.treeBaseDuration,j=j.sibling}f.actualDuration=E,f.treeBaseDuration=C}else for(var se=f.child;se!==null;){var Ue=se.expirationTime,Qe=se.childExpirationTime;Ue>d&&(d=Ue),Qe>d&&(d=Qe),se=se.sibling}f.childExpirationTime=d}}function so(f){var d=Jt();return Sn(Ni,Np.bind(null,f,d)),null}function Np(f,d){do nf();while(kc!==null);if(ay(),(nr&(T0|Os))!==gu)throw Error("Should not already be working.");var E=f.finishedWork,C=f.finishedExpirationTime;if(E===null)return null;if(f.finishedWork=null,f.finishedExpirationTime=at,E===f.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");f.callbackNode=null,f.callbackExpirationTime=at,f.callbackPriority=Do,f.nextKnownPendingLevel=at,t0();var A=Lp(E);lE(f,C,A),f===ml&&(ml=null,Gn=null,Wo=at);var j;if(E.effectTag>su?E.lastEffect!==null?(E.lastEffect.nextEffect=E,j=E.firstEffect):j=E:j=E.firstEffect,j!==null){var V=nr;nr|=Os;var te=Kd(f);Sp.current=null,Re(),Hn(f.containerInfo),dn=j;do if(pl(null,ny,null),tr()){if(dn===null)throw Error("Should be working on an effect.");var se=Js();qf(dn,se),dn=dn.nextEffect}while(dn!==null);rt(),en&&Lh(),Ye(),dn=j;do if(pl(null,ry,null,f,d),tr()){if(dn===null)throw Error("Should be working on an effect.");var Ue=Js();qf(dn,Ue),dn=dn.nextEffect}while(dn!==null);Kt(),qr(f.containerInfo),f.current=E,Xt(),dn=j;do if(pl(null,Fp,null,f,C),tr()){if(dn===null)throw Error("Should be working on an effect.");var Qe=Js();qf(dn,Qe),dn=dn.nextEffect}while(dn!==null);pr(),dn=null,ae(),bn&&Xd(te),nr=V}else f.current=E,Re(),rt(),en&&Lh(),Ye(),Kt(),Xt(),pr();n0();var vt=Mc;if(Mc)Mc=!1,kc=f,Ap=C,A1=d;else for(dn=j;dn!==null;){var Nt=dn.nextEffect;dn.nextEffect=null,dn=Nt}var Yt=f.firstPendingTime;if(Yt!==at){if(bn){if(jf!==null){var Ht=jf;jf=null;for(var yn=0;ynKn?Kn:A1;return A1=Do,Sn(f,Pp)}}function Pp(){if(kc===null)return!1;var f=kc,d=Ap;if(kc=null,Ap=at,(nr&(T0|Os))!==gu)throw Error("Cannot flush passive effects while already rendering.");var E=nr;nr|=Os;for(var C=Kd(f),A=f.current.firstEffect;A!==null;){{if(Dt(A),pl(null,Ra,null,A),tr()){if(A===null)throw Error("Should be working on an effect.");var j=Js();qf(A,j)}ut()}var V=A.nextEffect;A.nextEffect=null,A=V}return bn&&(Xd(C),he(f,d)),nr=E,Bt(),O1=kc===null?0:O1+1,!0}function Ip(f){return Oc!==null&&Oc.has(f)}function bp(f){Oc===null?Oc=new Set([f]):Oc.add(f)}function iy(f){Hd||(Hd=!0,qd=f)}var uy=iy;function Cv(f,d,E){var C=hp(E,d),A=sv(f,C,Un);Ga(f,A);var j=Vd(f,Un);j!==null&&(W0(j),W(j,Un))}function qf(f,d){if(f.tag===B){Cv(f,f,d);return}for(var E=f.return;E!==null;){if(E.tag===B){Cv(E,f,d);return}else if(E.tag===O){var C=E.type,A=E.stateNode;if(typeof C.getDerivedStateFromError=="function"||typeof A.componentDidCatch=="function"&&!Ip(A)){var j=hp(d,f),V=av(E,j,Un);Ga(E,V);var te=Vd(E,Un);te!==null&&(W0(te),W(te,Un));return}}E=E.return}}function Bp(f,d,E){var C=f.pingCache;if(C!==null&&C.delete(d),ml===f&&Wo===E){Lo===x1||Lo===C1&&Ul===Un&&yt()-RpHm)throw Lc=0,Wd=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");O1>cv&&(O1=0,Qt(!1,"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."))}function ay(){Al.flushLegacyContextWarning(),yi&&Al.flushPendingUnsafeLifecycleWarnings()}function Rv(){var f=!0;gf(Uf,f),Uf=null}function zp(){var f=!1;gf(Uf,f),Uf=null}function Hp(f,d){Hr&&ml!==null&&d>Wo&&(Uf=f)}var Zd=null;function fy(f){{var d=f.tag;if(d!==B&&d!==O&&d!==N&&d!==ue&&d!==me&&d!==re)return;var E=Wt(f.type)||"ReactComponent";if(Zd!==null){if(Zd.has(E))return;Zd.add(E)}else Zd=new Set([E]);He(!1,"Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.%s",d===O?"the componentWillUnmount method":"a useEffect cleanup function",Cr(f))}}var L1;if(Qo){var cy=null;L1=function(f,d,E){var C=r_(cy,d);try{return ap(f,d,E)}catch(j){if(j!==null&&typeof j=="object"&&typeof j.then=="function")throw j;if(gt(),Ed(),nv(d),r_(d,C),en&&d.mode&ii&&W2(d),pl(null,ap,null,f,d,E),tr()){var A=Js();throw A}else throw j}}}else L1=ap;var Av=!1,Ov=!1;function dy(f){if(f.tag===O)switch(Lr){case"getChildContext":if(Ov)return;He(!1,"setState(...): Cannot call setState() inside getChildContext()"),Ov=!0;break;case"render":if(Av)return;He(!1,"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."),Av=!0;break}}var Wf={current:!1};function qp(f){ms===!0&&vl.current===!0&&Wf.current!==!0&&He(!1,`It looks like you're using the wrong act() around your test interactions. +Be sure to use the matching version of act() corresponding to your renderer: + +// for react-dom: +import {act} from 'react-dom/test-utils'; +// ... +act(() => ...); + +// for react-test-renderer: +import TestRenderer from 'react-test-renderer'; +const {act} = TestRenderer; +// ... +act(() => ...);%s`,Cr(f))}function Mv(f){ms===!0&&(f.mode&mr)!==Ar&&vl.current===!1&&Wf.current===!1&&He(!1,`An update to %s ran an effect, but was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,Wt(f.type),Cr(f))}function py(f){ms===!0&&nr===gu&&vl.current===!1&&Wf.current===!1&&He(!1,`An update to %s inside a test was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,Wt(f.type),Cr(f))}var hy=py,Wp=!1;function vy(f){Wp===!1&&t.unstable_flushAllWithoutAsserting===void 0&&(f.mode&Y||f.mode&ri?(Wp=!0,He(!1,`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)):eu===!0&&(Wp=!0,He(!1,`Starting from React v17, the "scheduler" module will need to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)))}var $s=null;function my(f){{var d=Jt();if((f.mode&ri)!==xi&&(d===ni||d===Ni))for(var E=f;E!==null;){var C=E.alternate;if(C!==null)switch(E.tag){case O:var A=C.updateQueue;if(A!==null)for(var j=A.firstUpdate;j!==null;){var V=j.priority;if(V===ni||V===Ni){$s===null?$s=new Set([Wt(E.type)]):$s.add(Wt(E.type));break}j=j.next}break;case N:case ue:case re:if(E.memoizedState!==null&&E.memoizedState.baseUpdate!==null)for(var te=E.memoizedState.baseUpdate;te!==null;){var se=te.priority;if(se===ni||se===Ni){$s===null?$s=new Set([Wt(E.type)]):$s.add(Wt(E.type));break}if(te.next===E.memoizedState.baseUpdate)break;te=te.next}break;default:break}E=E.return}}}function p(){if($s!==null){var f=[];$s.forEach(function(d){return f.push(d)}),$s=null,f.length>0&&He(!1,`%s triggered a user-blocking update that suspended. + +The fix is to split the update into multiple parts: a user-blocking update to provide immediate feedback, and another update that triggers the bulk of the changes. + +Refer to the documentation for useTransition to learn how to implement this pattern.`,f.sort().join(", "))}}function v(f,d){return d*1e3+f.interactionThreadID}function x(f){!bn||(jf===null?jf=[f]:jf.push(f))}function P(f,d,E){if(!!bn&&E.size>0){var C=f.pendingInteractionMap,A=C.get(d);A!=null?E.forEach(function(te){A.has(te)||te.__count++,A.add(te)}):(C.set(d,new Set(E)),E.forEach(function(te){te.__count++}));var j=M.__subscriberRef.current;if(j!==null){var V=v(f,d);j.onWorkScheduled(E,V)}}}function W(f,d){!bn||P(f,d,M.__interactionsRef.current)}function ee(f,d){if(!!bn){var E=new Set;if(f.pendingInteractionMap.forEach(function(j,V){V>=d&&j.forEach(function(te){return E.add(te)})}),f.memoizedInteractions=E,E.size>0){var C=M.__subscriberRef.current;if(C!==null){var A=v(f,d);try{C.onWorkStarted(E,A)}catch(j){_n(Ni,function(){throw j})}}}}}function he(f,d){if(!!bn){var E=f.firstPendingTime,C;try{if(C=M.__subscriberRef.current,C!==null&&f.memoizedInteractions.size>0){var A=v(f,d);C.onWorkStopped(f.memoizedInteractions,A)}}catch(V){_n(Ni,function(){throw V})}finally{var j=f.pendingInteractionMap;j.forEach(function(V,te){te>E&&(j.delete(te),V.forEach(function(se){if(se.__count--,C!==null&&se.__count===0)try{C.onInteractionScheduledWorkCompleted(se)}catch(Ue){_n(Ni,function(){throw Ue})}}))})}}}var De=null,be=null,Et=!1,St=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined";function At(f){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined")return!1;var d=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(d.isDisabled)return!0;if(!d.supportsFiber)return He(!1,"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://fb.me/react-devtools"),!0;try{var E=d.inject(f);De=function(C,A){try{var j=(C.current.effectTag&Xr)===Xr;if(en){var V=Nc(),te=rd(V,A);d.onCommitFiberRoot(E,C,te,j)}else d.onCommitFiberRoot(E,C,void 0,j)}catch(se){Et||(Et=!0,He(!1,"React DevTools encountered an error: %s",se))}},be=function(C){try{d.onCommitFiberUnmount(E,C)}catch(A){Et||(Et=!0,He(!1,"React DevTools encountered an error: %s",A))}}}catch(C){He(!1,"React DevTools encountered an error: %s.",C)}return!0}function on(f,d){typeof De=="function"&&De(f,d)}function kn(f){typeof be=="function"&&be(f)}var rr;{rr=!1;try{var br=Object.preventExtensions({}),ar=new Map([[br,null]]),ui=new Set([br]);ar.set(0,0),ui.add(0)}catch(f){rr=!0}}var di=1;function zl(f,d,E,C){this.tag=f,this.key=E,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=d,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=C,this.effectTag=xi,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.expirationTime=at,this.childExpirationTime=at,this.alternate=null,en&&(this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0),Hr&&(this._debugID=di++,this._debugIsCurrentlyTiming=!1),this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!rr&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var Zi=function(f,d,E,C){return new zl(f,d,E,C)};function a0(f){var d=f.prototype;return!!(d&&d.isReactComponent)}function ao(f){return typeof f=="function"&&!a0(f)&&f.defaultProps===void 0}function Ms(f){if(typeof f=="function")return a0(f)?O:N;if(f!=null){var d=f.$$typeof;if(d===Mn)return ue;if(d===Gt)return me}return T}function C0(f,d,E){var C=f.alternate;C===null?(C=Zi(f.tag,d,f.key,f.mode),C.elementType=f.elementType,C.type=f.type,C.stateNode=f.stateNode,C._debugID=f._debugID,C._debugSource=f._debugSource,C._debugOwner=f._debugOwner,C._debugHookTypes=f._debugHookTypes,C.alternate=f,f.alternate=C):(C.pendingProps=d,C.effectTag=xi,C.nextEffect=null,C.firstEffect=null,C.lastEffect=null,en&&(C.actualDuration=0,C.actualStartTime=-1)),C.childExpirationTime=f.childExpirationTime,C.expirationTime=f.expirationTime,C.child=f.child,C.memoizedProps=f.memoizedProps,C.memoizedState=f.memoizedState,C.updateQueue=f.updateQueue;var A=f.dependencies;switch(C.dependencies=A===null?null:{expirationTime:A.expirationTime,firstContext:A.firstContext,responders:A.responders},C.sibling=f.sibling,C.index=f.index,C.ref=f.ref,en&&(C.selfBaseDuration=f.selfBaseDuration,C.treeBaseDuration=f.treeBaseDuration),C._debugNeedsRemount=f._debugNeedsRemount,C.tag){case T:case N:case re:C.type=ro(f.type);break;case O:C.type=zo(f.type);break;case ue:C.type=wf(f.type);break;default:break}return C}function kv(f,d){f.effectTag&=mi,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null;var E=f.alternate;if(E===null)f.childExpirationTime=at,f.expirationTime=d,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,en&&(f.selfBaseDuration=0,f.treeBaseDuration=0);else{f.childExpirationTime=E.childExpirationTime,f.expirationTime=E.expirationTime,f.child=E.child,f.memoizedProps=E.memoizedProps,f.memoizedState=E.memoizedState,f.updateQueue=E.updateQueue;var C=E.dependencies;f.dependencies=C===null?null:{expirationTime:C.expirationTime,firstContext:C.firstContext,responders:C.responders},en&&(f.selfBaseDuration=E.selfBaseDuration,f.treeBaseDuration=E.treeBaseDuration)}return f}function Z4(f){var d;return f===Mo?d=ri|Y|mr:f===Uo?d=Y|mr:d=Ar,en&&St&&(d|=ii),Zi(B,null,null,d)}function yy(f,d,E,C,A,j){var V,te=T,se=f;if(typeof f=="function")a0(f)?(te=O,se=zo(se)):se=ro(se);else if(typeof f=="string")te=q;else{e:switch(f){case le:return rf(E.children,A,j,d);case an:te=pe,A|=ri|Y|mr;break;case qe:te=pe,A|=mr;break;case dt:return eE(E,A,j,d);case lr:return tE(E,A,j,d);case ln:return nE(E,A,j,d);default:{if(typeof f=="object"&&f!==null)switch(f.$$typeof){case Rt:te=ve;break e;case nn:te=ge;break e;case Mn:te=ue,se=wf(se);break e;case Gt:te=me;break e;case Er:te=we,se=null;break e;case w:if(Vt)return n_(f,E,A,j,d);break;case Xn:if(Au)return $4(f,E,A,j,d)}var Ue="";{(f===void 0||typeof f=="object"&&f!==null&&Object.keys(f).length===0)&&(Ue+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Qe=C?Wt(C.type):null;Qe&&(Ue+=` + +Check the render method of \``+Qe+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(f==null?f:typeof f)+"."+Ue)}}}return V=Zi(te,E,d,A),V.elementType=f,V.type=se,V.expirationTime=j,V}function gy(f,d,E){var C=null;C=f._owner;var A=f.type,j=f.key,V=f.props,te=yy(A,j,V,C,d,E);return te._debugSource=f._source,te._debugOwner=f._owner,te}function rf(f,d,E,C){var A=Zi(m,f,C,d);return A.expirationTime=E,A}function n_(f,d,E,C,A){var j=Zi(pt,d,A,E);return j.elementType=f,j.type=f,j.expirationTime=C,j}function $4(f,d,E,C,A){var j=Zi(Xe,d,A,E);return j.type=f,j.elementType=f,j.expirationTime=C,j}function eE(f,d,E,C){(typeof f.id!="string"||typeof f.onRender!="function")&&He(!1,'Profiler must specify an "id" string and "onRender" function as props');var A=Zi(_e,f,C,d|ii);return A.elementType=dt,A.type=dt,A.expirationTime=E,A}function tE(f,d,E,C){var A=Zi(ce,f,C,d);return A.type=lr,A.elementType=lr,A.expirationTime=E,A}function nE(f,d,E,C){var A=Zi(ct,f,C,d);return A.type=ln,A.elementType=ln,A.expirationTime=E,A}function _y(f,d,E){var C=Zi(ne,f,null,d);return C.expirationTime=E,C}function rE(){var f=Zi(q,null,null,Ar);return f.elementType="DELETED",f.type="DELETED",f}function iE(f){var d=Zi(je,null,null,Ar);return d.stateNode=f,d}function Ey(f,d,E){var C=f.children!==null?f.children:[],A=Zi(H,C,f.key,d);return A.expirationTime=E,A.stateNode={containerInfo:f.containerInfo,pendingChildren:null,implementation:f.implementation},A}function r_(f,d){return f===null&&(f=Zi(T,null,null,Ar)),f.tag=d.tag,f.key=d.key,f.elementType=d.elementType,f.type=d.type,f.stateNode=d.stateNode,f.return=d.return,f.child=d.child,f.sibling=d.sibling,f.index=d.index,f.ref=d.ref,f.pendingProps=d.pendingProps,f.memoizedProps=d.memoizedProps,f.updateQueue=d.updateQueue,f.memoizedState=d.memoizedState,f.dependencies=d.dependencies,f.mode=d.mode,f.effectTag=d.effectTag,f.nextEffect=d.nextEffect,f.firstEffect=d.firstEffect,f.lastEffect=d.lastEffect,f.expirationTime=d.expirationTime,f.childExpirationTime=d.childExpirationTime,f.alternate=d.alternate,en&&(f.actualDuration=d.actualDuration,f.actualStartTime=d.actualStartTime,f.selfBaseDuration=d.selfBaseDuration,f.treeBaseDuration=d.treeBaseDuration),f._debugID=d._debugID,f._debugSource=d._debugSource,f._debugOwner=d._debugOwner,f._debugIsCurrentlyTiming=d._debugIsCurrentlyTiming,f._debugNeedsRemount=d._debugNeedsRemount,f._debugHookTypes=d._debugHookTypes,f}function uE(f,d,E){this.tag=d,this.current=null,this.containerInfo=f,this.pendingChildren=null,this.pingCache=null,this.finishedExpirationTime=at,this.finishedWork=null,this.timeoutHandle=nl,this.context=null,this.pendingContext=null,this.hydrate=E,this.callbackNode=null,this.callbackPriority=Do,this.firstPendingTime=at,this.firstSuspendedTime=at,this.lastSuspendedTime=at,this.nextKnownPendingLevel=at,this.lastPingedTime=at,this.lastExpiredTime=at,bn&&(this.interactionThreadID=M.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map),Yi&&(this.hydrationCallbacks=null)}function oE(f,d,E,C){var A=new uE(f,d,E);Yi&&(A.hydrationCallbacks=C);var j=Z4(d);return A.current=j,j.stateNode=A,A}function i_(f,d){var E=f.firstSuspendedTime,C=f.lastSuspendedTime;return E!==at&&E>=d&&C<=d}function Vf(f,d){var E=f.firstSuspendedTime,C=f.lastSuspendedTime;Ed||E===at)&&(f.lastSuspendedTime=d),d<=f.lastPingedTime&&(f.lastPingedTime=at),d<=f.lastExpiredTime&&(f.lastExpiredTime=at)}function u_(f,d){var E=f.firstPendingTime;d>E&&(f.firstPendingTime=d);var C=f.firstSuspendedTime;C!==at&&(d>=C?f.firstSuspendedTime=f.lastSuspendedTime=f.nextKnownPendingLevel=at:d>=f.lastSuspendedTime&&(f.lastSuspendedTime=d+1),d>f.nextKnownPendingLevel&&(f.nextKnownPendingLevel=d))}function lE(f,d,E){f.firstPendingTime=E,d<=f.lastSuspendedTime?f.firstSuspendedTime=f.lastSuspendedTime=f.nextKnownPendingLevel=at:d<=f.firstSuspendedTime&&(f.firstSuspendedTime=d-1),d<=f.lastPingedTime&&(f.lastPingedTime=at),d<=f.lastExpiredTime&&(f.lastExpiredTime=at)}function Vp(f,d){var E=f.lastExpiredTime;(E===at||E>d)&&(f.lastExpiredTime=d)}var sE={debugTool:null},Lv=sE,Dy,wy;Dy=!1,wy={};function aE(f){if(!f)return Rn;var d=kt(f),E=xl(d);if(d.tag===O){var C=d.type;if(Xi(C))return Oo(d,C,E)}return E}function Sy(f){var d=kt(f);if(d===void 0)throw typeof f.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(f));var E=bo(d);return E===null?null:E.stateNode}function fE(f,d){{var E=kt(f);if(E===void 0)throw typeof f.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(f));var C=bo(E);if(C===null)return null;if(C.mode&mr){var A=Wt(E.type)||"Component";wy[A]||(wy[A]=!0,E.mode&mr?He(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",d,d,A,Cr(C)):He(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",d,d,A,Cr(C)))}return C.stateNode}return Sy(f)}function cE(f,d,E,C){return oE(f,d,E,C)}function o_(f,d,E,C){var A=d.current,j=jl();typeof jest!="undefined"&&(vy(A),qp(A));var V=_0(),te=zf(j,A,V);Lv.debugTool&&(A.alternate===null?Lv.debugTool.onMountContainer(d):f===null?Lv.debugTool.onUnmountContainer(d):Lv.debugTool.onUpdateContainer(d));var se=aE(E);d.context===null?d.context=se:d.pendingContext=se,Lr==="render"&&An!==null&&!Dy&&(Dy=!0,He(!1,`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. + +Check the render method of %s.`,Wt(An.type)||"Unknown"));var Ue=Cu(te,V);return Ue.payload={element:f},C=C===void 0?null:C,C!==null&&(typeof C!="function"&&He(!1,"render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",C),Ue.callback=C),Ga(A,Ue),yl(A,te),te}function dE(f){var d=f.current;if(!d.child)return null;switch(d.child.tag){case q:return N0(d.child.stateNode);default:return d.child.stateNode}}function pE(f){switch(f.tag){case B:var d=f.stateNode;d.hydrate&&Gm(d,d.firstPendingTime);break;case ce:Op(function(){return yl(f,Un)});var E=ja(jl());Nv(f,E);break}}function l_(f,d){var E=f.memoizedState;E!==null&&E.dehydrated!==null&&E.retryTime=d.length)return C;var A=d[E],j=Array.isArray(f)?f.slice():a({},f);return j[A]=xy(f[A],d,E+1,C),j},p_=function(f,d,E){return xy(f,d,0,E)};a_=function(f,d,E,C){for(var A=f.memoizedState;A!==null&&d>0;)A=A.next,d--;if(A!==null){var j=p_(A.memoizedState,E,C);A.memoizedState=j,A.baseState=j,f.memoizedProps=a({},f.memoizedProps),yl(f,Un)}},f_=function(f,d,E){f.pendingProps=p_(f.memoizedProps,d,E),f.alternate&&(f.alternate.pendingProps=f.pendingProps),yl(f,Un)},c_=function(f){yl(f,Un)},d_=function(f){Cy=f}}function yE(f){var d=f.findFiberByHostInstance,E=nt.ReactCurrentDispatcher;return At(a({},f,{overrideHookState:a_,overrideProps:f_,setSuspenseHandler:d_,scheduleUpdate:c_,currentDispatcherRef:E,findHostInstanceByFiber:function(C){var A=bo(C);return A===null?null:A.stateNode},findFiberByHostInstance:function(C){return d?d(C):null},findHostInstancesForRefresh:od,scheduleRefresh:Ol,scheduleRoot:Cs,setRefreshHandler:Wa,getCurrentFiber:function(){return An}}))}var h_=Object.freeze({createContainer:cE,updateContainer:o_,batchedEventUpdates:Qm,batchedUpdates:Xm,unbatchedUpdates:Jm,deferredUpdates:Ym,syncUpdates:pv,discreteUpdates:hv,flushDiscreteUpdates:dv,flushControlled:Zm,flushSync:Op,flushPassiveEffects:nf,IsThisRendererActing:Wf,getPublicRootInstance:dE,attemptSynchronousHydration:pE,attemptUserBlockingHydration:hE,attemptContinuousHydration:Ty,attemptHydrationAtCurrentPriority:vE,findHostInstance:Sy,findHostInstanceWithWarning:fE,findHostInstanceWithNoPortals:mE,shouldSuspend:s_,injectIntoDevTools:yE}),gE=h_.default||h_;Qy.exports=gE;var _E=Qy.exports;return Qy.exports=i,_E})});var vT=Ke((HW,ID)=>{"use strict";process.env.NODE_ENV==="production"?ID.exports=fT():ID.exports=hT()});var yT=Ke((qW,mT)=>{"use strict";var zI={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};mT.exports=zI});var DT=Ke((WW,gT)=>{"use strict";var HI=Object.assign||function(i){for(var o=1;o"}}]),i}(),_T=function(){J_(i,null,[{key:"fromJS",value:function(a){var c=a.width,_=a.height;return new i(c,_)}}]);function i(o,a){BD(this,i),this.width=o,this.height=a}return J_(i,[{key:"fromJS",value:function(a){a(this.width,this.height)}},{key:"toString",value:function(){return""}}]),i}(),ET=function(){function i(o,a){BD(this,i),this.unit=o,this.value=a}return J_(i,[{key:"fromJS",value:function(a){a(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case nc.UNIT_POINT:return String(this.value);case nc.UNIT_PERCENT:return this.value+"%";case nc.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),i}();gT.exports=function(i,o){function a(M,N,O){var T=M[N];M[N]=function(){for(var B=arguments.length,H=Array(B),q=0;q1?H-1:0),ne=1;ne1&&arguments[1]!==void 0?arguments[1]:NaN,O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,T=arguments.length>3&&arguments[3]!==void 0?arguments[3]:nc.DIRECTION_LTR;return M.call(this,N,O,T)}),HI({Config:o.Config,Node:o.Node,Layout:i("Layout",qI),Size:i("Size",_T),Value:i("Value",ET),getInstanceCount:function(){return o.getInstanceCount.apply(o,arguments)}},nc)}});var wT=Ke((exports,module)=>{(function(i,o){typeof define=="function"&&define.amd?define([],function(){return o}):typeof module=="object"&&module.exports?module.exports=o:(i.nbind=i.nbind||{}).init=o})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(i,o){return function(){i&&i.apply(this,arguments);try{Module.ccall("nbind_init")}catch(a){o(a);return}o(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module!="undefined"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof require=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(o,a){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),o=nodePath.normalize(o);var c=nodeFS.readFileSync(o);return a?c:c.toString()},Module.readBinary=function(o){var a=Module.read(o,!0);return a.buffer||(a=new Uint8Array(a)),assert(a.buffer),a},Module.load=function(o){globalEval(read(o))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module!="undefined"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr!="undefined"&&(Module.printErr=printErr),typeof read!="undefined"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(o){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(o));var a=read(o,"binary");return assert(typeof a=="object"),a},typeof scriptArgs!="undefined"?Module.arguments=scriptArgs:typeof arguments!="undefined"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(i,o){quit(i)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(o){var a=new XMLHttpRequest;return a.open("GET",o,!1),a.send(null),a.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(o){var a=new XMLHttpRequest;return a.open("GET",o,!1),a.responseType="arraybuffer",a.send(null),new Uint8Array(a.response)}),Module.readAsync=function(o,a,c){var _=new XMLHttpRequest;_.open("GET",o,!0),_.responseType="arraybuffer",_.onload=function(){_.status==200||_.status==0&&_.response?a(_.response):c()},_.onerror=c,_.send(null)},typeof arguments!="undefined"&&(Module.arguments=arguments),typeof console!="undefined")Module.print||(Module.print=function(o){console.log(o)}),Module.printErr||(Module.printErr=function(o){console.warn(o)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump!="undefined"?function(i){dump(i)}:function(i){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle=="undefined"&&(Module.setWindowTitle=function(i){document.title=i})}else throw"Unknown runtime environment. Where are we?";function globalEval(i){eval.call(null,i)}!Module.load&&Module.read&&(Module.load=function(o){globalEval(Module.read(o))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(i,o){throw o}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(i){return tempRet0=i,i},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(i){STACKTOP=i},getNativeTypeSize:function(i){switch(i){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(i[i.length-1]==="*")return Runtime.QUANTUM_SIZE;if(i[0]==="i"){var o=parseInt(i.substr(1));return assert(o%8==0),o/8}else return 0}}},getNativeFieldSize:function(i){return Math.max(Runtime.getNativeTypeSize(i),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(i,o){return o==="double"||o==="i64"?i&7&&(assert((i&7)==4),i+=4):assert((i&3)==0),i},getAlignSize:function(i,o,a){return!a&&(i=="i64"||i=="double")?8:i?Math.min(o||(i?Runtime.getNativeFieldSize(i):0),Runtime.QUANTUM_SIZE):Math.min(o,8)},dynCall:function(i,o,a){return a&&a.length?Module["dynCall_"+i].apply(null,[o].concat(a)):Module["dynCall_"+i].call(null,o)},functionPointers:[],addFunction:function(i){for(var o=0;o>2],a=(o+i+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=a,a>=TOTAL_MEMORY){var c=enlargeMemory();if(!c)return HEAP32[DYNAMICTOP_PTR>>2]=o,0}return o},alignMemory:function(i,o){var a=i=Math.ceil(i/(o||16))*(o||16);return a},makeBigInt:function(i,o,a){var c=a?+(i>>>0)+ +(o>>>0)*4294967296:+(i>>>0)+ +(o|0)*4294967296;return c},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(i,o){i||abort("Assertion failed: "+o)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(i){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(i){var o=Runtime.stackAlloc(i.length);return writeArrayToMemory(i,o),o},stringToC:function(i){var o=0;if(i!=null&&i!==0){var a=(i.length<<2)+1;o=Runtime.stackAlloc(a),stringToUTF8(i,o,a)}return o}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(o,a,c,_,t){var M=getCFunc(o),N=[],O=0;if(_)for(var T=0;T<_.length;T++){var B=toC[c[T]];B?(O===0&&(O=Runtime.stackSave()),N[T]=B(_[T])):N[T]=_[T]}var H=M.apply(null,N);if(a==="string"&&(H=Pointer_stringify(H)),O!==0){if(t&&t.async){EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(O)});return}Runtime.stackRestore(O)}return H};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/;function parseJSFunc(i){var o=i.toString().match(sourceRegex).slice(1);return{arguments:o[0],body:o[1],returnValue:o[2]}}var JSsource=null;function ensureJSsource(){if(!JSsource){JSsource={};for(var i in JSfuncs)JSfuncs.hasOwnProperty(i)&&(JSsource[i]=parseJSFunc(JSfuncs[i]))}}cwrap=function(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(i){return i==="number"}),numericRet=returnType!=="string";if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(i,o){return"$"+o}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i>0]=o;break;case"i8":HEAP8[i>>0]=o;break;case"i16":HEAP16[i>>1]=o;break;case"i32":HEAP32[i>>2]=o;break;case"i64":tempI64=[o>>>0,(tempDouble=o,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[i>>2]=tempI64[0],HEAP32[i+4>>2]=tempI64[1];break;case"float":HEAPF32[i>>2]=o;break;case"double":HEAPF64[i>>3]=o;break;default:abort("invalid type for setValue: "+a)}}Module.setValue=setValue;function getValue(i,o,a){switch(o=o||"i8",o.charAt(o.length-1)==="*"&&(o="i32"),o){case"i1":return HEAP8[i>>0];case"i8":return HEAP8[i>>0];case"i16":return HEAP16[i>>1];case"i32":return HEAP32[i>>2];case"i64":return HEAP32[i>>2];case"float":return HEAPF32[i>>2];case"double":return HEAPF64[i>>3];default:abort("invalid type for setValue: "+o)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(i,o,a,c){var _,t;typeof i=="number"?(_=!0,t=i):(_=!1,t=i.length);var M=typeof o=="string"?o:null,N;if(a==ALLOC_NONE?N=c:N=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][a===void 0?ALLOC_STATIC:a](Math.max(t,M?1:o.length)),_){var c=N,O;for(assert((N&3)==0),O=N+(t&~3);c>2]=0;for(O=N+t;c>0]=0;return N}if(M==="i8")return i.subarray||i.slice?HEAPU8.set(i,N):HEAPU8.set(new Uint8Array(i),N),N;for(var T=0,B,H,q;T>0],a|=c,!(c==0&&!o||(_++,o&&_==o)););o||(o=_);var t="";if(a<128){for(var M=1024,N;o>0;)N=String.fromCharCode.apply(String,HEAPU8.subarray(i,i+Math.min(o,M))),t=t?t+N:N,i+=M,o-=M;return t}return Module.UTF8ToString(i)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(i){for(var o="";;){var a=HEAP8[i++>>0];if(!a)return o;o+=String.fromCharCode(a)}}Module.AsciiToString=AsciiToString;function stringToAscii(i,o){return writeAsciiToMemory(i,o,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(i,o){for(var a=o;i[a];)++a;if(a-o>16&&i.subarray&&UTF8Decoder)return UTF8Decoder.decode(i.subarray(o,a));for(var c,_,t,M,N,O,T="";;){if(c=i[o++],!c)return T;if(!(c&128)){T+=String.fromCharCode(c);continue}if(_=i[o++]&63,(c&224)==192){T+=String.fromCharCode((c&31)<<6|_);continue}if(t=i[o++]&63,(c&240)==224?c=(c&15)<<12|_<<6|t:(M=i[o++]&63,(c&248)==240?c=(c&7)<<18|_<<12|t<<6|M:(N=i[o++]&63,(c&252)==248?c=(c&3)<<24|_<<18|t<<12|M<<6|N:(O=i[o++]&63,c=(c&1)<<30|_<<24|t<<18|M<<12|N<<6|O))),c<65536)T+=String.fromCharCode(c);else{var B=c-65536;T+=String.fromCharCode(55296|B>>10,56320|B&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(i){return UTF8ArrayToString(HEAPU8,i)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(i,o,a,c){if(!(c>0))return 0;for(var _=a,t=a+c-1,M=0;M=55296&&N<=57343&&(N=65536+((N&1023)<<10)|i.charCodeAt(++M)&1023),N<=127){if(a>=t)break;o[a++]=N}else if(N<=2047){if(a+1>=t)break;o[a++]=192|N>>6,o[a++]=128|N&63}else if(N<=65535){if(a+2>=t)break;o[a++]=224|N>>12,o[a++]=128|N>>6&63,o[a++]=128|N&63}else if(N<=2097151){if(a+3>=t)break;o[a++]=240|N>>18,o[a++]=128|N>>12&63,o[a++]=128|N>>6&63,o[a++]=128|N&63}else if(N<=67108863){if(a+4>=t)break;o[a++]=248|N>>24,o[a++]=128|N>>18&63,o[a++]=128|N>>12&63,o[a++]=128|N>>6&63,o[a++]=128|N&63}else{if(a+5>=t)break;o[a++]=252|N>>30,o[a++]=128|N>>24&63,o[a++]=128|N>>18&63,o[a++]=128|N>>12&63,o[a++]=128|N>>6&63,o[a++]=128|N&63}}return o[a]=0,a-_}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(i,o,a){return stringToUTF8Array(i,HEAPU8,o,a)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(i){for(var o=0,a=0;a=55296&&c<=57343&&(c=65536+((c&1023)<<10)|i.charCodeAt(++a)&1023),c<=127?++o:c<=2047?o+=2:c<=65535?o+=3:c<=2097151?o+=4:c<=67108863?o+=5:o+=6}return o}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function demangle(i){var o=Module.___cxa_demangle||Module.__cxa_demangle;if(o){try{var a=i.substr(1),c=lengthBytesUTF8(a)+1,_=_malloc(c);stringToUTF8(a,_,c);var t=_malloc(4),M=o(_,0,0,t);if(getValue(t,"i32")===0&&M)return Pointer_stringify(M)}catch(N){}finally{_&&_free(_),t&&_free(t),M&&_free(M)}return i}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function demangleAll(i){var o=/__Z[\w\d_]+/g;return i.replace(o,function(a){var c=demangle(a);return a===c?a:a+" ["+c+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error(0)}catch(o){i=o}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var i=jsStackTrace();return Module.extraStackTrace&&(i+=` +`+Module.extraStackTrace()),demangleAll(i)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var o=i.shift();if(typeof o=="function"){o();continue}var a=o.func;typeof a=="number"?o.arg===void 0?Module.dynCall_v(a):Module.dynCall_vi(a,o.arg):a(o.arg===void 0?null:o.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(i){__ATPRERUN__.unshift(i)}Module.addOnPreRun=addOnPreRun;function addOnInit(i){__ATINIT__.unshift(i)}Module.addOnInit=addOnInit;function addOnPreMain(i){__ATMAIN__.unshift(i)}Module.addOnPreMain=addOnPreMain;function addOnExit(i){__ATEXIT__.unshift(i)}Module.addOnExit=addOnExit;function addOnPostRun(i){__ATPOSTRUN__.unshift(i)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(i,o,a){var c=a>0?a:lengthBytesUTF8(i)+1,_=new Array(c),t=stringToUTF8Array(i,_,0,_.length);return o&&(_.length=t),_}Module.intArrayFromString=intArrayFromString;function intArrayToString(i){for(var o=[],a=0;a255&&(c&=255),o.push(String.fromCharCode(c))}return o.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(i,o,a){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var c,_;a&&(_=o+lengthBytesUTF8(i),c=HEAP8[_]),stringToUTF8(i,o,Infinity),a&&(HEAP8[_]=c)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(i,o){HEAP8.set(i,o)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(i,o,a){for(var c=0;c>0]=i.charCodeAt(c);a||(HEAP8[o>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(o,a){var c=o>>>16,_=o&65535,t=a>>>16,M=a&65535;return _*M+(c*M+_*t<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(i){return froundBuffer[0]=i,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(i){i=i>>>0;for(var o=0;o<32;o++)if(i&1<<31-o)return o;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(i){return i<0?Math.ceil(i):Math.floor(i)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(i){return i}function addRunDependency(i){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(i){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var o=dependenciesFulfilled;dependenciesFulfilled=null,o()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(i,o,a,c,_,t,M,N){return _nbind.callbackSignatureList[i].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(i,o,a,c,_,t,M,N){return ASM_CONSTS[i](o,a,c,_,t,M,N)}function _emscripten_asm_const_iiiii(i,o,a,c,_){return ASM_CONSTS[i](o,a,c,_)}function _emscripten_asm_const_iiidddddd(i,o,a,c,_,t,M,N,O){return ASM_CONSTS[i](o,a,c,_,t,M,N,O)}function _emscripten_asm_const_iiididi(i,o,a,c,_,t,M){return ASM_CONSTS[i](o,a,c,_,t,M)}function _emscripten_asm_const_iiii(i,o,a,c){return ASM_CONSTS[i](o,a,c)}function _emscripten_asm_const_iiiid(i,o,a,c,_){return ASM_CONSTS[i](o,a,c,_)}function _emscripten_asm_const_iiiiii(i,o,a,c,_,t){return ASM_CONSTS[i](o,a,c,_,t)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(i,o){__ATEXIT__.unshift({func:i,arg:o})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(i,o,a,c){var _=arguments.length,t=_<3?o:c===null?c=Object.getOwnPropertyDescriptor(o,a):c,M;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")t=Reflect.decorate(i,o,a,c);else for(var N=i.length-1;N>=0;N--)(M=i[N])&&(t=(_<3?M(t):_>3?M(o,a,t):M(o,a))||t);return _>3&&t&&Object.defineProperty(o,a,t),t}function _defineHidden(i){return function(o,a){Object.defineProperty(o,a,{configurable:!1,enumerable:!1,value:i,writable:!0})}}var _nbind={};function __nbind_free_external(i){_nbind.externalList[i].dereference(i)}function __nbind_reference_external(i){_nbind.externalList[i].reference()}function _llvm_stackrestore(i){var o=_llvm_stacksave,a=o.LLVM_SAVEDSTACKS[i];o.LLVM_SAVEDSTACKS.splice(i,1),Runtime.stackRestore(a)}function __nbind_register_pool(i,o,a,c){_nbind.Pool.pageSize=i,_nbind.Pool.usedPtr=o/4,_nbind.Pool.rootPtr=a,_nbind.Pool.pagePtr=c/4,HEAP32[o/4]=16909060,HEAP8[o]==1&&(_nbind.bigEndian=!0),HEAP32[o/4]=0,_nbind.makeTypeKindTbl=(t={},t[1024]=_nbind.PrimitiveType,t[64]=_nbind.Int64Type,t[2048]=_nbind.BindClass,t[3072]=_nbind.BindClassPtr,t[4096]=_nbind.SharedClassPtr,t[5120]=_nbind.ArrayType,t[6144]=_nbind.ArrayType,t[7168]=_nbind.CStringType,t[9216]=_nbind.CallbackType,t[10240]=_nbind.BindType,t),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var _=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});_.proto=Module,_nbind.BindClass.list.push(_);var t}function _emscripten_set_main_loop_timing(i,o){if(Browser.mainLoop.timingMode=i,Browser.mainLoop.timingValue=o,!Browser.mainLoop.func)return 1;if(i==0)Browser.mainLoop.scheduler=function(){var M=Math.max(0,Browser.mainLoop.tickStartTime+o-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,M)},Browser.mainLoop.method="timeout";else if(i==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(i==2){if(!window.setImmediate){let t=function(M){M.source===window&&M.data===c&&(M.stopPropagation(),a.shift()())};var _=t,a=[],c="setimmediate";window.addEventListener("message",t,!0),window.setImmediate=function(N){a.push(N),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(N),window.postMessage({target:c})):window.postMessage(c,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(i,o,a,c,_){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=i,Browser.mainLoop.arg=c;var t;typeof c!="undefined"?t=function(){Module.dynCall_vi(i,c)}:t=function(){Module.dynCall_v(i)};var M=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var O=Date.now(),T=Browser.mainLoop.queue.shift();if(T.func(T.arg),Browser.mainLoop.remainingBlockers){var B=Browser.mainLoop.remainingBlockers,H=B%1==0?B-1:Math.floor(B);T.counted?Browser.mainLoop.remainingBlockers=H:(H=H+.5,Browser.mainLoop.remainingBlockers=(8*B+H)/9)}if(console.log('main loop blocker "'+T.name+'" took '+(Date.now()-O)+" ms"),Browser.mainLoop.updateStatus(),M1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(t),!(M0?_emscripten_set_main_loop_timing(0,1e3/o):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),a)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var i=Browser.mainLoop.timingMode,o=Browser.mainLoop.timingValue,a=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(a,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(i,o),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var i=Module.statusMessage||"Please wait...",o=Browser.mainLoop.remainingBlockers,a=Browser.mainLoop.expectedBlockers;o?o=6;){var je=re>>we-6&63;we-=6,me+=_e[je]}return we==2?(me+=_e[(re&3)<<4],me+=ce+ce):we==4&&(me+=_e[(re&15)<<2],me+=ce),me}m.src="data:audio/x-"+M.substr(-3)+";base64,"+ve(t),B(m)},m.src=ne,Browser.safeSetTimeout(function(){B(m)},1e4)}else return H()},Module.preloadPlugins.push(o);function a(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var c=Module.canvas;c&&(c.requestPointerLock=c.requestPointerLock||c.mozRequestPointerLock||c.webkitRequestPointerLock||c.msRequestPointerLock||function(){},c.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},c.exitPointerLock=c.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),Module.elementPointerLock&&c.addEventListener("click",function(_){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),_.preventDefault())},!1))},createContext:function(i,o,a,c){if(o&&Module.ctx&&i==Module.canvas)return Module.ctx;var _,t;if(o){var M={antialias:!1,alpha:!1};if(c)for(var N in c)M[N]=c[N];t=GL.createContext(i,M),t&&(_=GL.getContext(t).GLctx)}else _=i.getContext("2d");return _?(a&&(o||assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=_,o&&GL.makeContextCurrent(t),Module.useWebGL=o,Browser.moduleContextCreatedCallbacks.forEach(function(O){O()}),Browser.init()),_):null},destroyContext:function(i,o,a){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,o,a){Browser.lockPointer=i,Browser.resizeCanvas=o,Browser.vrDevice=a,typeof Browser.lockPointer=="undefined"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas=="undefined"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice=="undefined"&&(Browser.vrDevice=null);var c=Module.canvas;function _(){Browser.isFullscreen=!1;var M=c.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===M?(c.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},c.exitFullscreen=c.exitFullscreen.bind(document),Browser.lockPointer&&c.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(M.parentNode.insertBefore(c,M),M.parentNode.removeChild(M),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(c)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",_,!1),document.addEventListener("mozfullscreenchange",_,!1),document.addEventListener("webkitfullscreenchange",_,!1),document.addEventListener("MSFullscreenChange",_,!1));var t=document.createElement("div");c.parentNode.insertBefore(t,c),t.appendChild(c),t.requestFullscreen=t.requestFullscreen||t.mozRequestFullScreen||t.msRequestFullscreen||(t.webkitRequestFullscreen?function(){t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(t.webkitRequestFullScreen?function(){t.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),a?t.requestFullscreen({vrDisplay:a}):t.requestFullscreen()},requestFullScreen:function(i,o,a){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(c,_,t){return Browser.requestFullscreen(c,_,t)},Browser.requestFullscreen(i,o,a)},nextRAF:0,fakeRequestAnimationFrame:function(i){var o=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=o+1e3/60;else for(;o+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var a=Math.max(Browser.nextRAF-o,0);setTimeout(i,a)},requestAnimationFrame:function(o){typeof window=="undefined"?Browser.fakeRequestAnimationFrame(o):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(o))},safeCallback:function(i){return function(){if(!ABORT)return i.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var i=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],i.forEach(function(o){o()})}},safeRequestAnimationFrame:function(i){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))})},safeSetTimeout:function(i,o){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))},o)},safeSetInterval:function(i,o){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&i()},o)},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var o=0;switch(i.type){case"DOMMouseScroll":o=i.detail;break;case"mousewheel":o=i.wheelDelta;break;case"wheel":o=i.deltaY;break;default:throw"unrecognized mouse wheel event: "+i.type}return o},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(Browser.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(i),Browser.mouseMovementY=Browser.getMovementY(i)),typeof SDL!="undefined"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var o=Module.canvas.getBoundingClientRect(),a=Module.canvas.width,c=Module.canvas.height,_=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,t=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var M=i.touch;if(M===void 0)return;var N=M.pageX-(_+o.left),O=M.pageY-(t+o.top);N=N*(a/o.width),O=O*(c/o.height);var T={x:N,y:O};if(i.type==="touchstart")Browser.lastTouches[M.identifier]=T,Browser.touches[M.identifier]=T;else if(i.type==="touchend"||i.type==="touchmove"){var B=Browser.touches[M.identifier];B||(B=T),Browser.lastTouches[M.identifier]=B,Browser.touches[M.identifier]=T}return}var H=i.pageX-(_+o.left),q=i.pageY-(t+o.top);H=H*(a/o.width),q=q*(c/o.height),Browser.mouseMovementX=H-Browser.mouseX,Browser.mouseMovementY=q-Browser.mouseY,Browser.mouseX=H,Browser.mouseY=q}},asyncLoad:function(i,o,a,c){var _=c?"":getUniqueRunDependency("al "+i);Module.readAsync(i,function(t){assert(t,'Loading data file "'+i+'" failed (no arrayBuffer).'),o(new Uint8Array(t)),_&&removeRunDependency(_)},function(t){if(a)a();else throw'Loading data file "'+i+'" failed.'}),_&&addRunDependency(_)},resizeListeners:[],updateResizeListeners:function(){var i=Module.canvas;Browser.resizeListeners.forEach(function(o){o(i.width,i.height)})},setCanvasSize:function(i,o,a){var c=Module.canvas;Browser.updateCanvasDimensions(c,i,o),a||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i&~8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},updateCanvasDimensions:function(i,o,a){o&&a?(i.widthNative=o,i.heightNative=a):(o=i.widthNative,a=i.heightNative);var c=o,_=a;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(c/_>2];return o},getStr:function(){var i=Pointer_stringify(SYSCALLS.get());return i},get64:function(){var i=SYSCALLS.get(),o=SYSCALLS.get();return i>=0?assert(o===0):assert(o===-1),i},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(i,o){SYSCALLS.varargs=o;try{var a=SYSCALLS.getStreamFromFD();return FS.close(a),0}catch(c){return(typeof FS=="undefined"||!(c instanceof FS.ErrnoError))&&abort(c),-c.errno}}function ___syscall54(i,o){SYSCALLS.varargs=o;try{return 0}catch(a){return(typeof FS=="undefined"||!(a instanceof FS.ErrnoError))&&abort(a),-a.errno}}function _typeModule(i){var o=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function a(O,T,B,H,q,ne){if(T==1){var m=H&896;(m==128||m==256||m==384)&&(O="X const")}var pe;return ne?pe=B.replace("X",O).replace("Y",q):pe=O.replace("X",B).replace("Y",q),pe.replace(/([*&]) (?=[*&])/g,"$1")}function c(O,T,B,H,q){throw new Error(O+" type "+B.replace("X",T+"?")+(H?" with flag "+H:"")+" in "+q)}function _(O,T,B,H,q,ne,m,pe){ne===void 0&&(ne="X"),pe===void 0&&(pe=1);var ge=B(O);if(ge)return ge;var ve=H(O),ue=ve.placeholderFlag,_e=o[ue];m&&_e&&(ne=a(m[2],m[0],ne,_e[0],"?",!0));var ce;ue==0&&(ce="Unbound"),ue>=10&&(ce="Corrupt"),pe>20&&(ce="Deeply nested"),ce&&c(ce,O,ne,ue,q||"?");var me=ve.paramList[0],re=_(me,T,B,H,q,ne,_e,pe+1),we,Ie={flags:_e[0],id:O,name:"",paramList:[re]},je=[],ct="?";switch(ve.placeholderFlag){case 1:we=re.spec;break;case 2:if((re.flags&15360)==1024&&re.spec.ptrSize==1){Ie.flags=7168;break}case 3:case 6:case 5:we=re.spec,(re.flags&15360)!=2048;break;case 8:ct=""+ve.paramList[1],Ie.paramList.push(ve.paramList[1]);break;case 9:for(var pt=0,Xe=ve.paramList[1];pt>2]=i),i}function _llvm_stacksave(){var i=_llvm_stacksave;return i.LLVM_SAVEDSTACKS||(i.LLVM_SAVEDSTACKS=[]),i.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),i.LLVM_SAVEDSTACKS.length-1}function ___syscall140(i,o){SYSCALLS.varargs=o;try{var a=SYSCALLS.getStreamFromFD(),c=SYSCALLS.get(),_=SYSCALLS.get(),t=SYSCALLS.get(),M=SYSCALLS.get(),N=_;return FS.llseek(a,N,M),HEAP32[t>>2]=a.position,a.getdents&&N===0&&M===0&&(a.getdents=null),0}catch(O){return(typeof FS=="undefined"||!(O instanceof FS.ErrnoError))&&abort(O),-O.errno}}function ___syscall146(i,o){SYSCALLS.varargs=o;try{var a=SYSCALLS.get(),c=SYSCALLS.get(),_=SYSCALLS.get(),t=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(B,H){var q=___syscall146.buffers[B];assert(q),H===0||H===10?((B===1?Module.print:Module.printErr)(UTF8ArrayToString(q,0)),q.length=0):q.push(H)});for(var M=0;M<_;M++){for(var N=HEAP32[c+M*8>>2],O=HEAP32[c+(M*8+4)>>2],T=0;Ti.pageSize/2||o>i.pageSize-a){var c=_nbind.typeNameTbl.NBind.proto;return c.lalloc(o)}else return HEAPU32[i.usedPtr]=a+o,i.rootPtr+a},i.lreset=function(o,a){var c=HEAPU32[i.pagePtr];if(c){var _=_nbind.typeNameTbl.NBind.proto;_.lreset(o,a)}else HEAPU32[i.usedPtr]=o},i}();_nbind.Pool=Pool;function constructType(i,o){var a=i==10240?_nbind.makeTypeNameTbl[o.name]||_nbind.BindType:_nbind.makeTypeKindTbl[i],c=new a(o);return typeIdTbl[o.id]=c,_nbind.typeNameTbl[o.name]=c,c}_nbind.constructType=constructType;function getType(i){return typeIdTbl[i]}_nbind.getType=getType;function queryType(i){var o=HEAPU8[i],a=_nbind.structureList[o][1];i/=4,a<0&&(++i,a=HEAPU32[i]+1);var c=Array.prototype.slice.call(HEAPU32.subarray(i+1,i+1+a));return o==9&&(c=[c[0],c.slice(1)]),{paramList:c,placeholderFlag:o}}_nbind.queryType=queryType;function getTypes(i,o){return i.map(function(a){return typeof a=="number"?_nbind.getComplexType(a,constructType,getType,queryType,o):_nbind.typeNameTbl[a]})}_nbind.getTypes=getTypes;function readTypeIdList(i,o){return Array.prototype.slice.call(HEAPU32,i/4,i/4+o)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(i){for(var o=i;HEAPU8[o++];);return String.fromCharCode.apply("",HEAPU8.subarray(i,o-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(i){var o={};if(i)for(;;){var a=HEAPU32[i/4];if(!a)break;o[readAsciiString(a)]=!0,i+=4}return o}_nbind.readPolicyList=readPolicyList;function getDynCall(i,o){var a={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},c=i.map(function(t){return a[t.name]||"i"}).join(""),_=Module["dynCall_"+c];if(!_)throw new Error("dynCall_"+c+" not found for "+o+"("+i.map(function(t){return t.name}).join(", ")+")");return _}_nbind.getDynCall=getDynCall;function addMethod(i,o,a,c){var _=i[o];i.hasOwnProperty(o)&&_?((_.arity||_.arity===0)&&(_=_nbind.makeOverloader(_,_.arity),i[o]=_),_.addMethod(a,c)):(a.arity=c,i[o]=a)}_nbind.addMethod=addMethod;function throwError(i){throw new Error(i)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(i){__extends(o,i);function o(){var a=i!==null&&i.apply(this,arguments)||this;return a.heap=HEAPU32,a.ptrSize=4,a}return o.prototype.needsWireRead=function(a){return!!this.wireRead||!!this.makeWireRead},o.prototype.needsWireWrite=function(a){return!!this.wireWrite||!!this.makeWireWrite},o}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(i){__extends(o,i);function o(a){var c=i.call(this,a)||this,_=a.flags&32?{32:HEAPF32,64:HEAPF64}:a.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return c.heap=_[a.ptrSize*8],c.ptrSize=a.ptrSize,c}return o.prototype.needsWireWrite=function(a){return!!a&&!!a.Strict},o.prototype.makeWireWrite=function(a,c){return c&&c.Strict&&function(_){if(typeof _=="number")return _;throw new Error("Type mismatch")}},o}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(i,o){if(i==null){if(o&&o.Nullable)return 0;throw new Error("Type mismatch")}if(o&&o.Strict){if(typeof i!="string")throw new Error("Type mismatch")}else i=i.toString();var a=Module.lengthBytesUTF8(i)+1,c=_nbind.Pool.lalloc(a);return Module.stringToUTF8Array(i,HEAPU8,c,a),c}_nbind.pushCString=pushCString;function popCString(i){return i===0?null:Module.Pointer_stringify(i)}_nbind.popCString=popCString;var CStringType=function(i){__extends(o,i);function o(){var a=i!==null&&i.apply(this,arguments)||this;return a.wireRead=popCString,a.wireWrite=pushCString,a.readResources=[_nbind.resources.pool],a.writeResources=[_nbind.resources.pool],a}return o.prototype.makeWireWrite=function(a,c){return function(_){return pushCString(_,c)}},o}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(i){__extends(o,i);function o(){var a=i!==null&&i.apply(this,arguments)||this;return a.wireRead=function(c){return!!c},a}return o.prototype.needsWireWrite=function(a){return!!a&&!!a.Strict},o.prototype.makeWireRead=function(a){return"!!("+a+")"},o.prototype.makeWireWrite=function(a,c){return c&&c.Strict&&function(_){if(typeof _=="boolean")return _;throw new Error("Type mismatch")}||a},o}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function i(){}return i.prototype.persist=function(){this.__nbindState|=1},i}();_nbind.Wrapper=Wrapper;function makeBound(i,o){var a=function(c){__extends(_,c);function _(t,M,N,O){var T=c.call(this)||this;if(!(T instanceof _))return new(Function.prototype.bind.apply(_,Array.prototype.concat.apply([null],arguments)));var B=M,H=N,q=O;if(t!==_nbind.ptrMarker){var ne=T.__nbindConstructor.apply(T,arguments);B=4096|512,q=HEAPU32[ne/4],H=HEAPU32[ne/4+1]}var m={configurable:!0,enumerable:!1,value:null,writable:!1},pe={__nbindFlags:B,__nbindPtr:H};q&&(pe.__nbindShared=q,_nbind.mark(T));for(var ge=0,ve=Object.keys(pe);ge>=1;var a=_nbind.valueList[i];return _nbind.valueList[i]=firstFreeValue,firstFreeValue=i,a}else{if(o)return _nbind.popShared(i,o);throw new Error("Invalid value slot "+i)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(i){return typeof i=="number"?i:pushValue(i)*4096+valueBase}function pop64(i){return i=3?M=Buffer.from(t):M=new Buffer(t),M.copy(c)}else getBuffer(c).set(t)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var i=0,o=dirtyList;i>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(i,o,a,c,_,t){try{Module.dynCall_viiiii(i,o,a,c,_,t)}catch(M){if(typeof M!="number"&&M!=="longjmp")throw M;Module.setThrew(1,0)}}function invoke_vif(i,o,a){try{Module.dynCall_vif(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_vid(i,o,a){try{Module.dynCall_vid(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_fiff(i,o,a,c){try{return Module.dynCall_fiff(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_vi(i,o){try{Module.dynCall_vi(i,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vii(i,o,a){try{Module.dynCall_vii(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_ii(i,o){try{return Module.dynCall_ii(i,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_viddi(i,o,a,c,_){try{Module.dynCall_viddi(i,o,a,c,_)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_vidd(i,o,a,c){try{Module.dynCall_vidd(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_iiii(i,o,a,c){try{return Module.dynCall_iiii(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_diii(i,o,a,c){try{return Module.dynCall_diii(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_di(i,o){try{return Module.dynCall_di(i,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iid(i,o,a){try{return Module.dynCall_iid(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_iii(i,o,a){try{return Module.dynCall_iii(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiddi(i,o,a,c,_,t){try{Module.dynCall_viiddi(i,o,a,c,_,t)}catch(M){if(typeof M!="number"&&M!=="longjmp")throw M;Module.setThrew(1,0)}}function invoke_viiiiii(i,o,a,c,_,t,M){try{Module.dynCall_viiiiii(i,o,a,c,_,t,M)}catch(N){if(typeof N!="number"&&N!=="longjmp")throw N;Module.setThrew(1,0)}}function invoke_dii(i,o,a){try{return Module.dynCall_dii(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_i(i){try{return Module.dynCall_i(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iiiiii(i,o,a,c,_,t){try{return Module.dynCall_iiiiii(i,o,a,c,_,t)}catch(M){if(typeof M!="number"&&M!=="longjmp")throw M;Module.setThrew(1,0)}}function invoke_viiid(i,o,a,c,_){try{Module.dynCall_viiid(i,o,a,c,_)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viififi(i,o,a,c,_,t,M){try{Module.dynCall_viififi(i,o,a,c,_,t,M)}catch(N){if(typeof N!="number"&&N!=="longjmp")throw N;Module.setThrew(1,0)}}function invoke_viii(i,o,a,c){try{Module.dynCall_viii(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_v(i){try{Module.dynCall_v(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viid(i,o,a,c){try{Module.dynCall_viid(i,o,a,c)}catch(_){if(typeof _!="number"&&_!=="longjmp")throw _;Module.setThrew(1,0)}}function invoke_idd(i,o,a){try{return Module.dynCall_idd(i,o,a)}catch(c){if(typeof c!="number"&&c!=="longjmp")throw c;Module.setThrew(1,0)}}function invoke_viiii(i,o,a,c,_){try{Module.dynCall_viiii(i,o,a,c,_)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:Infinity},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(i,o,a){var c=new i.Int8Array(a),_=new i.Int16Array(a),t=new i.Int32Array(a),M=new i.Uint8Array(a),N=new i.Uint16Array(a),O=new i.Uint32Array(a),T=new i.Float32Array(a),B=new i.Float64Array(a),H=o.DYNAMICTOP_PTR|0,q=o.tempDoublePtr|0,ne=o.ABORT|0,m=o.STACKTOP|0,pe=o.STACK_MAX|0,ge=o.cttz_i8|0,ve=o.___dso_handle|0,ue=0,_e=0,ce=0,me=0,re=i.NaN,we=i.Infinity,Ie=0,je=0,ct=0,pt=0,Xe=0,tt=0,He=i.Math.floor,kt=i.Math.abs,zt=i.Math.sqrt,nt=i.Math.pow,X=i.Math.cos,fe=i.Math.sin,xe=i.Math.tan,le=i.Math.acos,qe=i.Math.asin,dt=i.Math.atan,Rt=i.Math.atan2,nn=i.Math.exp,an=i.Math.log,Mn=i.Math.ceil,lr=i.Math.imul,ln=i.Math.min,Gt=i.Math.max,Er=i.Math.clz32,w=i.Math.fround,jt=o.abort,Xn=o.assert,vr=o.enlargeMemory,jr=o.getTotalMemory,fr=o.abortOnCannotGrowMemory,zr=o.invoke_viiiii,Qt=o.invoke_vif,wu=o.invoke_vid,po=o.invoke_fiff,A0=o.invoke_vi,J0=o.invoke_vii,Ps=o.invoke_ii,Z0=o.invoke_viddi,$0=o.invoke_vidd,Wt=o.invoke_iiii,xi=o.invoke_diii,su=o.invoke_di,mi=o.invoke_iid,Dr=o.invoke_iii,el=o.invoke_viiddi,Ko=o.invoke_viiiiii,Uu=o.invoke_dii,Xo=o.invoke_i,Xr=o.invoke_iiiiii,O0=o.invoke_viiid,M0=o.invoke_viififi,Po=o.invoke_viii,au=o.invoke_v,ki=o.invoke_viid,Is=o.invoke_idd,Xl=o.invoke_viiii,Io=o._emscripten_asm_const_iiiii,ho=o._emscripten_asm_const_iiidddddd,Hr=o._emscripten_asm_const_iiiid,Ri=o.__nbind_reference_external,Qo=o._emscripten_asm_const_iiiiiiii,yi=o._removeAccessorPrefix,en=o._typeModule,bn=o.__nbind_register_pool,Ai=o.__decorate,gi=o._llvm_stackrestore,Vt=o.___cxa_atexit,Au=o.__extends,eu=o.__nbind_get_value_object,Jo=o.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Yi=o._emscripten_set_main_loop_timing,Ql=o.__nbind_register_primitive,k0=o.__nbind_register_type,ai=o._emscripten_memcpy_big,f0=o.__nbind_register_function,Jl=o.___setErrNo,L0=o.__nbind_register_class,bs=o.__nbind_finish,$n=o._abort,tl=o._nbind_value,c0=o._llvm_stacksave,bo=o.___syscall54,Sl=o._defineHidden,N0=o._emscripten_set_main_loop,wt=o._emscripten_get_now,bt=o.__nbind_register_callback_signature,Hn=o._emscripten_asm_const_iiiiii,qr=o.__nbind_free_external,Ki=o._emscripten_asm_const_iiii,Qr=o._emscripten_asm_const_iiididi,Ou=o.___syscall6,vo=o._atexit,Li=o.___syscall140,mo=o.___syscall146,vs=w(0);let Tt=w(0);function d0(e){e=e|0;var n=0;return n=m,m=m+e|0,m=m+15&-16,n|0}function nl(){return m|0}function Zl(e){e=e|0,m=e}function ju(e,n){e=e|0,n=n|0,m=e,pe=n}function ms(e,n){e=e|0,n=n|0,ue||(ue=e,_e=n)}function Bo(e){e=e|0,tt=e}function Q(){return tt|0}function Se(){var e=0,n=0;gr(8104,8,400)|0,gr(8504,408,540)|0,e=9044,n=e+44|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));c[9088]=0,c[9089]=1,t[2273]=0,t[2274]=948,t[2275]=948,Vt(17,8104,ve|0)|0}function Ne(e){e=e|0,fc(e+948|0)}function Le(e){return e=w(e),((mr(e)|0)&2147483647)>>>0>2139095040|0}function ht(e,n,r){e=e|0,n=n|0,r=r|0;e:do if(t[e+(n<<3)+4>>2]|0)e=e+(n<<3)|0;else{if((n|2|0)==3?t[e+60>>2]|0:0){e=e+56|0;break}switch(n|0){case 0:case 2:case 4:case 5:{if(t[e+52>>2]|0){e=e+48|0;break e}break}default:}if(t[e+68>>2]|0){e=e+64|0;break}else{e=(n|1|0)==5?948:r;break}}while(0);return e|0}function Yn(e){e=e|0;var n=0;return n=T_(1e3)|0,Cn(e,(n|0)!=0,2456),t[2276]=(t[2276]|0)+1,gr(n|0,8104,1e3)|0,c[e+2>>0]|0&&(t[n+4>>2]=2,t[n+12>>2]=4),t[n+976>>2]=e,n|0}function Cn(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,Cl(e,5,3197,u)),m=l}function cr(){return Yn(956)|0}function Si(e){e=e|0;var n=0;return n=pn(1e3)|0,Mu(n,e),Cn(t[e+976>>2]|0,1,2456),t[2276]=(t[2276]|0)+1,t[n+944>>2]=0,n|0}function Mu(e,n){e=e|0,n=n|0;var r=0;gr(e|0,n|0,948)|0,aa(e+948|0,n+948|0),r=e+960|0,e=n+960|0,n=r+40|0;do t[r>>2]=t[e>>2],r=r+4|0,e=e+4|0;while((r|0)<(n|0))}function zu(e){e=e|0;var n=0,r=0,u=0,l=0;if(n=e+944|0,r=t[n>>2]|0,r|0&&(Hu(r+948|0,e)|0,t[n>>2]=0),r=Su(e)|0,r|0){n=0;do t[(Ti(e,n)|0)+944>>2]=0,n=n+1|0;while((n|0)!=(r|0))}r=e+948|0,u=t[r>>2]|0,l=e+952|0,n=t[l>>2]|0,(n|0)!=(u|0)&&(t[l>>2]=n+(~((n+-4-u|0)>>>2)<<2)),F0(r),C_(e),t[2276]=(t[2276]|0)+-1}function Hu(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0;u=t[e>>2]|0,D=e+4|0,r=t[D>>2]|0,s=r;e:do if((u|0)==(r|0))l=u,h=4;else for(e=u;;){if((t[e>>2]|0)==(n|0)){l=e,h=4;break e}if(e=e+4|0,(e|0)==(r|0)){e=0;break}}while(0);return(h|0)==4&&((l|0)!=(r|0)?(u=l+4|0,e=s-u|0,n=e>>2,n&&(ky(l|0,u|0,e|0)|0,r=t[D>>2]|0),e=l+(n<<2)|0,(r|0)==(e|0)||(t[D>>2]=r+(~((r+-4-e|0)>>>2)<<2)),e=1):e=0),e|0}function Su(e){return e=e|0,(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2|0}function Ti(e,n){e=e|0,n=n|0;var r=0;return r=t[e+948>>2]|0,(t[e+952>>2]|0)-r>>2>>>0>n>>>0?e=t[r+(n<<2)>>2]|0:e=0,e|0}function F0(e){e=e|0;var n=0,r=0,u=0,l=0;u=m,m=m+32|0,n=u,l=t[e>>2]|0,r=(t[e+4>>2]|0)-l|0,((t[e+8>>2]|0)-l|0)>>>0>r>>>0&&(l=r>>2,Y(n,l,l,e+8|0),ri(e,n),ii(n)),m=u}function ku(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0;L=Su(e)|0;do if(L|0){if((t[(Ti(e,0)|0)+944>>2]|0)==(e|0)){if(!(Hu(e+948|0,n)|0))break;gr(n+400|0,8504,540)|0,t[n+944>>2]=0,Qn(e);break}h=t[(t[e+976>>2]|0)+12>>2]|0,D=e+948|0,S=(h|0)==0,r=0,s=0;do u=t[(t[D>>2]|0)+(s<<2)>>2]|0,(u|0)==(n|0)?Qn(e):(l=Si(u)|0,t[(t[D>>2]|0)+(r<<2)>>2]=l,t[l+944>>2]=e,S||nD[h&15](u,l,e,r),r=r+1|0),s=s+1|0;while((s|0)!=(L|0));if(r>>>0>>0){S=e+948|0,D=e+952|0,h=r,r=t[D>>2]|0;do s=(t[S>>2]|0)+(h<<2)|0,u=s+4|0,l=r-u|0,n=l>>2,n&&(ky(s|0,u|0,l|0)|0,r=t[D>>2]|0),l=r,u=s+(n<<2)|0,(l|0)!=(u|0)&&(r=l+(~((l+-4-u|0)>>>2)<<2)|0,t[D>>2]=r),h=h+1|0;while((h|0)!=(L|0))}}while(0)}function p0(e){e=e|0;var n=0,r=0,u=0,l=0;qu(e,(Su(e)|0)==0,2491),qu(e,(t[e+944>>2]|0)==0,2545),n=e+948|0,r=t[n>>2]|0,u=e+952|0,l=t[u>>2]|0,(l|0)!=(r|0)&&(t[u>>2]=l+(~((l+-4-r|0)>>>2)<<2)),F0(n),n=e+976|0,r=t[n>>2]|0,gr(e|0,8104,1e3)|0,c[r+2>>0]|0&&(t[e+4>>2]=2,t[e+12>>2]=4),t[n>>2]=r}function qu(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,pr(e,5,3197,u)),m=l}function Ia(){return t[2276]|0}function yo(){var e=0;return e=T_(20)|0,ua((e|0)!=0,2592),t[2277]=(t[2277]|0)+1,t[e>>2]=t[239],t[e+4>>2]=t[240],t[e+8>>2]=t[241],t[e+12>>2]=t[242],t[e+16>>2]=t[243],e|0}function ua(e,n){e=e|0,n=n|0;var r=0,u=0;u=m,m=m+16|0,r=u,e||(t[r>>2]=n,pr(0,5,3197,r)),m=u}function Zo(e){e=e|0,C_(e),t[2277]=(t[2277]|0)+-1}function oa(e,n){e=e|0,n=n|0;var r=0;n?(qu(e,(Su(e)|0)==0,2629),r=1):(r=0,n=0),t[e+964>>2]=n,t[e+988>>2]=r}function ba(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+8|0,l=u+4|0,h=u,t[l>>2]=n,qu(e,(t[n+944>>2]|0)==0,2709),qu(e,(t[e+964>>2]|0)==0,2763),ys(e),n=e+948|0,t[h>>2]=(t[n>>2]|0)+(r<<2),t[s>>2]=t[h>>2],To(n,s,l)|0,t[(t[l>>2]|0)+944>>2]=e,Qn(e),m=u}function ys(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;if(r=Su(e)|0,r|0?(t[(Ti(e,0)|0)+944>>2]|0)!=(e|0):0){u=t[(t[e+976>>2]|0)+12>>2]|0,l=e+948|0,s=(u|0)==0,n=0;do h=t[(t[l>>2]|0)+(n<<2)>>2]|0,D=Si(h)|0,t[(t[l>>2]|0)+(n<<2)>>2]=D,t[D+944>>2]=e,s||nD[u&15](h,D,e,n),n=n+1|0;while((n|0)!=(r|0))}}function To(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0;Ze=m,m=m+64|0,I=Ze+52|0,D=Ze+48|0,K=Ze+28|0,Be=Ze+24|0,Te=Ze+20|0,ye=Ze,u=t[e>>2]|0,s=u,n=u+((t[n>>2]|0)-s>>2<<2)|0,u=e+4|0,l=t[u>>2]|0,h=e+8|0;do if(l>>>0<(t[h>>2]|0)>>>0){if((n|0)==(l|0)){t[n>>2]=t[r>>2],t[u>>2]=(t[u>>2]|0)+4;break}Vr(e,n,l,n+4|0),n>>>0<=r>>>0&&(r=(t[u>>2]|0)>>>0>r>>>0?r+4|0:r),t[n>>2]=t[r>>2]}else{u=(l-s>>2)+1|0,l=Ao(e)|0,l>>>0>>0&&hi(e),k=t[e>>2]|0,L=(t[h>>2]|0)-k|0,s=L>>1,Y(ye,L>>2>>>0>>1>>>0?s>>>0>>0?u:s:l,n-k>>2,e+8|0),k=ye+8|0,u=t[k>>2]|0,s=ye+12|0,L=t[s>>2]|0,h=L,S=u;do if((u|0)==(L|0)){if(L=ye+4|0,u=t[L>>2]|0,Ge=t[ye>>2]|0,l=Ge,u>>>0<=Ge>>>0){u=h-l>>1,u=(u|0)==0?1:u,Y(K,u,u>>>2,t[ye+16>>2]|0),t[Be>>2]=t[L>>2],t[Te>>2]=t[k>>2],t[D>>2]=t[Be>>2],t[I>>2]=t[Te>>2],Di(K,D,I),u=t[ye>>2]|0,t[ye>>2]=t[K>>2],t[K>>2]=u,u=K+4|0,Ge=t[L>>2]|0,t[L>>2]=t[u>>2],t[u>>2]=Ge,u=K+8|0,Ge=t[k>>2]|0,t[k>>2]=t[u>>2],t[u>>2]=Ge,u=K+12|0,Ge=t[s>>2]|0,t[s>>2]=t[u>>2],t[u>>2]=Ge,ii(K),u=t[k>>2]|0;break}s=u,h=((s-l>>2)+1|0)/-2|0,D=u+(h<<2)|0,l=S-s|0,s=l>>2,s&&(ky(D|0,u|0,l|0)|0,u=t[L>>2]|0),Ge=D+(s<<2)|0,t[k>>2]=Ge,t[L>>2]=u+(h<<2),u=Ge}while(0);t[u>>2]=t[r>>2],t[k>>2]=(t[k>>2]|0)+4,n=at(e,ye,n)|0,ii(ye)}while(0);return m=Ze,n|0}function Qn(e){e=e|0;var n=0;do{if(n=e+984|0,c[n>>0]|0)break;c[n>>0]=1,T[e+504>>2]=w(re),e=t[e+944>>2]|0}while((e|0)!=0)}function fc(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),_t(r))}function fi(e){return e=e|0,t[e+944>>2]|0}function $r(e){e=e|0,qu(e,(t[e+964>>2]|0)!=0,2832),Qn(e)}function $l(e){return e=e|0,(c[e+984>>0]|0)!=0|0}function la(e,n){e=e|0,n=n|0,LF(e,n,400)|0&&(gr(e|0,n|0,400)|0,Qn(e))}function hf(e){e=e|0;var n=Tt;return n=w(T[e+44>>2]),e=Le(n)|0,w(e?w(0):n)}function Bs(e){e=e|0;var n=Tt;return n=w(T[e+48>>2]),Le(n)|0&&(n=c[(t[e+976>>2]|0)+2>>0]|0?w(1):w(0)),w(n)}function Ba(e,n){e=e|0,n=n|0,t[e+980>>2]=n}function Us(e){return e=e|0,t[e+980>>2]|0}function go(e,n){e=e|0,n=n|0;var r=0;r=e+4|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function js(e){return e=e|0,t[e+4>>2]|0}function ji(e,n){e=e|0,n=n|0;var r=0;r=e+8|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function U(e){return e=e|0,t[e+8>>2]|0}function z(e,n){e=e|0,n=n|0;var r=0;r=e+12|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function G(e){return e=e|0,t[e+12>>2]|0}function $(e,n){e=e|0,n=n|0;var r=0;r=e+16|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function Ce(e){return e=e|0,t[e+16>>2]|0}function Ee(e,n){e=e|0,n=n|0;var r=0;r=e+20|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function Ae(e){return e=e|0,t[e+20>>2]|0}function Z(e,n){e=e|0,n=n|0;var r=0;r=e+24|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function ke(e){return e=e|0,t[e+24>>2]|0}function Je(e,n){e=e|0,n=n|0;var r=0;r=e+28|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function mt(e){return e=e|0,t[e+28>>2]|0}function oe(e,n){e=e|0,n=n|0;var r=0;r=e+32|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function We(e){return e=e|0,t[e+32>>2]|0}function it(e,n){e=e|0,n=n|0;var r=0;r=e+36|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Qn(e))}function Ct(e){return e=e|0,t[e+36>>2]|0}function Mt(e,n){e=e|0,n=w(n);var r=0;r=e+40|0,w(T[r>>2])!=n&&(T[r>>2]=n,Qn(e))}function It(e,n){e=e|0,n=w(n);var r=0;r=e+44|0,w(T[r>>2])!=n&&(T[r>>2]=n,Qn(e))}function sn(e,n){e=e|0,n=w(n);var r=0;r=e+48|0,w(T[r>>2])!=n&&(T[r>>2]=n,Qn(e))}function rn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+52|0,l=e+56|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function Ft(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+52|0,r=e+56|0,(w(T[u>>2])==n?(t[r>>2]|0)==2:0)||(T[u>>2]=n,u=Le(n)|0,t[r>>2]=u?3:2,Qn(e))}function Dn(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+52|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function dr(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=(s^1)&1,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function er(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=s?0:2,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function Cr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+132+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function An(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=(s^1)&1,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function Lr(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=s?0:2,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function _o(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+60+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Nr(e,n){e=e|0,n=n|0;var r=0;r=e+60+(n<<3)+4|0,(t[r>>2]|0)!=3&&(T[e+60+(n<<3)>>2]=w(re),t[r>>2]=3,Qn(e))}function ut(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=(s^1)&1,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function Dt(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=s?0:2,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function et(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+204+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Pt(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Le(r)|0,u=(s^1)&1,l=e+276+(n<<3)|0,n=e+276+(n<<3)+4|0,(s|w(T[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(T[l>>2]=r,t[n>>2]=u,Qn(e))}function un(e,n){return e=e|0,n=n|0,w(T[e+276+(n<<3)>>2])}function fn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+348|0,l=e+352|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function Jn(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+348|0,r=e+352|0,(w(T[u>>2])==n?(t[r>>2]|0)==2:0)||(T[u>>2]=n,u=Le(n)|0,t[r>>2]=u?3:2,Qn(e))}function wr(e){e=e|0;var n=0;n=e+352|0,(t[n>>2]|0)!=3&&(T[e+348>>2]=w(re),t[n>>2]=3,Qn(e))}function fu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+348|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Lu(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+356|0,l=e+360|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function Co(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+356|0,r=e+360|0,(w(T[u>>2])==n?(t[r>>2]|0)==2:0)||(T[u>>2]=n,u=Le(n)|0,t[r>>2]=u?3:2,Qn(e))}function $o(e){e=e|0;var n=0;n=e+360|0,(t[n>>2]|0)!=3&&(T[e+356>>2]=w(re),t[n>>2]=3,Qn(e))}function Nu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+356|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function _i(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+364|0,l=e+368|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function P0(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=s?0:2,u=e+364|0,l=e+368|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function rl(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+364|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function vf(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+372|0,l=e+376|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function Tl(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=s?0:2,u=e+372|0,l=e+376|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function mf(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+372|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function I0(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+380|0,l=e+384|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function gs(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=s?0:2,u=e+380|0,l=e+384|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function zs(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+380|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function b0(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=(s^1)&1,u=e+388|0,l=e+392|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function B0(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Le(n)|0,r=s?0:2,u=e+388|0,l=e+392|0,(s|w(T[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(T[u>>2]=n,t[l>>2]=r,Qn(e))}function _s(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+388|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Qu(e,n){e=e|0,n=w(n);var r=0;r=e+396|0,w(T[r>>2])!=n&&(T[r>>2]=n,Qn(e))}function Tu(e){return e=e|0,w(T[e+396>>2])}function Ei(e){return e=e|0,w(T[e+400>>2])}function xo(e){return e=e|0,w(T[e+404>>2])}function e0(e){return e=e|0,w(T[e+408>>2])}function U0(e){return e=e|0,w(T[e+412>>2])}function sa(e){return e=e|0,w(T[e+416>>2])}function es(e){return e=e|0,w(T[e+420>>2])}function tu(e,n){switch(e=e|0,n=n|0,qu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(T[e+424+(n<<2)>>2])}function ei(e,n){switch(e=e|0,n=n|0,qu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(T[e+448+(n<<2)>>2])}function h0(e,n){switch(e=e|0,n=n|0,qu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(T[e+472+(n<<2)>>2])}function Bi(e,n){e=e|0,n=n|0;var r=0,u=Tt;return r=t[e+4>>2]|0,(r|0)==(t[n+4>>2]|0)?r?(u=w(T[e>>2]),e=w(kt(w(u-w(T[n>>2]))))>2]=0,t[u+4>>2]=0,t[u+8>>2]=0,Jo(u|0,e|0,n|0,0),pr(e,3,(c[u+11>>0]|0)<0?t[u>>2]|0:u,r),tP(u),m=r}function t0(e,n,r,u){e=w(e),n=w(n),r=r|0,u=u|0;var l=Tt;e=w(e*n),l=w(QE(e,w(1)));do if(Ci(l,w(0))|0)e=w(e-l);else{if(e=w(e-l),Ci(l,w(1))|0){e=w(e+w(1));break}if(r){e=w(e+w(1));break}u||(l>w(.5)?l=w(1):(u=Ci(l,w(.5))|0,l=w(u?1:0)),e=w(e+l))}while(0);return w(e/n)}function n0(e,n,r,u,l,s,h,D,S,L,k,I,K){e=e|0,n=w(n),r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,D=w(D),S=w(S),L=w(L),k=w(k),I=w(I),K=K|0;var Be=0,Te=Tt,ye=Tt,Ze=Tt,Ge=Tt,ft=Tt,Me=Tt;return S>2]),Te!=w(0)):0)?(Ze=w(t0(n,Te,0,0)),Ge=w(t0(u,Te,0,0)),ye=w(t0(s,Te,0,0)),Te=w(t0(D,Te,0,0))):(ye=s,Ze=n,Te=D,Ge=u),(l|0)==(e|0)?Be=Ci(ye,Ze)|0:Be=0,(h|0)==(r|0)?K=Ci(Te,Ge)|0:K=0,((Be?0:(ft=w(n-k),!(Re(e,ft,S)|0)))?!(rt(e,ft,l,S)|0):0)?Be=Ye(e,ft,l,s,S)|0:Be=1,((K?0:(Me=w(u-I),!(Re(r,Me,L)|0)))?!(rt(r,Me,h,L)|0):0)?K=Ye(r,Me,h,D,L)|0:K=1,K=Be&K),K|0}function Re(e,n,r){return e=e|0,n=w(n),r=w(r),(e|0)==1?e=Ci(n,r)|0:e=0,e|0}function rt(e,n,r,u){return e=e|0,n=w(n),r=r|0,u=w(u),(e|0)==2&(r|0)==0?n>=u?e=1:e=Ci(n,u)|0:e=0,e|0}function Ye(e,n,r,u,l){return e=e|0,n=w(n),r=r|0,u=w(u),l=w(l),(e|0)==2&(r|0)==2&u>n?l<=n?e=1:e=Ci(n,l)|0:e=0,e|0}function Kt(e,n,r,u,l,s,h,D,S,L,k){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,L=L|0,k=k|0;var I=0,K=0,Be=0,Te=0,ye=Tt,Ze=Tt,Ge=0,ft=0,Me=0,Pe=0,Zt=0,Br=0,In=0,gn=0,_r=0,Pr=0,Ln=0,uu=Tt,ls=Tt,ss=Tt,as=0,ta=0;Ln=m,m=m+160|0,gn=Ln+152|0,In=Ln+120|0,Br=Ln+104|0,Me=Ln+72|0,Te=Ln+56|0,Zt=Ln+8|0,ft=Ln,Pe=(t[2279]|0)+1|0,t[2279]=Pe,_r=e+984|0,((c[_r>>0]|0)!=0?(t[e+512>>2]|0)!=(t[2278]|0):0)?Ge=4:(t[e+516>>2]|0)==(u|0)?Pr=0:Ge=4,(Ge|0)==4&&(t[e+520>>2]=0,t[e+924>>2]=-1,t[e+928>>2]=-1,T[e+932>>2]=w(-1),T[e+936>>2]=w(-1),Pr=1);e:do if(t[e+964>>2]|0)if(ye=w(Xt(e,2,h)),Ze=w(Xt(e,0,h)),I=e+916|0,ss=w(T[I>>2]),ls=w(T[e+920>>2]),uu=w(T[e+932>>2]),n0(l,n,s,r,t[e+924>>2]|0,ss,t[e+928>>2]|0,ls,uu,w(T[e+936>>2]),ye,Ze,k)|0)Ge=22;else if(Be=t[e+520>>2]|0,!Be)Ge=21;else for(K=0;;){if(I=e+524+(K*24|0)|0,uu=w(T[I>>2]),ls=w(T[e+524+(K*24|0)+4>>2]),ss=w(T[e+524+(K*24|0)+16>>2]),n0(l,n,s,r,t[e+524+(K*24|0)+8>>2]|0,uu,t[e+524+(K*24|0)+12>>2]|0,ls,ss,w(T[e+524+(K*24|0)+20>>2]),ye,Ze,k)|0){Ge=22;break e}if(K=K+1|0,K>>>0>=Be>>>0){Ge=21;break}}else{if(S){if(I=e+916|0,!(Ci(w(T[I>>2]),n)|0)){Ge=21;break}if(!(Ci(w(T[e+920>>2]),r)|0)){Ge=21;break}if((t[e+924>>2]|0)!=(l|0)){Ge=21;break}I=(t[e+928>>2]|0)==(s|0)?I:0,Ge=22;break}if(Be=t[e+520>>2]|0,!Be)Ge=21;else for(K=0;;){if(I=e+524+(K*24|0)|0,((Ci(w(T[I>>2]),n)|0?Ci(w(T[e+524+(K*24|0)+4>>2]),r)|0:0)?(t[e+524+(K*24|0)+8>>2]|0)==(l|0):0)?(t[e+524+(K*24|0)+12>>2]|0)==(s|0):0){Ge=22;break e}if(K=K+1|0,K>>>0>=Be>>>0){Ge=21;break}}}while(0);do if((Ge|0)==21)c[11697]|0?(I=0,Ge=28):(I=0,Ge=31);else if((Ge|0)==22){if(K=(c[11697]|0)!=0,!((I|0)!=0&(Pr^1)))if(K){Ge=28;break}else{Ge=31;break}Te=I+16|0,t[e+908>>2]=t[Te>>2],Be=I+20|0,t[e+912>>2]=t[Be>>2],(c[11698]|0)==0|K^1||(t[ft>>2]=Wr(Pe)|0,t[ft+4>>2]=Pe,pr(e,4,2972,ft),K=t[e+972>>2]|0,K|0&&P1[K&127](e),l=xn(l,S)|0,s=xn(s,S)|0,ta=+w(T[Te>>2]),as=+w(T[Be>>2]),t[Zt>>2]=l,t[Zt+4>>2]=s,B[Zt+8>>3]=+n,B[Zt+16>>3]=+r,B[Zt+24>>3]=ta,B[Zt+32>>3]=as,t[Zt+40>>2]=L,pr(e,4,2989,Zt))}while(0);return(Ge|0)==28&&(K=Wr(Pe)|0,t[Te>>2]=K,t[Te+4>>2]=Pe,t[Te+8>>2]=Pr?3047:11699,pr(e,4,3038,Te),K=t[e+972>>2]|0,K|0&&P1[K&127](e),Zt=xn(l,S)|0,Ge=xn(s,S)|0,t[Me>>2]=Zt,t[Me+4>>2]=Ge,B[Me+8>>3]=+n,B[Me+16>>3]=+r,t[Me+24>>2]=L,pr(e,4,3049,Me),Ge=31),(Ge|0)==31&&(yu(e,n,r,u,l,s,h,D,S,k),c[11697]|0&&(K=t[2279]|0,Zt=Wr(K)|0,t[Br>>2]=Zt,t[Br+4>>2]=K,t[Br+8>>2]=Pr?3047:11699,pr(e,4,3083,Br),K=t[e+972>>2]|0,K|0&&P1[K&127](e),Zt=xn(l,S)|0,Br=xn(s,S)|0,as=+w(T[e+908>>2]),ta=+w(T[e+912>>2]),t[In>>2]=Zt,t[In+4>>2]=Br,B[In+8>>3]=as,B[In+16>>3]=ta,t[In+24>>2]=L,pr(e,4,3092,In)),t[e+516>>2]=u,I||(K=e+520|0,I=t[K>>2]|0,(I|0)==16&&(c[11697]|0&&pr(e,4,3124,gn),t[K>>2]=0,I=0),S?I=e+916|0:(t[K>>2]=I+1,I=e+524+(I*24|0)|0),T[I>>2]=n,T[I+4>>2]=r,t[I+8>>2]=l,t[I+12>>2]=s,t[I+16>>2]=t[e+908>>2],t[I+20>>2]=t[e+912>>2],I=0)),S&&(t[e+416>>2]=t[e+908>>2],t[e+420>>2]=t[e+912>>2],c[e+985>>0]=1,c[_r>>0]=0),t[2279]=(t[2279]|0)+-1,t[e+512>>2]=t[2278],m=Ln,Pr|(I|0)==0|0}function Xt(e,n,r){e=e|0,n=n|0,r=w(r);var u=Tt;return u=w(zi(e,n,r)),w(u+w(Oo(e,n,r)))}function pr(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=m,m=m+16|0,l=s,t[l>>2]=u,e?u=t[e+976>>2]|0:u=0,Hs(u,e,n,r,l),m=s}function Wr(e){return e=e|0,(e>>>0>60?3201:3201+(60-e)|0)|0}function xn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+32|0,r=l+12|0,u=l,t[r>>2]=t[254],t[r+4>>2]=t[255],t[r+8>>2]=t[256],t[u>>2]=t[257],t[u+4>>2]=t[258],t[u+8>>2]=t[259],(e|0)>2?e=11699:e=t[(n?u:r)+(e<<2)>>2]|0,m=l,e|0}function yu(e,n,r,u,l,s,h,D,S,L){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,L=L|0;var k=0,I=0,K=0,Be=0,Te=Tt,ye=Tt,Ze=Tt,Ge=Tt,ft=Tt,Me=Tt,Pe=Tt,Zt=0,Br=0,In=0,gn=Tt,_r=Tt,Pr=0,Ln=Tt,uu=0,ls=0,ss=0,as=0,ta=0,r2=0,i2=0,of=0,u2=0,Pc=0,Ic=0,o2=0,l2=0,s2=0,vi=0,lf=0,a2=0,Kf=0,f2=Tt,c2=Tt,bc=Tt,Bc=Tt,Xf=Tt,ql=0,Fa=0,Ns=0,sf=0,b1=0,B1=Tt,Uc=Tt,U1=Tt,j1=Tt,Wl=Tt,El=Tt,af=0,vu=Tt,z1=Tt,fs=Tt,Qf=Tt,cs=Tt,Jf=Tt,H1=0,q1=0,Zf=Tt,Vl=Tt,ff=0,W1=0,V1=0,G1=0,Sr=Tt,Bu=0,Dl=0,ds=0,Gl=0,Or=0,Bn=0,cf=0,mn=Tt,Y1=0,fo=0;cf=m,m=m+16|0,ql=cf+12|0,Fa=cf+8|0,Ns=cf+4|0,sf=cf,qu(e,(l|0)==0|(Le(n)|0)^1,3326),qu(e,(s|0)==0|(Le(r)|0)^1,3406),Dl=xl(e,u)|0,t[e+496>>2]=Dl,Or=Uo(2,Dl)|0,Bn=Uo(0,Dl)|0,T[e+440>>2]=w(zi(e,Or,h)),T[e+444>>2]=w(Oo(e,Or,h)),T[e+428>>2]=w(zi(e,Bn,h)),T[e+436>>2]=w(Oo(e,Bn,h)),T[e+464>>2]=w(Mo(e,Or)),T[e+468>>2]=w(v0(e,Or)),T[e+452>>2]=w(Mo(e,Bn)),T[e+460>>2]=w(v0(e,Bn)),T[e+488>>2]=w(Pu(e,Or,h)),T[e+492>>2]=w(Zu(e,Or,h)),T[e+476>>2]=w(Pu(e,Bn,h)),T[e+484>>2]=w(Zu(e,Bn,h));do if(t[e+964>>2]|0)ts(e,n,r,l,s,h,D);else{if(ds=e+948|0,Gl=(t[e+952>>2]|0)-(t[ds>>2]|0)>>2,!Gl){Es(e,n,r,l,s,h,D);break}if(S?0:fa(e,n,r,l,s,h,D)|0)break;ys(e),lf=e+508|0,c[lf>>0]=0,Or=Uo(t[e+4>>2]|0,Dl)|0,Bn=_f(Or,Dl)|0,Bu=Hi(Or)|0,a2=t[e+8>>2]|0,W1=e+28|0,Kf=(t[W1>>2]|0)!=0,cs=Bu?h:D,Zf=Bu?D:h,f2=w($u(e,Or,h)),c2=w(Ds(e,Or,h)),Te=w($u(e,Bn,h)),Jf=w(Rr(e,Or,h)),Vl=w(Rr(e,Bn,h)),In=Bu?l:s,ff=Bu?s:l,Sr=Bu?Jf:Vl,ft=Bu?Vl:Jf,Qf=w(Xt(e,2,h)),Ge=w(Xt(e,0,h)),ye=w(w(Rn(e+364|0,h))-Sr),Ze=w(w(Rn(e+380|0,h))-Sr),Me=w(w(Rn(e+372|0,D))-ft),Pe=w(w(Rn(e+388|0,D))-ft),bc=Bu?ye:Me,Bc=Bu?Ze:Pe,Qf=w(n-Qf),n=w(Qf-Sr),Le(n)|0?Sr=n:Sr=w(Ru(w(Qp(n,Ze)),ye)),z1=w(r-Ge),n=w(z1-ft),Le(n)|0?fs=n:fs=w(Ru(w(Qp(n,Pe)),Me)),ye=Bu?Sr:fs,vu=Bu?fs:Sr;e:do if((In|0)==1)for(u=0,I=0;;){if(k=Ti(e,I)|0,!u)(w(nu(k))>w(0)?w(cu(k))>w(0):0)?u=k:u=0;else if(r0(k)|0){Be=0;break e}if(I=I+1|0,I>>>0>=Gl>>>0){Be=u;break}}else Be=0;while(0);Zt=Be+500|0,Br=Be+504|0,u=0,k=0,n=w(0),K=0;do{if(I=t[(t[ds>>2]|0)+(K<<2)>>2]|0,(t[I+36>>2]|0)==1)Ni(I),c[I+985>>0]=1,c[I+984>>0]=0;else{Jr(I),S&&Ro(I,xl(I,Dl)|0,ye,vu,Sr);do if((t[I+24>>2]|0)!=1)if((I|0)==(Be|0)){t[Zt>>2]=t[2278],T[Br>>2]=w(0);break}else{ni(e,I,Sr,l,fs,Sr,fs,s,Dl,L);break}else k|0&&(t[k+960>>2]=I),t[I+960>>2]=0,k=I,u=(u|0)==0?I:u;while(0);El=w(T[I+504>>2]),n=w(n+w(El+w(Xt(I,Or,Sr))))}K=K+1|0}while((K|0)!=(Gl|0));for(ss=n>ye,af=Kf&((In|0)==2&ss)?1:In,uu=(ff|0)==1,ta=uu&(S^1),r2=(af|0)==1,i2=(af|0)==2,of=976+(Or<<2)|0,u2=(ff|2|0)==2,s2=uu&(Kf^1),Pc=1040+(Bn<<2)|0,Ic=1040+(Or<<2)|0,o2=976+(Bn<<2)|0,l2=(ff|0)!=1,ss=Kf&((In|0)!=0&ss),ls=e+976|0,uu=uu^1,n=ye,Pr=0,as=0,El=w(0),Xf=w(0);;){e:do if(Pr>>>0>>0)for(Br=t[ds>>2]|0,K=0,Pe=w(0),Me=w(0),Ze=w(0),ye=w(0),I=0,k=0,Be=Pr;;){if(Zt=t[Br+(Be<<2)>>2]|0,(t[Zt+36>>2]|0)!=1?(t[Zt+940>>2]=as,(t[Zt+24>>2]|0)!=1):0){if(Ge=w(Xt(Zt,Or,Sr)),vi=t[of>>2]|0,r=w(Rn(Zt+380+(vi<<3)|0,cs)),ft=w(T[Zt+504>>2]),r=w(Qp(r,ft)),r=w(Ru(w(Rn(Zt+364+(vi<<3)|0,cs)),r)),Kf&(K|0)!=0&w(Ge+w(Me+r))>n){s=K,Ge=Pe,In=Be;break e}Ge=w(Ge+r),r=w(Me+Ge),Ge=w(Pe+Ge),r0(Zt)|0&&(Ze=w(Ze+w(nu(Zt))),ye=w(ye-w(ft*w(cu(Zt))))),k|0&&(t[k+960>>2]=Zt),t[Zt+960>>2]=0,K=K+1|0,k=Zt,I=(I|0)==0?Zt:I}else Ge=Pe,r=Me;if(Be=Be+1|0,Be>>>0>>0)Pe=Ge,Me=r;else{s=K,In=Be;break}}else s=0,Ge=w(0),Ze=w(0),ye=w(0),I=0,In=Pr;while(0);vi=Ze>w(0)&Zew(0)&yeBc&((Le(Bc)|0)^1))n=Bc,vi=51;else if(c[(t[ls>>2]|0)+3>>0]|0)vi=51;else{if(gn!=w(0)?w(nu(e))!=w(0):0){vi=53;break}n=Ge,vi=53}while(0);if((vi|0)==51&&(vi=0,Le(n)|0?vi=53:(_r=w(n-Ge),Ln=n)),(vi|0)==53&&(vi=0,Ge>2]|0,Be=_rw(0),Me=w(_r/gn),Ze=w(0),Ge=w(0),n=w(0),k=I;do r=w(Rn(k+380+(K<<3)|0,cs)),ye=w(Rn(k+364+(K<<3)|0,cs)),ye=w(Qp(r,w(Ru(ye,w(T[k+504>>2]))))),Be?(r=w(ye*w(cu(k))),(r!=w(-0)?(mn=w(ye-w(ft*r)),B1=w(Kn(k,Or,mn,Ln,Sr)),mn!=B1):0)&&(Ze=w(Ze-w(B1-ye)),n=w(n+r))):((Zt?(Uc=w(nu(k)),Uc!=w(0)):0)?(mn=w(ye+w(Me*Uc)),U1=w(Kn(k,Or,mn,Ln,Sr)),mn!=U1):0)&&(Ze=w(Ze-w(U1-ye)),Ge=w(Ge-Uc)),k=t[k+960>>2]|0;while((k|0)!=0);if(n=w(Pe+n),ye=w(_r+Ze),b1)n=w(0);else{ft=w(gn+Ge),Be=t[of>>2]|0,Zt=yew(0),ft=w(ye/ft),n=w(0);do{mn=w(Rn(I+380+(Be<<3)|0,cs)),Ze=w(Rn(I+364+(Be<<3)|0,cs)),Ze=w(Qp(mn,w(Ru(Ze,w(T[I+504>>2]))))),Zt?(mn=w(Ze*w(cu(I))),ye=w(-mn),mn!=w(-0)?(mn=w(Me*ye),ye=w(Kn(I,Or,w(Ze+(Br?ye:mn)),Ln,Sr))):ye=Ze):(K?(j1=w(nu(I)),j1!=w(0)):0)?ye=w(Kn(I,Or,w(Ze+w(ft*j1)),Ln,Sr)):ye=Ze,n=w(n-w(ye-Ze)),Ge=w(Xt(I,Or,Sr)),r=w(Xt(I,Bn,Sr)),ye=w(ye+Ge),T[Fa>>2]=ye,t[sf>>2]=1,Ze=w(T[I+396>>2]);e:do if(Le(Ze)|0){k=Le(vu)|0;do if(!k){if(ss|(Wu(I,Bn,vu)|0|uu)||(eo(e,I)|0)!=4||(t[(Eo(I,Bn)|0)+4>>2]|0)==3||(t[(Do(I,Bn)|0)+4>>2]|0)==3)break;T[ql>>2]=vu,t[Ns>>2]=1;break e}while(0);if(Wu(I,Bn,vu)|0){k=t[I+992+(t[o2>>2]<<2)>>2]|0,mn=w(r+w(Rn(k,vu))),T[ql>>2]=mn,k=l2&(t[k+4>>2]|0)==2,t[Ns>>2]=((Le(mn)|0|k)^1)&1;break}else{T[ql>>2]=vu,t[Ns>>2]=k?0:2;break}}else mn=w(ye-Ge),gn=w(mn/Ze),mn=w(Ze*mn),t[Ns>>2]=1,T[ql>>2]=w(r+(Bu?gn:mn));while(0);Fn(I,Or,Ln,Sr,sf,Fa),Fn(I,Bn,vu,Sr,Ns,ql);do if(Wu(I,Bn,vu)|0?0:(eo(e,I)|0)==4){if((t[(Eo(I,Bn)|0)+4>>2]|0)==3){k=0;break}k=(t[(Do(I,Bn)|0)+4>>2]|0)!=3}else k=0;while(0);mn=w(T[Fa>>2]),gn=w(T[ql>>2]),Y1=t[sf>>2]|0,fo=t[Ns>>2]|0,Kt(I,Bu?mn:gn,Bu?gn:mn,Dl,Bu?Y1:fo,Bu?fo:Y1,Sr,fs,S&(k^1),3488,L)|0,c[lf>>0]=c[lf>>0]|c[I+508>>0],I=t[I+960>>2]|0}while((I|0)!=0)}}else n=w(0);if(n=w(_r+n),fo=n>0]=fo|M[lf>>0],i2&n>w(0)?(k=t[of>>2]|0,((t[e+364+(k<<3)+4>>2]|0)!=0?(Wl=w(Rn(e+364+(k<<3)|0,cs)),Wl>=w(0)):0)?ye=w(Ru(w(0),w(Wl-w(Ln-n)))):ye=w(0)):ye=n,Zt=Pr>>>0>>0,Zt){Be=t[ds>>2]|0,K=Pr,k=0;do I=t[Be+(K<<2)>>2]|0,t[I+24>>2]|0||(k=((t[(Eo(I,Or)|0)+4>>2]|0)==3&1)+k|0,k=k+((t[(Do(I,Or)|0)+4>>2]|0)==3&1)|0),K=K+1|0;while((K|0)!=(In|0));k?(Ge=w(0),r=w(0)):vi=101}else vi=101;e:do if((vi|0)==101)switch(vi=0,a2|0){case 1:{k=0,Ge=w(ye*w(.5)),r=w(0);break e}case 2:{k=0,Ge=ye,r=w(0);break e}case 3:{if(s>>>0<=1){k=0,Ge=w(0),r=w(0);break e}r=w((s+-1|0)>>>0),k=0,Ge=w(0),r=w(w(Ru(ye,w(0)))/r);break e}case 5:{r=w(ye/w((s+1|0)>>>0)),k=0,Ge=r;break e}case 4:{r=w(ye/w(s>>>0)),k=0,Ge=w(r*w(.5));break e}default:{k=0,Ge=w(0),r=w(0);break e}}while(0);if(n=w(f2+Ge),Zt){Ze=w(ye/w(k|0)),K=t[ds>>2]|0,I=Pr,ye=w(0);do{k=t[K+(I<<2)>>2]|0;e:do if((t[k+36>>2]|0)!=1){switch(t[k+24>>2]|0){case 1:{if(ae(k,Or)|0){if(!S)break e;mn=w(ie(k,Or,Ln)),mn=w(mn+w(Mo(e,Or))),mn=w(mn+w(zi(k,Or,Sr))),T[k+400+(t[Ic>>2]<<2)>>2]=mn;break e}break}case 0:if(fo=(t[(Eo(k,Or)|0)+4>>2]|0)==3,mn=w(Ze+n),n=fo?mn:n,S&&(fo=k+400+(t[Ic>>2]<<2)|0,T[fo>>2]=w(n+w(T[fo>>2]))),fo=(t[(Do(k,Or)|0)+4>>2]|0)==3,mn=w(Ze+n),n=fo?mn:n,ta){mn=w(r+w(Xt(k,Or,Sr))),ye=vu,n=w(n+w(mn+w(T[k+504>>2])));break e}else{n=w(n+w(r+w(Fe(k,Or,Sr)))),ye=w(Ru(ye,w(Fe(k,Bn,Sr))));break e}default:}S&&(mn=w(Ge+w(Mo(e,Or))),fo=k+400+(t[Ic>>2]<<2)|0,T[fo>>2]=w(mn+w(T[fo>>2])))}while(0);I=I+1|0}while((I|0)!=(In|0))}else ye=w(0);if(r=w(c2+n),u2?Ge=w(w(Kn(e,Bn,w(Vl+ye),Zf,h))-Vl):Ge=vu,Ze=w(w(Kn(e,Bn,w(Vl+(s2?vu:ye)),Zf,h))-Vl),Zt&S){I=Pr;do{K=t[(t[ds>>2]|0)+(I<<2)>>2]|0;do if((t[K+36>>2]|0)!=1){if((t[K+24>>2]|0)==1){if(ae(K,Bn)|0){if(mn=w(ie(K,Bn,vu)),mn=w(mn+w(Mo(e,Bn))),mn=w(mn+w(zi(K,Bn,Sr))),k=t[Pc>>2]|0,T[K+400+(k<<2)>>2]=mn,!(Le(mn)|0))break}else k=t[Pc>>2]|0;mn=w(Mo(e,Bn)),T[K+400+(k<<2)>>2]=w(mn+w(zi(K,Bn,Sr)));break}k=eo(e,K)|0;do if((k|0)==4){if((t[(Eo(K,Bn)|0)+4>>2]|0)==3){vi=139;break}if((t[(Do(K,Bn)|0)+4>>2]|0)==3){vi=139;break}if(Wu(K,Bn,vu)|0){n=Te;break}Y1=t[K+908+(t[of>>2]<<2)>>2]|0,t[ql>>2]=Y1,n=w(T[K+396>>2]),fo=Le(n)|0,ye=(t[q>>2]=Y1,w(T[q>>2])),fo?n=Ze:(_r=w(Xt(K,Bn,Sr)),mn=w(ye/n),n=w(n*ye),n=w(_r+(Bu?mn:n))),T[Fa>>2]=n,T[ql>>2]=w(w(Xt(K,Or,Sr))+ye),t[Ns>>2]=1,t[sf>>2]=1,Fn(K,Or,Ln,Sr,Ns,ql),Fn(K,Bn,vu,Sr,sf,Fa),n=w(T[ql>>2]),_r=w(T[Fa>>2]),mn=Bu?n:_r,n=Bu?_r:n,fo=((Le(mn)|0)^1)&1,Kt(K,mn,n,Dl,fo,((Le(n)|0)^1)&1,Sr,fs,1,3493,L)|0,n=Te}else vi=139;while(0);e:do if((vi|0)==139){vi=0,n=w(Ge-w(Fe(K,Bn,Sr)));do if((t[(Eo(K,Bn)|0)+4>>2]|0)==3){if((t[(Do(K,Bn)|0)+4>>2]|0)!=3)break;n=w(Te+w(Ru(w(0),w(n*w(.5)))));break e}while(0);if((t[(Do(K,Bn)|0)+4>>2]|0)==3){n=Te;break}if((t[(Eo(K,Bn)|0)+4>>2]|0)==3){n=w(Te+w(Ru(w(0),n)));break}switch(k|0){case 1:{n=Te;break e}case 2:{n=w(Te+w(n*w(.5)));break e}default:{n=w(Te+n);break e}}}while(0);mn=w(El+n),fo=K+400+(t[Pc>>2]<<2)|0,T[fo>>2]=w(mn+w(T[fo>>2]))}while(0);I=I+1|0}while((I|0)!=(In|0))}if(El=w(El+Ze),Xf=w(Ru(Xf,r)),s=as+1|0,In>>>0>=Gl>>>0)break;n=Ln,Pr=In,as=s}do if(S){if(k=s>>>0>1,k?0:!(Oe(e)|0))break;if(!(Le(vu)|0)){n=w(vu-El);e:do switch(t[e+12>>2]|0){case 3:{Te=w(Te+n),Me=w(0);break}case 2:{Te=w(Te+w(n*w(.5))),Me=w(0);break}case 4:{vu>El?Me=w(n/w(s>>>0)):Me=w(0);break}case 7:if(vu>El){Te=w(Te+w(n/w(s<<1>>>0))),Me=w(n/w(s>>>0)),Me=k?Me:w(0);break e}else{Te=w(Te+w(n*w(.5))),Me=w(0);break e}case 6:{Me=w(n/w(as>>>0)),Me=vu>El&k?Me:w(0);break}default:Me=w(0)}while(0);if(s|0)for(Zt=1040+(Bn<<2)|0,Br=976+(Bn<<2)|0,Be=0,I=0;;){e:do if(I>>>0>>0)for(ye=w(0),Ze=w(0),n=w(0),K=I;;){k=t[(t[ds>>2]|0)+(K<<2)>>2]|0;do if((t[k+36>>2]|0)!=1?(t[k+24>>2]|0)==0:0){if((t[k+940>>2]|0)!=(Be|0))break e;if(st(k,Bn)|0&&(mn=w(T[k+908+(t[Br>>2]<<2)>>2]),n=w(Ru(n,w(mn+w(Xt(k,Bn,Sr)))))),(eo(e,k)|0)!=5)break;Wl=w(yt(k)),Wl=w(Wl+w(zi(k,0,Sr))),mn=w(T[k+912>>2]),mn=w(w(mn+w(Xt(k,0,Sr)))-Wl),Wl=w(Ru(Ze,Wl)),mn=w(Ru(ye,mn)),ye=mn,Ze=Wl,n=w(Ru(n,w(Wl+mn)))}while(0);if(k=K+1|0,k>>>0>>0)K=k;else{K=k;break}}else Ze=w(0),n=w(0),K=I;while(0);if(ft=w(Me+n),r=Te,Te=w(Te+ft),I>>>0>>0){Ge=w(r+Ze),k=I;do{I=t[(t[ds>>2]|0)+(k<<2)>>2]|0;e:do if((t[I+36>>2]|0)!=1?(t[I+24>>2]|0)==0:0)switch(eo(e,I)|0){case 1:{mn=w(r+w(zi(I,Bn,Sr))),T[I+400+(t[Zt>>2]<<2)>>2]=mn;break e}case 3:{mn=w(w(Te-w(Oo(I,Bn,Sr)))-w(T[I+908+(t[Br>>2]<<2)>>2])),T[I+400+(t[Zt>>2]<<2)>>2]=mn;break e}case 2:{mn=w(r+w(w(ft-w(T[I+908+(t[Br>>2]<<2)>>2]))*w(.5))),T[I+400+(t[Zt>>2]<<2)>>2]=mn;break e}case 4:{if(mn=w(r+w(zi(I,Bn,Sr))),T[I+400+(t[Zt>>2]<<2)>>2]=mn,Wu(I,Bn,vu)|0||(Bu?(ye=w(T[I+908>>2]),n=w(ye+w(Xt(I,Or,Sr))),Ze=ft):(Ze=w(T[I+912>>2]),Ze=w(Ze+w(Xt(I,Bn,Sr))),n=ft,ye=w(T[I+908>>2])),Ci(n,ye)|0?Ci(Ze,w(T[I+912>>2]))|0:0))break e;Kt(I,n,Ze,Dl,1,1,Sr,fs,1,3501,L)|0;break e}case 5:{T[I+404>>2]=w(w(Ge-w(yt(I)))+w(ie(I,0,vu)));break e}default:break e}while(0);k=k+1|0}while((k|0)!=(K|0))}if(Be=Be+1|0,(Be|0)==(s|0))break;I=K}}}while(0);if(T[e+908>>2]=w(Kn(e,2,Qf,h,h)),T[e+912>>2]=w(Kn(e,0,z1,D,h)),((af|0)!=0?(H1=t[e+32>>2]|0,q1=(af|0)==2,!(q1&(H1|0)!=2)):0)?q1&(H1|0)==2&&(n=w(Jf+Ln),n=w(Ru(w(Qp(n,w(Jt(e,Or,Xf,cs)))),Jf)),vi=198):(n=w(Kn(e,Or,Xf,cs,h)),vi=198),(vi|0)==198&&(T[e+908+(t[976+(Or<<2)>>2]<<2)>>2]=n),((ff|0)!=0?(V1=t[e+32>>2]|0,G1=(ff|0)==2,!(G1&(V1|0)!=2)):0)?G1&(V1|0)==2&&(n=w(Vl+vu),n=w(Ru(w(Qp(n,w(Jt(e,Bn,w(Vl+El),Zf)))),Vl)),vi=204):(n=w(Kn(e,Bn,w(Vl+El),Zf,h)),vi=204),(vi|0)==204&&(T[e+908+(t[976+(Bn<<2)>>2]<<2)>>2]=n),S){if((t[W1>>2]|0)==2){I=976+(Bn<<2)|0,K=1040+(Bn<<2)|0,k=0;do Be=Ti(e,k)|0,t[Be+24>>2]|0||(Y1=t[I>>2]|0,mn=w(T[e+908+(Y1<<2)>>2]),fo=Be+400+(t[K>>2]<<2)|0,mn=w(mn-w(T[fo>>2])),T[fo>>2]=w(mn-w(T[Be+908+(Y1<<2)>>2]))),k=k+1|0;while((k|0)!=(Gl|0))}if(u|0){k=Bu?af:l;do On(e,u,Sr,k,fs,Dl,L),u=t[u+960>>2]|0;while((u|0)!=0)}if(k=(Or|2|0)==3,I=(Bn|2|0)==3,k|I){u=0;do K=t[(t[ds>>2]|0)+(u<<2)>>2]|0,(t[K+36>>2]|0)!=1&&(k&&Sn(e,K,Or),I&&Sn(e,K,Bn)),u=u+1|0;while((u|0)!=(Gl|0))}}}while(0);m=cf}function Ju(e,n){e=e|0,n=w(n);var r=0;Cn(e,n>=w(0),3147),r=n==w(0),T[e+4>>2]=r?w(0):n}function ti(e,n,r,u){e=e|0,n=w(n),r=w(r),u=u|0;var l=Tt,s=Tt,h=0,D=0,S=0;t[2278]=(t[2278]|0)+1,Jr(e),Wu(e,2,n)|0?(l=w(Rn(t[e+992>>2]|0,n)),S=1,l=w(l+w(Xt(e,2,n)))):(l=w(Rn(e+380|0,n)),l>=w(0)?S=2:(S=((Le(n)|0)^1)&1,l=n)),Wu(e,0,r)|0?(s=w(Rn(t[e+996>>2]|0,r)),D=1,s=w(s+w(Xt(e,0,n)))):(s=w(Rn(e+388|0,r)),s>=w(0)?D=2:(D=((Le(r)|0)^1)&1,s=r)),h=e+976|0,(Kt(e,l,s,u,S,D,n,r,1,3189,t[h>>2]|0)|0?(Ro(e,t[e+496>>2]|0,n,r,n),Fu(e,w(T[(t[h>>2]|0)+4>>2]),w(0),w(0)),c[11696]|0):0)&&yf(e,7)}function Jr(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;D=m,m=m+32|0,h=D+24|0,s=D+16|0,u=D+8|0,l=D,r=0;do n=e+380+(r<<3)|0,((t[e+380+(r<<3)+4>>2]|0)!=0?(S=n,L=t[S+4>>2]|0,k=u,t[k>>2]=t[S>>2],t[k+4>>2]=L,k=e+364+(r<<3)|0,L=t[k+4>>2]|0,S=l,t[S>>2]=t[k>>2],t[S+4>>2]=L,t[s>>2]=t[u>>2],t[s+4>>2]=t[u+4>>2],t[h>>2]=t[l>>2],t[h+4>>2]=t[l+4>>2],Bi(s,h)|0):0)||(n=e+348+(r<<3)|0),t[e+992+(r<<2)>>2]=n,r=r+1|0;while((r|0)!=2);m=D}function Wu(e,n,r){e=e|0,n=n|0,r=w(r);var u=0;switch(e=t[e+992+(t[976+(n<<2)>>2]<<2)>>2]|0,t[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{w(T[e>>2])>2])>2]|0){case 2:{n=w(w(w(T[e>>2])*n)/w(100));break}case 1:{n=w(T[e>>2]);break}default:n=w(re)}return w(n)}function Ro(e,n,r,u,l){e=e|0,n=n|0,r=w(r),u=w(u),l=w(l);var s=0,h=Tt;n=t[e+944>>2]|0?n:1,s=Uo(t[e+4>>2]|0,n)|0,n=_f(s,n)|0,r=w(Ar(e,s,r)),u=w(Ar(e,n,u)),h=w(r+w(zi(e,s,l))),T[e+400+(t[1040+(s<<2)>>2]<<2)>>2]=h,r=w(r+w(Oo(e,s,l))),T[e+400+(t[1e3+(s<<2)>>2]<<2)>>2]=r,r=w(u+w(zi(e,n,l))),T[e+400+(t[1040+(n<<2)>>2]<<2)>>2]=r,l=w(u+w(Oo(e,n,l))),T[e+400+(t[1e3+(n<<2)>>2]<<2)>>2]=l}function Fu(e,n,r,u){e=e|0,n=w(n),r=w(r),u=w(u);var l=0,s=0,h=Tt,D=Tt,S=0,L=0,k=Tt,I=0,K=Tt,Be=Tt,Te=Tt,ye=Tt;if(n!=w(0)&&(l=e+400|0,ye=w(T[l>>2]),s=e+404|0,Te=w(T[s>>2]),I=e+416|0,Be=w(T[I>>2]),L=e+420|0,h=w(T[L>>2]),K=w(ye+r),k=w(Te+u),u=w(K+Be),D=w(k+h),S=(t[e+988>>2]|0)==1,T[l>>2]=w(t0(ye,n,0,S)),T[s>>2]=w(t0(Te,n,0,S)),r=w(QE(w(Be*n),w(1))),Ci(r,w(0))|0?s=0:s=(Ci(r,w(1))|0)^1,r=w(QE(w(h*n),w(1))),Ci(r,w(0))|0?l=0:l=(Ci(r,w(1))|0)^1,ye=w(t0(u,n,S&s,S&(s^1))),T[I>>2]=w(ye-w(t0(K,n,0,S))),ye=w(t0(D,n,S&l,S&(l^1))),T[L>>2]=w(ye-w(t0(k,n,0,S))),s=(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2,s|0)){l=0;do Fu(Ti(e,l)|0,n,K,k),l=l+1|0;while((l|0)!=(s|0))}}function li(e,n,r,u,l){switch(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,r|0){case 5:case 0:{e=b8(t[489]|0,u,l)|0;break}default:e=JF(u,l)|0}return e|0}function Cl(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;l=m,m=m+16|0,s=l,t[s>>2]=u,Hs(e,0,n,r,s),m=l}function Hs(e,n,r,u,l){if(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,e=e|0?e:956,iS[t[e+8>>2]&1](e,n,r,u,l)|0,(r|0)==5)$n();else return}function Vu(e,n,r){e=e|0,n=n|0,r=r|0,c[e+n>>0]=r&1}function aa(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(Xi(e,u),qs(e,t[n>>2]|0,t[r>>2]|0,u))}function Xi(e,n){e=e|0,n=n|0;var r=0;if((Ao(e)|0)>>>0>>0&&hi(e),n>>>0>1073741823)$n();else{r=pn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function qs(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(gr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function Ao(e){return e=e|0,1073741823}function zi(e,n,r){return e=e|0,n=n|0,r=w(r),(Hi(n)|0?(t[e+96>>2]|0)!=0:0)?e=e+92|0:e=ht(e+60|0,t[1040+(n<<2)>>2]|0,992)|0,w(il(e,r))}function Oo(e,n,r){return e=e|0,n=n|0,r=w(r),(Hi(n)|0?(t[e+104>>2]|0)!=0:0)?e=e+100|0:e=ht(e+60|0,t[1e3+(n<<2)>>2]|0,992)|0,w(il(e,r))}function Hi(e){return e=e|0,(e|1|0)==3|0}function il(e,n){return e=e|0,n=w(n),(t[e+4>>2]|0)==3?n=w(0):n=w(Rn(e,n)),w(n)}function xl(e,n){return e=e|0,n=n|0,e=t[e>>2]|0,((e|0)==0?(n|0)>1?n:1:e)|0}function Uo(e,n){e=e|0,n=n|0;var r=0;e:do if((n|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{r=4;break e}}e=2}else r=4;while(0);return e|0}function Mo(e,n){e=e|0,n=n|0;var r=Tt;return((Hi(n)|0?(t[e+312>>2]|0)!=0:0)?(r=w(T[e+308>>2]),r>=w(0)):0)||(r=w(Ru(w(T[(ht(e+276|0,t[1040+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function v0(e,n){e=e|0,n=n|0;var r=Tt;return((Hi(n)|0?(t[e+320>>2]|0)!=0:0)?(r=w(T[e+316>>2]),r>=w(0)):0)||(r=w(Ru(w(T[(ht(e+276|0,t[1e3+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function Pu(e,n,r){e=e|0,n=n|0,r=w(r);var u=Tt;return((Hi(n)|0?(t[e+240>>2]|0)!=0:0)?(u=w(Rn(e+236|0,r)),u>=w(0)):0)||(u=w(Ru(w(Rn(ht(e+204|0,t[1040+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function Zu(e,n,r){e=e|0,n=n|0,r=w(r);var u=Tt;return((Hi(n)|0?(t[e+248>>2]|0)!=0:0)?(u=w(Rn(e+244|0,r)),u>=w(0)):0)||(u=w(Ru(w(Rn(ht(e+204|0,t[1e3+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function ts(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=Tt,S=Tt,L=Tt,k=Tt,I=Tt,K=Tt,Be=0,Te=0,ye=0;ye=m,m=m+16|0,Be=ye,Te=e+964|0,qu(e,(t[Te>>2]|0)!=0,3519),D=w(Rr(e,2,n)),S=w(Rr(e,0,n)),L=w(Xt(e,2,n)),k=w(Xt(e,0,n)),Le(n)|0?I=n:I=w(Ru(w(0),w(w(n-L)-D))),Le(r)|0?K=r:K=w(Ru(w(0),w(w(r-k)-S))),(u|0)==1&(l|0)==1?(T[e+908>>2]=w(Kn(e,2,w(n-L),s,s)),n=w(Kn(e,0,w(r-k),h,s))):(uS[t[Te>>2]&1](Be,e,I,u,K,l),I=w(D+w(T[Be>>2])),K=w(n-L),T[e+908>>2]=w(Kn(e,2,(u|2|0)==2?I:K,s,s)),K=w(S+w(T[Be+4>>2])),n=w(r-k),n=w(Kn(e,0,(l|2|0)==2?K:n,h,s))),T[e+912>>2]=n,m=ye}function Es(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=Tt,S=Tt,L=Tt,k=Tt;L=w(Rr(e,2,s)),D=w(Rr(e,0,s)),k=w(Xt(e,2,s)),S=w(Xt(e,0,s)),n=w(n-k),T[e+908>>2]=w(Kn(e,2,(u|2|0)==2?L:n,s,s)),r=w(r-S),T[e+912>>2]=w(Kn(e,0,(l|2|0)==2?D:r,h,s))}function fa(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=0,S=Tt,L=Tt;return D=(u|0)==2,((n<=w(0)&D?0:!(r<=w(0)&(l|0)==2))?!((u|0)==1&(l|0)==1):0)?e=0:(S=w(Xt(e,0,s)),L=w(Xt(e,2,s)),D=n>2]=w(Kn(e,2,D?w(0):n,s,s)),n=w(r-S),D=r>2]=w(Kn(e,0,D?w(0):n,h,s)),e=1),e|0}function _f(e,n){return e=e|0,n=n|0,_n(e)|0?e=Uo(2,n)|0:e=0,e|0}function $u(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Pu(e,n,r)),w(r+w(Mo(e,n)))}function Ds(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Zu(e,n,r)),w(r+w(v0(e,n)))}function Rr(e,n,r){e=e|0,n=n|0,r=w(r);var u=Tt;return u=w($u(e,n,r)),w(u+w(Ds(e,n,r)))}function r0(e){return e=e|0,t[e+24>>2]|0?e=0:w(nu(e))!=w(0)?e=1:e=w(cu(e))!=w(0),e|0}function nu(e){e=e|0;var n=Tt;if(t[e+944>>2]|0){if(n=w(T[e+44>>2]),Le(n)|0)return n=w(T[e+40>>2]),e=n>w(0)&((Le(n)|0)^1),w(e?n:w(0))}else n=w(0);return w(n)}function cu(e){e=e|0;var n=Tt,r=0,u=Tt;do if(t[e+944>>2]|0){if(n=w(T[e+48>>2]),Le(n)|0){if(r=c[(t[e+976>>2]|0)+2>>0]|0,r<<24>>24==0?(u=w(T[e+40>>2]),u>24?w(1):w(0)}}else n=w(0);while(0);return w(n)}function Ni(e){e=e|0;var n=0,r=0;if(jv(e+400|0,0,540)|0,c[e+985>>0]=1,ys(e),r=Su(e)|0,r|0){n=e+948|0,e=0;do Ni(t[(t[n>>2]|0)+(e<<2)>>2]|0),e=e+1|0;while((e|0)!=(r|0))}}function ni(e,n,r,u,l,s,h,D,S,L){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=w(s),h=w(h),D=D|0,S=S|0,L=L|0;var k=0,I=Tt,K=0,Be=0,Te=Tt,ye=Tt,Ze=0,Ge=Tt,ft=0,Me=Tt,Pe=0,Zt=0,Br=0,In=0,gn=0,_r=0,Pr=0,Ln=0,uu=0,ls=0;uu=m,m=m+16|0,Br=uu+12|0,In=uu+8|0,gn=uu+4|0,_r=uu,Ln=Uo(t[e+4>>2]|0,S)|0,Pe=Hi(Ln)|0,I=w(Rn(Tn(n)|0,Pe?s:h)),Zt=Wu(n,2,s)|0,Pr=Wu(n,0,h)|0;do if(Le(I)|0?0:!(Le(Pe?r:l)|0)){if(k=n+504|0,!(Le(w(T[k>>2]))|0)&&(!(ir(t[n+976>>2]|0,0)|0)||(t[n+500>>2]|0)==(t[2278]|0)))break;T[k>>2]=w(Ru(I,w(Rr(n,Ln,s))))}else K=7;while(0);do if((K|0)==7){if(ft=Pe^1,!(ft|Zt^1)){h=w(Rn(t[n+992>>2]|0,s)),T[n+504>>2]=w(Ru(h,w(Rr(n,2,s))));break}if(!(Pe|Pr^1)){h=w(Rn(t[n+996>>2]|0,h)),T[n+504>>2]=w(Ru(h,w(Rr(n,0,s))));break}T[Br>>2]=w(re),T[In>>2]=w(re),t[gn>>2]=0,t[_r>>2]=0,Ge=w(Xt(n,2,s)),Me=w(Xt(n,0,s)),Zt?(Te=w(Ge+w(Rn(t[n+992>>2]|0,s))),T[Br>>2]=Te,t[gn>>2]=1,Be=1):(Be=0,Te=w(re)),Pr?(I=w(Me+w(Rn(t[n+996>>2]|0,h))),T[In>>2]=I,t[_r>>2]=1,k=1):(k=0,I=w(re)),K=t[e+32>>2]|0,Pe&(K|0)==2?K=2:(Le(Te)|0?!(Le(r)|0):0)&&(T[Br>>2]=r,t[gn>>2]=2,Be=2,Te=r),(((K|0)==2&ft?0:Le(I)|0)?!(Le(l)|0):0)&&(T[In>>2]=l,t[_r>>2]=2,k=2,I=l),ye=w(T[n+396>>2]),Ze=Le(ye)|0;do if(Ze)K=Be;else{if((Be|0)==1&ft){T[In>>2]=w(w(Te-Ge)/ye),t[_r>>2]=1,k=1,K=1;break}Pe&(k|0)==1?(T[Br>>2]=w(ye*w(I-Me)),t[gn>>2]=1,k=1,K=1):K=Be}while(0);ls=Le(r)|0,Be=(eo(e,n)|0)!=4,(Pe|Zt|((u|0)!=1|ls)|(Be|(K|0)==1)?0:(T[Br>>2]=r,t[gn>>2]=1,!Ze))&&(T[In>>2]=w(w(r-Ge)/ye),t[_r>>2]=1,k=1),(Pr|ft|((D|0)!=1|(Le(l)|0))|(Be|(k|0)==1)?0:(T[In>>2]=l,t[_r>>2]=1,!Ze))&&(T[Br>>2]=w(ye*w(l-Me)),t[gn>>2]=1),Fn(n,2,s,s,gn,Br),Fn(n,0,h,s,_r,In),r=w(T[Br>>2]),l=w(T[In>>2]),Kt(n,r,l,S,t[gn>>2]|0,t[_r>>2]|0,s,h,0,3565,L)|0,h=w(T[n+908+(t[976+(Ln<<2)>>2]<<2)>>2]),T[n+504>>2]=w(Ru(h,w(Rr(n,Ln,s))))}while(0);t[n+500>>2]=t[2278],m=uu}function Kn(e,n,r,u,l){return e=e|0,n=n|0,r=w(r),u=w(u),l=w(l),u=w(Jt(e,n,r,u)),w(Ru(u,w(Rr(e,n,l))))}function eo(e,n){return e=e|0,n=n|0,n=n+20|0,n=t[((t[n>>2]|0)==0?e+16|0:n)>>2]|0,((n|0)==5?_n(t[e+4>>2]|0)|0:0)&&(n=1),n|0}function Eo(e,n){return e=e|0,n=n|0,(Hi(n)|0?(t[e+96>>2]|0)!=0:0)?n=4:n=t[1040+(n<<2)>>2]|0,e+60+(n<<3)|0}function Do(e,n){return e=e|0,n=n|0,(Hi(n)|0?(t[e+104>>2]|0)!=0:0)?n=5:n=t[1e3+(n<<2)>>2]|0,e+60+(n<<3)|0}function Fn(e,n,r,u,l,s){switch(e=e|0,n=n|0,r=w(r),u=w(u),l=l|0,s=s|0,r=w(Rn(e+380+(t[976+(n<<2)>>2]<<3)|0,r)),r=w(r+w(Xt(e,n,u))),t[l>>2]|0){case 2:case 1:{l=Le(r)|0,u=w(T[s>>2]),T[s>>2]=l|u>2]=2,T[s>>2]=r);break}default:}}function ae(e,n){return e=e|0,n=n|0,e=e+132|0,(Hi(n)|0?(t[(ht(e,4,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(ht(e,t[1040+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function ie(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Hi(n)|0?(u=ht(e,4,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=ht(e,t[1040+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Rn(u,r))),w(r)}function Fe(e,n,r){e=e|0,n=n|0,r=w(r);var u=Tt;return u=w(T[e+908+(t[976+(n<<2)>>2]<<2)>>2]),u=w(u+w(zi(e,n,r))),w(u+w(Oo(e,n,r)))}function Oe(e){e=e|0;var n=0,r=0,u=0;e:do if(_n(t[e+4>>2]|0)|0)n=0;else if((t[e+16>>2]|0)!=5)if(r=Su(e)|0,!r)n=0;else for(n=0;;){if(u=Ti(e,n)|0,(t[u+24>>2]|0)==0?(t[u+20>>2]|0)==5:0){n=1;break e}if(n=n+1|0,n>>>0>=r>>>0){n=0;break}}else n=1;while(0);return n|0}function st(e,n){e=e|0,n=n|0;var r=Tt;return r=w(T[e+908+(t[976+(n<<2)>>2]<<2)>>2]),r>=w(0)&((Le(r)|0)^1)|0}function yt(e){e=e|0;var n=Tt,r=0,u=0,l=0,s=0,h=0,D=0,S=Tt;if(r=t[e+968>>2]|0,r)S=w(T[e+908>>2]),n=w(T[e+912>>2]),n=w(eS[r&0](e,S,n)),qu(e,(Le(n)|0)^1,3573);else{s=Su(e)|0;do if(s|0){for(r=0,l=0;;){if(u=Ti(e,l)|0,t[u+940>>2]|0){h=8;break}if((t[u+24>>2]|0)!=1)if(D=(eo(e,u)|0)==5,D){r=u;break}else r=(r|0)==0?u:r;if(l=l+1|0,l>>>0>=s>>>0){h=8;break}}if((h|0)==8&&!r)break;return n=w(yt(r)),w(n+w(T[r+404>>2]))}while(0);n=w(T[e+912>>2])}return w(n)}function Jt(e,n,r,u){e=e|0,n=n|0,r=w(r),u=w(u);var l=Tt,s=0;return _n(n)|0?(n=1,s=3):Hi(n)|0?(n=0,s=3):(u=w(re),l=w(re)),(s|0)==3&&(l=w(Rn(e+364+(n<<3)|0,u)),u=w(Rn(e+380+(n<<3)|0,u))),s=u=w(0)&((Le(u)|0)^1)),r=s?u:r,s=l>=w(0)&((Le(l)|0)^1)&r>2]|0,s)|0,Te=_f(Ze,s)|0,ye=Hi(Ze)|0,I=w(Xt(n,2,r)),K=w(Xt(n,0,r)),Wu(n,2,r)|0?D=w(I+w(Rn(t[n+992>>2]|0,r))):(ae(n,2)|0?Bt(n,2)|0:0)?(D=w(T[e+908>>2]),S=w(Mo(e,2)),S=w(D-w(S+w(v0(e,2)))),D=w(ie(n,2,r)),D=w(Kn(n,2,w(S-w(D+w(Fi(n,2,r)))),r,r))):D=w(re),Wu(n,0,l)|0?S=w(K+w(Rn(t[n+996>>2]|0,l))):(ae(n,0)|0?Bt(n,0)|0:0)?(S=w(T[e+912>>2]),ft=w(Mo(e,0)),ft=w(S-w(ft+w(v0(e,0)))),S=w(ie(n,0,l)),S=w(Kn(n,0,w(ft-w(S+w(Fi(n,0,l)))),l,r))):S=w(re),L=Le(D)|0,k=Le(S)|0;do if(L^k?(Be=w(T[n+396>>2]),!(Le(Be)|0)):0)if(L){D=w(I+w(w(S-K)*Be));break}else{ft=w(K+w(w(D-I)/Be)),S=k?ft:S;break}while(0);k=Le(D)|0,L=Le(S)|0,k|L&&(Me=(k^1)&1,u=r>w(0)&((u|0)!=0&k),D=ye?D:u?r:D,Kt(n,D,S,s,ye?Me:u?2:Me,k&(L^1)&1,D,S,0,3623,h)|0,D=w(T[n+908>>2]),D=w(D+w(Xt(n,2,r))),S=w(T[n+912>>2]),S=w(S+w(Xt(n,0,r)))),Kt(n,D,S,s,1,1,D,S,1,3635,h)|0,(Bt(n,Ze)|0?!(ae(n,Ze)|0):0)?(Me=t[976+(Ze<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(ft-w(T[n+908+(Me<<2)>>2])),ft=w(ft-w(v0(e,Ze))),ft=w(ft-w(Oo(n,Ze,r))),ft=w(ft-w(Fi(n,Ze,ye?r:l))),T[n+400+(t[1040+(Ze<<2)>>2]<<2)>>2]=ft):Ge=21;do if((Ge|0)==21){if(ae(n,Ze)|0?0:(t[e+8>>2]|0)==1){Me=t[976+(Ze<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(w(ft-w(T[n+908+(Me<<2)>>2]))*w(.5)),T[n+400+(t[1040+(Ze<<2)>>2]<<2)>>2]=ft;break}(ae(n,Ze)|0?0:(t[e+8>>2]|0)==2)&&(Me=t[976+(Ze<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(ft-w(T[n+908+(Me<<2)>>2])),T[n+400+(t[1040+(Ze<<2)>>2]<<2)>>2]=ft)}while(0);(Bt(n,Te)|0?!(ae(n,Te)|0):0)?(Me=t[976+(Te<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(ft-w(T[n+908+(Me<<2)>>2])),ft=w(ft-w(v0(e,Te))),ft=w(ft-w(Oo(n,Te,r))),ft=w(ft-w(Fi(n,Te,ye?l:r))),T[n+400+(t[1040+(Te<<2)>>2]<<2)>>2]=ft):Ge=30;do if((Ge|0)==30?!(ae(n,Te)|0):0){if((eo(e,n)|0)==2){Me=t[976+(Te<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(w(ft-w(T[n+908+(Me<<2)>>2]))*w(.5)),T[n+400+(t[1040+(Te<<2)>>2]<<2)>>2]=ft;break}Me=(eo(e,n)|0)==3,Me^(t[e+28>>2]|0)==2&&(Me=t[976+(Te<<2)>>2]|0,ft=w(T[e+908+(Me<<2)>>2]),ft=w(ft-w(T[n+908+(Me<<2)>>2])),T[n+400+(t[1040+(Te<<2)>>2]<<2)>>2]=ft)}while(0)}function Sn(e,n,r){e=e|0,n=n|0,r=r|0;var u=Tt,l=0;l=t[976+(r<<2)>>2]|0,u=w(T[n+908+(l<<2)>>2]),u=w(w(T[e+908+(l<<2)>>2])-u),u=w(u-w(T[n+400+(t[1040+(r<<2)>>2]<<2)>>2])),T[n+400+(t[1e3+(r<<2)>>2]<<2)>>2]=u}function _n(e){return e=e|0,(e|1|0)==1|0}function Tn(e){e=e|0;var n=Tt;switch(t[e+56>>2]|0){case 0:case 3:{n=w(T[e+40>>2]),n>w(0)&((Le(n)|0)^1)?e=c[(t[e+976>>2]|0)+2>>0]|0?1056:992:e=1056;break}default:e=e+52|0}return e|0}function ir(e,n){return e=e|0,n=n|0,(c[e+n>>0]|0)!=0|0}function Bt(e,n){return e=e|0,n=n|0,e=e+132|0,(Hi(n)|0?(t[(ht(e,5,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(ht(e,t[1e3+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function Fi(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Hi(n)|0?(u=ht(e,5,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=ht(e,t[1e3+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Rn(u,r))),w(r)}function Ar(e,n,r){return e=e|0,n=n|0,r=w(r),ae(e,n)|0?r=w(ie(e,n,r)):r=w(-w(Fi(e,n,r))),w(r)}function mr(e){return e=w(e),T[q>>2]=e,t[q>>2]|0|0}function Y(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)$n();else{l=pn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function ri(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function ii(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&_t(e)}function Vr(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;if(h=e+4|0,D=t[h>>2]|0,l=D-u|0,s=l>>2,e=n+(s<<2)|0,e>>>0>>0){u=D;do t[u>>2]=t[e>>2],e=e+4|0,u=(t[h>>2]|0)+4|0,t[h>>2]=u;while(e>>>0>>0)}s|0&&ky(D+(0-s<<2)|0,n|0,l|0)|0}function at(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return D=n+4|0,S=t[D>>2]|0,l=t[e>>2]|0,h=r,s=h-l|0,u=S+(0-(s>>2)<<2)|0,t[D>>2]=u,(s|0)>0&&gr(u|0,l|0,s|0)|0,l=e+4|0,s=n+8|0,u=(t[l>>2]|0)-h|0,(u|0)>0&&(gr(t[s>>2]|0,r|0,u|0)|0,t[s>>2]=(t[s>>2]|0)+(u>>>2<<2)),h=t[e>>2]|0,t[e>>2]=t[D>>2],t[D>>2]=h,h=t[l>>2]|0,t[l>>2]=t[s>>2],t[s>>2]=h,h=e+8|0,r=n+12|0,e=t[h>>2]|0,t[h>>2]=t[r>>2],t[r>>2]=e,t[n>>2]=t[D>>2],S|0}function Di(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(h=t[n>>2]|0,s=t[r>>2]|0,(h|0)!=(s|0)){l=e+8|0,r=((s+-4-h|0)>>>2)+1|0,e=h,u=t[l>>2]|0;do t[u>>2]=t[e>>2],u=(t[l>>2]|0)+4|0,t[l>>2]=u,e=e+4|0;while((e|0)!=(s|0));t[n>>2]=h+(r<<2)}}function ru(){Se()}function wo(){var e=0;return e=pn(4)|0,Un(e),e|0}function Un(e){e=e|0,t[e>>2]=yo()|0}function to(e){e=e|0,e|0&&(i0(e),_t(e))}function i0(e){e=e|0,Zo(t[e>>2]|0)}function m0(e,n,r){e=e|0,n=n|0,r=r|0,Vu(t[e>>2]|0,n,r)}function no(e,n){e=e|0,n=w(n),Ju(t[e>>2]|0,n)}function j0(e,n){return e=e|0,n=n|0,ir(t[e>>2]|0,n)|0}function u0(){var e=0;return e=pn(8)|0,Ua(e,0),e|0}function Ua(e,n){e=e|0,n=n|0,n?n=Yn(t[n>>2]|0)|0:n=cr()|0,t[e>>2]=n,t[e+4>>2]=0,Ba(n,e)}function Ef(e){e=e|0;var n=0;return n=pn(8)|0,Ua(n,e),n|0}function cc(e){e=e|0,e|0&&(ws(e),_t(e))}function ws(e){e=e|0;var n=0;zu(t[e>>2]|0),n=e+4|0,e=t[n>>2]|0,t[n>>2]=0,e|0&&(ca(e),_t(e))}function ca(e){e=e|0,jo(e)}function jo(e){e=e|0,e=t[e>>2]|0,e|0&&qr(e|0)}function dc(e){return e=e|0,Us(e)|0}function ja(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ca(n),_t(n)),p0(t[e>>2]|0)}function D2(e,n){e=e|0,n=n|0,la(t[e>>2]|0,t[n>>2]|0)}function rd(e,n){e=e|0,n=n|0,Z(t[e>>2]|0,n)}function id(e,n,r){e=e|0,n=n|0,r=+r,dr(t[e>>2]|0,n,w(r))}function y0(e,n,r){e=e|0,n=n|0,r=+r,er(t[e>>2]|0,n,w(r))}function qc(e,n){e=e|0,n=n|0,z(t[e>>2]|0,n)}function Rl(e,n){e=e|0,n=n|0,$(t[e>>2]|0,n)}function ul(e,n){e=e|0,n=n|0,Ee(t[e>>2]|0,n)}function w2(e,n){e=e|0,n=n|0,go(t[e>>2]|0,n)}function Ws(e,n){e=e|0,n=n|0,Je(t[e>>2]|0,n)}function Al(e,n){e=e|0,n=n|0,ji(t[e>>2]|0,n)}function ud(e,n,r){e=e|0,n=n|0,r=+r,An(t[e>>2]|0,n,w(r))}function z0(e,n,r){e=e|0,n=n|0,r=+r,Lr(t[e>>2]|0,n,w(r))}function za(e,n){e=e|0,n=n|0,Nr(t[e>>2]|0,n)}function Ha(e,n){e=e|0,n=n|0,oe(t[e>>2]|0,n)}function qa(e,n){e=e|0,n=n|0,it(t[e>>2]|0,n)}function da(e,n){e=e|0,n=+n,Mt(t[e>>2]|0,w(n))}function Ss(e,n){e=e|0,n=+n,rn(t[e>>2]|0,w(n))}function Ts(e,n){e=e|0,n=+n,Ft(t[e>>2]|0,w(n))}function ns(e,n){e=e|0,n=+n,It(t[e>>2]|0,w(n))}function H0(e,n){e=e|0,n=+n,sn(t[e>>2]|0,w(n))}function Df(e,n){e=e|0,n=+n,fn(t[e>>2]|0,w(n))}function ol(e,n){e=e|0,n=+n,Jn(t[e>>2]|0,w(n))}function Gu(e){e=e|0,wr(t[e>>2]|0)}function Wa(e,n){e=e|0,n=+n,Lu(t[e>>2]|0,w(n))}function ro(e,n){e=e|0,n=+n,Co(t[e>>2]|0,w(n))}function zo(e){e=e|0,$o(t[e>>2]|0)}function wf(e,n){e=e|0,n=+n,_i(t[e>>2]|0,w(n))}function Wc(e,n){e=e|0,n=+n,P0(t[e>>2]|0,w(n))}function pc(e,n){e=e|0,n=+n,vf(t[e>>2]|0,w(n))}function Ol(e,n){e=e|0,n=+n,Tl(t[e>>2]|0,w(n))}function Cs(e,n){e=e|0,n=+n,I0(t[e>>2]|0,w(n))}function pa(e,n){e=e|0,n=+n,gs(t[e>>2]|0,w(n))}function od(e,n){e=e|0,n=+n,b0(t[e>>2]|0,w(n))}function ha(e,n){e=e|0,n=+n,B0(t[e>>2]|0,w(n))}function hc(e,n){e=e|0,n=+n,Qu(t[e>>2]|0,w(n))}function Vc(e,n,r){e=e|0,n=n|0,r=+r,Pt(t[e>>2]|0,n,w(r))}function qi(e,n,r){e=e|0,n=n|0,r=+r,ut(t[e>>2]|0,n,w(r))}function g(e,n,r){e=e|0,n=n|0,r=+r,Dt(t[e>>2]|0,n,w(r))}function y(e){return e=e|0,ke(t[e>>2]|0)|0}function R(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,Cr(l,t[n>>2]|0,r),F(e,l),m=u}function F(e,n){e=e|0,n=n|0,b(e,t[n+4>>2]|0,+w(T[n>>2]))}function b(e,n,r){e=e|0,n=n|0,r=+r,t[e>>2]=n,B[e+8>>3]=r}function J(e){return e=e|0,G(t[e>>2]|0)|0}function de(e){return e=e|0,Ce(t[e>>2]|0)|0}function gt(e){return e=e|0,Ae(t[e>>2]|0)|0}function xt(e){return e=e|0,js(t[e>>2]|0)|0}function Lt(e){return e=e|0,mt(t[e>>2]|0)|0}function xr(e){return e=e|0,U(t[e>>2]|0)|0}function io(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,_o(l,t[n>>2]|0,r),F(e,l),m=u}function du(e){return e=e|0,We(t[e>>2]|0)|0}function Ho(e){return e=e|0,Ct(t[e>>2]|0)|0}function Ml(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Dn(u,t[n>>2]|0),F(e,u),m=r}function uo(e){return e=e|0,+ +w(hf(t[e>>2]|0))}function Ve(e){return e=e|0,+ +w(Bs(t[e>>2]|0))}function ze(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,fu(u,t[n>>2]|0),F(e,u),m=r}function lt(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Nu(u,t[n>>2]|0),F(e,u),m=r}function $t(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,rl(u,t[n>>2]|0),F(e,u),m=r}function Wn(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,mf(u,t[n>>2]|0),F(e,u),m=r}function si(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,zs(u,t[n>>2]|0),F(e,u),m=r}function ur(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,_s(u,t[n>>2]|0),F(e,u),m=r}function ci(e){return e=e|0,+ +w(Tu(t[e>>2]|0))}function Qi(e,n){return e=e|0,n=n|0,+ +w(un(t[e>>2]|0,n))}function Gr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,et(l,t[n>>2]|0,r),F(e,l),m=u}function Cu(e,n,r){e=e|0,n=n|0,r=r|0,ba(t[e>>2]|0,t[n>>2]|0,r)}function Va(e,n){e=e|0,n=n|0,ku(t[e>>2]|0,t[n>>2]|0)}function Ga(e){return e=e|0,Su(t[e>>2]|0)|0}function ld(e){return e=e|0,e=fi(t[e>>2]|0)|0,e?e=dc(e)|0:e=0,e|0}function S2(e,n){return e=e|0,n=n|0,e=Ti(t[e>>2]|0,n)|0,e?e=dc(e)|0:e=0,e|0}function T2(e,n){e=e|0,n=n|0;var r=0,u=0;u=pn(4)|0,Sf(u,n),r=e+4|0,n=t[r>>2]|0,t[r>>2]=u,n|0&&(ca(n),_t(n)),oa(t[e>>2]|0,1)}function Sf(e,n){e=e|0,n=n|0,sl(e,n)}function sd(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,hh(D,Us(n)|0,+r,u,+l,s),T[e>>2]=w(+B[D>>3]),T[e+4>>2]=w(+B[D+8>>3]),m=h}function hh(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0,D=0,S=0,L=0,k=0;h=m,m=m+32|0,k=h+8|0,L=h+20|0,S=h,D=h+16|0,B[k>>3]=r,t[L>>2]=u,B[S>>3]=l,t[D>>2]=s,Gc(e,t[n+4>>2]|0,k,L,S,D),m=h}function Gc(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,ka(D),n=g0(n)|0,vh(e,n,+B[r>>3],t[u>>2]|0,+B[l>>3],t[s>>2]|0),La(D),m=h}function g0(e){return e=e|0,t[e>>2]|0}function vh(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0;h=_0(mh()|0)|0,r=+kl(r),u=ad(u)|0,l=+kl(l),fd(e,Qr(0,h|0,n|0,+r,u|0,+l,ad(s)|0)|0)}function mh(){var e=0;return c[7608]|0||(Kc(9120),e=7608,t[e>>2]=1,t[e+4>>2]=0),9120}function _0(e){return e=e|0,t[e+8>>2]|0}function kl(e){return e=+e,+ +Ya(e)}function ad(e){return e=e|0,dd(e)|0}function fd(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=n,u&1?(C2(r,0),eu(u|0,r|0)|0,Yc(e,r),Ir(r)):(t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]),m=l}function C2(e,n){e=e|0,n=n|0,cd(e,n),t[e+8>>2]=0,c[e+24>>0]=0}function Yc(e,n){e=e|0,n=n|0,n=n+8|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]}function Ir(e){e=e|0,c[e+24>>0]=0}function cd(e,n){e=e|0,n=n|0,t[e>>2]=n}function dd(e){return e=e|0,e|0}function Ya(e){return e=+e,+e}function Kc(e){e=e|0,ll(e,x2()|0,4)}function x2(){return 1064}function ll(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=bt(n|0,r+1|0)|0}function sl(e,n){e=e|0,n=n|0,n=t[n>>2]|0,t[e>>2]=n,Ri(n|0)}function yh(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ca(n),_t(n)),oa(t[e>>2]|0,0)}function Tf(e){e=e|0,$r(t[e>>2]|0)}function Xc(e){return e=e|0,$l(t[e>>2]|0)|0}function R2(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,ti(t[e>>2]|0,w(n),w(r),u)}function gh(e){return e=e|0,+ +w(Ei(t[e>>2]|0))}function al(e){return e=e|0,+ +w(e0(t[e>>2]|0))}function va(e){return e=e|0,+ +w(xo(t[e>>2]|0))}function A2(e){return e=e|0,+ +w(U0(t[e>>2]|0))}function O2(e){return e=e|0,+ +w(sa(t[e>>2]|0))}function vc(e){return e=e|0,+ +w(es(t[e>>2]|0))}function _h(e,n){e=e|0,n=n|0,B[e>>3]=+w(Ei(t[n>>2]|0)),B[e+8>>3]=+w(e0(t[n>>2]|0)),B[e+16>>3]=+w(xo(t[n>>2]|0)),B[e+24>>3]=+w(U0(t[n>>2]|0)),B[e+32>>3]=+w(sa(t[n>>2]|0)),B[e+40>>3]=+w(es(t[n>>2]|0))}function M2(e,n){return e=e|0,n=n|0,+ +w(tu(t[e>>2]|0,n))}function pd(e,n){return e=e|0,n=n|0,+ +w(ei(t[e>>2]|0,n))}function Qc(e,n){return e=e|0,n=n|0,+ +w(h0(t[e>>2]|0,n))}function Jc(){return Ia()|0}function Vs(){k2(),ma(),Zc(),mc(),yc(),hd()}function k2(){IO(11713,4938,1)}function ma(){tO(10448)}function Zc(){I7(10408)}function mc(){u7(10324)}function yc(){EE(10096)}function hd(){Eh(9132)}function Eh(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0,ft=0,Me=0,Pe=0,Zt=0,Br=0,In=0,gn=0,_r=0,Pr=0,Ln=0,uu=0,ls=0,ss=0,as=0,ta=0,r2=0,i2=0,of=0,u2=0,Pc=0,Ic=0,o2=0,l2=0,s2=0,vi=0,lf=0,a2=0,Kf=0,f2=0,c2=0,bc=0,Bc=0,Xf=0,ql=0,Fa=0,Ns=0,sf=0,b1=0,B1=0,Uc=0,U1=0,j1=0,Wl=0,El=0,af=0,vu=0,z1=0,fs=0,Qf=0,cs=0,Jf=0,H1=0,q1=0,Zf=0,Vl=0,ff=0,W1=0,V1=0,G1=0,Sr=0,Bu=0,Dl=0,ds=0,Gl=0,Or=0,Bn=0,cf=0;n=m,m=m+672|0,r=n+656|0,cf=n+648|0,Bn=n+640|0,Or=n+632|0,Gl=n+624|0,ds=n+616|0,Dl=n+608|0,Bu=n+600|0,Sr=n+592|0,G1=n+584|0,V1=n+576|0,W1=n+568|0,ff=n+560|0,Vl=n+552|0,Zf=n+544|0,q1=n+536|0,H1=n+528|0,Jf=n+520|0,cs=n+512|0,Qf=n+504|0,fs=n+496|0,z1=n+488|0,vu=n+480|0,af=n+472|0,El=n+464|0,Wl=n+456|0,j1=n+448|0,U1=n+440|0,Uc=n+432|0,B1=n+424|0,b1=n+416|0,sf=n+408|0,Ns=n+400|0,Fa=n+392|0,ql=n+384|0,Xf=n+376|0,Bc=n+368|0,bc=n+360|0,c2=n+352|0,f2=n+344|0,Kf=n+336|0,a2=n+328|0,lf=n+320|0,vi=n+312|0,s2=n+304|0,l2=n+296|0,o2=n+288|0,Ic=n+280|0,Pc=n+272|0,u2=n+264|0,of=n+256|0,i2=n+248|0,r2=n+240|0,ta=n+232|0,as=n+224|0,ss=n+216|0,ls=n+208|0,uu=n+200|0,Ln=n+192|0,Pr=n+184|0,_r=n+176|0,gn=n+168|0,In=n+160|0,Br=n+152|0,Zt=n+144|0,Pe=n+136|0,Me=n+128|0,ft=n+120|0,Ge=n+112|0,Ze=n+104|0,ye=n+96|0,Te=n+88|0,Be=n+80|0,K=n+72|0,I=n+64|0,k=n+56|0,L=n+48|0,S=n+40|0,D=n+32|0,h=n+24|0,s=n+16|0,l=n+8|0,u=n,Cf(e,3646),$c(e,3651,2)|0,Dh(e,3665,2)|0,am(e,3682,18)|0,t[cf>>2]=19,t[cf+4>>2]=0,t[r>>2]=t[cf>>2],t[r+4>>2]=t[cf+4>>2],Gs(e,3690,r)|0,t[Bn>>2]=1,t[Bn+4>>2]=0,t[r>>2]=t[Bn>>2],t[r+4>>2]=t[Bn+4>>2],ya(e,3696,r)|0,t[Or>>2]=2,t[Or+4>>2]=0,t[r>>2]=t[Or>>2],t[r+4>>2]=t[Or+4>>2],iu(e,3706,r)|0,t[Gl>>2]=1,t[Gl+4>>2]=0,t[r>>2]=t[Gl>>2],t[r+4>>2]=t[Gl+4>>2],ko(e,3722,r)|0,t[ds>>2]=2,t[ds+4>>2]=0,t[r>>2]=t[ds>>2],t[r+4>>2]=t[ds+4>>2],ko(e,3734,r)|0,t[Dl>>2]=3,t[Dl+4>>2]=0,t[r>>2]=t[Dl>>2],t[r+4>>2]=t[Dl+4>>2],iu(e,3753,r)|0,t[Bu>>2]=4,t[Bu+4>>2]=0,t[r>>2]=t[Bu>>2],t[r+4>>2]=t[Bu+4>>2],iu(e,3769,r)|0,t[Sr>>2]=5,t[Sr+4>>2]=0,t[r>>2]=t[Sr>>2],t[r+4>>2]=t[Sr+4>>2],iu(e,3783,r)|0,t[G1>>2]=6,t[G1+4>>2]=0,t[r>>2]=t[G1>>2],t[r+4>>2]=t[G1+4>>2],iu(e,3796,r)|0,t[V1>>2]=7,t[V1+4>>2]=0,t[r>>2]=t[V1>>2],t[r+4>>2]=t[V1+4>>2],iu(e,3813,r)|0,t[W1>>2]=8,t[W1+4>>2]=0,t[r>>2]=t[W1>>2],t[r+4>>2]=t[W1+4>>2],iu(e,3825,r)|0,t[ff>>2]=3,t[ff+4>>2]=0,t[r>>2]=t[ff>>2],t[r+4>>2]=t[ff+4>>2],ko(e,3843,r)|0,t[Vl>>2]=4,t[Vl+4>>2]=0,t[r>>2]=t[Vl>>2],t[r+4>>2]=t[Vl+4>>2],ko(e,3853,r)|0,t[Zf>>2]=9,t[Zf+4>>2]=0,t[r>>2]=t[Zf>>2],t[r+4>>2]=t[Zf+4>>2],iu(e,3870,r)|0,t[q1>>2]=10,t[q1+4>>2]=0,t[r>>2]=t[q1>>2],t[r+4>>2]=t[q1+4>>2],iu(e,3884,r)|0,t[H1>>2]=11,t[H1+4>>2]=0,t[r>>2]=t[H1>>2],t[r+4>>2]=t[H1+4>>2],iu(e,3896,r)|0,t[Jf>>2]=1,t[Jf+4>>2]=0,t[r>>2]=t[Jf>>2],t[r+4>>2]=t[Jf+4>>2],oo(e,3907,r)|0,t[cs>>2]=2,t[cs+4>>2]=0,t[r>>2]=t[cs>>2],t[r+4>>2]=t[cs+4>>2],oo(e,3915,r)|0,t[Qf>>2]=3,t[Qf+4>>2]=0,t[r>>2]=t[Qf>>2],t[r+4>>2]=t[Qf+4>>2],oo(e,3928,r)|0,t[fs>>2]=4,t[fs+4>>2]=0,t[r>>2]=t[fs>>2],t[r+4>>2]=t[fs+4>>2],oo(e,3948,r)|0,t[z1>>2]=5,t[z1+4>>2]=0,t[r>>2]=t[z1>>2],t[r+4>>2]=t[z1+4>>2],oo(e,3960,r)|0,t[vu>>2]=6,t[vu+4>>2]=0,t[r>>2]=t[vu>>2],t[r+4>>2]=t[vu+4>>2],oo(e,3974,r)|0,t[af>>2]=7,t[af+4>>2]=0,t[r>>2]=t[af>>2],t[r+4>>2]=t[af+4>>2],oo(e,3983,r)|0,t[El>>2]=20,t[El+4>>2]=0,t[r>>2]=t[El>>2],t[r+4>>2]=t[El+4>>2],Gs(e,3999,r)|0,t[Wl>>2]=8,t[Wl+4>>2]=0,t[r>>2]=t[Wl>>2],t[r+4>>2]=t[Wl+4>>2],oo(e,4012,r)|0,t[j1>>2]=9,t[j1+4>>2]=0,t[r>>2]=t[j1>>2],t[r+4>>2]=t[j1+4>>2],oo(e,4022,r)|0,t[U1>>2]=21,t[U1+4>>2]=0,t[r>>2]=t[U1>>2],t[r+4>>2]=t[U1+4>>2],Gs(e,4039,r)|0,t[Uc>>2]=10,t[Uc+4>>2]=0,t[r>>2]=t[Uc>>2],t[r+4>>2]=t[Uc+4>>2],oo(e,4053,r)|0,t[B1>>2]=11,t[B1+4>>2]=0,t[r>>2]=t[B1>>2],t[r+4>>2]=t[B1+4>>2],oo(e,4065,r)|0,t[b1>>2]=12,t[b1+4>>2]=0,t[r>>2]=t[b1>>2],t[r+4>>2]=t[b1+4>>2],oo(e,4084,r)|0,t[sf>>2]=13,t[sf+4>>2]=0,t[r>>2]=t[sf>>2],t[r+4>>2]=t[sf+4>>2],oo(e,4097,r)|0,t[Ns>>2]=14,t[Ns+4>>2]=0,t[r>>2]=t[Ns>>2],t[r+4>>2]=t[Ns+4>>2],oo(e,4117,r)|0,t[Fa>>2]=15,t[Fa+4>>2]=0,t[r>>2]=t[Fa>>2],t[r+4>>2]=t[Fa+4>>2],oo(e,4129,r)|0,t[ql>>2]=16,t[ql+4>>2]=0,t[r>>2]=t[ql>>2],t[r+4>>2]=t[ql+4>>2],oo(e,4148,r)|0,t[Xf>>2]=17,t[Xf+4>>2]=0,t[r>>2]=t[Xf>>2],t[r+4>>2]=t[Xf+4>>2],oo(e,4161,r)|0,t[Bc>>2]=18,t[Bc+4>>2]=0,t[r>>2]=t[Bc>>2],t[r+4>>2]=t[Bc+4>>2],oo(e,4181,r)|0,t[bc>>2]=5,t[bc+4>>2]=0,t[r>>2]=t[bc>>2],t[r+4>>2]=t[bc+4>>2],ko(e,4196,r)|0,t[c2>>2]=6,t[c2+4>>2]=0,t[r>>2]=t[c2>>2],t[r+4>>2]=t[c2+4>>2],ko(e,4206,r)|0,t[f2>>2]=7,t[f2+4>>2]=0,t[r>>2]=t[f2>>2],t[r+4>>2]=t[f2+4>>2],ko(e,4217,r)|0,t[Kf>>2]=3,t[Kf+4>>2]=0,t[r>>2]=t[Kf>>2],t[r+4>>2]=t[Kf+4>>2],rs(e,4235,r)|0,t[a2>>2]=1,t[a2+4>>2]=0,t[r>>2]=t[a2>>2],t[r+4>>2]=t[a2+4>>2],Ka(e,4251,r)|0,t[lf>>2]=4,t[lf+4>>2]=0,t[r>>2]=t[lf>>2],t[r+4>>2]=t[lf+4>>2],rs(e,4263,r)|0,t[vi>>2]=5,t[vi+4>>2]=0,t[r>>2]=t[vi>>2],t[r+4>>2]=t[vi+4>>2],rs(e,4279,r)|0,t[s2>>2]=6,t[s2+4>>2]=0,t[r>>2]=t[s2>>2],t[r+4>>2]=t[s2+4>>2],rs(e,4293,r)|0,t[l2>>2]=7,t[l2+4>>2]=0,t[r>>2]=t[l2>>2],t[r+4>>2]=t[l2+4>>2],rs(e,4306,r)|0,t[o2>>2]=8,t[o2+4>>2]=0,t[r>>2]=t[o2>>2],t[r+4>>2]=t[o2+4>>2],rs(e,4323,r)|0,t[Ic>>2]=9,t[Ic+4>>2]=0,t[r>>2]=t[Ic>>2],t[r+4>>2]=t[Ic+4>>2],rs(e,4335,r)|0,t[Pc>>2]=2,t[Pc+4>>2]=0,t[r>>2]=t[Pc>>2],t[r+4>>2]=t[Pc+4>>2],Ka(e,4353,r)|0,t[u2>>2]=12,t[u2+4>>2]=0,t[r>>2]=t[u2>>2],t[r+4>>2]=t[u2+4>>2],o0(e,4363,r)|0,t[of>>2]=1,t[of+4>>2]=0,t[r>>2]=t[of>>2],t[r+4>>2]=t[of+4>>2],fl(e,4376,r)|0,t[i2>>2]=2,t[i2+4>>2]=0,t[r>>2]=t[i2>>2],t[r+4>>2]=t[i2+4>>2],fl(e,4388,r)|0,t[r2>>2]=13,t[r2+4>>2]=0,t[r>>2]=t[r2>>2],t[r+4>>2]=t[r2+4>>2],o0(e,4402,r)|0,t[ta>>2]=14,t[ta+4>>2]=0,t[r>>2]=t[ta>>2],t[r+4>>2]=t[ta+4>>2],o0(e,4411,r)|0,t[as>>2]=15,t[as+4>>2]=0,t[r>>2]=t[as>>2],t[r+4>>2]=t[as+4>>2],o0(e,4421,r)|0,t[ss>>2]=16,t[ss+4>>2]=0,t[r>>2]=t[ss>>2],t[r+4>>2]=t[ss+4>>2],o0(e,4433,r)|0,t[ls>>2]=17,t[ls+4>>2]=0,t[r>>2]=t[ls>>2],t[r+4>>2]=t[ls+4>>2],o0(e,4446,r)|0,t[uu>>2]=18,t[uu+4>>2]=0,t[r>>2]=t[uu>>2],t[r+4>>2]=t[uu+4>>2],o0(e,4458,r)|0,t[Ln>>2]=3,t[Ln+4>>2]=0,t[r>>2]=t[Ln>>2],t[r+4>>2]=t[Ln+4>>2],fl(e,4471,r)|0,t[Pr>>2]=1,t[Pr+4>>2]=0,t[r>>2]=t[Pr>>2],t[r+4>>2]=t[Pr+4>>2],gc(e,4486,r)|0,t[_r>>2]=10,t[_r+4>>2]=0,t[r>>2]=t[_r>>2],t[r+4>>2]=t[_r+4>>2],rs(e,4496,r)|0,t[gn>>2]=11,t[gn+4>>2]=0,t[r>>2]=t[gn>>2],t[r+4>>2]=t[gn+4>>2],rs(e,4508,r)|0,t[In>>2]=3,t[In+4>>2]=0,t[r>>2]=t[In>>2],t[r+4>>2]=t[In+4>>2],Ka(e,4519,r)|0,t[Br>>2]=4,t[Br+4>>2]=0,t[r>>2]=t[Br>>2],t[r+4>>2]=t[Br+4>>2],L2(e,4530,r)|0,t[Zt>>2]=19,t[Zt+4>>2]=0,t[r>>2]=t[Zt>>2],t[r+4>>2]=t[Zt+4>>2],wh(e,4542,r)|0,t[Pe>>2]=12,t[Pe+4>>2]=0,t[r>>2]=t[Pe>>2],t[r+4>>2]=t[Pe+4>>2],xf(e,4554,r)|0,t[Me>>2]=13,t[Me+4>>2]=0,t[r>>2]=t[Me>>2],t[r+4>>2]=t[Me+4>>2],Rf(e,4568,r)|0,t[ft>>2]=2,t[ft+4>>2]=0,t[r>>2]=t[ft>>2],t[r+4>>2]=t[ft+4>>2],e1(e,4578,r)|0,t[Ge>>2]=20,t[Ge+4>>2]=0,t[r>>2]=t[Ge>>2],t[r+4>>2]=t[Ge+4>>2],Ll(e,4587,r)|0,t[Ze>>2]=22,t[Ze+4>>2]=0,t[r>>2]=t[Ze>>2],t[r+4>>2]=t[Ze+4>>2],Gs(e,4602,r)|0,t[ye>>2]=23,t[ye+4>>2]=0,t[r>>2]=t[ye>>2],t[r+4>>2]=t[ye+4>>2],Gs(e,4619,r)|0,t[Te>>2]=14,t[Te+4>>2]=0,t[r>>2]=t[Te>>2],t[r+4>>2]=t[Te+4>>2],t1(e,4629,r)|0,t[Be>>2]=1,t[Be+4>>2]=0,t[r>>2]=t[Be>>2],t[r+4>>2]=t[Be+4>>2],ga(e,4637,r)|0,t[K>>2]=4,t[K+4>>2]=0,t[r>>2]=t[K>>2],t[r+4>>2]=t[K+4>>2],fl(e,4653,r)|0,t[I>>2]=5,t[I+4>>2]=0,t[r>>2]=t[I>>2],t[r+4>>2]=t[I+4>>2],fl(e,4669,r)|0,t[k>>2]=6,t[k+4>>2]=0,t[r>>2]=t[k>>2],t[r+4>>2]=t[k+4>>2],fl(e,4686,r)|0,t[L>>2]=7,t[L+4>>2]=0,t[r>>2]=t[L>>2],t[r+4>>2]=t[L+4>>2],fl(e,4701,r)|0,t[S>>2]=8,t[S+4>>2]=0,t[r>>2]=t[S>>2],t[r+4>>2]=t[S+4>>2],fl(e,4719,r)|0,t[D>>2]=9,t[D+4>>2]=0,t[r>>2]=t[D>>2],t[r+4>>2]=t[D+4>>2],fl(e,4736,r)|0,t[h>>2]=21,t[h+4>>2]=0,t[r>>2]=t[h>>2],t[r+4>>2]=t[h+4>>2],vd(e,4754,r)|0,t[s>>2]=2,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],gc(e,4772,r)|0,t[l>>2]=3,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],gc(e,4790,r)|0,t[u>>2]=4,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],gc(e,4808,r)|0,m=n}function Cf(e,n){e=e|0,n=n|0;var r=0;r=uf()|0,t[e>>2]=r,V0(r,n),e2(t[e>>2]|0)}function $c(e,n,r){return e=e|0,n=n|0,r=r|0,Ot(e,Fr(n)|0,r,0),e|0}function Dh(e,n,r){return e=e|0,n=n|0,r=r|0,d(e,Fr(n)|0,r,0),e|0}function am(e,n,r){return e=e|0,n=n|0,r=r|0,hE(e,Fr(n)|0,r,0),e|0}function Gs(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],oE(e,n,l),m=u,e|0}function ya(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],zl(e,n,l),m=u,e|0}function iu(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],p(e,n,l),m=u,e|0}function ko(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Rv(e,n,l),m=u,e|0}function oo(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ny(e,n,l),m=u,e|0}function rs(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Kd(e,n,l),m=u,e|0}function Ka(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Yd(e,n,l),m=u,e|0}function o0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Lo(e,n,l),m=u,e|0}function fl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Sp(e,n,l),m=u,e|0}function gc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bm(e,n,l),m=u,e|0}function L2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],lo(e,n,l),m=u,e|0}function wh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Md(e,n,l),m=u,e|0}function xf(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Am(e,n,l),m=u,e|0}function Rf(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tp(e,n,l),m=u,e|0}function e1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],y1(e,n,l),m=u,e|0}function Ll(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],$a(e,n,l),m=u,e|0}function t1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],j2(e,n,l),m=u,e|0}function ga(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],P2(e,n,l),m=u,e|0}function vd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],md(e,n,l),m=u,e|0}function md(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Ea(e,r,l,1),m=u}function Fr(e){return e=e|0,e|0}function Ea(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=N2()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=n1(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,yd(s,u)|0,u),m=l}function N2(){var e=0,n=0;if(c[7616]|0||(cl(9136),Vt(24,9136,ve|0)|0,n=7616,t[n>>2]=1,t[n+4>>2]=0),!(sr(9136)|0)){e=9136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));cl(9136)}return 9136}function n1(e){return e=e|0,0}function yd(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=N2()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Af(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Of(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function wi(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0;h=m,m=m+32|0,K=h+24|0,I=h+20|0,S=h+16|0,k=h+12|0,L=h+8|0,D=h+4|0,Be=h,t[I>>2]=n,t[S>>2]=r,t[k>>2]=u,t[L>>2]=l,t[D>>2]=s,s=e+28|0,t[Be>>2]=t[s>>2],t[K>>2]=t[Be>>2],F2(e+24|0,K,I,k,L,S,D)|0,t[s>>2]=t[t[s>>2]>>2],m=h}function F2(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,e=fm(n)|0,n=pn(24)|0,gd(n+4|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0,t[h>>2]|0),t[n>>2]=t[e>>2],t[e>>2]=n,n|0}function fm(e){return e=e|0,t[e>>2]|0}function gd(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function hn(e,n){return e=e|0,n=n|0,n|e|0}function Af(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Of(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=cm(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Mf(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Af(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Sh(e,D),dm(D),m=L;return}}function cm(e){return e=e|0,357913941}function Mf(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Sh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function dm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function cl(e){e=e|0,q0(e)}function r1(e){e=e|0,qn(e+24|0)}function sr(e){return e=e|0,t[e>>2]|0}function qn(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function q0(e){e=e|0;var n=0;n=yr()|0,jn(e,2,3,n,Vn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function yr(){return 9228}function Vn(){return 1140}function dl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=E0(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=_c(n,u)|0,m=r,n|0}function jn(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function E0(e){return e=e|0,(t[(N2()|0)+24>>2]|0)+(e*12|0)|0}function _c(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+48|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),I1[r&31](u,e),u=l0(u)|0,m=l,u|0}function l0(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Iu(Xa()|0)|0,u?(is(n,u),kf(r,n),Ec(e,r),e=xs(n)|0):e=Dc(e)|0,m=l,e|0}function Xa(){var e=0;return c[7632]|0||(Nf(9184),Vt(25,9184,ve|0)|0,e=7632,t[e>>2]=1,t[e+4>>2]=0),9184}function Iu(e){return e=e|0,t[e+36>>2]|0}function is(e,n){e=e|0,n=n|0,t[e>>2]=n,t[e+4>>2]=e,t[e+8>>2]=0}function kf(e,n){e=e|0,n=n|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=0}function Ec(e,n){e=e|0,n=n|0,s0(n,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0}function xs(e){return e=e|0,t[(t[e+4>>2]|0)+8>>2]|0}function Dc(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;S=m,m=m+16|0,r=S+4|0,u=S,l=Ma(8)|0,s=l,h=pn(48)|0,D=h,n=D+48|0;do t[D>>2]=t[e>>2],D=D+4|0,e=e+4|0;while((D|0)<(n|0));return n=s+4|0,t[n>>2]=h,D=pn(8)|0,h=t[n>>2]|0,t[u>>2]=0,t[r>>2]=t[u>>2],Th(D,h,r),t[l>>2]=D,m=S,s|0}function Th(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=pn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1092,t[r+12>>2]=n,t[e+4>>2]=r}function cn(e){e=e|0,Uv(e),_t(e)}function us(e){e=e|0,e=t[e+12>>2]|0,e|0&&_t(e)}function D0(e){e=e|0,_t(e)}function s0(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,s=Ji(t[e>>2]|0,n,r,u,l,s,h)|0,h=e+4|0,t[(t[h>>2]|0)+8>>2]=s,t[(t[h>>2]|0)+8>>2]|0}function Ji(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0;var D=0,S=0;return D=m,m=m+16|0,S=D,ka(S),e=g0(e)|0,h=Yr(e,+B[n>>3],+B[r>>3],+B[u>>3],+B[l>>3],+B[s>>3],+B[h>>3])|0,La(S),m=D,h|0}function Yr(e,n,r,u,l,s,h){e=e|0,n=+n,r=+r,u=+u,l=+l,s=+s,h=+h;var D=0;return D=_0(Lf()|0)|0,n=+kl(n),r=+kl(r),u=+kl(u),l=+kl(l),s=+kl(s),ho(0,D|0,e|0,+n,+r,+u,+l,+s,+ +kl(h))|0}function Lf(){var e=0;return c[7624]|0||(pm(9172),e=7624,t[e>>2]=1,t[e+4>>2]=0),9172}function pm(e){e=e|0,ll(e,Nl()|0,6)}function Nl(){return 1112}function Nf(e){e=e|0,Qa(e)}function Ff(e){e=e|0,_d(e+24|0),Ed(e+16|0)}function _d(e){e=e|0,i1(e)}function Ed(e){e=e|0,wc(e)}function wc(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,_t(r);while((n|0)!=0);t[e>>2]=0}function i1(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,_t(r);while((n|0)!=0);t[e>>2]=0}function Qa(e){e=e|0;var n=0;t[e+16>>2]=0,t[e+20>>2]=0,n=e+24|0,t[n>>2]=0,t[e+28>>2]=n,t[e+36>>2]=0,c[e+40>>0]=0,c[e+41>>0]=0}function P2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Dd(e,r,l,0),m=u}function Dd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=u1()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=Pf(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,o1(s,u)|0,u),m=l}function u1(){var e=0,n=0;if(c[7640]|0||(Fl(9232),Vt(26,9232,ve|0)|0,n=7640,t[n>>2]=1,t[n+4>>2]=0),!(sr(9232)|0)){e=9232,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Fl(9232)}return 9232}function Pf(e){return e=e|0,0}function o1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=u1()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Ja(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(l1(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Ja(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function l1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=I2(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,wd(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Ja(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Sc(e,D),s1(D),m=L;return}}function I2(e){return e=e|0,357913941}function wd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Sc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function s1(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Fl(e){e=e|0,b2(e)}function Da(e){e=e|0,Ch(e+24|0)}function Ch(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function b2(e){e=e|0;var n=0;n=yr()|0,jn(e,2,1,n,B2()|0,3),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function B2(){return 1144}function xh(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,h=s+8|0,D=s,S=Sd(e)|0,e=t[S+4>>2]|0,t[D>>2]=t[S>>2],t[D+4>>2]=e,t[h>>2]=t[D>>2],t[h+4>>2]=t[D+4>>2],Rh(n,h,r,u,l),m=s}function Sd(e){return e=e|0,(t[(u1()|0)+24>>2]|0)+(e*12|0)|0}function Rh(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0,L=0;L=m,m=m+16|0,h=L+2|0,D=L+1|0,S=L,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),Pl(h,r),r=+os(h,r),Pl(D,u),u=+os(D,u),Rs(S,l),S=Ys(S,l)|0,tS[s&1](e,r,u,S),m=L}function Pl(e,n){e=e|0,n=+n}function os(e,n){return e=e|0,n=+n,+ +Ah(n)}function Rs(e,n){e=e|0,n=n|0}function Ys(e,n){return e=e|0,n=n|0,U2(n)|0}function U2(e){return e=e|0,e|0}function Ah(e){return e=+e,+e}function j2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],z2(e,r,l,1),m=u}function z2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=a1()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=f1(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Oh(s,u)|0,u),m=l}function a1(){var e=0,n=0;if(c[7648]|0||(c1(9268),Vt(27,9268,ve|0)|0,n=7648,t[n>>2]=1,t[n+4>>2]=0),!(sr(9268)|0)){e=9268,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));c1(9268)}return 9268}function f1(e){return e=e|0,0}function Oh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=a1()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],H2(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(q2(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function H2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function q2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=As(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Za(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],H2(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Mh(e,D),pu(D),m=L;return}}function As(e){return e=e|0,357913941}function Za(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Mh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function pu(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function c1(e){e=e|0,Il(e)}function kh(e){e=e|0,d1(e+24|0)}function d1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function Il(e){e=e|0;var n=0;n=yr()|0,jn(e,2,4,n,Lh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Lh(){return 1160}function W2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Nh(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=p1(n,u)|0,m=r,n|0}function Nh(e){return e=e|0,(t[(a1()|0)+24>>2]|0)+(e*12|0)|0}function p1(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),bl(Zp[r&31](e)|0)|0}function bl(e){return e=e|0,e&1|0}function $a(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],wa(e,r,l,0),m=u}function wa(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=V2()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=G2(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,hm(s,u)|0,u),m=l}function V2(){var e=0,n=0;if(c[7656]|0||(Ih(9304),Vt(28,9304,ve|0)|0,n=7656,t[n>>2]=1,t[n+4>>2]=0),!(sr(9304)|0)){e=9304,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ih(9304)}return 9304}function G2(e){return e=e|0,0}function hm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=V2()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Y2(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Fh(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Y2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Fh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ph(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,K2(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Y2(s,u,r),t[S>>2]=(t[S>>2]|0)+12,vm(e,D),mm(D),m=L;return}}function Ph(e){return e=e|0,357913941}function K2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function vm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function mm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Ih(e){e=e|0,h1(e)}function ym(e){e=e|0,X2(e+24|0)}function X2(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function h1(e){e=e|0;var n=0;n=yr()|0,jn(e,2,5,n,v1()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function v1(){return 1164}function m1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Sa(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Q2(n,l,r),m=u}function Sa(e){return e=e|0,(t[(V2()|0)+24>>2]|0)+(e*12|0)|0}function Q2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ks(l,r),r=Xs(l,r)|0,I1[u&31](e,r),Qs(l),m=s}function Ks(e,n){e=e|0,n=n|0,J2(e,n)}function Xs(e,n){return e=e|0,n=n|0,e|0}function Qs(e){e=e|0,ca(e)}function J2(e,n){e=e|0,n=n|0,Ta(e,n)}function Ta(e,n){e=e|0,n=n|0,t[e>>2]=n}function y1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Td(e,r,l,0),m=u}function Td(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Tc()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=Z2(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,w0(s,u)|0,u),m=l}function Tc(){var e=0,n=0;if(c[7664]|0||(Hh(9340),Vt(29,9340,ve|0)|0,n=7664,t[n>>2]=1,t[n+4>>2]=0),!(sr(9340)|0)){e=9340,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Hh(9340)}return 9340}function Z2(e){return e=e|0,0}function w0(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Tc()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],bh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Bh(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function bh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Bh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Uh(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,jh(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],bh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gm(e,D),zh(D),m=L;return}}function Uh(e){return e=e|0,357913941}function jh(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function zh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Hh(e){e=e|0,qh(e)}function g1(e){e=e|0,$2(e+24|0)}function $2(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function qh(e){e=e|0;var n=0;n=yr()|0,jn(e,2,4,n,ep()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function ep(){return 1180}function Wh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=_m(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=Em(n,l,r)|0,m=u,r|0}function _m(e){return e=e|0,(t[(Tc()|0)+24>>2]|0)+(e*12|0)|0}function Em(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),If(l,r),l=bf(l,r)|0,l=Cd(tD[u&15](e,l)|0)|0,m=s,l|0}function If(e,n){e=e|0,n=n|0}function bf(e,n){return e=e|0,n=n|0,Dm(n)|0}function Cd(e){return e=e|0,e|0}function Dm(e){return e=e|0,e|0}function tp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],xd(e,r,l,0),m=u}function xd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=np()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=Vh(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,rp(s,u)|0,u),m=l}function np(){var e=0,n=0;if(c[7672]|0||(Kh(9376),Vt(30,9376,ve|0)|0,n=7672,t[n>>2]=1,t[n+4>>2]=0),!(sr(9376)|0)){e=9376,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Kh(9376)}return 9376}function Vh(e){return e=e|0,0}function rp(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=np()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Gh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Yh(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Gh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Yh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ip(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,wm(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Gh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Sm(e,D),Tm(D),m=L;return}}function ip(e){return e=e|0,357913941}function wm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Sm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Tm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Kh(e){e=e|0,up(e)}function _1(e){e=e|0,Cm(e+24|0)}function Cm(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function up(e){e=e|0;var n=0;n=yr()|0,jn(e,2,5,n,op()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function op(){return 1196}function xm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Rm(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Xh(n,u)|0,m=r,n|0}function Rm(e){return e=e|0,(t[(np()|0)+24>>2]|0)+(e*12|0)|0}function Xh(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Cd(Zp[r&31](e)|0)|0}function Am(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Om(e,r,l,1),m=u}function Om(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=lp()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=sp(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Ca(s,u)|0,u),m=l}function lp(){var e=0,n=0;if(c[7680]|0||(fp(9412),Vt(31,9412,ve|0)|0,n=7680,t[n>>2]=1,t[n+4>>2]=0),!(sr(9412)|0)){e=9412,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));fp(9412)}return 9412}function sp(e){return e=e|0,0}function Ca(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=lp()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],E1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(ap(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function E1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function ap(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Qh(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Rd(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],E1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,D1(e,D),Jh(D),m=L;return}}function Qh(e){return e=e|0,357913941}function Rd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function D1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Jh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function fp(e){e=e|0,$h(e)}function Zh(e){e=e|0,cp(e+24|0)}function cp(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function $h(e){e=e|0;var n=0;n=yr()|0,jn(e,2,6,n,ev()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function ev(){return 1200}function dp(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Ad(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Od(n,u)|0,m=r,n|0}function Ad(e){return e=e|0,(t[(lp()|0)+24>>2]|0)+(e*12|0)|0}function Od(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),qo(Zp[r&31](e)|0)|0}function qo(e){return e=e|0,e|0}function Md(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],xa(e,r,l,0),m=u}function xa(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=ef()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=kd(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Ld(s,u)|0,u),m=l}function ef(){var e=0,n=0;if(c[7688]|0||(vp(9448),Vt(32,9448,ve|0)|0,n=7688,t[n>>2]=1,t[n+4>>2]=0),!(sr(9448)|0)){e=9448,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));vp(9448)}return 9448}function kd(e){return e=e|0,0}function Ld(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=ef()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],pp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Nd(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function pp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Nd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=tv(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Mm(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],pp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,nv(e,D),hp(D),m=L;return}}function tv(e){return e=e|0,357913941}function Mm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function nv(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function hp(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function vp(e){e=e|0,Lm(e)}function mp(e){e=e|0,km(e+24|0)}function km(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function Lm(e){e=e|0;var n=0;n=yr()|0,jn(e,2,6,n,S0()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function S0(){return 1204}function Fd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Nm(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],pl(n,l,r),m=u}function Nm(e){return e=e|0,(t[(ef()|0)+24>>2]|0)+(e*12|0)|0}function pl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),tr(l,r),l=Js(l,r)|0,I1[u&31](e,l),m=s}function tr(e,n){e=e|0,n=n|0}function Js(e,n){return e=e|0,n=n|0,hl(n)|0}function hl(e){return e=e|0,e|0}function lo(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],rv(e,r,l,0),m=u}function rv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Zs()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=yp(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Fm(s,u)|0,u),m=l}function Zs(){var e=0,n=0;if(c[7696]|0||(Ep(9484),Vt(33,9484,ve|0)|0,n=7696,t[n>>2]=1,t[n+4>>2]=0),!(sr(9484)|0)){e=9484,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ep(9484)}return 9484}function yp(e){return e=e|0,0}function Fm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Zs()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],iv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(gp(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function iv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function gp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Pm(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,_p(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],iv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Cc(e,D),Ra(D),m=L;return}}function Pm(e){return e=e|0,357913941}function _p(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Cc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ra(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Ep(e){e=e|0,Yu(e)}function Pd(e){e=e|0,bu(e+24|0)}function bu(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function Yu(e){e=e|0;var n=0;n=yr()|0,jn(e,2,1,n,Dp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Dp(){return 1212}function wp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=uv(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],Im(n,s,r,u),m=l}function uv(e){return e=e|0,(t[(Zs()|0)+24>>2]|0)+(e*12|0)|0}function Im(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),tr(s,r),s=Js(s,r)|0,If(h,u),h=bf(h,u)|0,Fy[l&15](e,s,h),m=D}function bm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Bm(e,r,l,1),m=u}function Bm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Id()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=ov(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,xc(s,u)|0,u),m=l}function Id(){var e=0,n=0;if(c[7704]|0||(lv(9520),Vt(34,9520,ve|0)|0,n=7704,t[n>>2]=1,t[n+4>>2]=0),!(sr(9520)|0)){e=9520,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));lv(9520)}return 9520}function ov(e){return e=e|0,0}function xc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Id()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],w1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Um(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function w1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Um(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=bd(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,S1(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],w1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Bl(e,D),Aa(D),m=L;return}}function bd(e){return e=e|0,357913941}function S1(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Bl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Aa(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function lv(e){e=e|0,av(e)}function jm(e){e=e|0,sv(e+24|0)}function sv(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function av(e){e=e|0;var n=0;n=yr()|0,jn(e,2,1,n,zm()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zm(){return 1224}function fv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;return l=m,m=m+16|0,s=l+8|0,h=l,D=Oa(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],u=+Mr(n,s,r),m=l,+u}function Oa(e){return e=e|0,(t[(Id()|0)+24>>2]|0)+(e*12|0)|0}function Mr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Rs(l,r),l=Ys(l,r)|0,h=+Ya(+rS[u&7](e,l)),m=s,+h}function Sp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],vl(e,r,l,1),m=u}function vl(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=gu()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=T1(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Ui(s,u)|0,u),m=l}function gu(){var e=0,n=0;if(c[7712]|0||(Cp(9556),Vt(35,9556,ve|0)|0,n=7712,t[n>>2]=1,t[n+4>>2]=0),!(sr(9556)|0)){e=9556,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Cp(9556)}return 9556}function T1(e){return e=e|0,0}function Ui(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=gu()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Tp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Bd(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Tp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Bd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=T0(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Os(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Tp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Bf(e,D),Ud(D),m=L;return}}function T0(e){return e=e|0,357913941}function Os(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Bf(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ud(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Cp(e){e=e|0,xp(e)}function C1(e){e=e|0,x1(e+24|0)}function x1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function xp(e){e=e|0;var n=0;n=yr()|0,jn(e,2,5,n,nr()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function nr(){return 1232}function ml(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=Gn(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=+Wo(n,l),m=u,+r}function Gn(e){return e=e|0,(t[(gu()|0)+24>>2]|0)+(e*12|0)|0}function Wo(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),+ +Ya(+nS[r&15](e))}function Lo(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],jd(e,r,l,1),m=u}function jd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ul()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=R1(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Rc(s,u)|0,u),m=l}function Ul(){var e=0,n=0;if(c[7720]|0||(qd(9592),Vt(36,9592,ve|0)|0,n=7720,t[n>>2]=1,t[n+4>>2]=0),!(sr(9592)|0)){e=9592,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));qd(9592)}return 9592}function R1(e){return e=e|0,0}function Rc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Ul()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Ac(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(zd(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Ac(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function zd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Rp(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,No(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Ac(s,u,r),t[S>>2]=(t[S>>2]|0)+12,dn(e,D),Hd(D),m=L;return}}function Rp(e){return e=e|0,357913941}function No(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function dn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Hd(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function qd(e){e=e|0,kc(e)}function Oc(e){e=e|0,Mc(e+24|0)}function Mc(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function kc(e){e=e|0;var n=0;n=yr()|0,jn(e,2,7,n,A1()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function A1(){return 1276}function Ap(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=tf(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Hm(n,u)|0,m=r,n|0}function tf(e){return e=e|0,(t[(Ul()|0)+24>>2]|0)+(e*12|0)|0}function Hm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+16|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),I1[r&31](u,e),u=Lc(u)|0,m=l,u|0}function Lc(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Iu(Wd()|0)|0,u?(is(n,u),kf(r,n),cv(e,r),e=xs(n)|0):e=O1(e)|0,m=l,e|0}function Wd(){var e=0;return c[7736]|0||(W0(9640),Vt(25,9640,ve|0)|0,e=7736,t[e>>2]=1,t[e+4>>2]=0),9640}function cv(e,n){e=e|0,n=n|0,Nc(n,e,e+8|0)|0}function O1(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Ma(8)|0,n=u,D=pn(16)|0,t[D>>2]=t[e>>2],t[D+4>>2]=t[e+4>>2],t[D+8>>2]=t[e+8>>2],t[D+12>>2]=t[e+12>>2],s=n+4|0,t[s>>2]=D,e=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Uf(e,s,l),t[u>>2]=e,m=r,n|0}function Uf(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=pn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1244,t[r+12>>2]=n,t[e+4>>2]=r}function jf(e){e=e|0,Uv(e),_t(e)}function M1(e){e=e|0,e=t[e+12>>2]|0,e|0&&_t(e)}function jl(e){e=e|0,_t(e)}function Nc(e,n,r){return e=e|0,n=n|0,r=r|0,n=zf(t[e>>2]|0,n,r)|0,r=e+4|0,t[(t[r>>2]|0)+8>>2]=n,t[(t[r>>2]|0)+8>>2]|0}function zf(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return u=m,m=m+16|0,l=u,ka(l),e=g0(e)|0,r=qm(e,t[n>>2]|0,+B[r>>3])|0,La(l),m=u,r|0}function qm(e,n,r){e=e|0,n=n|0,r=+r;var u=0;return u=_0(yl()|0)|0,n=ad(n)|0,Hr(0,u|0,e|0,n|0,+ +kl(r))|0}function yl(){var e=0;return c[7728]|0||(Vd(9628),e=7728,t[e>>2]=1,t[e+4>>2]=0),9628}function Vd(e){e=e|0,ll(e,Gd()|0,2)}function Gd(){return 1264}function W0(e){e=e|0,Qa(e)}function Yd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Wm(e,r,l,1),m=u}function Wm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=k1()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=Vm(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Gm(s,u)|0,u),m=l}function k1(){var e=0,n=0;if(c[7744]|0||(hv(9684),Vt(37,9684,ve|0)|0,n=7744,t[n>>2]=1,t[n+4>>2]=0),!(sr(9684)|0)){e=9684,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));hv(9684)}return 9684}function Vm(e){return e=e|0,0}function Gm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=k1()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],dv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Ym(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function dv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Ym(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=pv(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Km(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],dv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Xm(e,D),Qm(D),m=L;return}}function pv(e){return e=e|0,357913941}function Km(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Xm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Qm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function hv(e){e=e|0,Zm(e)}function Jm(e){e=e|0,Op(e+24|0)}function Op(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function Zm(e){e=e|0;var n=0;n=yr()|0,jn(e,2,5,n,Hf()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Hf(){return 1280}function vv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=mv(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=yv(n,l,r)|0,m=u,r|0}function mv(e){return e=e|0,(t[(k1()|0)+24>>2]|0)+(e*12|0)|0}function yv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return h=m,m=m+32|0,l=h,s=h+16|0,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Rs(s,r),s=Ys(s,r)|0,Fy[u&15](l,e,s),s=Lc(l)|0,m=h,s|0}function Kd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Xd(e,r,l,1),m=u}function Xd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Mp()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=gv(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Qd(s,u)|0,u),m=l}function Mp(){var e=0,n=0;if(c[7752]|0||(Sv(9720),Vt(38,9720,ve|0)|0,n=7752,t[n>>2]=1,t[n+4>>2]=0),!(sr(9720)|0)){e=9720,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Sv(9720)}return 9720}function gv(e){return e=e|0,0}function Qd(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Mp()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],_v(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Ev(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function _v(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Ev(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=kp(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Dv(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],_v(s,u,r),t[S>>2]=(t[S>>2]|0)+12,wv(e,D),$m(D),m=L;return}}function kp(e){return e=e|0,357913941}function Dv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function wv(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function $m(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Sv(e){e=e|0,Tv(e)}function ey(e){e=e|0,Jd(e+24|0)}function Jd(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function Tv(e){e=e|0;var n=0;n=yr()|0,jn(e,2,8,n,Lp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Lp(){return 1288}function ty(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=so(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Np(n,u)|0,m=r,n|0}function so(e){return e=e|0,(t[(Mp()|0)+24>>2]|0)+(e*12|0)|0}function Np(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),dd(Zp[r&31](e)|0)|0}function ny(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ry(e,r,l,0),m=u}function ry(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Fp()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=nf(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Pp(s,u)|0,u),m=l}function Fp(){var e=0,n=0;if(c[7760]|0||(Bp(9756),Vt(39,9756,ve|0)|0,n=7760,t[n>>2]=1,t[n+4>>2]=0),!(sr(9756)|0)){e=9756,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Bp(9756)}return 9756}function nf(e){return e=e|0,0}function Pp(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Fp()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Ip(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(bp(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Ip(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function bp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=iy(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,uy(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Ip(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Cv(e,D),qf(D),m=L;return}}function iy(e){return e=e|0,357913941}function uy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Cv(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function qf(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Bp(e){e=e|0,ly(e)}function xv(e){e=e|0,oy(e+24|0)}function oy(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function ly(e){e=e|0;var n=0;n=yr()|0,jn(e,2,8,n,Up()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Up(){return 1292}function jp(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=sy(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ay(n,l,r),m=u}function sy(e){return e=e|0,(t[(Fp()|0)+24>>2]|0)+(e*12|0)|0}function ay(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Pl(l,r),r=+os(l,r),$8[u&31](e,r),m=s}function Rv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],zp(e,r,l,0),m=u}function zp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Hp()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=Zd(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,fy(s,u)|0,u),m=l}function Hp(){var e=0,n=0;if(c[7768]|0||(qp(9792),Vt(40,9792,ve|0)|0,n=7768,t[n>>2]=1,t[n+4>>2]=0),!(sr(9792)|0)){e=9792,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));qp(9792)}return 9792}function Zd(e){return e=e|0,0}function fy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Hp()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],L1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(cy(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function L1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function cy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Av(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Ov(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],L1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,dy(e,D),Wf(D),m=L;return}}function Av(e){return e=e|0,357913941}function Ov(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function dy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Wf(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function qp(e){e=e|0,hy(e)}function Mv(e){e=e|0,py(e+24|0)}function py(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function hy(e){e=e|0;var n=0;n=yr()|0,jn(e,2,1,n,Wp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Wp(){return 1300}function vy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=$s(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],my(n,s,r,u),m=l}function $s(e){return e=e|0,(t[(Hp()|0)+24>>2]|0)+(e*12|0)|0}function my(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Rs(s,r),s=Ys(s,r)|0,Pl(h,u),u=+os(h,u),lS[l&15](e,s,u),m=D}function p(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],v(e,r,l,0),m=u}function v(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=x()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=P(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,W(s,u)|0,u),m=l}function x(){var e=0,n=0;if(c[7776]|0||(At(9828),Vt(41,9828,ve|0)|0,n=7776,t[n>>2]=1,t[n+4>>2]=0),!(sr(9828)|0)){e=9828,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));At(9828)}return 9828}function P(e){return e=e|0,0}function W(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=x()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],ee(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(he(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function ee(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function he(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=De(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,be(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],ee(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Et(e,D),St(D),m=L;return}}function De(e){return e=e|0,357913941}function be(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Et(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function St(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function At(e){e=e|0,rr(e)}function on(e){e=e|0,kn(e+24|0)}function kn(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function rr(e){e=e|0;var n=0;n=yr()|0,jn(e,2,7,n,br()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function br(){return 1312}function ar(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=ui(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],di(n,l,r),m=u}function ui(e){return e=e|0,(t[(x()|0)+24>>2]|0)+(e*12|0)|0}function di(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Rs(l,r),l=Ys(l,r)|0,I1[u&31](e,l),m=s}function zl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Zi(e,r,l,0),m=u}function Zi(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=a0()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=ao(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,Ms(s,u)|0,u),m=l}function a0(){var e=0,n=0;if(c[7784]|0||(n_(9864),Vt(42,9864,ve|0)|0,n=7784,t[n>>2]=1,t[n+4>>2]=0),!(sr(9864)|0)){e=9864,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));n_(9864)}return 9864}function ao(e){return e=e|0,0}function Ms(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=a0()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],C0(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(kv(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function C0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function kv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Z4(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,yy(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],C0(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gy(e,D),rf(D),m=L;return}}function Z4(e){return e=e|0,357913941}function yy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function rf(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function n_(e){e=e|0,tE(e)}function $4(e){e=e|0,eE(e+24|0)}function eE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function tE(e){e=e|0;var n=0;n=yr()|0,jn(e,2,8,n,nE()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function nE(){return 1320}function _y(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=rE(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],iE(n,l,r),m=u}function rE(e){return e=e|0,(t[(a0()|0)+24>>2]|0)+(e*12|0)|0}function iE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ey(l,r),l=r_(l,r)|0,I1[u&31](e,l),m=s}function Ey(e,n){e=e|0,n=n|0}function r_(e,n){return e=e|0,n=n|0,uE(n)|0}function uE(e){return e=e|0,e|0}function oE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],i_(e,r,l,0),m=u}function i_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Vf()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=u_(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,lE(s,u)|0,u),m=l}function Vf(){var e=0,n=0;if(c[7792]|0||(Sy(9900),Vt(43,9900,ve|0)|0,n=7792,t[n>>2]=1,t[n+4>>2]=0),!(sr(9900)|0)){e=9900,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Sy(9900)}return 9900}function u_(e){return e=e|0,0}function lE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=Vf()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Vp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(sE(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function Vp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function sE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Lv(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,Dy(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Vp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,wy(e,D),aE(D),m=L;return}}function Lv(e){return e=e|0,357913941}function Dy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function wy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function aE(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function Sy(e){e=e|0,o_(e)}function fE(e){e=e|0,cE(e+24|0)}function cE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function o_(e){e=e|0;var n=0;n=yr()|0,jn(e,2,22,n,dE()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dE(){return 1344}function pE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;r=m,m=m+16|0,u=r+8|0,l=r,s=l_(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],Nv(n,u),m=r}function l_(e){return e=e|0,(t[(Vf()|0)+24>>2]|0)+(e*12|0)|0}function Nv(e,n){e=e|0,n=n|0;var r=0;r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),P1[r&127](e)}function hE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=Ty()|0,e=vE(r)|0,wi(s,n,l,e,mE(r,u)|0,u)}function Ty(){var e=0,n=0;if(c[7800]|0||(xy(9936),Vt(44,9936,ve|0)|0,n=7800,t[n>>2]=1,t[n+4>>2]=0),!(sr(9936)|0)){e=9936,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));xy(9936)}return 9936}function vE(e){return e=e|0,e|0}function mE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=Ty()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(Cy(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(s_(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function Cy(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function s_(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=a_(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,f_(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,Cy(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,c_(e,l),d_(l),m=D;return}}function a_(e){return e=e|0,536870911}function f_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function c_(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function d_(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function xy(e){e=e|0,h_(e)}function p_(e){e=e|0,yE(e+24|0)}function yE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function h_(e){e=e|0;var n=0;n=yr()|0,jn(e,1,23,n,S0()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gE(e,n){e=e|0,n=n|0,f(t[(_E(e)|0)>>2]|0,n)}function _E(e){return e=e|0,(t[(Ty()|0)+24>>2]|0)+(e<<3)|0}function f(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,tr(u,n),n=Js(u,n)|0,P1[e&127](n),m=r}function d(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=E()|0,e=C(r)|0,wi(s,n,l,e,A(r,u)|0,u)}function E(){var e=0,n=0;if(c[7808]|0||(vt(9972),Vt(45,9972,ve|0)|0,n=7808,t[n>>2]=1,t[n+4>>2]=0),!(sr(9972)|0)){e=9972,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));vt(9972)}return 9972}function C(e){return e=e|0,e|0}function A(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=E()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(j(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(V(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function j(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function V(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=te(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,se(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,j(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Ue(e,l),Qe(l),m=D;return}}function te(e){return e=e|0,536870911}function se(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Ue(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Qe(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function vt(e){e=e|0,Ht(e)}function Nt(e){e=e|0,Yt(e+24|0)}function Yt(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function Ht(e){e=e|0;var n=0;n=yr()|0,jn(e,1,9,n,yn()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function yn(){return 1348}function kr(e,n){return e=e|0,n=n|0,Oi(t[(oi(e)|0)>>2]|0,n)|0}function oi(e){return e=e|0,(t[(E()|0)+24>>2]|0)+(e<<3)|0}function Oi(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,Fo(u,n),n=$i(u,n)|0,n=Cd(Zp[e&31](n)|0)|0,m=r,n|0}function Fo(e,n){e=e|0,n=n|0}function $i(e,n){return e=e|0,n=n|0,ot(n)|0}function ot(e){return e=e|0,e|0}function Ot(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=$e()|0,e=Ut(r)|0,wi(s,n,l,e,Pn(r,u)|0,u)}function $e(){var e=0,n=0;if(c[7816]|0||(Kr(10008),Vt(46,10008,ve|0)|0,n=7816,t[n>>2]=1,t[n+4>>2]=0),!(sr(10008)|0)){e=10008,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Kr(10008)}return 10008}function Ut(e){return e=e|0,e|0}function Pn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=$e()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(vn(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Wi(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function vn(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Wi(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=pi(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,Ku(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,vn(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,hr(e,l),hu(l),m=D;return}}function pi(e){return e=e|0,536870911}function Ku(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function hr(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function hu(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function Kr(e){e=e|0,Vo(e)}function xu(e){e=e|0,So(e+24|0)}function So(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function Vo(e){e=e|0;var n=0;n=yr()|0,jn(e,1,15,n,op()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function ks(e){return e=e|0,gl(t[(Xu(e)|0)>>2]|0)|0}function Xu(e){return e=e|0,(t[($e()|0)+24>>2]|0)+(e<<3)|0}function gl(e){return e=e|0,Cd(k_[e&7]()|0)|0}function uf(){var e=0;return c[7832]|0||(m_(10052),Vt(25,10052,ve|0)|0,e=7832,t[e>>2]=1,t[e+4>>2]=0),10052}function V0(e,n){e=e|0,n=n|0,t[e>>2]=Ls()|0,t[e+4>>2]=$d()|0,t[e+12>>2]=n,t[e+8>>2]=Gf()|0,t[e+32>>2]=2}function Ls(){return 11709}function $d(){return 1188}function Gf(){return N1()|0}function Fc(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(G0(r),_t(r)):n|0&&(ws(n),_t(n))}function Hl(e,n){return e=e|0,n=n|0,n&e|0}function G0(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function N1(){var e=0;return c[7824]|0||(t[2511]=v_()|0,t[2512]=0,e=7824,t[e>>2]=1,t[e+4>>2]=0),10044}function v_(){return 0}function m_(e){e=e|0,Qa(e)}function EE(e){e=e|0;var n=0,r=0,u=0,l=0,s=0;n=m,m=m+32|0,r=n+24|0,s=n+16|0,l=n+8|0,u=n,y_(e,4827),DE(e,4834,3)|0,wE(e,3682,47)|0,t[s>>2]=9,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],Ry(e,4841,r)|0,t[l>>2]=1,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],g_(e,4871,r)|0,t[u>>2]=10,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],SE(e,4891,r)|0,m=n}function y_(e,n){e=e|0,n=n|0;var r=0;r=JA()|0,t[e>>2]=r,ZA(r,n),e2(t[e>>2]|0)}function DE(e,n,r){return e=e|0,n=n|0,r=r|0,PA(e,Fr(n)|0,r,0),e|0}function wE(e,n,r){return e=e|0,n=n|0,r=r|0,EA(e,Fr(n)|0,r,0),e|0}function Ry(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tA(e,n,l),m=u,e|0}function g_(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],IR(e,n,l),m=u,e|0}function SE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],TE(e,n,l),m=u,e|0}function TE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],CE(e,r,l,1),m=u}function CE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=xE()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=wR(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,SR(s,u)|0,u),m=l}function xE(){var e=0,n=0;if(c[7840]|0||(I3(10100),Vt(48,10100,ve|0)|0,n=7840,t[n>>2]=1,t[n+4>>2]=0),!(sr(10100)|0)){e=10100,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));I3(10100)}return 10100}function wR(e){return e=e|0,0}function SR(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=xE()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],P3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(TR(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function P3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function TR(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=CR(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,xR(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],P3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,RR(e,D),AR(D),m=L;return}}function CR(e){return e=e|0,357913941}function xR(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function RR(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AR(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function I3(e){e=e|0,kR(e)}function OR(e){e=e|0,MR(e+24|0)}function MR(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function kR(e){e=e|0;var n=0;n=yr()|0,jn(e,2,6,n,LR()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function LR(){return 1364}function NR(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=FR(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=PR(n,l,r)|0,m=u,r|0}function FR(e){return e=e|0,(t[(xE()|0)+24>>2]|0)+(e*12|0)|0}function PR(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Rs(l,r),l=Ys(l,r)|0,l=bl(tD[u&15](e,l)|0)|0,m=s,l|0}function IR(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bR(e,r,l,0),m=u}function bR(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=RE()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=BR(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,UR(s,u)|0,u),m=l}function RE(){var e=0,n=0;if(c[7848]|0||(B3(10136),Vt(49,10136,ve|0)|0,n=7848,t[n>>2]=1,t[n+4>>2]=0),!(sr(10136)|0)){e=10136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));B3(10136)}return 10136}function BR(e){return e=e|0,0}function UR(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=RE()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],b3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jR(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function b3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function jR(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=zR(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,HR(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],b3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,qR(e,D),WR(D),m=L;return}}function zR(e){return e=e|0,357913941}function HR(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function qR(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function WR(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function B3(e){e=e|0,YR(e)}function VR(e){e=e|0,GR(e+24|0)}function GR(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function YR(e){e=e|0;var n=0;n=yr()|0,jn(e,2,9,n,KR()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function KR(){return 1372}function XR(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=QR(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],JR(n,l,r),m=u}function QR(e){return e=e|0,(t[(RE()|0)+24>>2]|0)+(e*12|0)|0}function JR(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=Tt;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),ZR(l,r),h=w($R(l,r)),Z8[u&1](e,h),m=s}function ZR(e,n){e=e|0,n=+n}function $R(e,n){return e=e|0,n=+n,w(eA(n))}function eA(e){return e=+e,w(e)}function tA(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Fr(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],nA(e,r,l,0),m=u}function nA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,L=0,k=0;l=m,m=m+32|0,s=l+16|0,k=l+8|0,D=l,L=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=AE()|0,t[k>>2]=L,t[k+4>>2]=S,t[s>>2]=t[k>>2],t[s+4>>2]=t[k+4>>2],r=rA(s)|0,t[D>>2]=L,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],wi(h,n,e,r,iA(s,u)|0,u),m=l}function AE(){var e=0,n=0;if(c[7856]|0||(j3(10172),Vt(50,10172,ve|0)|0,n=7856,t[n>>2]=1,t[n+4>>2]=0),!(sr(10172)|0)){e=10172,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));j3(10172)}return 10172}function rA(e){return e=e|0,0}function iA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0;return k=m,m=m+32|0,l=k+24|0,h=k+16|0,D=k,S=k+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,I=AE()|0,L=I+24|0,e=hn(n,4)|0,t[S>>2]=e,n=I+28|0,r=t[n>>2]|0,r>>>0<(t[I+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],U3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(uA(L,D,S),e=t[n>>2]|0),m=k,((e-(t[L>>2]|0)|0)/12|0)+-1|0}function U3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function uA(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;if(L=m,m=m+48|0,u=L+32|0,h=L+24|0,D=L,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=oA(e)|0,s>>>0>>0)hi(e);else{k=t[e>>2]|0,K=((t[e+8>>2]|0)-k|0)/12|0,I=K<<1,lA(D,K>>>0>>1>>>0?I>>>0>>0?l:I:s,((t[S>>2]|0)-k|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],U3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,sA(e,D),aA(D),m=L;return}}function oA(e){return e=e|0,357913941}function lA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)$n();else{l=pn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function sA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function aA(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&_t(e)}function j3(e){e=e|0,dA(e)}function fA(e){e=e|0,cA(e+24|0)}function cA(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),_t(r))}function dA(e){e=e|0;var n=0;n=yr()|0,jn(e,2,3,n,pA()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function pA(){return 1380}function hA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=vA(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],mA(n,s,r,u),m=l}function vA(e){return e=e|0,(t[(AE()|0)+24>>2]|0)+(e*12|0)|0}function mA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Rs(s,r),s=Ys(s,r)|0,yA(h,u),h=gA(h,u)|0,Fy[l&15](e,s,h),m=D}function yA(e,n){e=e|0,n=n|0}function gA(e,n){return e=e|0,n=n|0,_A(n)|0}function _A(e){return e=e|0,(e|0)!=0|0}function EA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=OE()|0,e=DA(r)|0,wi(s,n,l,e,wA(r,u)|0,u)}function OE(){var e=0,n=0;if(c[7864]|0||(H3(10208),Vt(51,10208,ve|0)|0,n=7864,t[n>>2]=1,t[n+4>>2]=0),!(sr(10208)|0)){e=10208,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));H3(10208)}return 10208}function DA(e){return e=e|0,e|0}function wA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=OE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(z3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(SA(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function z3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function SA(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=TA(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,CA(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,z3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,xA(e,l),RA(l),m=D;return}}function TA(e){return e=e|0,536870911}function CA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function xA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function RA(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function H3(e){e=e|0,MA(e)}function AA(e){e=e|0,OA(e+24|0)}function OA(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function MA(e){e=e|0;var n=0;n=yr()|0,jn(e,1,24,n,kA()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function kA(){return 1392}function LA(e,n){e=e|0,n=n|0,FA(t[(NA(e)|0)>>2]|0,n)}function NA(e){return e=e|0,(t[(OE()|0)+24>>2]|0)+(e<<3)|0}function FA(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Fo(u,n),n=$i(u,n)|0,P1[e&127](n),m=r}function PA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=ME()|0,e=IA(r)|0,wi(s,n,l,e,bA(r,u)|0,u)}function ME(){var e=0,n=0;if(c[7872]|0||(W3(10244),Vt(52,10244,ve|0)|0,n=7872,t[n>>2]=1,t[n+4>>2]=0),!(sr(10244)|0)){e=10244,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));W3(10244)}return 10244}function IA(e){return e=e|0,e|0}function bA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=ME()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(q3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(BA(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function q3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function BA(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=UA(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,jA(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,q3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,zA(e,l),HA(l),m=D;return}}function UA(e){return e=e|0,536870911}function jA(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function zA(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function HA(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function W3(e){e=e|0,VA(e)}function qA(e){e=e|0,WA(e+24|0)}function WA(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function VA(e){e=e|0;var n=0;n=yr()|0,jn(e,1,16,n,GA()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function GA(){return 1400}function YA(e){return e=e|0,XA(t[(KA(e)|0)>>2]|0)|0}function KA(e){return e=e|0,(t[(ME()|0)+24>>2]|0)+(e<<3)|0}function XA(e){return e=e|0,QA(k_[e&7]()|0)|0}function QA(e){return e=e|0,e|0}function JA(){var e=0;return c[7880]|0||(i7(10280),Vt(25,10280,ve|0)|0,e=7880,t[e>>2]=1,t[e+4>>2]=0),10280}function ZA(e,n){e=e|0,n=n|0,t[e>>2]=$A()|0,t[e+4>>2]=e7()|0,t[e+12>>2]=n,t[e+8>>2]=t7()|0,t[e+32>>2]=4}function $A(){return 11711}function e7(){return 1356}function t7(){return N1()|0}function n7(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(r7(r),_t(r)):n|0&&(i0(n),_t(n))}function r7(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function i7(e){e=e|0,Qa(e)}function u7(e){e=e|0,o7(e,4920),l7(e)|0,s7(e)|0}function o7(e,n){e=e|0,n=n|0;var r=0;r=Wd()|0,t[e>>2]=r,O7(r,n),e2(t[e>>2]|0)}function l7(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,_7()|0),e|0}function s7(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,a7()|0),e|0}function a7(){var e=0;return c[7888]|0||(V3(10328),Vt(53,10328,ve|0)|0,e=7888,t[e>>2]=1,t[e+4>>2]=0),sr(10328)|0||V3(10328),10328}function Gp(e,n){e=e|0,n=n|0,wi(e,0,n,0,0,0)}function V3(e){e=e|0,d7(e),Yp(e,10)}function f7(e){e=e|0,c7(e+24|0)}function c7(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function d7(e){e=e|0;var n=0;n=yr()|0,jn(e,5,1,n,m7()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function p7(e,n,r){e=e|0,n=n|0,r=+r,h7(e,n,r)}function Yp(e,n){e=e|0,n=n|0,t[e+20>>2]=n}function h7(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,s=u+8|0,D=u+13|0,l=u,h=u+12|0,Rs(D,n),t[s>>2]=Ys(D,n)|0,Pl(h,r),B[l>>3]=+os(h,r),v7(e,s,l),m=u}function v7(e,n,r){e=e|0,n=n|0,r=r|0,b(e+8|0,t[n>>2]|0,+B[r>>3]),c[e+24>>0]=1}function m7(){return 1404}function y7(e,n){return e=e|0,n=+n,g7(e,n)|0}function g7(e,n){e=e|0,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,s=u+4|0,h=u+8|0,D=u,l=Ma(8)|0,r=l,S=pn(16)|0,Rs(s,e),e=Ys(s,e)|0,Pl(h,n),b(S,e,+os(h,n)),h=r+4|0,t[h>>2]=S,e=pn(8)|0,h=t[h>>2]|0,t[D>>2]=0,t[s>>2]=t[D>>2],Uf(e,h,s),t[l>>2]=e,m=u,r|0}function _7(){var e=0;return c[7896]|0||(G3(10364),Vt(54,10364,ve|0)|0,e=7896,t[e>>2]=1,t[e+4>>2]=0),sr(10364)|0||G3(10364),10364}function G3(e){e=e|0,w7(e),Yp(e,55)}function E7(e){e=e|0,D7(e+24|0)}function D7(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function w7(e){e=e|0;var n=0;n=yr()|0,jn(e,5,4,n,x7()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function S7(e){e=e|0,T7(e)}function T7(e){e=e|0,C7(e)}function C7(e){e=e|0,Y3(e+8|0),c[e+24>>0]=1}function Y3(e){e=e|0,t[e>>2]=0,B[e+8>>3]=0}function x7(){return 1424}function R7(){return A7()|0}function A7(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Ma(8)|0,e=r,u=pn(16)|0,Y3(u),s=e+4|0,t[s>>2]=u,u=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Uf(u,s,l),t[r>>2]=u,m=n,e|0}function O7(e,n){e=e|0,n=n|0,t[e>>2]=M7()|0,t[e+4>>2]=k7()|0,t[e+12>>2]=n,t[e+8>>2]=L7()|0,t[e+32>>2]=5}function M7(){return 11710}function k7(){return 1416}function L7(){return __()|0}function N7(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(F7(r),_t(r)):n|0&&_t(n)}function F7(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function __(){var e=0;return c[7904]|0||(t[2600]=P7()|0,t[2601]=0,e=7904,t[e>>2]=1,t[e+4>>2]=0),10400}function P7(){return t[357]|0}function I7(e){e=e|0,b7(e,4926),B7(e)|0}function b7(e,n){e=e|0,n=n|0;var r=0;r=Xa()|0,t[e>>2]=r,X7(r,n),e2(t[e>>2]|0)}function B7(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,U7()|0),e|0}function U7(){var e=0;return c[7912]|0||(K3(10412),Vt(56,10412,ve|0)|0,e=7912,t[e>>2]=1,t[e+4>>2]=0),sr(10412)|0||K3(10412),10412}function K3(e){e=e|0,H7(e),Yp(e,57)}function j7(e){e=e|0,z7(e+24|0)}function z7(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function H7(e){e=e|0;var n=0;n=yr()|0,jn(e,5,5,n,G7()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function q7(e){e=e|0,W7(e)}function W7(e){e=e|0,V7(e)}function V7(e){e=e|0;var n=0,r=0;n=e+8|0,r=n+48|0;do t[n>>2]=0,n=n+4|0;while((n|0)<(r|0));c[e+56>>0]=1}function G7(){return 1432}function Y7(){return K7()|0}function K7(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0;h=m,m=m+16|0,e=h+4|0,n=h,r=Ma(8)|0,u=r,l=pn(48)|0,s=l,D=s+48|0;do t[s>>2]=0,s=s+4|0;while((s|0)<(D|0));return s=u+4|0,t[s>>2]=l,D=pn(8)|0,s=t[s>>2]|0,t[n>>2]=0,t[e>>2]=t[n>>2],Th(D,s,e),t[r>>2]=D,m=h,u|0}function X7(e,n){e=e|0,n=n|0,t[e>>2]=Q7()|0,t[e+4>>2]=J7()|0,t[e+12>>2]=n,t[e+8>>2]=Z7()|0,t[e+32>>2]=6}function Q7(){return 11704}function J7(){return 1436}function Z7(){return __()|0}function $7(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(eO(r),_t(r)):n|0&&_t(n)}function eO(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function tO(e){e=e|0,nO(e,4933),rO(e)|0,iO(e)|0}function nO(e,n){e=e|0,n=n|0;var r=0;r=AO()|0,t[e>>2]=r,OO(r,n),e2(t[e>>2]|0)}function rO(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,gO()|0),e|0}function iO(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,uO()|0),e|0}function uO(){var e=0;return c[7920]|0||(X3(10452),Vt(58,10452,ve|0)|0,e=7920,t[e>>2]=1,t[e+4>>2]=0),sr(10452)|0||X3(10452),10452}function X3(e){e=e|0,sO(e),Yp(e,1)}function oO(e){e=e|0,lO(e+24|0)}function lO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function sO(e){e=e|0;var n=0;n=yr()|0,jn(e,5,1,n,dO()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function aO(e,n,r){e=e|0,n=+n,r=+r,fO(e,n,r)}function fO(e,n,r){e=e|0,n=+n,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,s=u+8|0,D=u+17|0,l=u,h=u+16|0,Pl(D,n),B[s>>3]=+os(D,n),Pl(h,r),B[l>>3]=+os(h,r),cO(e,s,l),m=u}function cO(e,n,r){e=e|0,n=n|0,r=r|0,Q3(e+8|0,+B[n>>3],+B[r>>3]),c[e+24>>0]=1}function Q3(e,n,r){e=e|0,n=+n,r=+r,B[e>>3]=n,B[e+8>>3]=r}function dO(){return 1472}function pO(e,n){return e=+e,n=+n,hO(e,n)|0}function hO(e,n){e=+e,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,h=u+4|0,D=u+8|0,S=u,l=Ma(8)|0,r=l,s=pn(16)|0,Pl(h,e),e=+os(h,e),Pl(D,n),Q3(s,e,+os(D,n)),D=r+4|0,t[D>>2]=s,s=pn(8)|0,D=t[D>>2]|0,t[S>>2]=0,t[h>>2]=t[S>>2],J3(s,D,h),t[l>>2]=s,m=u,r|0}function J3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=pn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1452,t[r+12>>2]=n,t[e+4>>2]=r}function vO(e){e=e|0,Uv(e),_t(e)}function mO(e){e=e|0,e=t[e+12>>2]|0,e|0&&_t(e)}function yO(e){e=e|0,_t(e)}function gO(){var e=0;return c[7928]|0||(Z3(10488),Vt(59,10488,ve|0)|0,e=7928,t[e>>2]=1,t[e+4>>2]=0),sr(10488)|0||Z3(10488),10488}function Z3(e){e=e|0,DO(e),Yp(e,60)}function _O(e){e=e|0,EO(e+24|0)}function EO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function DO(e){e=e|0;var n=0;n=yr()|0,jn(e,5,6,n,CO()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function wO(e){e=e|0,SO(e)}function SO(e){e=e|0,TO(e)}function TO(e){e=e|0,$3(e+8|0),c[e+24>>0]=1}function $3(e){e=e|0,t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,t[e+12>>2]=0}function CO(){return 1492}function xO(){return RO()|0}function RO(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Ma(8)|0,e=r,u=pn(16)|0,$3(u),s=e+4|0,t[s>>2]=u,u=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],J3(u,s,l),t[r>>2]=u,m=n,e|0}function AO(){var e=0;return c[7936]|0||(PO(10524),Vt(25,10524,ve|0)|0,e=7936,t[e>>2]=1,t[e+4>>2]=0),10524}function OO(e,n){e=e|0,n=n|0,t[e>>2]=MO()|0,t[e+4>>2]=kO()|0,t[e+12>>2]=n,t[e+8>>2]=LO()|0,t[e+32>>2]=7}function MO(){return 11700}function kO(){return 1484}function LO(){return __()|0}function NO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(FO(r),_t(r)):n|0&&_t(n)}function FO(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function PO(e){e=e|0,Qa(e)}function IO(e,n,r){e=e|0,n=n|0,r=r|0,e=Fr(n)|0,n=bO(r)|0,r=BO(r,0)|0,hM(e,n,r,kE()|0,0)}function bO(e){return e=e|0,e|0}function BO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=kE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(t8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(VO(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function kE(){var e=0,n=0;if(c[7944]|0||(e8(10568),Vt(61,10568,ve|0)|0,n=7944,t[n>>2]=1,t[n+4>>2]=0),!(sr(10568)|0)){e=10568,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));e8(10568)}return 10568}function e8(e){e=e|0,zO(e)}function UO(e){e=e|0,jO(e+24|0)}function jO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function zO(e){e=e|0;var n=0;n=yr()|0,jn(e,1,17,n,ev()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function HO(e){return e=e|0,WO(t[(qO(e)|0)>>2]|0)|0}function qO(e){return e=e|0,(t[(kE()|0)+24>>2]|0)+(e<<3)|0}function WO(e){return e=e|0,qo(k_[e&7]()|0)|0}function t8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function VO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=GO(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,YO(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,t8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,KO(e,l),XO(l),m=D;return}}function GO(e){return e=e|0,536870911}function YO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function KO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function XO(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function QO(){JO()}function JO(){ZO(10604)}function ZO(e){e=e|0,$O(e,4955)}function $O(e,n){e=e|0,n=n|0;var r=0;r=eM()|0,t[e>>2]=r,tM(r,n),e2(t[e>>2]|0)}function eM(){var e=0;return c[7952]|0||(fM(10612),Vt(25,10612,ve|0)|0,e=7952,t[e>>2]=1,t[e+4>>2]=0),10612}function tM(e,n){e=e|0,n=n|0,t[e>>2]=uM()|0,t[e+4>>2]=oM()|0,t[e+12>>2]=n,t[e+8>>2]=lM()|0,t[e+32>>2]=8}function e2(e){e=e|0;var n=0,r=0;n=m,m=m+16|0,r=n,Fv()|0,t[r>>2]=e,nM(10608,r),m=n}function Fv(){return c[11714]|0||(t[2652]=0,Vt(62,10608,ve|0)|0,c[11714]=1),10608}function nM(e,n){e=e|0,n=n|0;var r=0;r=pn(8)|0,t[r+4>>2]=t[n>>2],t[r>>2]=t[e>>2],t[e>>2]=r}function rM(e){e=e|0,iM(e)}function iM(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,_t(r);while((n|0)!=0);t[e>>2]=0}function uM(){return 11715}function oM(){return 1496}function lM(){return N1()|0}function sM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(aM(r),_t(r)):n|0&&_t(n)}function aM(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function fM(e){e=e|0,Qa(e)}function cM(e,n){e=e|0,n=n|0;var r=0,u=0;Fv()|0,r=t[2652]|0;e:do if(r|0){for(;u=t[r+4>>2]|0,!(u|0?(I8(LE(u)|0,e)|0)==0:0);)if(r=t[r>>2]|0,!r)break e;dM(u,n)}while(0)}function LE(e){return e=e|0,t[e+12>>2]|0}function dM(e,n){e=e|0,n=n|0;var r=0;e=e+36|0,r=t[e>>2]|0,r|0&&(ca(r),_t(r)),r=pn(4)|0,Sf(r,n),t[e>>2]=r}function NE(){return c[11716]|0||(t[2664]=0,Vt(63,10656,ve|0)|0,c[11716]=1),10656}function n8(){var e=0;return c[11717]|0?e=t[2665]|0:(pM(),t[2665]=1504,c[11717]=1,e=1504),e|0}function pM(){c[11740]|0||(c[11718]=hn(hn(8,0)|0,0)|0,c[11719]=hn(hn(0,0)|0,0)|0,c[11720]=hn(hn(0,16)|0,0)|0,c[11721]=hn(hn(8,0)|0,0)|0,c[11722]=hn(hn(0,0)|0,0)|0,c[11723]=hn(hn(8,0)|0,0)|0,c[11724]=hn(hn(0,0)|0,0)|0,c[11725]=hn(hn(8,0)|0,0)|0,c[11726]=hn(hn(0,0)|0,0)|0,c[11727]=hn(hn(8,0)|0,0)|0,c[11728]=hn(hn(0,0)|0,0)|0,c[11729]=hn(hn(0,0)|0,32)|0,c[11730]=hn(hn(0,0)|0,32)|0,c[11740]=1)}function r8(){return 1572}function hM(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0,k=0;s=m,m=m+32|0,k=s+16|0,L=s+12|0,S=s+8|0,D=s+4|0,h=s,t[k>>2]=e,t[L>>2]=n,t[S>>2]=r,t[D>>2]=u,t[h>>2]=l,NE()|0,vM(10656,k,L,S,D,h),m=s}function vM(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0;h=pn(24)|0,gd(h+4|0,t[n>>2]|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0),t[h>>2]=t[e>>2],t[e>>2]=h}function i8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0,ft=0;if(ft=m,m=m+32|0,Te=ft+20|0,ye=ft+8|0,Ze=ft+4|0,Ge=ft,n=t[n>>2]|0,n|0){Be=Te+4|0,S=Te+8|0,L=ye+4|0,k=ye+8|0,I=ye+8|0,K=Te+8|0;do{if(h=n+4|0,D=FE(h)|0,D|0){if(l=Ay(D)|0,t[Te>>2]=0,t[Be>>2]=0,t[S>>2]=0,u=(Oy(D)|0)+1|0,mM(Te,u),u|0)for(;u=u+-1|0,Yf(ye,t[l>>2]|0),s=t[Be>>2]|0,s>>>0<(t[K>>2]|0)>>>0?(t[s>>2]=t[ye>>2],t[Be>>2]=(t[Be>>2]|0)+4):PE(Te,ye),u;)l=l+4|0;u=My(D)|0,t[ye>>2]=0,t[L>>2]=0,t[k>>2]=0;e:do if(t[u>>2]|0)for(l=0,s=0;;){if((l|0)==(s|0)?yM(ye,u):(t[l>>2]=t[u>>2],t[L>>2]=(t[L>>2]|0)+4),u=u+4|0,!(t[u>>2]|0))break e;l=t[L>>2]|0,s=t[I>>2]|0}while(0);t[Ze>>2]=E_(h)|0,t[Ge>>2]=sr(D)|0,gM(r,e,Ze,Ge,Te,ye),IE(ye),F1(Te)}n=t[n>>2]|0}while((n|0)!=0)}m=ft}function FE(e){return e=e|0,t[e+12>>2]|0}function Ay(e){return e=e|0,t[e+12>>2]|0}function Oy(e){return e=e|0,t[e+16>>2]|0}function mM(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=t[e>>2]|0,(t[e+8>>2]|0)-u>>2>>>0>>0&&(d8(r,n,(t[e+4>>2]|0)-u>>2,e+8|0),p8(e,r),h8(r)),m=l}function PE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=c8(e)|0,s>>>0>>0)hi(e);else{D=t[e>>2]|0,L=(t[e+8>>2]|0)-D|0,S=L>>1,d8(r,L>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,p8(e,r),h8(r),m=h;return}}function My(e){return e=e|0,t[e+8>>2]|0}function yM(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=f8(e)|0,s>>>0>>0)hi(e);else{D=t[e>>2]|0,L=(t[e+8>>2]|0)-D|0,S=L>>1,bM(r,L>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,BM(e,r),UM(r),m=h;return}}function E_(e){return e=e|0,t[e>>2]|0}function gM(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,_M(e,n,r,u,l,s)}function IE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),_t(r))}function F1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),_t(r))}function _M(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,L=0,k=0,I=0;h=m,m=m+48|0,k=h+40|0,D=h+32|0,I=h+24|0,S=h+12|0,L=h,ka(D),e=g0(e)|0,t[I>>2]=t[n>>2],r=t[r>>2]|0,u=t[u>>2]|0,bE(S,l),EM(L,s),t[k>>2]=t[I>>2],DM(e,k,r,u,S,L),IE(L),F1(S),La(D),m=h}function bE(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(PM(e,u),IM(e,t[n>>2]|0,t[r>>2]|0,u))}function EM(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(NM(e,u),FM(e,t[n>>2]|0,t[r>>2]|0,u))}function DM(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,L=0,k=0,I=0;h=m,m=m+32|0,k=h+28|0,I=h+24|0,D=h+12|0,S=h,L=_0(wM()|0)|0,t[I>>2]=t[n>>2],t[k>>2]=t[I>>2],n=Kp(k)|0,r=u8(r)|0,u=BE(u)|0,t[D>>2]=t[l>>2],k=l+4|0,t[D+4>>2]=t[k>>2],I=l+8|0,t[D+8>>2]=t[I>>2],t[I>>2]=0,t[k>>2]=0,t[l>>2]=0,l=UE(D)|0,t[S>>2]=t[s>>2],k=s+4|0,t[S+4>>2]=t[k>>2],I=s+8|0,t[S+8>>2]=t[I>>2],t[I>>2]=0,t[k>>2]=0,t[s>>2]=0,Qo(0,L|0,e|0,n|0,r|0,u|0,l|0,SM(S)|0)|0,IE(S),F1(D),m=h}function wM(){var e=0;return c[7968]|0||(kM(10708),e=7968,t[e>>2]=1,t[e+4>>2]=0),10708}function Kp(e){return e=e|0,l8(e)|0}function u8(e){return e=e|0,o8(e)|0}function BE(e){return e=e|0,qo(e)|0}function UE(e){return e=e|0,CM(e)|0}function SM(e){return e=e|0,TM(e)|0}function TM(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Ma(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=o8(t[(t[e>>2]|0)+(n<<2)>>2]|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function o8(e){return e=e|0,e|0}function CM(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Ma(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=l8((t[e>>2]|0)+(n<<2)|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function l8(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Iu(s8()|0)|0,u?(is(n,u),kf(r,n),sF(e,r),e=xs(n)|0):e=xM(e)|0,m=l,e|0}function s8(){var e=0;return c[7960]|0||(MM(10664),Vt(25,10664,ve|0)|0,e=7960,t[e>>2]=1,t[e+4>>2]=0),10664}function xM(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Ma(8)|0,n=u,D=pn(4)|0,t[D>>2]=t[e>>2],s=n+4|0,t[s>>2]=D,e=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],a8(e,s,l),t[u>>2]=e,m=r,n|0}function a8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=pn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1656,t[r+12>>2]=n,t[e+4>>2]=r}function RM(e){e=e|0,Uv(e),_t(e)}function AM(e){e=e|0,e=t[e+12>>2]|0,e|0&&_t(e)}function OM(e){e=e|0,_t(e)}function MM(e){e=e|0,Qa(e)}function kM(e){e=e|0,ll(e,LM()|0,5)}function LM(){return 1676}function NM(e,n){e=e|0,n=n|0;var r=0;if((f8(e)|0)>>>0>>0&&hi(e),n>>>0>1073741823)$n();else{r=pn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function FM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(gr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function f8(e){return e=e|0,1073741823}function PM(e,n){e=e|0,n=n|0;var r=0;if((c8(e)|0)>>>0>>0&&hi(e),n>>>0>1073741823)$n();else{r=pn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function IM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(gr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function c8(e){return e=e|0,1073741823}function bM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)$n();else{l=pn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function BM(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function UM(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&_t(e)}function d8(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)$n();else{l=pn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function p8(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function h8(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&_t(e)}function jM(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0;if(ye=m,m=m+32|0,k=ye+20|0,I=ye+12|0,L=ye+16|0,K=ye+4|0,Be=ye,Te=ye+8|0,D=n8()|0,s=t[D>>2]|0,h=t[s>>2]|0,h|0)for(S=t[D+8>>2]|0,D=t[D+4>>2]|0;Yf(k,h),zM(e,k,D,S),s=s+4|0,h=t[s>>2]|0,h;)S=S+1|0,D=D+1|0;if(s=r8()|0,h=t[s>>2]|0,h|0)do Yf(k,h),t[I>>2]=t[s+4>>2],HM(n,k,I),s=s+8|0,h=t[s>>2]|0;while((h|0)!=0);if(s=t[(Fv()|0)>>2]|0,s|0)do n=t[s+4>>2]|0,Yf(k,t[(Pv(n)|0)>>2]|0),t[I>>2]=LE(n)|0,qM(r,k,I),s=t[s>>2]|0;while((s|0)!=0);if(Yf(L,0),s=NE()|0,t[k>>2]=t[L>>2],i8(k,s,l),s=t[(Fv()|0)>>2]|0,s|0){e=k+4|0,n=k+8|0,r=k+8|0;do{if(S=t[s+4>>2]|0,Yf(I,t[(Pv(S)|0)>>2]|0),WM(K,v8(S)|0),h=t[K>>2]|0,h|0){t[k>>2]=0,t[e>>2]=0,t[n>>2]=0;do Yf(Be,t[(Pv(t[h+4>>2]|0)|0)>>2]|0),D=t[e>>2]|0,D>>>0<(t[r>>2]|0)>>>0?(t[D>>2]=t[Be>>2],t[e>>2]=(t[e>>2]|0)+4):PE(k,Be),h=t[h>>2]|0;while((h|0)!=0);VM(u,I,k),F1(k)}t[Te>>2]=t[I>>2],L=m8(S)|0,t[k>>2]=t[Te>>2],i8(k,L,l),Ed(K),s=t[s>>2]|0}while((s|0)!=0)}m=ye}function zM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,rk(e,n,r,u)}function HM(e,n,r){e=e|0,n=n|0,r=r|0,nk(e,n,r)}function Pv(e){return e=e|0,e|0}function qM(e,n,r){e=e|0,n=n|0,r=r|0,ZM(e,n,r)}function v8(e){return e=e|0,e+16|0}function WM(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(s=m,m=m+16|0,l=s+8|0,r=s,t[e>>2]=0,u=t[n>>2]|0,t[l>>2]=u,t[r>>2]=e,r=JM(r)|0,u|0){if(u=pn(12)|0,h=(y8(l)|0)+4|0,e=t[h+4>>2]|0,n=u+4|0,t[n>>2]=t[h>>2],t[n+4>>2]=e,n=t[t[l>>2]>>2]|0,t[l>>2]=n,!n)e=u;else for(n=u;e=pn(12)|0,S=(y8(l)|0)+4|0,D=t[S+4>>2]|0,h=e+4|0,t[h>>2]=t[S>>2],t[h+4>>2]=D,t[n>>2]=e,h=t[t[l>>2]>>2]|0,t[l>>2]=h,h;)n=e;t[e>>2]=t[r>>2],t[r>>2]=u}m=s}function VM(e,n,r){e=e|0,n=n|0,r=r|0,GM(e,n,r)}function m8(e){return e=e|0,e+24|0}function GM(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+24|0,l=u+16|0,D=u+12|0,s=u,ka(l),e=g0(e)|0,t[D>>2]=t[n>>2],bE(s,r),t[h>>2]=t[D>>2],YM(e,h,s),F1(s),La(l),m=u}function YM(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+16|0,D=u+12|0,l=u,s=_0(KM()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Kp(h)|0,t[l>>2]=t[r>>2],h=r+4|0,t[l+4>>2]=t[h>>2],D=r+8|0,t[l+8>>2]=t[D>>2],t[D>>2]=0,t[h>>2]=0,t[r>>2]=0,Io(0,s|0,e|0,n|0,UE(l)|0)|0,F1(l),m=u}function KM(){var e=0;return c[7976]|0||(XM(10720),e=7976,t[e>>2]=1,t[e+4>>2]=0),10720}function XM(e){e=e|0,ll(e,QM()|0,2)}function QM(){return 1732}function JM(e){return e=e|0,t[e>>2]|0}function y8(e){return e=e|0,t[e>>2]|0}function ZM(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,ka(l),e=g0(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],g8(e,s,r),La(l),m=u}function g8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+4|0,h=u,l=_0($M()|0)|0,t[h>>2]=t[n>>2],t[s>>2]=t[h>>2],n=Kp(s)|0,Io(0,l|0,e|0,n|0,u8(r)|0)|0,m=u}function $M(){var e=0;return c[7984]|0||(ek(10732),e=7984,t[e>>2]=1,t[e+4>>2]=0),10732}function ek(e){e=e|0,ll(e,tk()|0,2)}function tk(){return 1744}function nk(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,ka(l),e=g0(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],g8(e,s,r),La(l),m=u}function rk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,ka(s),e=g0(e)|0,t[D>>2]=t[n>>2],r=c[r>>0]|0,u=c[u>>0]|0,t[h>>2]=t[D>>2],ik(e,h,r,u),La(s),m=l}function ik(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,h=l+4|0,D=l,s=_0(uk()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Kp(h)|0,r=Iv(r)|0,Hn(0,s|0,e|0,n|0,r|0,Iv(u)|0)|0,m=l}function uk(){var e=0;return c[7992]|0||(lk(10744),e=7992,t[e>>2]=1,t[e+4>>2]=0),10744}function Iv(e){return e=e|0,ok(e)|0}function ok(e){return e=e|0,e&255|0}function lk(e){e=e|0,ll(e,sk()|0,3)}function sk(){return 1756}function ak(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;switch(K=m,m=m+32|0,D=K+8|0,S=K+4|0,L=K+20|0,k=K,Ta(e,0),u=lF(n)|0,t[D>>2]=0,I=D+4|0,t[I>>2]=0,t[D+8>>2]=0,u<<24>>24){case 0:{c[L>>0]=0,fk(S,r,L),D_(e,S)|0,jo(S);break}case 8:{I=VE(n)|0,c[L>>0]=8,Yf(k,t[I+4>>2]|0),ck(S,r,L,k,I+8|0),D_(e,S)|0,jo(S);break}case 9:{if(s=VE(n)|0,n=t[s+4>>2]|0,n|0)for(h=D+8|0,l=s+12|0;n=n+-1|0,Yf(S,t[l>>2]|0),u=t[I>>2]|0,u>>>0<(t[h>>2]|0)>>>0?(t[u>>2]=t[S>>2],t[I>>2]=(t[I>>2]|0)+4):PE(D,S),n;)l=l+4|0;c[L>>0]=9,Yf(k,t[s+8>>2]|0),dk(S,r,L,k,D),D_(e,S)|0,jo(S);break}default:I=VE(n)|0,c[L>>0]=u,Yf(k,t[I+4>>2]|0),pk(S,r,L,k),D_(e,S)|0,jo(S)}F1(D),m=K}function fk(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,ka(l),n=g0(n)|0,xk(e,n,c[r>>0]|0),La(l),m=u}function D_(e,n){e=e|0,n=n|0;var r=0;return r=t[e>>2]|0,r|0&&qr(r|0),t[e>>2]=t[n>>2],t[n>>2]=0,e|0}function ck(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+32|0,D=s+16|0,h=s+8|0,S=s,ka(h),n=g0(n)|0,r=c[r>>0]|0,t[S>>2]=t[u>>2],l=t[l>>2]|0,t[D>>2]=t[S>>2],wk(e,n,r,D,l),La(h),m=s}function dk(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0;s=m,m=m+32|0,S=s+24|0,h=s+16|0,L=s+12|0,D=s,ka(h),n=g0(n)|0,r=c[r>>0]|0,t[L>>2]=t[u>>2],bE(D,l),t[S>>2]=t[L>>2],gk(e,n,r,S,D),F1(D),La(h),m=s}function pk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,ka(s),n=g0(n)|0,r=c[r>>0]|0,t[D>>2]=t[u>>2],t[h>>2]=t[D>>2],hk(e,n,r,h),La(s),m=l}function hk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+4|0,D=l,h=_0(vk()|0)|0,r=Iv(r)|0,t[D>>2]=t[u>>2],t[s>>2]=t[D>>2],w_(e,Io(0,h|0,n|0,r|0,Kp(s)|0)|0),m=l}function vk(){var e=0;return c[8e3]|0||(mk(10756),e=8e3,t[e>>2]=1,t[e+4>>2]=0),10756}function w_(e,n){e=e|0,n=n|0,Ta(e,n)}function mk(e){e=e|0,ll(e,yk()|0,2)}function yk(){return 1772}function gk(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0;s=m,m=m+32|0,S=s+16|0,L=s+12|0,h=s,D=_0(_k()|0)|0,r=Iv(r)|0,t[L>>2]=t[u>>2],t[S>>2]=t[L>>2],u=Kp(S)|0,t[h>>2]=t[l>>2],S=l+4|0,t[h+4>>2]=t[S>>2],L=l+8|0,t[h+8>>2]=t[L>>2],t[L>>2]=0,t[S>>2]=0,t[l>>2]=0,w_(e,Hn(0,D|0,n|0,r|0,u|0,UE(h)|0)|0),F1(h),m=s}function _k(){var e=0;return c[8008]|0||(Ek(10768),e=8008,t[e>>2]=1,t[e+4>>2]=0),10768}function Ek(e){e=e|0,ll(e,Dk()|0,3)}function Dk(){return 1784}function wk(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,D=s+4|0,S=s,h=_0(Sk()|0)|0,r=Iv(r)|0,t[S>>2]=t[u>>2],t[D>>2]=t[S>>2],u=Kp(D)|0,w_(e,Hn(0,h|0,n|0,r|0,u|0,BE(l)|0)|0),m=s}function Sk(){var e=0;return c[8016]|0||(Tk(10780),e=8016,t[e>>2]=1,t[e+4>>2]=0),10780}function Tk(e){e=e|0,ll(e,Ck()|0,3)}function Ck(){return 1800}function xk(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=_0(Rk()|0)|0,w_(e,Ki(0,u|0,n|0,Iv(r)|0)|0)}function Rk(){var e=0;return c[8024]|0||(Ak(10792),e=8024,t[e>>2]=1,t[e+4>>2]=0),10792}function Ak(e){e=e|0,ll(e,Ok()|0,1)}function Ok(){return 1816}function Mk(){kk(),Lk(),Nk()}function kk(){t[2702]=G8(65536)|0}function Lk(){$k(10856)}function Nk(){Fk(10816)}function Fk(e){e=e|0,Pk(e,5044),Ik(e)|0}function Pk(e,n){e=e|0,n=n|0;var r=0;r=s8()|0,t[e>>2]=r,Yk(r,n),e2(t[e>>2]|0)}function Ik(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,bk()|0),e|0}function bk(){var e=0;return c[8032]|0||(_8(10820),Vt(64,10820,ve|0)|0,e=8032,t[e>>2]=1,t[e+4>>2]=0),sr(10820)|0||_8(10820),10820}function _8(e){e=e|0,jk(e),Yp(e,25)}function Bk(e){e=e|0,Uk(e+24|0)}function Uk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function jk(e){e=e|0;var n=0;n=yr()|0,jn(e,5,18,n,Wk()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zk(e,n){e=e|0,n=n|0,Hk(e,n)}function Hk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;r=m,m=m+16|0,u=r,l=r+4|0,If(l,n),t[u>>2]=bf(l,n)|0,qk(e,u),m=r}function qk(e,n){e=e|0,n=n|0,E8(e+4|0,t[n>>2]|0),c[e+8>>0]=1}function E8(e,n){e=e|0,n=n|0,t[e>>2]=n}function Wk(){return 1824}function Vk(e){return e=e|0,Gk(e)|0}function Gk(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Ma(8)|0,n=u,D=pn(4)|0,If(l,e),E8(D,bf(l,e)|0),s=n+4|0,t[s>>2]=D,e=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],a8(e,s,l),t[u>>2]=e,m=r,n|0}function Ma(e){e=e|0;var n=0,r=0;return e=e+7&-8,(e>>>0<=32768?(n=t[2701]|0,e>>>0<=(65536-n|0)>>>0):0)?(r=(t[2702]|0)+n|0,t[2701]=n+e,e=r):(e=G8(e+8|0)|0,t[e>>2]=t[2703],t[2703]=e,e=e+8|0),e|0}function Yk(e,n){e=e|0,n=n|0,t[e>>2]=Kk()|0,t[e+4>>2]=Xk()|0,t[e+12>>2]=n,t[e+8>>2]=Qk()|0,t[e+32>>2]=9}function Kk(){return 11744}function Xk(){return 1832}function Qk(){return __()|0}function Jk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(Zk(r),_t(r)):n|0&&_t(n)}function Zk(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function $k(e){e=e|0,eL(e,5052),tL(e)|0,nL(e,5058,26)|0,rL(e,5069,1)|0,iL(e,5077,10)|0,uL(e,5087,19)|0,oL(e,5094,27)|0}function eL(e,n){e=e|0,n=n|0;var r=0;r=$N()|0,t[e>>2]=r,eF(r,n),e2(t[e>>2]|0)}function tL(e){e=e|0;var n=0;return n=t[e>>2]|0,Gp(n,UN()|0),e|0}function nL(e,n,r){return e=e|0,n=n|0,r=r|0,DN(e,Fr(n)|0,r,0),e|0}function rL(e,n,r){return e=e|0,n=n|0,r=r|0,oN(e,Fr(n)|0,r,0),e|0}function iL(e,n,r){return e=e|0,n=n|0,r=r|0,bL(e,Fr(n)|0,r,0),e|0}function uL(e,n,r){return e=e|0,n=n|0,r=r|0,wL(e,Fr(n)|0,r,0),e|0}function D8(e,n){e=e|0,n=n|0;var r=0,u=0;e:for(;;){for(r=t[2703]|0;;){if((r|0)==(n|0))break e;if(u=t[r>>2]|0,t[2703]=u,!r)r=u;else break}_t(r)}t[2701]=e}function oL(e,n,r){return e=e|0,n=n|0,r=r|0,lL(e,Fr(n)|0,r,0),e|0}function lL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=jE()|0,e=sL(r)|0,wi(s,n,l,e,aL(r,u)|0,u)}function jE(){var e=0,n=0;if(c[8040]|0||(S8(10860),Vt(65,10860,ve|0)|0,n=8040,t[n>>2]=1,t[n+4>>2]=0),!(sr(10860)|0)){e=10860,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));S8(10860)}return 10860}function sL(e){return e=e|0,e|0}function aL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=jE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(w8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(fL(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function w8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function fL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=cL(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,dL(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,w8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,pL(e,l),hL(l),m=D;return}}function cL(e){return e=e|0,536870911}function dL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function pL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function hL(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function S8(e){e=e|0,yL(e)}function vL(e){e=e|0,mL(e+24|0)}function mL(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function yL(e){e=e|0;var n=0;n=yr()|0,jn(e,1,11,n,gL()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gL(){return 1840}function _L(e,n,r){e=e|0,n=n|0,r=r|0,DL(t[(EL(e)|0)>>2]|0,n,r)}function EL(e){return e=e|0,(t[(jE()|0)+24>>2]|0)+(e<<3)|0}function DL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+1|0,l=u,If(s,n),n=bf(s,n)|0,If(l,r),r=bf(l,r)|0,I1[e&31](n,r),m=u}function wL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=zE()|0,e=SL(r)|0,wi(s,n,l,e,TL(r,u)|0,u)}function zE(){var e=0,n=0;if(c[8048]|0||(C8(10896),Vt(66,10896,ve|0)|0,n=8048,t[n>>2]=1,t[n+4>>2]=0),!(sr(10896)|0)){e=10896,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));C8(10896)}return 10896}function SL(e){return e=e|0,e|0}function TL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=zE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(T8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(CL(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function T8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function CL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=xL(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,RL(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,T8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,AL(e,l),OL(l),m=D;return}}function xL(e){return e=e|0,536870911}function RL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function AL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function OL(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function C8(e){e=e|0,LL(e)}function ML(e){e=e|0,kL(e+24|0)}function kL(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function LL(e){e=e|0;var n=0;n=yr()|0,jn(e,1,11,n,NL()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function NL(){return 1852}function FL(e,n){return e=e|0,n=n|0,IL(t[(PL(e)|0)>>2]|0,n)|0}function PL(e){return e=e|0,(t[(zE()|0)+24>>2]|0)+(e<<3)|0}function IL(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,If(u,n),n=bf(u,n)|0,n=qo(Zp[e&31](n)|0)|0,m=r,n|0}function bL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=HE()|0,e=BL(r)|0,wi(s,n,l,e,UL(r,u)|0,u)}function HE(){var e=0,n=0;if(c[8056]|0||(R8(10932),Vt(67,10932,ve|0)|0,n=8056,t[n>>2]=1,t[n+4>>2]=0),!(sr(10932)|0)){e=10932,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));R8(10932)}return 10932}function BL(e){return e=e|0,e|0}function UL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=HE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(x8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(jL(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function x8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function jL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=zL(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,HL(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,x8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,qL(e,l),WL(l),m=D;return}}function zL(e){return e=e|0,536870911}function HL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function qL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function WL(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function R8(e){e=e|0,KL(e)}function VL(e){e=e|0,YL(e+24|0)}function YL(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function KL(e){e=e|0;var n=0;n=yr()|0,jn(e,1,7,n,XL()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function XL(){return 1860}function QL(e,n,r){return e=e|0,n=n|0,r=r|0,ZL(t[(JL(e)|0)>>2]|0,n,r)|0}function JL(e){return e=e|0,(t[(HE()|0)+24>>2]|0)+(e<<3)|0}function ZL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+32|0,h=u+12|0,s=u+8|0,D=u,S=u+16|0,l=u+4|0,$L(S,n),eN(D,S,n),Ks(l,r),r=Xs(l,r)|0,t[h>>2]=t[D>>2],Fy[e&15](s,h,r),r=tN(s)|0,jo(s),Qs(l),m=u,r|0}function $L(e,n){e=e|0,n=n|0}function eN(e,n,r){e=e|0,n=n|0,r=r|0,nN(e,r)}function tN(e){return e=e|0,g0(e)|0}function nN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+16|0,r=l,u=n,u&1?(rN(r,0),eu(u|0,r|0)|0,iN(e,r),uN(r)):t[e>>2]=t[n>>2],m=l}function rN(e,n){e=e|0,n=n|0,cd(e,n),t[e+4>>2]=0,c[e+8>>0]=0}function iN(e,n){e=e|0,n=n|0,t[e>>2]=t[n+4>>2]}function uN(e){e=e|0,c[e+8>>0]=0}function oN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=qE()|0,e=lN(r)|0,wi(s,n,l,e,sN(r,u)|0,u)}function qE(){var e=0,n=0;if(c[8064]|0||(O8(10968),Vt(68,10968,ve|0)|0,n=8064,t[n>>2]=1,t[n+4>>2]=0),!(sr(10968)|0)){e=10968,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));O8(10968)}return 10968}function lN(e){return e=e|0,e|0}function sN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=qE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(A8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(aN(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function A8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function aN(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=fN(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,cN(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,A8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,dN(e,l),pN(l),m=D;return}}function fN(e){return e=e|0,536870911}function cN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function dN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function pN(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function O8(e){e=e|0,mN(e)}function hN(e){e=e|0,vN(e+24|0)}function vN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function mN(e){e=e|0;var n=0;n=yr()|0,jn(e,1,1,n,yN()|0,5),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function yN(){return 1872}function gN(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,EN(t[(_N(e)|0)>>2]|0,n,r,u,l,s)}function _N(e){return e=e|0,(t[(qE()|0)+24>>2]|0)+(e<<3)|0}function EN(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,L=0,k=0,I=0;h=m,m=m+32|0,D=h+16|0,S=h+12|0,L=h+8|0,k=h+4|0,I=h,Ks(D,n),n=Xs(D,n)|0,Ks(S,r),r=Xs(S,r)|0,Ks(L,u),u=Xs(L,u)|0,Ks(k,l),l=Xs(k,l)|0,Ks(I,s),s=Xs(I,s)|0,J8[e&1](n,r,u,l,s),Qs(I),Qs(k),Qs(L),Qs(S),Qs(D),m=h}function DN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=WE()|0,e=wN(r)|0,wi(s,n,l,e,SN(r,u)|0,u)}function WE(){var e=0,n=0;if(c[8072]|0||(k8(11004),Vt(69,11004,ve|0)|0,n=8072,t[n>>2]=1,t[n+4>>2]=0),!(sr(11004)|0)){e=11004,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));k8(11004)}return 11004}function wN(e){return e=e|0,e|0}function SN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=WE()|0,h=S+24|0,n=hn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(M8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(TN(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function M8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function TN(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=CN(e)|0,u>>>0>>0)hi(e);else{S=t[e>>2]|0,k=(t[e+8>>2]|0)-S|0,L=k>>2,xN(l,k>>3>>>0>>1>>>0?L>>>0>>0?h:L:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,M8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,RN(e,l),AN(l),m=D;return}}function CN(e){return e=e|0,536870911}function xN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)$n();else{l=pn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function RN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(gr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AN(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&_t(e)}function k8(e){e=e|0,kN(e)}function ON(e){e=e|0,MN(e+24|0)}function MN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function kN(e){e=e|0;var n=0;n=yr()|0,jn(e,1,12,n,LN()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function LN(){return 1896}function NN(e,n,r){e=e|0,n=n|0,r=r|0,PN(t[(FN(e)|0)>>2]|0,n,r)}function FN(e){return e=e|0,(t[(WE()|0)+24>>2]|0)+(e<<3)|0}function PN(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+4|0,l=u,IN(s,n),n=bN(s,n)|0,Ks(l,r),r=Xs(l,r)|0,I1[e&31](n,r),Qs(l),m=u}function IN(e,n){e=e|0,n=n|0}function bN(e,n){return e=e|0,n=n|0,BN(n)|0}function BN(e){return e=e|0,e|0}function UN(){var e=0;return c[8080]|0||(L8(11040),Vt(70,11040,ve|0)|0,e=8080,t[e>>2]=1,t[e+4>>2]=0),sr(11040)|0||L8(11040),11040}function L8(e){e=e|0,HN(e),Yp(e,71)}function jN(e){e=e|0,zN(e+24|0)}function zN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),_t(r))}function HN(e){e=e|0;var n=0;n=yr()|0,jn(e,5,7,n,GN()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qN(e){e=e|0,WN(e)}function WN(e){e=e|0,VN(e)}function VN(e){e=e|0,c[e+8>>0]=1}function GN(){return 1936}function YN(){return KN()|0}function KN(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Ma(8)|0,e=r,s=e+4|0,t[s>>2]=pn(1)|0,u=pn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],XN(u,s,l),t[r>>2]=u,m=n,e|0}function XN(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=pn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1916,t[r+12>>2]=n,t[e+4>>2]=r}function QN(e){e=e|0,Uv(e),_t(e)}function JN(e){e=e|0,e=t[e+12>>2]|0,e|0&&_t(e)}function ZN(e){e=e|0,_t(e)}function $N(){var e=0;return c[8088]|0||(oF(11076),Vt(25,11076,ve|0)|0,e=8088,t[e>>2]=1,t[e+4>>2]=0),11076}function eF(e,n){e=e|0,n=n|0,t[e>>2]=tF()|0,t[e+4>>2]=nF()|0,t[e+12>>2]=n,t[e+8>>2]=rF()|0,t[e+32>>2]=10}function tF(){return 11745}function nF(){return 1940}function rF(){return N1()|0}function iF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Hl(u,896)|0)==512?r|0&&(uF(r),_t(r)):n|0&&_t(n)}function uF(e){e=e|0,e=t[e+4>>2]|0,e|0&&t2(e)}function oF(e){e=e|0,Qa(e)}function Yf(e,n){e=e|0,n=n|0,t[e>>2]=n}function VE(e){return e=e|0,t[e>>2]|0}function lF(e){return e=e|0,c[t[e>>2]>>0]|0}function sF(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,t[u>>2]=t[e>>2],aF(n,u)|0,m=r}function aF(e,n){e=e|0,n=n|0;var r=0;return r=fF(t[e>>2]|0,n)|0,n=e+4|0,t[(t[n>>2]|0)+8>>2]=r,t[(t[n>>2]|0)+8>>2]|0}function fF(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,ka(u),e=g0(e)|0,n=cF(e,t[n>>2]|0)|0,La(u),m=r,n|0}function ka(e){e=e|0,t[e>>2]=t[2701],t[e+4>>2]=t[2703]}function cF(e,n){e=e|0,n=n|0;var r=0;return r=_0(dF()|0)|0,Ki(0,r|0,e|0,BE(n)|0)|0}function La(e){e=e|0,D8(t[e>>2]|0,t[e+4>>2]|0)}function dF(){var e=0;return c[8096]|0||(pF(11120),e=8096,t[e>>2]=1,t[e+4>>2]=0),11120}function pF(e){e=e|0,ll(e,hF()|0,1)}function hF(){return 1948}function vF(){mF()}function mF(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0;if(Te=m,m=m+16|0,k=Te+4|0,I=Te,bn(65536,10804,t[2702]|0,10812),r=n8()|0,n=t[r>>2]|0,e=t[n>>2]|0,e|0)for(u=t[r+8>>2]|0,r=t[r+4>>2]|0;Ql(e|0,M[r>>0]|0|0,c[u>>0]|0),n=n+4|0,e=t[n>>2]|0,e;)u=u+1|0,r=r+1|0;if(e=r8()|0,n=t[e>>2]|0,n|0)do k0(n|0,t[e+4>>2]|0),e=e+8|0,n=t[e>>2]|0;while((n|0)!=0);k0(yF()|0,5167),L=Fv()|0,e=t[L>>2]|0;e:do if(e|0){do gF(t[e+4>>2]|0),e=t[e>>2]|0;while((e|0)!=0);if(e=t[L>>2]|0,e|0){S=L;do{for(;l=e,e=t[e>>2]|0,l=t[l+4>>2]|0,!!(_F(l)|0);)if(t[I>>2]=S,t[k>>2]=t[I>>2],EF(L,k)|0,!e)break e;if(DF(l),S=t[S>>2]|0,n=N8(l)|0,s=c0()|0,h=m,m=m+((1*(n<<2)|0)+15&-16)|0,D=m,m=m+((1*(n<<2)|0)+15&-16)|0,n=t[(v8(l)|0)>>2]|0,n|0)for(r=h,u=D;t[r>>2]=t[(Pv(t[n+4>>2]|0)|0)>>2],t[u>>2]=t[n+8>>2],n=t[n>>2]|0,n;)r=r+4|0,u=u+4|0;ye=Pv(l)|0,n=wF(l)|0,r=N8(l)|0,u=SF(l)|0,L0(ye|0,n|0,h|0,D|0,r|0,u|0,LE(l)|0),gi(s|0)}while((e|0)!=0)}}while(0);if(e=t[(NE()|0)>>2]|0,e|0)do ye=e+4|0,L=FE(ye)|0,l=My(L)|0,s=Ay(L)|0,h=(Oy(L)|0)+1|0,D=S_(L)|0,S=F8(ye)|0,L=sr(L)|0,k=E_(ye)|0,I=GE(ye)|0,f0(0,l|0,s|0,h|0,D|0,S|0,L|0,k|0,I|0,YE(ye)|0),e=t[e>>2]|0;while((e|0)!=0);e=t[(Fv()|0)>>2]|0;e:do if(e|0){t:for(;;){if(n=t[e+4>>2]|0,n|0?(K=t[(Pv(n)|0)>>2]|0,Be=t[(m8(n)|0)>>2]|0,Be|0):0){r=Be;do{n=r+4|0,u=FE(n)|0;n:do if(u|0)switch(sr(u)|0){case 0:break t;case 4:case 3:case 2:{D=My(u)|0,S=Ay(u)|0,L=(Oy(u)|0)+1|0,k=S_(u)|0,I=sr(u)|0,ye=E_(n)|0,f0(K|0,D|0,S|0,L|0,k|0,0,I|0,ye|0,GE(n)|0,YE(n)|0);break n}case 1:{h=My(u)|0,D=Ay(u)|0,S=(Oy(u)|0)+1|0,L=S_(u)|0,k=F8(n)|0,I=sr(u)|0,ye=E_(n)|0,f0(K|0,h|0,D|0,S|0,L|0,k|0,I|0,ye|0,GE(n)|0,YE(n)|0);break n}case 5:{L=My(u)|0,k=Ay(u)|0,I=(Oy(u)|0)+1|0,ye=S_(u)|0,f0(K|0,L|0,k|0,I|0,ye|0,TF(u)|0,sr(u)|0,0,0,0);break n}default:break n}while(0);r=t[r>>2]|0}while((r|0)!=0)}if(e=t[e>>2]|0,!e)break e}$n()}while(0);bs(),m=Te}function yF(){return 11703}function gF(e){e=e|0,c[e+40>>0]=0}function _F(e){return e=e|0,(c[e+40>>0]|0)!=0|0}function EF(e,n){return e=e|0,n=n|0,n=CF(n)|0,e=t[n>>2]|0,t[n>>2]=t[e>>2],_t(e),t[n>>2]|0}function DF(e){e=e|0,c[e+40>>0]=1}function N8(e){return e=e|0,t[e+20>>2]|0}function wF(e){return e=e|0,t[e+8>>2]|0}function SF(e){return e=e|0,t[e+32>>2]|0}function S_(e){return e=e|0,t[e+4>>2]|0}function F8(e){return e=e|0,t[e+4>>2]|0}function GE(e){return e=e|0,t[e+8>>2]|0}function YE(e){return e=e|0,t[e+16>>2]|0}function TF(e){return e=e|0,t[e+20>>2]|0}function CF(e){return e=e|0,t[e>>2]|0}function T_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0,ft=0,Me=0,Pe=0,Zt=0;Zt=m,m=m+16|0,K=Zt;do if(e>>>0<245){if(L=e>>>0<11?16:e+11&-8,e=L>>>3,I=t[2783]|0,r=I>>>e,r&3|0)return n=(r&1^1)+e|0,e=11172+(n<<1<<2)|0,r=e+8|0,u=t[r>>2]|0,l=u+8|0,s=t[l>>2]|0,(e|0)==(s|0)?t[2783]=I&~(1<>2]=e,t[r>>2]=s),Pe=n<<3,t[u+4>>2]=Pe|3,Pe=u+Pe+4|0,t[Pe>>2]=t[Pe>>2]|1,Pe=l,m=Zt,Pe|0;if(k=t[2785]|0,L>>>0>k>>>0){if(r|0)return n=2<>>12&16,n=n>>>h,r=n>>>5&8,n=n>>>r,l=n>>>2&4,n=n>>>l,e=n>>>1&2,n=n>>>e,u=n>>>1&1,u=(r|h|l|e|u)+(n>>>u)|0,n=11172+(u<<1<<2)|0,e=n+8|0,l=t[e>>2]|0,h=l+8|0,r=t[h>>2]|0,(n|0)==(r|0)?(e=I&~(1<>2]=n,t[e>>2]=r,e=I),s=(u<<3)-L|0,t[l+4>>2]=L|3,u=l+L|0,t[u+4>>2]=s|1,t[u+s>>2]=s,k|0&&(l=t[2788]|0,n=k>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=l,t[n+12>>2]=l,t[l+8>>2]=n,t[l+12>>2]=r),t[2785]=s,t[2788]=u,Pe=h,m=Zt,Pe|0;if(D=t[2784]|0,D){if(r=(D&0-D)+-1|0,h=r>>>12&16,r=r>>>h,s=r>>>5&8,r=r>>>s,S=r>>>2&4,r=r>>>S,u=r>>>1&2,r=r>>>u,e=r>>>1&1,e=t[11436+((s|h|S|u|e)+(r>>>e)<<2)>>2]|0,r=(t[e+4>>2]&-8)-L|0,u=t[e+16+(((t[e+16>>2]|0)==0&1)<<2)>>2]|0,!u)S=e,s=r;else{do h=(t[u+4>>2]&-8)-L|0,S=h>>>0>>0,r=S?h:r,e=S?u:e,u=t[u+16+(((t[u+16>>2]|0)==0&1)<<2)>>2]|0;while((u|0)!=0);S=e,s=r}if(h=S+L|0,S>>>0>>0){l=t[S+24>>2]|0,n=t[S+12>>2]|0;do if((n|0)==(S|0)){if(e=S+20|0,n=t[e>>2]|0,!n&&(e=S+16|0,n=t[e>>2]|0,!n)){r=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0,r=n}else r=t[S+8>>2]|0,t[r+12>>2]=n,t[n+8>>2]=r,r=n;while(0);do if(l|0){if(n=t[S+28>>2]|0,e=11436+(n<<2)|0,(S|0)==(t[e>>2]|0)){if(t[e>>2]=r,!r){t[2784]=D&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=l,n=t[S+16>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),n=t[S+20>>2]|0,n|0&&(t[r+20>>2]=n,t[n+24>>2]=r)}while(0);return s>>>0<16?(Pe=s+L|0,t[S+4>>2]=Pe|3,Pe=S+Pe+4|0,t[Pe>>2]=t[Pe>>2]|1):(t[S+4>>2]=L|3,t[h+4>>2]=s|1,t[h+s>>2]=s,k|0&&(u=t[2788]|0,n=k>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=I|n,n=r,e=r+8|0),t[e>>2]=u,t[n+12>>2]=u,t[u+8>>2]=n,t[u+12>>2]=r),t[2785]=s,t[2788]=h),Pe=S+8|0,m=Zt,Pe|0}else I=L}else I=L}else I=L}else if(e>>>0<=4294967231)if(e=e+11|0,L=e&-8,S=t[2784]|0,S){u=0-L|0,e=e>>>8,e?L>>>0>16777215?D=31:(I=(e+1048320|0)>>>16&8,Me=e<>>16&4,Me=Me<>>16&2,D=14-(k|I|D)+(Me<>>15)|0,D=L>>>(D+7|0)&1|D<<1):D=0,r=t[11436+(D<<2)>>2]|0;e:do if(!r)r=0,e=0,Me=57;else for(e=0,h=L<<((D|0)==31?0:25-(D>>>1)|0),s=0;;){if(l=(t[r+4>>2]&-8)-L|0,l>>>0>>0)if(l)e=r,u=l;else{e=r,u=0,l=r,Me=61;break e}if(l=t[r+20>>2]|0,r=t[r+16+(h>>>31<<2)>>2]|0,s=(l|0)==0|(l|0)==(r|0)?s:l,l=(r|0)==0,l){r=s,Me=57;break}else h=h<<((l^1)&1)}while(0);if((Me|0)==57){if((r|0)==0&(e|0)==0){if(e=2<>>12&16,I=I>>>h,s=I>>>5&8,I=I>>>s,D=I>>>2&4,I=I>>>D,k=I>>>1&2,I=I>>>k,r=I>>>1&1,e=0,r=t[11436+((s|h|D|k|r)+(I>>>r)<<2)>>2]|0}r?(l=r,Me=61):(D=e,h=u)}if((Me|0)==61)for(;;)if(Me=0,r=(t[l+4>>2]&-8)-L|0,I=r>>>0>>0,r=I?r:u,e=I?l:e,l=t[l+16+(((t[l+16>>2]|0)==0&1)<<2)>>2]|0,l)u=r,Me=61;else{D=e,h=r;break}if((D|0)!=0?h>>>0<((t[2785]|0)-L|0)>>>0:0){if(s=D+L|0,D>>>0>=s>>>0)return Pe=0,m=Zt,Pe|0;l=t[D+24>>2]|0,n=t[D+12>>2]|0;do if((n|0)==(D|0)){if(e=D+20|0,n=t[e>>2]|0,!n&&(e=D+16|0,n=t[e>>2]|0,!n)){n=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0}else Pe=t[D+8>>2]|0,t[Pe+12>>2]=n,t[n+8>>2]=Pe;while(0);do if(l){if(e=t[D+28>>2]|0,r=11436+(e<<2)|0,(D|0)==(t[r>>2]|0)){if(t[r>>2]=n,!n){u=S&~(1<>2]|0)!=(D|0)&1)<<2)>>2]=n,!n){u=S;break}t[n+24>>2]=l,e=t[D+16>>2]|0,e|0&&(t[n+16>>2]=e,t[e+24>>2]=n),e=t[D+20>>2]|0,e&&(t[n+20>>2]=e,t[e+24>>2]=n),u=S}else u=S;while(0);do if(h>>>0>=16){if(t[D+4>>2]=L|3,t[s+4>>2]=h|1,t[s+h>>2]=h,n=h>>>3,h>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=s,t[n+12>>2]=s,t[s+8>>2]=n,t[s+12>>2]=r;break}if(n=h>>>8,n?h>>>0>16777215?n=31:(Me=(n+1048320|0)>>>16&8,Pe=n<>>16&4,Pe=Pe<>>16&2,n=14-(ft|Me|n)+(Pe<>>15)|0,n=h>>>(n+7|0)&1|n<<1):n=0,r=11436+(n<<2)|0,t[s+28>>2]=n,e=s+16|0,t[e+4>>2]=0,t[e>>2]=0,e=1<>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}for(e=h<<((n|0)==31?0:25-(n>>>1)|0),r=t[r>>2]|0;;){if((t[r+4>>2]&-8|0)==(h|0)){Me=97;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Me=96;break}}if((Me|0)==96){t[u>>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}else if((Me|0)==97){Me=r+8|0,Pe=t[Me>>2]|0,t[Pe+12>>2]=s,t[Me>>2]=s,t[s+8>>2]=Pe,t[s+12>>2]=r,t[s+24>>2]=0;break}}else Pe=h+L|0,t[D+4>>2]=Pe|3,Pe=D+Pe+4|0,t[Pe>>2]=t[Pe>>2]|1;while(0);return Pe=D+8|0,m=Zt,Pe|0}else I=L}else I=L;else I=-1;while(0);if(r=t[2785]|0,r>>>0>=I>>>0)return n=r-I|0,e=t[2788]|0,n>>>0>15?(Pe=e+I|0,t[2788]=Pe,t[2785]=n,t[Pe+4>>2]=n|1,t[Pe+n>>2]=n,t[e+4>>2]=I|3):(t[2785]=0,t[2788]=0,t[e+4>>2]=r|3,Pe=e+r+4|0,t[Pe>>2]=t[Pe>>2]|1),Pe=e+8|0,m=Zt,Pe|0;if(h=t[2786]|0,h>>>0>I>>>0)return ft=h-I|0,t[2786]=ft,Pe=t[2789]|0,Me=Pe+I|0,t[2789]=Me,t[Me+4>>2]=ft|1,t[Pe+4>>2]=I|3,Pe=Pe+8|0,m=Zt,Pe|0;if(t[2901]|0?e=t[2903]|0:(t[2903]=4096,t[2902]=4096,t[2904]=-1,t[2905]=-1,t[2906]=0,t[2894]=0,e=K&-16^1431655768,t[K>>2]=e,t[2901]=e,e=4096),D=I+48|0,S=I+47|0,s=e+S|0,l=0-e|0,L=s&l,L>>>0<=I>>>0||(e=t[2893]|0,e|0?(k=t[2891]|0,K=k+L|0,K>>>0<=k>>>0|K>>>0>e>>>0):0))return Pe=0,m=Zt,Pe|0;e:do if(t[2894]&4)n=0,Me=133;else{r=t[2789]|0;t:do if(r){for(u=11580;e=t[u>>2]|0,!(e>>>0<=r>>>0?(ye=u+4|0,(e+(t[ye>>2]|0)|0)>>>0>r>>>0):0);)if(e=t[u+8>>2]|0,e)u=e;else{Me=118;break t}if(n=s-h&l,n>>>0<2147483647)if(e=n2(n|0)|0,(e|0)==((t[u>>2]|0)+(t[ye>>2]|0)|0)){if((e|0)!=(-1|0)){h=n,s=e,Me=135;break e}}else u=e,Me=126;else n=0}else Me=118;while(0);do if((Me|0)==118)if(r=n2(0)|0,(r|0)!=(-1|0)?(n=r,Be=t[2902]|0,Te=Be+-1|0,n=((Te&n|0)==0?0:(Te+n&0-Be)-n|0)+L|0,Be=t[2891]|0,Te=n+Be|0,n>>>0>I>>>0&n>>>0<2147483647):0){if(ye=t[2893]|0,ye|0?Te>>>0<=Be>>>0|Te>>>0>ye>>>0:0){n=0;break}if(e=n2(n|0)|0,(e|0)==(r|0)){h=n,s=r,Me=135;break e}else u=e,Me=126}else n=0;while(0);do if((Me|0)==126){if(r=0-n|0,!(D>>>0>n>>>0&(n>>>0<2147483647&(u|0)!=(-1|0))))if((u|0)==(-1|0)){n=0;break}else{h=n,s=u,Me=135;break e}if(e=t[2903]|0,e=S-n+e&0-e,e>>>0>=2147483647){h=n,s=u,Me=135;break e}if((n2(e|0)|0)==(-1|0)){n2(r|0)|0,n=0;break}else{h=e+n|0,s=u,Me=135;break e}}while(0);t[2894]=t[2894]|4,Me=133}while(0);if((((Me|0)==133?L>>>0<2147483647:0)?(ft=n2(L|0)|0,ye=n2(0)|0,Ze=ye-ft|0,Ge=Ze>>>0>(I+40|0)>>>0,!((ft|0)==(-1|0)|Ge^1|ft>>>0>>0&((ft|0)!=(-1|0)&(ye|0)!=(-1|0))^1)):0)&&(h=Ge?Ze:n,s=ft,Me=135),(Me|0)==135){n=(t[2891]|0)+h|0,t[2891]=n,n>>>0>(t[2892]|0)>>>0&&(t[2892]=n),S=t[2789]|0;do if(S){for(n=11580;;){if(e=t[n>>2]|0,r=n+4|0,u=t[r>>2]|0,(s|0)==(e+u|0)){Me=145;break}if(l=t[n+8>>2]|0,l)n=l;else break}if(((Me|0)==145?(t[n+12>>2]&8|0)==0:0)?S>>>0>>0&S>>>0>=e>>>0:0){t[r>>2]=u+h,Pe=S+8|0,Pe=(Pe&7|0)==0?0:0-Pe&7,Me=S+Pe|0,Pe=(t[2786]|0)+(h-Pe)|0,t[2789]=Me,t[2786]=Pe,t[Me+4>>2]=Pe|1,t[Me+Pe+4>>2]=40,t[2790]=t[2905];break}for(s>>>0<(t[2787]|0)>>>0&&(t[2787]=s),r=s+h|0,n=11580;;){if((t[n>>2]|0)==(r|0)){Me=153;break}if(e=t[n+8>>2]|0,e)n=e;else break}if((Me|0)==153?(t[n+12>>2]&8|0)==0:0){t[n>>2]=s,k=n+4|0,t[k>>2]=(t[k>>2]|0)+h,k=s+8|0,k=s+((k&7|0)==0?0:0-k&7)|0,n=r+8|0,n=r+((n&7|0)==0?0:0-n&7)|0,L=k+I|0,D=n-k-I|0,t[k+4>>2]=I|3;do if((n|0)!=(S|0)){if((n|0)==(t[2788]|0)){Pe=(t[2785]|0)+D|0,t[2785]=Pe,t[2788]=L,t[L+4>>2]=Pe|1,t[L+Pe>>2]=Pe;break}if(e=t[n+4>>2]|0,(e&3|0)==1){h=e&-8,u=e>>>3;e:do if(e>>>0<256)if(e=t[n+8>>2]|0,r=t[n+12>>2]|0,(r|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=r,t[r+8>>2]=e;break}else{s=t[n+24>>2]|0,e=t[n+12>>2]|0;do if((e|0)==(n|0)){if(u=n+16|0,r=u+4|0,e=t[r>>2]|0,!e)if(e=t[u>>2]|0,e)r=u;else{e=0;break}for(;;){if(u=e+20|0,l=t[u>>2]|0,l|0){e=l,r=u;continue}if(u=e+16|0,l=t[u>>2]|0,l)e=l,r=u;else break}t[r>>2]=0}else Pe=t[n+8>>2]|0,t[Pe+12>>2]=e,t[e+8>>2]=Pe;while(0);if(!s)break;r=t[n+28>>2]|0,u=11436+(r<<2)|0;do if((n|0)!=(t[u>>2]|0)){if(t[s+16+(((t[s+16>>2]|0)!=(n|0)&1)<<2)>>2]=e,!e)break e}else{if(t[u>>2]=e,e|0)break;t[2784]=t[2784]&~(1<>2]=s,r=n+16|0,u=t[r>>2]|0,u|0&&(t[e+16>>2]=u,t[u+24>>2]=e),r=t[r+4>>2]|0,!r)break;t[e+20>>2]=r,t[r+24>>2]=e}while(0);n=n+h|0,l=h+D|0}else l=D;if(n=n+4|0,t[n>>2]=t[n>>2]&-2,t[L+4>>2]=l|1,t[L+l>>2]=l,n=l>>>3,l>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=L,t[n+12>>2]=L,t[L+8>>2]=n,t[L+12>>2]=r;break}n=l>>>8;do if(!n)n=0;else{if(l>>>0>16777215){n=31;break}Me=(n+1048320|0)>>>16&8,Pe=n<>>16&4,Pe=Pe<>>16&2,n=14-(ft|Me|n)+(Pe<>>15)|0,n=l>>>(n+7|0)&1|n<<1}while(0);if(u=11436+(n<<2)|0,t[L+28>>2]=n,e=L+16|0,t[e+4>>2]=0,t[e>>2]=0,e=t[2784]|0,r=1<>2]=L,t[L+24>>2]=u,t[L+12>>2]=L,t[L+8>>2]=L;break}for(e=l<<((n|0)==31?0:25-(n>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){Me=194;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Me=193;break}}if((Me|0)==193){t[u>>2]=L,t[L+24>>2]=r,t[L+12>>2]=L,t[L+8>>2]=L;break}else if((Me|0)==194){Me=r+8|0,Pe=t[Me>>2]|0,t[Pe+12>>2]=L,t[Me>>2]=L,t[L+8>>2]=Pe,t[L+12>>2]=r,t[L+24>>2]=0;break}}else Pe=(t[2786]|0)+D|0,t[2786]=Pe,t[2789]=L,t[L+4>>2]=Pe|1;while(0);return Pe=k+8|0,m=Zt,Pe|0}for(n=11580;e=t[n>>2]|0,!(e>>>0<=S>>>0?(Pe=e+(t[n+4>>2]|0)|0,Pe>>>0>S>>>0):0);)n=t[n+8>>2]|0;l=Pe+-47|0,e=l+8|0,e=l+((e&7|0)==0?0:0-e&7)|0,l=S+16|0,e=e>>>0>>0?S:e,n=e+8|0,r=s+8|0,r=(r&7|0)==0?0:0-r&7,Me=s+r|0,r=h+-40-r|0,t[2789]=Me,t[2786]=r,t[Me+4>>2]=r|1,t[Me+r+4>>2]=40,t[2790]=t[2905],r=e+4|0,t[r>>2]=27,t[n>>2]=t[2895],t[n+4>>2]=t[2896],t[n+8>>2]=t[2897],t[n+12>>2]=t[2898],t[2895]=s,t[2896]=h,t[2898]=0,t[2897]=n,n=e+24|0;do Me=n,n=n+4|0,t[n>>2]=7;while((Me+8|0)>>>0>>0);if((e|0)!=(S|0)){if(s=e-S|0,t[r>>2]=t[r>>2]&-2,t[S+4>>2]=s|1,t[e>>2]=s,n=s>>>3,s>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=S,t[n+12>>2]=S,t[S+8>>2]=n,t[S+12>>2]=r;break}if(n=s>>>8,n?s>>>0>16777215?r=31:(Me=(n+1048320|0)>>>16&8,Pe=n<>>16&4,Pe=Pe<>>16&2,r=14-(ft|Me|r)+(Pe<>>15)|0,r=s>>>(r+7|0)&1|r<<1):r=0,u=11436+(r<<2)|0,t[S+28>>2]=r,t[S+20>>2]=0,t[l>>2]=0,n=t[2784]|0,e=1<>2]=S,t[S+24>>2]=u,t[S+12>>2]=S,t[S+8>>2]=S;break}for(e=s<<((r|0)==31?0:25-(r>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(s|0)){Me=216;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Me=215;break}}if((Me|0)==215){t[u>>2]=S,t[S+24>>2]=r,t[S+12>>2]=S,t[S+8>>2]=S;break}else if((Me|0)==216){Me=r+8|0,Pe=t[Me>>2]|0,t[Pe+12>>2]=S,t[Me>>2]=S,t[S+8>>2]=Pe,t[S+12>>2]=r,t[S+24>>2]=0;break}}}else{Pe=t[2787]|0,(Pe|0)==0|s>>>0>>0&&(t[2787]=s),t[2895]=s,t[2896]=h,t[2898]=0,t[2792]=t[2901],t[2791]=-1,n=0;do Pe=11172+(n<<1<<2)|0,t[Pe+12>>2]=Pe,t[Pe+8>>2]=Pe,n=n+1|0;while((n|0)!=32);Pe=s+8|0,Pe=(Pe&7|0)==0?0:0-Pe&7,Me=s+Pe|0,Pe=h+-40-Pe|0,t[2789]=Me,t[2786]=Pe,t[Me+4>>2]=Pe|1,t[Me+Pe+4>>2]=40,t[2790]=t[2905]}while(0);if(n=t[2786]|0,n>>>0>I>>>0)return ft=n-I|0,t[2786]=ft,Pe=t[2789]|0,Me=Pe+I|0,t[2789]=Me,t[Me+4>>2]=ft|1,t[Pe+4>>2]=I|3,Pe=Pe+8|0,m=Zt,Pe|0}return t[(bv()|0)>>2]=12,Pe=0,m=Zt,Pe|0}function C_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(!!e){r=e+-8|0,l=t[2787]|0,e=t[e+-4>>2]|0,n=e&-8,S=r+n|0;do if(e&1)D=r,h=r;else{if(u=t[r>>2]|0,!(e&3)||(h=r+(0-u)|0,s=u+n|0,h>>>0>>0))return;if((h|0)==(t[2788]|0)){if(e=S+4|0,n=t[e>>2]|0,(n&3|0)!=3){D=h,n=s;break}t[2785]=s,t[e>>2]=n&-2,t[h+4>>2]=s|1,t[h+s>>2]=s;return}if(r=u>>>3,u>>>0<256)if(e=t[h+8>>2]|0,n=t[h+12>>2]|0,(n|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=n,t[n+8>>2]=e,D=h,n=s;break}l=t[h+24>>2]|0,e=t[h+12>>2]|0;do if((e|0)==(h|0)){if(r=h+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{e=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0}else D=t[h+8>>2]|0,t[D+12>>2]=e,t[e+8>>2]=D;while(0);if(l){if(n=t[h+28>>2]|0,r=11436+(n<<2)|0,(h|0)==(t[r>>2]|0)){if(t[r>>2]=e,!e){t[2784]=t[2784]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=e,!e){D=h,n=s;break}t[e+24>>2]=l,n=h+16|0,r=t[n>>2]|0,r|0&&(t[e+16>>2]=r,t[r+24>>2]=e),n=t[n+4>>2]|0,n?(t[e+20>>2]=n,t[n+24>>2]=e,D=h,n=s):(D=h,n=s)}else D=h,n=s}while(0);if(!(h>>>0>=S>>>0)&&(e=S+4|0,u=t[e>>2]|0,!!(u&1))){if(u&2)t[e>>2]=u&-2,t[D+4>>2]=n|1,t[h+n>>2]=n,l=n;else{if(e=t[2788]|0,(S|0)==(t[2789]|0)){if(S=(t[2786]|0)+n|0,t[2786]=S,t[2789]=D,t[D+4>>2]=S|1,(D|0)!=(e|0))return;t[2788]=0,t[2785]=0;return}if((S|0)==(e|0)){S=(t[2785]|0)+n|0,t[2785]=S,t[2788]=h,t[D+4>>2]=S|1,t[h+S>>2]=S;return}l=(u&-8)+n|0,r=u>>>3;do if(u>>>0<256)if(n=t[S+8>>2]|0,e=t[S+12>>2]|0,(e|0)==(n|0)){t[2783]=t[2783]&~(1<>2]=e,t[e+8>>2]=n;break}else{s=t[S+24>>2]|0,e=t[S+12>>2]|0;do if((e|0)==(S|0)){if(r=S+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{r=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0,r=e}else r=t[S+8>>2]|0,t[r+12>>2]=e,t[e+8>>2]=r,r=e;while(0);if(s|0){if(e=t[S+28>>2]|0,n=11436+(e<<2)|0,(S|0)==(t[n>>2]|0)){if(t[n>>2]=r,!r){t[2784]=t[2784]&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=s,e=S+16|0,n=t[e>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),e=t[e+4>>2]|0,e|0&&(t[r+20>>2]=e,t[e+24>>2]=r)}}while(0);if(t[D+4>>2]=l|1,t[h+l>>2]=l,(D|0)==(t[2788]|0)){t[2785]=l;return}}if(e=l>>>3,l>>>0<256){r=11172+(e<<1<<2)|0,n=t[2783]|0,e=1<>2]|0):(t[2783]=n|e,e=r,n=r+8|0),t[n>>2]=D,t[e+12>>2]=D,t[D+8>>2]=e,t[D+12>>2]=r;return}e=l>>>8,e?l>>>0>16777215?e=31:(h=(e+1048320|0)>>>16&8,S=e<>>16&4,S=S<>>16&2,e=14-(s|h|e)+(S<>>15)|0,e=l>>>(e+7|0)&1|e<<1):e=0,u=11436+(e<<2)|0,t[D+28>>2]=e,t[D+20>>2]=0,t[D+16>>2]=0,n=t[2784]|0,r=1<>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){e=73;break}if(u=r+16+(n>>>31<<2)|0,e=t[u>>2]|0,e)n=n<<1,r=e;else{e=72;break}}if((e|0)==72){t[u>>2]=D,t[D+24>>2]=r,t[D+12>>2]=D,t[D+8>>2]=D;break}else if((e|0)==73){h=r+8|0,S=t[h>>2]|0,t[S+12>>2]=D,t[h>>2]=D,t[D+8>>2]=S,t[D+12>>2]=r,t[D+24>>2]=0;break}}else t[2784]=n|r,t[u>>2]=D,t[D+24>>2]=u,t[D+12>>2]=D,t[D+8>>2]=D;while(0);if(S=(t[2791]|0)+-1|0,t[2791]=S,!S)e=11588;else return;for(;e=t[e>>2]|0,e;)e=e+8|0;t[2791]=-1}}}function xF(){return 11628}function RF(e){e=e|0;var n=0,r=0;return n=m,m=m+16|0,r=n,t[r>>2]=MF(t[e+60>>2]|0)|0,e=x_(Ou(6,r|0)|0)|0,m=n,e|0}function P8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0;I=m,m=m+48|0,L=I+16|0,s=I,l=I+32|0,D=e+28|0,u=t[D>>2]|0,t[l>>2]=u,S=e+20|0,u=(t[S>>2]|0)-u|0,t[l+4>>2]=u,t[l+8>>2]=n,t[l+12>>2]=r,u=u+r|0,h=e+60|0,t[s>>2]=t[h>>2],t[s+4>>2]=l,t[s+8>>2]=2,s=x_(mo(146,s|0)|0)|0;e:do if((u|0)!=(s|0)){for(n=2;!((s|0)<0);)if(u=u-s|0,Be=t[l+4>>2]|0,K=s>>>0>Be>>>0,l=K?l+8|0:l,n=(K<<31>>31)+n|0,Be=s-(K?Be:0)|0,t[l>>2]=(t[l>>2]|0)+Be,K=l+4|0,t[K>>2]=(t[K>>2]|0)-Be,t[L>>2]=t[h>>2],t[L+4>>2]=l,t[L+8>>2]=n,s=x_(mo(146,L|0)|0)|0,(u|0)==(s|0)){k=3;break e}t[e+16>>2]=0,t[D>>2]=0,t[S>>2]=0,t[e>>2]=t[e>>2]|32,(n|0)==2?r=0:r=r-(t[l+4>>2]|0)|0}else k=3;while(0);return(k|0)==3&&(Be=t[e+44>>2]|0,t[e+16>>2]=Be+(t[e+48>>2]|0),t[D>>2]=Be,t[S>>2]=Be),m=I,r|0}function AF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return l=m,m=m+32|0,s=l,u=l+20|0,t[s>>2]=t[e+60>>2],t[s+4>>2]=0,t[s+8>>2]=n,t[s+12>>2]=u,t[s+16>>2]=r,(x_(Li(140,s|0)|0)|0)<0?(t[u>>2]=-1,e=-1):e=t[u>>2]|0,m=l,e|0}function x_(e){return e=e|0,e>>>0>4294963200&&(t[(bv()|0)>>2]=0-e,e=-1),e|0}function bv(){return(OF()|0)+64|0}function OF(){return KE()|0}function KE(){return 2084}function MF(e){return e=e|0,e|0}function kF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return l=m,m=m+32|0,u=l,t[e+36>>2]=1,((t[e>>2]&64|0)==0?(t[u>>2]=t[e+60>>2],t[u+4>>2]=21523,t[u+8>>2]=l+16,bo(54,u|0)|0):0)&&(c[e+75>>0]=-1),u=P8(e,n,r)|0,m=l,u|0}function I8(e,n){e=e|0,n=n|0;var r=0,u=0;if(r=c[e>>0]|0,u=c[n>>0]|0,r<<24>>24==0?1:r<<24>>24!=u<<24>>24)e=u;else{do e=e+1|0,n=n+1|0,r=c[e>>0]|0,u=c[n>>0]|0;while(!(r<<24>>24==0?1:r<<24>>24!=u<<24>>24));e=u}return(r&255)-(e&255)|0}function LF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;e:do if(!r)e=0;else{for(;u=c[e>>0]|0,l=c[n>>0]|0,u<<24>>24==l<<24>>24;)if(r=r+-1|0,r)e=e+1|0,n=n+1|0;else{e=0;break e}e=(u&255)-(l&255)|0}while(0);return e|0}function b8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0;ye=m,m=m+224|0,k=ye+120|0,I=ye+80|0,Be=ye,Te=ye+136|0,u=I,l=u+40|0;do t[u>>2]=0,u=u+4|0;while((u|0)<(l|0));return t[k>>2]=t[r>>2],(XE(0,n,k,Be,I)|0)<0?r=-1:((t[e+76>>2]|0)>-1?K=NF(e)|0:K=0,r=t[e>>2]|0,L=r&32,(c[e+74>>0]|0)<1&&(t[e>>2]=r&-33),u=e+48|0,t[u>>2]|0?r=XE(e,n,k,Be,I)|0:(l=e+44|0,s=t[l>>2]|0,t[l>>2]=Te,h=e+28|0,t[h>>2]=Te,D=e+20|0,t[D>>2]=Te,t[u>>2]=80,S=e+16|0,t[S>>2]=Te+80,r=XE(e,n,k,Be,I)|0,s&&(M_[t[e+36>>2]&7](e,0,0)|0,r=(t[D>>2]|0)==0?-1:r,t[l>>2]=s,t[u>>2]=0,t[S>>2]=0,t[h>>2]=0,t[D>>2]=0)),u=t[e>>2]|0,t[e>>2]=u|L,K|0&&FF(e),r=(u&32|0)==0?r:-1),m=ye,r|0}function XE(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0,ft=0,Me=0,Pe=0,Zt=0,Br=0,In=0,gn=0,_r=0,Pr=0,Ln=0;Ln=m,m=m+64|0,In=Ln+16|0,gn=Ln,Zt=Ln+24|0,_r=Ln+8|0,Pr=Ln+20|0,t[In>>2]=n,ft=(e|0)!=0,Me=Zt+40|0,Pe=Me,Zt=Zt+39|0,Br=_r+4|0,h=0,s=0,k=0;e:for(;;){do if((s|0)>-1)if((h|0)>(2147483647-s|0)){t[(bv()|0)>>2]=75,s=-1;break}else{s=h+s|0;break}while(0);if(h=c[n>>0]|0,h<<24>>24)D=n;else{Ge=87;break}t:for(;;){switch(h<<24>>24){case 37:{h=D,Ge=9;break t}case 0:{h=D;break t}default:}Ze=D+1|0,t[In>>2]=Ze,h=c[Ze>>0]|0,D=Ze}t:do if((Ge|0)==9)for(;;){if(Ge=0,(c[D+1>>0]|0)!=37)break t;if(h=h+1|0,D=D+2|0,t[In>>2]=D,(c[D>>0]|0)==37)Ge=9;else break}while(0);if(h=h-n|0,ft&&Y0(e,n,h),h|0){n=D;continue}S=D+1|0,h=(c[S>>0]|0)+-48|0,h>>>0<10?(Ze=(c[D+2>>0]|0)==36,ye=Ze?h:-1,k=Ze?1:k,S=Ze?D+3|0:S):ye=-1,t[In>>2]=S,h=c[S>>0]|0,D=(h<<24>>24)+-32|0;t:do if(D>>>0<32)for(L=0,I=h;;){if(h=1<>2]=S,h=c[S>>0]|0,D=(h<<24>>24)+-32|0,D>>>0>=32)break;I=h}else L=0;while(0);if(h<<24>>24==42){if(D=S+1|0,h=(c[D>>0]|0)+-48|0,h>>>0<10?(c[S+2>>0]|0)==36:0)t[l+(h<<2)>>2]=10,h=t[u+((c[D>>0]|0)+-48<<3)>>2]|0,k=1,S=S+3|0;else{if(k|0){s=-1;break}ft?(k=(t[r>>2]|0)+(4-1)&~(4-1),h=t[k>>2]|0,t[r>>2]=k+4,k=0,S=D):(h=0,k=0,S=D)}t[In>>2]=S,Ze=(h|0)<0,h=Ze?0-h|0:h,L=Ze?L|8192:L}else{if(h=B8(In)|0,(h|0)<0){s=-1;break}S=t[In>>2]|0}do if((c[S>>0]|0)==46){if((c[S+1>>0]|0)!=42){t[In>>2]=S+1,D=B8(In)|0,S=t[In>>2]|0;break}if(I=S+2|0,D=(c[I>>0]|0)+-48|0,D>>>0<10?(c[S+3>>0]|0)==36:0){t[l+(D<<2)>>2]=10,D=t[u+((c[I>>0]|0)+-48<<3)>>2]|0,S=S+4|0,t[In>>2]=S;break}if(k|0){s=-1;break e}ft?(Ze=(t[r>>2]|0)+(4-1)&~(4-1),D=t[Ze>>2]|0,t[r>>2]=Ze+4):D=0,t[In>>2]=I,S=I}else D=-1;while(0);for(Te=0;;){if(((c[S>>0]|0)+-65|0)>>>0>57){s=-1;break e}if(Ze=S+1|0,t[In>>2]=Ze,I=c[(c[S>>0]|0)+-65+(5178+(Te*58|0))>>0]|0,K=I&255,(K+-1|0)>>>0<8)Te=K,S=Ze;else break}if(!(I<<24>>24)){s=-1;break}Be=(ye|0)>-1;do if(I<<24>>24==19)if(Be){s=-1;break e}else Ge=49;else{if(Be){t[l+(ye<<2)>>2]=K,Be=u+(ye<<3)|0,ye=t[Be+4>>2]|0,Ge=gn,t[Ge>>2]=t[Be>>2],t[Ge+4>>2]=ye,Ge=49;break}if(!ft){s=0;break e}U8(gn,K,r)}while(0);if((Ge|0)==49?(Ge=0,!ft):0){h=0,n=Ze;continue}S=c[S>>0]|0,S=(Te|0)!=0&(S&15|0)==3?S&-33:S,Be=L&-65537,ye=(L&8192|0)==0?L:Be;t:do switch(S|0){case 110:switch((Te&255)<<24>>24){case 0:{t[t[gn>>2]>>2]=s,h=0,n=Ze;continue e}case 1:{t[t[gn>>2]>>2]=s,h=0,n=Ze;continue e}case 2:{h=t[gn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Ze;continue e}case 3:{_[t[gn>>2]>>1]=s,h=0,n=Ze;continue e}case 4:{c[t[gn>>2]>>0]=s,h=0,n=Ze;continue e}case 6:{t[t[gn>>2]>>2]=s,h=0,n=Ze;continue e}case 7:{h=t[gn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Ze;continue e}default:{h=0,n=Ze;continue e}}case 112:{S=120,D=D>>>0>8?D:8,n=ye|8,Ge=61;break}case 88:case 120:{n=ye,Ge=61;break}case 111:{S=gn,n=t[S>>2]|0,S=t[S+4>>2]|0,K=IF(n,S,Me)|0,Be=Pe-K|0,L=0,I=5642,D=(ye&8|0)==0|(D|0)>(Be|0)?D:Be+1|0,Be=ye,Ge=67;break}case 105:case 100:if(S=gn,n=t[S>>2]|0,S=t[S+4>>2]|0,(S|0)<0){n=R_(0,0,n|0,S|0)|0,S=tt,L=gn,t[L>>2]=n,t[L+4>>2]=S,L=1,I=5642,Ge=66;break t}else{L=(ye&2049|0)!=0&1,I=(ye&2048|0)==0?(ye&1|0)==0?5642:5644:5643,Ge=66;break t}case 117:{S=gn,L=0,I=5642,n=t[S>>2]|0,S=t[S+4>>2]|0,Ge=66;break}case 99:{c[Zt>>0]=t[gn>>2],n=Zt,L=0,I=5642,K=Me,S=1,D=Be;break}case 109:{S=bF(t[(bv()|0)>>2]|0)|0,Ge=71;break}case 115:{S=t[gn>>2]|0,S=S|0?S:5652,Ge=71;break}case 67:{t[_r>>2]=t[gn>>2],t[Br>>2]=0,t[gn>>2]=_r,K=-1,S=_r,Ge=75;break}case 83:{n=t[gn>>2]|0,D?(K=D,S=n,Ge=75):(_l(e,32,h,0,ye),n=0,Ge=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{h=UF(e,+B[gn>>3],h,D,ye,S)|0,n=Ze;continue e}default:L=0,I=5642,K=Me,S=D,D=ye}while(0);t:do if((Ge|0)==61)ye=gn,Te=t[ye>>2]|0,ye=t[ye+4>>2]|0,K=PF(Te,ye,Me,S&32)|0,I=(n&8|0)==0|(Te|0)==0&(ye|0)==0,L=I?0:2,I=I?5642:5642+(S>>4)|0,Be=n,n=Te,S=ye,Ge=67;else if((Ge|0)==66)K=Bv(n,S,Me)|0,Be=ye,Ge=67;else if((Ge|0)==71)Ge=0,ye=BF(S,0,D)|0,Te=(ye|0)==0,n=S,L=0,I=5642,K=Te?S+D|0:ye,S=Te?D:ye-S|0,D=Be;else if((Ge|0)==75){for(Ge=0,I=S,n=0,D=0;L=t[I>>2]|0,!(!L||(D=j8(Pr,L)|0,(D|0)<0|D>>>0>(K-n|0)>>>0));)if(n=D+n|0,K>>>0>n>>>0)I=I+4|0;else break;if((D|0)<0){s=-1;break e}if(_l(e,32,h,n,ye),!n)n=0,Ge=84;else for(L=0;;){if(D=t[S>>2]|0,!D){Ge=84;break t}if(D=j8(Pr,D)|0,L=D+L|0,(L|0)>(n|0)){Ge=84;break t}if(Y0(e,Pr,D),L>>>0>=n>>>0){Ge=84;break}else S=S+4|0}}while(0);if((Ge|0)==67)Ge=0,S=(n|0)!=0|(S|0)!=0,ye=(D|0)!=0|S,S=((S^1)&1)+(Pe-K)|0,n=ye?K:Me,K=Me,S=ye?(D|0)>(S|0)?D:S:D,D=(D|0)>-1?Be&-65537:Be;else if((Ge|0)==84){Ge=0,_l(e,32,h,n,ye^8192),h=(h|0)>(n|0)?h:n,n=Ze;continue}Te=K-n|0,Be=(S|0)<(Te|0)?Te:S,ye=Be+L|0,h=(h|0)<(ye|0)?ye:h,_l(e,32,h,ye,D),Y0(e,I,L),_l(e,48,h,ye,D^65536),_l(e,48,Be,Te,0),Y0(e,n,Te),_l(e,32,h,ye,D^8192),n=Ze}e:do if((Ge|0)==87&&!e)if(!k)s=0;else{for(s=1;n=t[l+(s<<2)>>2]|0,!!n;)if(U8(u+(s<<3)|0,n,r),s=s+1|0,(s|0)>=10){s=1;break e}for(;;){if(t[l+(s<<2)>>2]|0){s=-1;break e}if(s=s+1|0,(s|0)>=10){s=1;break}}}while(0);return m=Ln,s|0}function NF(e){return e=e|0,0}function FF(e){e=e|0}function Y0(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]&32||KF(n,r,e)|0}function B8(e){e=e|0;var n=0,r=0,u=0;if(r=t[e>>2]|0,u=(c[r>>0]|0)+-48|0,u>>>0<10){n=0;do n=u+(n*10|0)|0,r=r+1|0,t[e>>2]=r,u=(c[r>>0]|0)+-48|0;while(u>>>0<10)}else n=0;return n|0}function U8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;e:do if(n>>>0<=20)do switch(n|0){case 9:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,t[e>>2]=n;break e}case 10:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=((n|0)<0)<<31>>31;break e}case 11:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=0;break e}case 12:{u=(t[r>>2]|0)+(8-1)&~(8-1),n=u,l=t[n>>2]|0,n=t[n+4>>2]|0,t[r>>2]=u+8,u=e,t[u>>2]=l,t[u+4>>2]=n;break e}case 13:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&65535)<<16>>16,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 14:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&65535,t[l+4>>2]=0;break e}case 15:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&255)<<24>>24,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 16:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&255,t[l+4>>2]=0;break e}case 17:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+B[l>>3],t[r>>2]=l+8,B[e>>3]=s;break e}case 18:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+B[l>>3],t[r>>2]=l+8,B[e>>3]=s;break e}default:break e}while(0);while(0)}function PF(e,n,r,u){if(e=e|0,n=n|0,r=r|0,u=u|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,c[r>>0]=M[5694+(e&15)>>0]|0|u,e=A_(e|0,n|0,4)|0,n=tt;while(!((e|0)==0&(n|0)==0));return r|0}function IF(e,n,r){if(e=e|0,n=n|0,r=r|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,c[r>>0]=e&7|48,e=A_(e|0,n|0,3)|0,n=tt;while(!((e|0)==0&(n|0)==0));return r|0}function Bv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if(n>>>0>0|(n|0)==0&e>>>0>4294967295){for(;u=$E(e|0,n|0,10,0)|0,r=r+-1|0,c[r>>0]=u&255|48,u=e,e=ZE(e|0,n|0,10,0)|0,n>>>0>9|(n|0)==9&u>>>0>4294967295;)n=tt;n=e}else n=e;if(n)for(;r=r+-1|0,c[r>>0]=(n>>>0)%10|0|48,!(n>>>0<10);)n=(n>>>0)/10|0;return r|0}function bF(e){return e=e|0,WF(e,t[(qF()|0)+188>>2]|0)|0}function BF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;s=n&255,u=(r|0)!=0;e:do if(u&(e&3|0)!=0)for(l=n&255;;){if((c[e>>0]|0)==l<<24>>24){h=6;break e}if(e=e+1|0,r=r+-1|0,u=(r|0)!=0,!(u&(e&3|0)!=0)){h=5;break}}else h=5;while(0);(h|0)==5&&(u?h=6:r=0);e:do if((h|0)==6&&(l=n&255,(c[e>>0]|0)!=l<<24>>24)){u=lr(s,16843009)|0;t:do if(r>>>0>3){for(;s=t[e>>2]^u,!((s&-2139062144^-2139062144)&s+-16843009|0);)if(e=e+4|0,r=r+-4|0,r>>>0<=3){h=11;break t}}else h=11;while(0);if((h|0)==11&&!r){r=0;break}for(;;){if((c[e>>0]|0)==l<<24>>24)break e;if(e=e+1|0,r=r+-1|0,!r){r=0;break}}}while(0);return(r|0?e:0)|0}function _l(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0;if(h=m,m=m+256|0,s=h,(r|0)>(u|0)&(l&73728|0)==0){if(l=r-u|0,jv(s|0,n|0,(l>>>0<256?l:256)|0)|0,l>>>0>255){n=r-u|0;do Y0(e,s,256),l=l+-256|0;while(l>>>0>255);l=n&255}Y0(e,s,l)}m=h}function j8(e,n){return e=e|0,n=n|0,e?e=zF(e,n,0)|0:e=0,e|0}function UF(e,n,r,u,l,s){e=e|0,n=+n,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0,ye=0,Ze=0,Ge=0,ft=0,Me=0,Pe=0,Zt=0,Br=0,In=0,gn=0,_r=0,Pr=0,Ln=0,uu=0;uu=m,m=m+560|0,S=uu+8|0,Ze=uu,Ln=uu+524|0,Pr=Ln,L=uu+512|0,t[Ze>>2]=0,_r=L+12|0,z8(n)|0,(tt|0)<0?(n=-n,In=1,Br=5659):(In=(l&2049|0)!=0&1,Br=(l&2048|0)==0?(l&1|0)==0?5660:5665:5662),z8(n)|0,gn=tt&2146435072;do if(gn>>>0<2146435072|(gn|0)==2146435072&0<0){if(Be=+jF(n,Ze)*2,h=Be!=0,h&&(t[Ze>>2]=(t[Ze>>2]|0)+-1),ft=s|32,(ft|0)==97){Te=s&32,K=(Te|0)==0?Br:Br+9|0,I=In|2,h=12-u|0;do if(u>>>0>11|(h|0)==0)n=Be;else{n=8;do h=h+-1|0,n=n*16;while((h|0)!=0);if((c[K>>0]|0)==45){n=-(n+(-Be-n));break}else{n=Be+n-n;break}}while(0);D=t[Ze>>2]|0,h=(D|0)<0?0-D|0:D,h=Bv(h,((h|0)<0)<<31>>31,_r)|0,(h|0)==(_r|0)&&(h=L+11|0,c[h>>0]=48),c[h+-1>>0]=(D>>31&2)+43,k=h+-2|0,c[k>>0]=s+15,L=(u|0)<1,S=(l&8|0)==0,h=Ln;do gn=~~n,D=h+1|0,c[h>>0]=M[5694+gn>>0]|Te,n=(n-+(gn|0))*16,((D-Pr|0)==1?!(S&(L&n==0)):0)?(c[D>>0]=46,h=h+2|0):h=D;while(n!=0);gn=h-Pr|0,Pr=_r-k|0,_r=(u|0)!=0&(gn+-2|0)<(u|0)?u+2|0:gn,h=Pr+I+_r|0,_l(e,32,r,h,l),Y0(e,K,I),_l(e,48,r,h,l^65536),Y0(e,Ln,gn),_l(e,48,_r-gn|0,0,0),Y0(e,k,Pr),_l(e,32,r,h,l^8192);break}D=(u|0)<0?6:u,h?(h=(t[Ze>>2]|0)+-28|0,t[Ze>>2]=h,n=Be*268435456):(n=Be,h=t[Ze>>2]|0),gn=(h|0)<0?S:S+288|0,S=gn;do Pe=~~n>>>0,t[S>>2]=Pe,S=S+4|0,n=(n-+(Pe>>>0))*1e9;while(n!=0);if((h|0)>0)for(L=gn,I=S;;){if(k=(h|0)<29?h:29,h=I+-4|0,h>>>0>=L>>>0){S=0;do Me=Y8(t[h>>2]|0,0,k|0)|0,Me=JE(Me|0,tt|0,S|0,0)|0,Pe=tt,Ge=$E(Me|0,Pe|0,1e9,0)|0,t[h>>2]=Ge,S=ZE(Me|0,Pe|0,1e9,0)|0,h=h+-4|0;while(h>>>0>=L>>>0);S&&(L=L+-4|0,t[L>>2]=S)}for(S=I;!(S>>>0<=L>>>0);)if(h=S+-4|0,!(t[h>>2]|0))S=h;else break;if(h=(t[Ze>>2]|0)-k|0,t[Ze>>2]=h,(h|0)>0)I=S;else break}else L=gn;if((h|0)<0){u=((D+25|0)/9|0)+1|0,ye=(ft|0)==102;do{if(Te=0-h|0,Te=(Te|0)<9?Te:9,L>>>0>>0){k=(1<>>Te,K=0,h=L;do Pe=t[h>>2]|0,t[h>>2]=(Pe>>>Te)+K,K=lr(Pe&k,I)|0,h=h+4|0;while(h>>>0>>0);h=(t[L>>2]|0)==0?L+4|0:L,K?(t[S>>2]=K,L=h,h=S+4|0):(L=h,h=S)}else L=(t[L>>2]|0)==0?L+4|0:L,h=S;S=ye?gn:L,S=(h-S>>2|0)>(u|0)?S+(u<<2)|0:h,h=(t[Ze>>2]|0)+Te|0,t[Ze>>2]=h}while((h|0)<0);h=L,u=S}else h=L,u=S;if(Pe=gn,h>>>0>>0){if(S=(Pe-h>>2)*9|0,k=t[h>>2]|0,k>>>0>=10){L=10;do L=L*10|0,S=S+1|0;while(k>>>0>=L>>>0)}}else S=0;if(ye=(ft|0)==103,Ge=(D|0)!=0,L=D-((ft|0)!=102?S:0)+((Ge&ye)<<31>>31)|0,(L|0)<(((u-Pe>>2)*9|0)+-9|0)){if(L=L+9216|0,Te=gn+4+(((L|0)/9|0)+-1024<<2)|0,L=((L|0)%9|0)+1|0,(L|0)<9){k=10;do k=k*10|0,L=L+1|0;while((L|0)!=9)}else k=10;if(I=t[Te>>2]|0,K=(I>>>0)%(k>>>0)|0,L=(Te+4|0)==(u|0),L&(K|0)==0)L=Te;else if(Be=(((I>>>0)/(k>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,Me=(k|0)/2|0,n=K>>>0>>0?.5:L&(K|0)==(Me|0)?1:1.5,In&&(Me=(c[Br>>0]|0)==45,n=Me?-n:n,Be=Me?-Be:Be),L=I-K|0,t[Te>>2]=L,Be+n!=Be){if(Me=L+k|0,t[Te>>2]=Me,Me>>>0>999999999)for(S=Te;L=S+-4|0,t[S>>2]=0,L>>>0>>0&&(h=h+-4|0,t[h>>2]=0),Me=(t[L>>2]|0)+1|0,t[L>>2]=Me,Me>>>0>999999999;)S=L;else L=Te;if(S=(Pe-h>>2)*9|0,I=t[h>>2]|0,I>>>0>=10){k=10;do k=k*10|0,S=S+1|0;while(I>>>0>=k>>>0)}}else L=Te;L=L+4|0,L=u>>>0>L>>>0?L:u,Me=h}else L=u,Me=h;for(ft=L;;){if(ft>>>0<=Me>>>0){Ze=0;break}if(h=ft+-4|0,!(t[h>>2]|0))ft=h;else{Ze=1;break}}u=0-S|0;do if(ye)if(h=((Ge^1)&1)+D|0,(h|0)>(S|0)&(S|0)>-5?(k=s+-1|0,D=h+-1-S|0):(k=s+-2|0,D=h+-1|0),h=l&8,h)Te=h;else{if(Ze?(Zt=t[ft+-4>>2]|0,(Zt|0)!=0):0)if((Zt>>>0)%10|0)L=0;else{L=0,h=10;do h=h*10|0,L=L+1|0;while(!((Zt>>>0)%(h>>>0)|0|0))}else L=9;if(h=((ft-Pe>>2)*9|0)+-9|0,(k|32|0)==102){Te=h-L|0,Te=(Te|0)>0?Te:0,D=(D|0)<(Te|0)?D:Te,Te=0;break}else{Te=h+S-L|0,Te=(Te|0)>0?Te:0,D=(D|0)<(Te|0)?D:Te,Te=0;break}}else k=s,Te=l&8;while(0);if(ye=D|Te,I=(ye|0)!=0&1,K=(k|32|0)==102,K)Ge=0,h=(S|0)>0?S:0;else{if(h=(S|0)<0?u:S,h=Bv(h,((h|0)<0)<<31>>31,_r)|0,L=_r,(L-h|0)<2)do h=h+-1|0,c[h>>0]=48;while((L-h|0)<2);c[h+-1>>0]=(S>>31&2)+43,h=h+-2|0,c[h>>0]=k,Ge=h,h=L-h|0}if(h=In+1+D+I+h|0,_l(e,32,r,h,l),Y0(e,Br,In),_l(e,48,r,h,l^65536),K){k=Me>>>0>gn>>>0?gn:Me,Te=Ln+9|0,I=Te,K=Ln+8|0,L=k;do{if(S=Bv(t[L>>2]|0,0,Te)|0,(L|0)==(k|0))(S|0)==(Te|0)&&(c[K>>0]=48,S=K);else if(S>>>0>Ln>>>0){jv(Ln|0,48,S-Pr|0)|0;do S=S+-1|0;while(S>>>0>Ln>>>0)}Y0(e,S,I-S|0),L=L+4|0}while(L>>>0<=gn>>>0);if(ye|0&&Y0(e,5710,1),L>>>0>>0&(D|0)>0)for(;;){if(S=Bv(t[L>>2]|0,0,Te)|0,S>>>0>Ln>>>0){jv(Ln|0,48,S-Pr|0)|0;do S=S+-1|0;while(S>>>0>Ln>>>0)}if(Y0(e,S,(D|0)<9?D:9),L=L+4|0,S=D+-9|0,L>>>0>>0&(D|0)>9)D=S;else{D=S;break}}_l(e,48,D+9|0,9,0)}else{if(ye=Ze?ft:Me+4|0,(D|0)>-1){Ze=Ln+9|0,Te=(Te|0)==0,u=Ze,I=0-Pr|0,K=Ln+8|0,k=Me;do{S=Bv(t[k>>2]|0,0,Ze)|0,(S|0)==(Ze|0)&&(c[K>>0]=48,S=K);do if((k|0)==(Me|0)){if(L=S+1|0,Y0(e,S,1),Te&(D|0)<1){S=L;break}Y0(e,5710,1),S=L}else{if(S>>>0<=Ln>>>0)break;jv(Ln|0,48,S+I|0)|0;do S=S+-1|0;while(S>>>0>Ln>>>0)}while(0);Pr=u-S|0,Y0(e,S,(D|0)>(Pr|0)?Pr:D),D=D-Pr|0,k=k+4|0}while(k>>>0>>0&(D|0)>-1)}_l(e,48,D+18|0,18,0),Y0(e,Ge,_r-Ge|0)}_l(e,32,r,h,l^8192)}else Ln=(s&32|0)!=0,h=In+3|0,_l(e,32,r,h,l&-65537),Y0(e,Br,In),Y0(e,n!=n|!1?Ln?5686:5690:Ln?5678:5682,3),_l(e,32,r,h,l^8192);while(0);return m=uu,((h|0)<(r|0)?r:h)|0}function z8(e){e=+e;var n=0;return B[q>>3]=e,n=t[q>>2]|0,tt=t[q+4>>2]|0,n|0}function jF(e,n){return e=+e,n=n|0,+ +H8(e,n)}function H8(e,n){e=+e,n=n|0;var r=0,u=0,l=0;switch(B[q>>3]=e,r=t[q>>2]|0,u=t[q+4>>2]|0,l=A_(r|0,u|0,52)|0,l&2047){case 0:{e!=0?(e=+H8(e*18446744073709552e3,n),r=(t[n>>2]|0)+-64|0):r=0,t[n>>2]=r;break}case 2047:break;default:t[n>>2]=(l&2047)+-1022,t[q>>2]=r,t[q+4>>2]=u&-2146435073|1071644672,e=+B[q>>3]}return+e}function zF(e,n,r){e=e|0,n=n|0,r=r|0;do if(e){if(n>>>0<128){c[e>>0]=n,e=1;break}if(!(t[t[(HF()|0)+188>>2]>>2]|0))if((n&-128|0)==57216){c[e>>0]=n,e=1;break}else{t[(bv()|0)>>2]=84,e=-1;break}if(n>>>0<2048){c[e>>0]=n>>>6|192,c[e+1>>0]=n&63|128,e=2;break}if(n>>>0<55296|(n&-8192|0)==57344){c[e>>0]=n>>>12|224,c[e+1>>0]=n>>>6&63|128,c[e+2>>0]=n&63|128,e=3;break}if((n+-65536|0)>>>0<1048576){c[e>>0]=n>>>18|240,c[e+1>>0]=n>>>12&63|128,c[e+2>>0]=n>>>6&63|128,c[e+3>>0]=n&63|128,e=4;break}else{t[(bv()|0)>>2]=84,e=-1;break}}else e=1;while(0);return e|0}function HF(){return KE()|0}function qF(){return KE()|0}function WF(e,n){e=e|0,n=n|0;var r=0,u=0;for(u=0;;){if((M[5712+u>>0]|0)==(e|0)){e=2;break}if(r=u+1|0,(r|0)==87){r=5800,u=87,e=5;break}else u=r}if((e|0)==2&&(u?(r=5800,e=5):r=5800),(e|0)==5)for(;;){do e=r,r=r+1|0;while((c[e>>0]|0)!=0);if(u=u+-1|0,u)e=5;else break}return VF(r,t[n+20>>2]|0)|0}function VF(e,n){return e=e|0,n=n|0,GF(e,n)|0}function GF(e,n){return e=e|0,n=n|0,n?n=YF(t[n>>2]|0,t[n+4>>2]|0,e)|0:n=0,(n|0?n:e)|0}function YF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0;K=(t[e>>2]|0)+1794895138|0,s=Xp(t[e+8>>2]|0,K)|0,u=Xp(t[e+12>>2]|0,K)|0,l=Xp(t[e+16>>2]|0,K)|0;e:do if((s>>>0>>2>>>0?(I=n-(s<<2)|0,u>>>0>>0&l>>>0>>0):0)?((l|u)&3|0)==0:0){for(I=u>>>2,k=l>>>2,L=0;;){if(D=s>>>1,S=L+D|0,h=S<<1,l=h+I|0,u=Xp(t[e+(l<<2)>>2]|0,K)|0,l=Xp(t[e+(l+1<<2)>>2]|0,K)|0,!(l>>>0>>0&u>>>0<(n-l|0)>>>0)){u=0;break e}if(c[e+(l+u)>>0]|0){u=0;break e}if(u=I8(r,e+l|0)|0,!u)break;if(u=(u|0)<0,(s|0)==1){u=0;break e}else L=u?L:S,s=u?D:s-D|0}u=h+k|0,l=Xp(t[e+(u<<2)>>2]|0,K)|0,u=Xp(t[e+(u+1<<2)>>2]|0,K)|0,u>>>0>>0&l>>>0<(n-u|0)>>>0?u=(c[e+(u+l)>>0]|0)==0?e+u|0:0:u=0}else u=0;while(0);return u|0}function Xp(e,n){e=e|0,n=n|0;var r=0;return r=Q8(e|0)|0,((n|0)==0?e:r)|0}function KF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=r+16|0,l=t[u>>2]|0,l?s=5:XF(r)|0?u=0:(l=t[u>>2]|0,s=5);e:do if((s|0)==5){if(D=r+20|0,h=t[D>>2]|0,u=h,(l-h|0)>>>0>>0){u=M_[t[r+36>>2]&7](r,e,n)|0;break}t:do if((c[r+75>>0]|0)>-1){for(h=n;;){if(!h){s=0,l=e;break t}if(l=h+-1|0,(c[e+l>>0]|0)==10)break;h=l}if(u=M_[t[r+36>>2]&7](r,e,h)|0,u>>>0>>0)break e;s=h,l=e+h|0,n=n-h|0,u=t[D>>2]|0}else s=0,l=e;while(0);gr(u|0,l|0,n|0)|0,t[D>>2]=(t[D>>2]|0)+n,u=s+n|0}while(0);return u|0}function XF(e){e=e|0;var n=0,r=0;return n=e+74|0,r=c[n>>0]|0,c[n>>0]=r+255|r,n=t[e>>2]|0,n&8?(t[e>>2]=n|32,e=-1):(t[e+8>>2]=0,t[e+4>>2]=0,r=t[e+44>>2]|0,t[e+28>>2]=r,t[e+20>>2]=r,t[e+16>>2]=r+(t[e+48>>2]|0),e=0),e|0}function Ru(e,n){e=w(e),n=w(n);var r=0,u=0;r=q8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=q8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?n:e;break}else{e=e>2]=e,t[q>>2]|0|0}function Qp(e,n){e=w(e),n=w(n);var r=0,u=0;r=W8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=W8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?e:n;break}else{e=e>2]=e,t[q>>2]|0|0}function QE(e,n){e=w(e),n=w(n);var r=0,u=0,l=0,s=0,h=0,D=0,S=0,L=0;s=(T[q>>2]=e,t[q>>2]|0),D=(T[q>>2]=n,t[q>>2]|0),r=s>>>23&255,h=D>>>23&255,S=s&-2147483648,l=D<<1;e:do if((l|0)!=0?!((r|0)==255|((QF(n)|0)&2147483647)>>>0>2139095040):0){if(u=s<<1,u>>>0<=l>>>0)return n=w(e*w(0)),w((u|0)==(l|0)?n:e);if(r)u=s&8388607|8388608;else{if(r=s<<9,(r|0)>-1){u=r,r=0;do r=r+-1|0,u=u<<1;while((u|0)>-1)}else r=0;u=s<<1-r}if(h)D=D&8388607|8388608;else{if(s=D<<9,(s|0)>-1){l=0;do l=l+-1|0,s=s<<1;while((s|0)>-1)}else l=0;h=l,D=D<<1-l}l=u-D|0,s=(l|0)>-1;t:do if((r|0)>(h|0)){for(;;){if(s)if(l)u=l;else break;if(u=u<<1,r=r+-1|0,l=u-D|0,s=(l|0)>-1,(r|0)<=(h|0))break t}n=w(e*w(0));break e}while(0);if(s)if(l)u=l;else{n=w(e*w(0));break}if(u>>>0<8388608)do u=u<<1,r=r+-1|0;while(u>>>0<8388608);(r|0)>0?r=u+-8388608|r<<23:r=u>>>(1-r|0),n=(t[q>>2]=r|S,w(T[q>>2]))}else L=3;while(0);return(L|0)==3&&(n=w(e*n),n=w(n/n)),w(n)}function QF(e){return e=w(e),T[q>>2]=e,t[q>>2]|0|0}function JF(e,n){return e=e|0,n=n|0,b8(t[582]|0,e,n)|0}function hi(e){e=e|0,$n()}function Uv(e){e=e|0}function ZF(e,n){return e=e|0,n=n|0,0}function $F(e){return e=e|0,(V8(e+4|0)|0)==-1?(P1[t[(t[e>>2]|0)+8>>2]&127](e),e=1):e=0,e|0}function V8(e){e=e|0;var n=0;return n=t[e>>2]|0,t[e>>2]=n+-1,n+-1|0}function t2(e){e=e|0,$F(e)|0&&eP(e)}function eP(e){e=e|0;var n=0;n=e+8|0,((t[n>>2]|0)!=0?(V8(n)|0)!=-1:0)||P1[t[(t[e>>2]|0)+16>>2]&127](e)}function pn(e){e=e|0;var n=0;for(n=(e|0)==0?1:e;e=T_(n)|0,!(e|0);){if(e=nP()|0,!e){e=0;break}oS[e&0]()}return e|0}function G8(e){return e=e|0,pn(e)|0}function _t(e){e=e|0,C_(e)}function tP(e){e=e|0,(c[e+11>>0]|0)<0&&_t(t[e>>2]|0)}function nP(){var e=0;return e=t[2923]|0,t[2923]=e+0,e|0}function rP(){}function R_(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,u=n-u-(r>>>0>e>>>0|0)>>>0,tt=u,e-r>>>0|0|0}function JE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,r=e+r>>>0,tt=n+u+(r>>>0>>0|0)>>>0,r|0|0}function jv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(s=e+r|0,n=n&255,(r|0)>=67){for(;e&3;)c[e>>0]=n,e=e+1|0;for(u=s&-4|0,l=u-64|0,h=n|n<<8|n<<16|n<<24;(e|0)<=(l|0);)t[e>>2]=h,t[e+4>>2]=h,t[e+8>>2]=h,t[e+12>>2]=h,t[e+16>>2]=h,t[e+20>>2]=h,t[e+24>>2]=h,t[e+28>>2]=h,t[e+32>>2]=h,t[e+36>>2]=h,t[e+40>>2]=h,t[e+44>>2]=h,t[e+48>>2]=h,t[e+52>>2]=h,t[e+56>>2]=h,t[e+60>>2]=h,e=e+64|0;for(;(e|0)<(u|0);)t[e>>2]=h,e=e+4|0}for(;(e|0)<(s|0);)c[e>>0]=n,e=e+1|0;return s-r|0}function Y8(e,n,r){return e=e|0,n=n|0,r=r|0,(r|0)<32?(tt=n<>>32-r,e<>>r,e>>>r|(n&(1<>>r-32|0)}function gr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;if((r|0)>=8192)return ai(e|0,n|0,r|0)|0;if(s=e|0,l=e+r|0,(e&3)==(n&3)){for(;e&3;){if(!r)return s|0;c[e>>0]=c[n>>0]|0,e=e+1|0,n=n+1|0,r=r-1|0}for(r=l&-4|0,u=r-64|0;(e|0)<=(u|0);)t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2],t[e+16>>2]=t[n+16>>2],t[e+20>>2]=t[n+20>>2],t[e+24>>2]=t[n+24>>2],t[e+28>>2]=t[n+28>>2],t[e+32>>2]=t[n+32>>2],t[e+36>>2]=t[n+36>>2],t[e+40>>2]=t[n+40>>2],t[e+44>>2]=t[n+44>>2],t[e+48>>2]=t[n+48>>2],t[e+52>>2]=t[n+52>>2],t[e+56>>2]=t[n+56>>2],t[e+60>>2]=t[n+60>>2],e=e+64|0,n=n+64|0;for(;(e|0)<(r|0);)t[e>>2]=t[n>>2],e=e+4|0,n=n+4|0}else for(r=l-4|0;(e|0)<(r|0);)c[e>>0]=c[n>>0]|0,c[e+1>>0]=c[n+1>>0]|0,c[e+2>>0]=c[n+2>>0]|0,c[e+3>>0]=c[n+3>>0]|0,e=e+4|0,n=n+4|0;for(;(e|0)<(l|0);)c[e>>0]=c[n>>0]|0,e=e+1|0,n=n+1|0;return s|0}function K8(e){e=e|0;var n=0;return n=c[ge+(e&255)>>0]|0,(n|0)<8?n|0:(n=c[ge+(e>>8&255)>>0]|0,(n|0)<8?n+8|0:(n=c[ge+(e>>16&255)>>0]|0,(n|0)<8?n+16|0:(c[ge+(e>>>24)>>0]|0)+24|0))}function X8(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,L=0,k=0,I=0,K=0,Be=0,Te=0;if(k=e,S=n,L=S,h=r,K=u,D=K,!L)return s=(l|0)!=0,D?s?(t[l>>2]=e|0,t[l+4>>2]=n&0,K=0,l=0,tt=K,l|0):(K=0,l=0,tt=K,l|0):(s&&(t[l>>2]=(k>>>0)%(h>>>0),t[l+4>>2]=0),K=0,l=(k>>>0)/(h>>>0)>>>0,tt=K,l|0);s=(D|0)==0;do if(h){if(!s){if(s=(Er(D|0)|0)-(Er(L|0)|0)|0,s>>>0<=31){I=s+1|0,D=31-s|0,n=s-31>>31,h=I,e=k>>>(I>>>0)&n|L<>>(I>>>0)&n,s=0,D=k<>2]=e|0,t[l+4>>2]=S|n&0,K=0,l=0,tt=K,l|0):(K=0,l=0,tt=K,l|0)}if(s=h-1|0,s&h|0){D=(Er(h|0)|0)+33-(Er(L|0)|0)|0,Te=64-D|0,I=32-D|0,S=I>>31,Be=D-32|0,n=Be>>31,h=D,e=I-1>>31&L>>>(Be>>>0)|(L<>>(D>>>0))&n,n=n&L>>>(D>>>0),s=k<>>(Be>>>0))&S|k<>31;break}return l|0&&(t[l>>2]=s&k,t[l+4>>2]=0),(h|0)==1?(Be=S|n&0,Te=e|0|0,tt=Be,Te|0):(Te=K8(h|0)|0,Be=L>>>(Te>>>0)|0,Te=L<<32-Te|k>>>(Te>>>0)|0,tt=Be,Te|0)}else{if(s)return l|0&&(t[l>>2]=(L>>>0)%(h>>>0),t[l+4>>2]=0),Be=0,Te=(L>>>0)/(h>>>0)>>>0,tt=Be,Te|0;if(!k)return l|0&&(t[l>>2]=0,t[l+4>>2]=(L>>>0)%(D>>>0)),Be=0,Te=(L>>>0)/(D>>>0)>>>0,tt=Be,Te|0;if(s=D-1|0,!(s&D))return l|0&&(t[l>>2]=e|0,t[l+4>>2]=s&L|n&0),Be=0,Te=L>>>((K8(D|0)|0)>>>0),tt=Be,Te|0;if(s=(Er(D|0)|0)-(Er(L|0)|0)|0,s>>>0<=30){n=s+1|0,D=31-s|0,h=n,e=L<>>(n>>>0),n=L>>>(n>>>0),s=0,D=k<>2]=e|0,t[l+4>>2]=S|n&0,Be=0,Te=0,tt=Be,Te|0):(Be=0,Te=0,tt=Be,Te|0)}while(0);if(!h)L=D,S=0,D=0;else{I=r|0|0,k=K|u&0,L=JE(I|0,k|0,-1,-1)|0,r=tt,S=D,D=0;do u=S,S=s>>>31|S<<1,s=D|s<<1,u=e<<1|u>>>31|0,K=e>>>31|n<<1|0,R_(L|0,r|0,u|0,K|0)|0,Te=tt,Be=Te>>31|((Te|0)<0?-1:0)<<1,D=Be&1,e=R_(u|0,K|0,Be&I|0,(((Te|0)<0?-1:0)>>31|((Te|0)<0?-1:0)<<1)&k|0)|0,n=tt,h=h-1|0;while((h|0)!=0);L=S,S=0}return h=0,l|0&&(t[l>>2]=e,t[l+4>>2]=n),Be=(s|0)>>>31|(L|h)<<1|(h<<1|s>>>31)&0|S,Te=(s<<1|0>>>31)&-2|D,tt=Be,Te|0}function ZE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,X8(e,n,r,u,0)|0}function n2(e){e=e|0;var n=0,r=0;return r=e+15&-16|0,n=t[H>>2]|0,e=n+r|0,(r|0)>0&(e|0)<(n|0)|(e|0)<0?(fr()|0,Jl(12),-1):(t[H>>2]=e,((e|0)>(jr()|0)?(vr()|0)==0:0)?(t[H>>2]=n,Jl(12),-1):n|0)}function ky(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if((n|0)<(e|0)&(e|0)<(n+r|0)){for(u=e,n=n+r|0,e=e+r|0;(r|0)>0;)e=e-1|0,n=n-1|0,r=r-1|0,c[e>>0]=c[n>>0]|0;e=u}else gr(e,n,r)|0;return e|0}function $E(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;return s=m,m=m+16|0,l=s|0,X8(e,n,r,u,l)|0,m=s,tt=t[l+4>>2]|0,t[l>>2]|0|0}function Q8(e){return e=e|0,(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function iP(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,J8[e&1](n|0,r|0,u|0,l|0,s|0)}function uP(e,n,r){e=e|0,n=n|0,r=w(r),Z8[e&1](n|0,w(r))}function oP(e,n,r){e=e|0,n=n|0,r=+r,$8[e&31](n|0,+r)}function lP(e,n,r,u){return e=e|0,n=n|0,r=w(r),u=w(u),w(eS[e&0](n|0,w(r),w(u)))}function sP(e,n){e=e|0,n=n|0,P1[e&127](n|0)}function aP(e,n,r){e=e|0,n=n|0,r=r|0,I1[e&31](n|0,r|0)}function fP(e,n){return e=e|0,n=n|0,Zp[e&31](n|0)|0}function cP(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,tS[e&1](n|0,+r,+u,l|0)}function dP(e,n,r,u){e=e|0,n=n|0,r=+r,u=+u,GP[e&1](n|0,+r,+u)}function pP(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,M_[e&7](n|0,r|0,u|0)|0}function hP(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,+YP[e&1](n|0,r|0,u|0)}function vP(e,n){return e=e|0,n=n|0,+nS[e&15](n|0)}function mP(e,n,r){return e=e|0,n=n|0,r=+r,KP[e&1](n|0,+r)|0}function yP(e,n,r){return e=e|0,n=n|0,r=r|0,tD[e&15](n|0,r|0)|0}function gP(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=+u,l=+l,s=s|0,XP[e&1](n|0,r|0,+u,+l,s|0)}function _P(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,QP[e&1](n|0,r|0,u|0,l|0,s|0,h|0)}function EP(e,n,r){return e=e|0,n=n|0,r=r|0,+rS[e&7](n|0,r|0)}function DP(e){return e=e|0,k_[e&7]()|0}function wP(e,n,r,u,l,s){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,iS[e&1](n|0,r|0,u|0,l|0,s|0)|0}function SP(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=+l,JP[e&1](n|0,r|0,u|0,+l)}function TP(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,uS[e&1](n|0,r|0,w(u),l|0,w(s),h|0)}function CP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,Fy[e&15](n|0,r|0,u|0)}function xP(e){e=e|0,oS[e&0]()}function RP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,lS[e&15](n|0,r|0,+u)}function AP(e,n,r){return e=e|0,n=+n,r=+r,ZP[e&1](+n,+r)|0}function OP(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,nD[e&15](n|0,r|0,u|0,l|0)}function MP(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,jt(0)}function kP(e,n){e=e|0,n=w(n),jt(1)}function ea(e,n){e=e|0,n=+n,jt(2)}function LP(e,n,r){return e=e|0,n=w(n),r=w(r),jt(3),Tt}function Zn(e){e=e|0,jt(4)}function Ly(e,n){e=e|0,n=n|0,jt(5)}function Na(e){return e=e|0,jt(6),0}function NP(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,jt(7)}function FP(e,n,r){e=e|0,n=+n,r=+r,jt(8)}function PP(e,n,r){return e=e|0,n=n|0,r=r|0,jt(9),0}function IP(e,n,r){return e=e|0,n=n|0,r=r|0,jt(10),0}function Jp(e){return e=e|0,jt(11),0}function bP(e,n){return e=e|0,n=+n,jt(12),0}function Ny(e,n){return e=e|0,n=n|0,jt(13),0}function BP(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,jt(14)}function UP(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,jt(15)}function eD(e,n){return e=e|0,n=n|0,jt(16),0}function jP(){return jt(17),0}function zP(e,n,r,u,l){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,jt(18),0}function HP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,jt(19)}function qP(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0,jt(20)}function O_(e,n,r){e=e|0,n=n|0,r=r|0,jt(21)}function WP(){jt(22)}function zv(e,n,r){e=e|0,n=n|0,r=+r,jt(23)}function VP(e,n){return e=+e,n=+n,jt(24),0}function Hv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,jt(25)}var J8=[MP,jM],Z8=[kP,no],$8=[ea,da,Ss,Ts,ns,H0,Df,ol,Wa,ro,wf,Wc,pc,Ol,Cs,pa,od,ha,hc,ea,ea,ea,ea,ea,ea,ea,ea,ea,ea,ea,ea,ea],eS=[LP],P1=[Zn,Uv,cn,us,D0,jf,M1,jl,vO,mO,yO,RM,AM,OM,QN,JN,ZN,Ne,cc,ja,Gu,zo,yh,Tf,r1,Ff,Da,kh,ym,g1,_1,Zh,mp,Pd,jm,C1,Oc,Jm,ey,xv,Mv,on,$4,fE,p_,Nt,xu,to,OR,VR,fA,AA,qA,f7,E7,S7,j7,q7,oO,_O,wO,UO,rM,_d,Bk,vL,ML,VL,hN,ON,jN,qN,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn,Zn],I1=[Ly,D2,rd,qc,Rl,ul,w2,Ws,Al,za,Ha,qa,Ml,ze,lt,$t,Wn,si,ur,Va,T2,_h,pE,gE,LA,zk,cM,D8,Ly,Ly,Ly,Ly],Zp=[Na,RF,Ef,y,J,de,gt,xt,Lt,xr,du,Ho,Ga,ld,Xc,ks,YA,HO,Vk,Ma,Na,Na,Na,Na,Na,Na,Na,Na,Na,Na,Na,Na],tS=[NP,R2],GP=[FP,aO],M_=[PP,P8,AF,kF,Wh,vv,NR,QL],YP=[IP,fv],nS=[Jp,uo,Ve,ci,gh,al,va,A2,O2,vc,Jp,Jp,Jp,Jp,Jp,Jp],KP=[bP,y7],tD=[Ny,ZF,S2,dl,W2,xm,dp,Ap,ty,kr,j0,FL,Ny,Ny,Ny,Ny],XP=[BP,xh],QP=[UP,gN],rS=[eD,Qi,M2,pd,Qc,ml,eD,eD],k_=[jP,Jc,u0,wo,R7,Y7,xO,YN],iS=[zP,li],JP=[HP,vy],uS=[qP,sd],Fy=[O_,R,io,Gr,Cu,m1,Fd,ar,_y,m0,ak,_L,NN,O_,O_,O_],oS=[WP],lS=[zv,id,y0,ud,z0,Vc,qi,g,jp,XR,p7,zv,zv,zv,zv,zv],ZP=[VP,pO],nD=[Hv,wp,Fc,hA,n7,N7,$7,NO,sM,Jk,iF,Hv,Hv,Hv,Hv,Hv];return{_llvm_bswap_i32:Q8,dynCall_idd:AP,dynCall_i:DP,_i64Subtract:R_,___udivdi3:ZE,dynCall_vif:uP,setThrew:ms,dynCall_viii:CP,_bitshift64Lshr:A_,_bitshift64Shl:Y8,dynCall_vi:sP,dynCall_viiddi:gP,dynCall_diii:hP,dynCall_iii:yP,_memset:jv,_sbrk:n2,_memcpy:gr,__GLOBAL__sub_I_Yoga_cpp:ru,dynCall_vii:aP,___uremdi3:$E,dynCall_vid:oP,stackAlloc:d0,_nbind_init:vF,getTempRet0:Q,dynCall_di:vP,dynCall_iid:mP,setTempRet0:Bo,_i64Add:JE,dynCall_fiff:lP,dynCall_iiii:pP,_emscripten_get_global_libc:xF,dynCall_viid:RP,dynCall_viiid:SP,dynCall_viififi:TP,dynCall_ii:fP,__GLOBAL__sub_I_Binding_cc:Mk,dynCall_viiii:OP,dynCall_iiiiii:wP,stackSave:nl,dynCall_viiiii:iP,__GLOBAL__sub_I_nbind_cc:Vs,dynCall_vidd:dP,_free:C_,runPostSets:rP,dynCall_viiiiii:_P,establishStackSpace:ju,_memmove:ky,stackRestore:Zl,_malloc:T_,__GLOBAL__sub_I_common_cc:QO,dynCall_viddi:cP,dynCall_dii:EP,dynCall_v:xP}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function i(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=i)},Module.callMain=Module.callMain=function(o){o=o||[],ensureInitRuntime();var a=o.length+1;function c(){for(var O=0;O<4-1;O++)_.push(0)}var _=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];c();for(var t=0;t0||(preRun(),runDependencies>0)||Module.calledRun)return;function o(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(i),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),o()},1)):o()}Module.run=Module.run=run;function exit(i,o){o&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=i,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(i)),ENVIRONMENT_IS_NODE&&process.exit(i),Module.quit(i,new ExitStatus(i)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(i){Module.onAbort&&Module.onAbort(i),i!==void 0?(Module.print(i),Module.printErr(i),i=JSON.stringify(i)):i="",ABORT=!0,EXITSTATUS=1;var o=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,a="abort("+i+") at "+stackTrace()+o;throw abortDecorators&&abortDecorators.forEach(function(c){a=c(a,i)}),a}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var eh=Ke((VW,ST)=>{"use strict";var WI=DT(),VI=wT(),UD=!1,jD=null;VI({},function(i,o){if(!UD){if(UD=!0,i)throw i;jD=o}});if(!UD)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");ST.exports=WI(jD.bind,jD.lib)});var CT=Ke((GW,TT)=>{"use strict";TT.exports=({onlyFirst:i=!1}={})=>{let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i?void 0:"g")}});var zD=Ke((YW,xT)=>{"use strict";var GI=CT();xT.exports=i=>typeof i=="string"?i.replace(GI(),""):i});var qD=Ke((KW,HD)=>{"use strict";var RT=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);HD.exports=RT;HD.exports.default=RT});var OT=Ke((XW,AT)=>{"use strict";AT.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Z_=Ke((QW,WD)=>{"use strict";var YI=zD(),KI=qD(),XI=OT(),MT=i=>{if(i=i.replace(XI()," "),typeof i!="string"||i.length===0)return 0;i=YI(i);let o=0;for(let a=0;a=127&&c<=159||c>=768&&c<=879||(c>65535&&a++,o+=KI(c)?2:1)}return o};WD.exports=MT;WD.exports.default=MT});var GD=Ke((JW,VD)=>{"use strict";var QI=Z_(),kT=i=>{let o=0;for(let a of i.split(` +`))o=Math.max(o,QI(a));return o};VD.exports=kT;VD.exports.default=kT});var LT=Ke(Jy=>{"use strict";var JI=Jy&&Jy.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Jy,"__esModule",{value:!0});var ZI=JI(GD()),YD={};Jy.default=i=>{if(i.length===0)return{width:0,height:0};if(YD[i])return YD[i];let o=ZI.default(i),a=i.split(` +`).length;return YD[i]={width:o,height:a},{width:o,height:a}}});var NT=Ke(Zy=>{"use strict";var $I=Zy&&Zy.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Zy,"__esModule",{value:!0});var Vi=$I(eh()),eb=(i,o)=>{"position"in o&&i.setPositionType(o.position==="absolute"?Vi.default.POSITION_TYPE_ABSOLUTE:Vi.default.POSITION_TYPE_RELATIVE)},tb=(i,o)=>{"marginLeft"in o&&i.setMargin(Vi.default.EDGE_START,o.marginLeft||0),"marginRight"in o&&i.setMargin(Vi.default.EDGE_END,o.marginRight||0),"marginTop"in o&&i.setMargin(Vi.default.EDGE_TOP,o.marginTop||0),"marginBottom"in o&&i.setMargin(Vi.default.EDGE_BOTTOM,o.marginBottom||0)},nb=(i,o)=>{"paddingLeft"in o&&i.setPadding(Vi.default.EDGE_LEFT,o.paddingLeft||0),"paddingRight"in o&&i.setPadding(Vi.default.EDGE_RIGHT,o.paddingRight||0),"paddingTop"in o&&i.setPadding(Vi.default.EDGE_TOP,o.paddingTop||0),"paddingBottom"in o&&i.setPadding(Vi.default.EDGE_BOTTOM,o.paddingBottom||0)},rb=(i,o)=>{var a;"flexGrow"in o&&i.setFlexGrow((a=o.flexGrow)!==null&&a!==void 0?a:0),"flexShrink"in o&&i.setFlexShrink(typeof o.flexShrink=="number"?o.flexShrink:1),"flexDirection"in o&&(o.flexDirection==="row"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_ROW),o.flexDirection==="row-reverse"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_ROW_REVERSE),o.flexDirection==="column"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_COLUMN),o.flexDirection==="column-reverse"&&i.setFlexDirection(Vi.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in o&&(typeof o.flexBasis=="number"?i.setFlexBasis(o.flexBasis):typeof o.flexBasis=="string"?i.setFlexBasisPercent(Number.parseInt(o.flexBasis,10)):i.setFlexBasis(NaN)),"alignItems"in o&&((o.alignItems==="stretch"||!o.alignItems)&&i.setAlignItems(Vi.default.ALIGN_STRETCH),o.alignItems==="flex-start"&&i.setAlignItems(Vi.default.ALIGN_FLEX_START),o.alignItems==="center"&&i.setAlignItems(Vi.default.ALIGN_CENTER),o.alignItems==="flex-end"&&i.setAlignItems(Vi.default.ALIGN_FLEX_END)),"alignSelf"in o&&((o.alignSelf==="auto"||!o.alignSelf)&&i.setAlignSelf(Vi.default.ALIGN_AUTO),o.alignSelf==="flex-start"&&i.setAlignSelf(Vi.default.ALIGN_FLEX_START),o.alignSelf==="center"&&i.setAlignSelf(Vi.default.ALIGN_CENTER),o.alignSelf==="flex-end"&&i.setAlignSelf(Vi.default.ALIGN_FLEX_END)),"justifyContent"in o&&((o.justifyContent==="flex-start"||!o.justifyContent)&&i.setJustifyContent(Vi.default.JUSTIFY_FLEX_START),o.justifyContent==="center"&&i.setJustifyContent(Vi.default.JUSTIFY_CENTER),o.justifyContent==="flex-end"&&i.setJustifyContent(Vi.default.JUSTIFY_FLEX_END),o.justifyContent==="space-between"&&i.setJustifyContent(Vi.default.JUSTIFY_SPACE_BETWEEN),o.justifyContent==="space-around"&&i.setJustifyContent(Vi.default.JUSTIFY_SPACE_AROUND))},ib=(i,o)=>{var a,c;"width"in o&&(typeof o.width=="number"?i.setWidth(o.width):typeof o.width=="string"?i.setWidthPercent(Number.parseInt(o.width,10)):i.setWidthAuto()),"height"in o&&(typeof o.height=="number"?i.setHeight(o.height):typeof o.height=="string"?i.setHeightPercent(Number.parseInt(o.height,10)):i.setHeightAuto()),"minWidth"in o&&(typeof o.minWidth=="string"?i.setMinWidthPercent(Number.parseInt(o.minWidth,10)):i.setMinWidth((a=o.minWidth)!==null&&a!==void 0?a:0)),"minHeight"in o&&(typeof o.minHeight=="string"?i.setMinHeightPercent(Number.parseInt(o.minHeight,10)):i.setMinHeight((c=o.minHeight)!==null&&c!==void 0?c:0))},ub=(i,o)=>{"display"in o&&i.setDisplay(o.display==="flex"?Vi.default.DISPLAY_FLEX:Vi.default.DISPLAY_NONE)},ob=(i,o)=>{if("borderStyle"in o){let a=typeof o.borderStyle=="string"?1:0;i.setBorder(Vi.default.EDGE_TOP,a),i.setBorder(Vi.default.EDGE_BOTTOM,a),i.setBorder(Vi.default.EDGE_LEFT,a),i.setBorder(Vi.default.EDGE_RIGHT,a)}};Zy.default=(i,o={})=>{eb(i,o),tb(i,o),nb(i,o),rb(i,o),ib(i,o),ub(i,o),ob(i,o)}});var PT=Ke((eV,FT)=>{"use strict";FT.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var KD=Ke((tV,IT)=>{var $y=PT(),bT={};for(let i of Object.keys($y))bT[$y[i]]=i;var zn={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};IT.exports=zn;for(let i of Object.keys(zn)){if(!("channels"in zn[i]))throw new Error("missing channels property: "+i);if(!("labels"in zn[i]))throw new Error("missing channel labels property: "+i);if(zn[i].labels.length!==zn[i].channels)throw new Error("channel and label counts mismatch: "+i);let{channels:o,labels:a}=zn[i];delete zn[i].channels,delete zn[i].labels,Object.defineProperty(zn[i],"channels",{value:o}),Object.defineProperty(zn[i],"labels",{value:a})}zn.rgb.hsl=function(i){let o=i[0]/255,a=i[1]/255,c=i[2]/255,_=Math.min(o,a,c),t=Math.max(o,a,c),M=t-_,N,O;t===_?N=0:o===t?N=(a-c)/M:a===t?N=2+(c-o)/M:c===t&&(N=4+(o-a)/M),N=Math.min(N*60,360),N<0&&(N+=360);let T=(_+t)/2;return t===_?O=0:T<=.5?O=M/(t+_):O=M/(2-t-_),[N,O*100,T*100]};zn.rgb.hsv=function(i){let o,a,c,_,t,M=i[0]/255,N=i[1]/255,O=i[2]/255,T=Math.max(M,N,O),B=T-Math.min(M,N,O),H=function(q){return(T-q)/6/B+1/2};return B===0?(_=0,t=0):(t=B/T,o=H(M),a=H(N),c=H(O),M===T?_=c-a:N===T?_=1/3+o-c:O===T&&(_=2/3+a-o),_<0?_+=1:_>1&&(_-=1)),[_*360,t*100,T*100]};zn.rgb.hwb=function(i){let o=i[0],a=i[1],c=i[2],_=zn.rgb.hsl(i)[0],t=1/255*Math.min(o,Math.min(a,c));return c=1-1/255*Math.max(o,Math.max(a,c)),[_,t*100,c*100]};zn.rgb.cmyk=function(i){let o=i[0]/255,a=i[1]/255,c=i[2]/255,_=Math.min(1-o,1-a,1-c),t=(1-o-_)/(1-_)||0,M=(1-a-_)/(1-_)||0,N=(1-c-_)/(1-_)||0;return[t*100,M*100,N*100,_*100]};function lb(i,o){return(i[0]-o[0])**2+(i[1]-o[1])**2+(i[2]-o[2])**2}zn.rgb.keyword=function(i){let o=bT[i];if(o)return o;let a=Infinity,c;for(let _ of Object.keys($y)){let t=$y[_],M=lb(i,t);M.04045?((o+.055)/1.055)**2.4:o/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92,c=c>.04045?((c+.055)/1.055)**2.4:c/12.92;let _=o*.4124+a*.3576+c*.1805,t=o*.2126+a*.7152+c*.0722,M=o*.0193+a*.1192+c*.9505;return[_*100,t*100,M*100]};zn.rgb.lab=function(i){let o=zn.rgb.xyz(i),a=o[0],c=o[1],_=o[2];a/=95.047,c/=100,_/=108.883,a=a>.008856?a**(1/3):7.787*a+16/116,c=c>.008856?c**(1/3):7.787*c+16/116,_=_>.008856?_**(1/3):7.787*_+16/116;let t=116*c-16,M=500*(a-c),N=200*(c-_);return[t,M,N]};zn.hsl.rgb=function(i){let o=i[0]/360,a=i[1]/100,c=i[2]/100,_,t,M;if(a===0)return M=c*255,[M,M,M];c<.5?_=c*(1+a):_=c+a-c*a;let N=2*c-_,O=[0,0,0];for(let T=0;T<3;T++)t=o+1/3*-(T-1),t<0&&t++,t>1&&t--,6*t<1?M=N+(_-N)*6*t:2*t<1?M=_:3*t<2?M=N+(_-N)*(2/3-t)*6:M=N,O[T]=M*255;return O};zn.hsl.hsv=function(i){let o=i[0],a=i[1]/100,c=i[2]/100,_=a,t=Math.max(c,.01);c*=2,a*=c<=1?c:2-c,_*=t<=1?t:2-t;let M=(c+a)/2,N=c===0?2*_/(t+_):2*a/(c+a);return[o,N*100,M*100]};zn.hsv.rgb=function(i){let o=i[0]/60,a=i[1]/100,c=i[2]/100,_=Math.floor(o)%6,t=o-Math.floor(o),M=255*c*(1-a),N=255*c*(1-a*t),O=255*c*(1-a*(1-t));switch(c*=255,_){case 0:return[c,O,M];case 1:return[N,c,M];case 2:return[M,c,O];case 3:return[M,N,c];case 4:return[O,M,c];case 5:return[c,M,N]}};zn.hsv.hsl=function(i){let o=i[0],a=i[1]/100,c=i[2]/100,_=Math.max(c,.01),t,M;M=(2-a)*c;let N=(2-a)*_;return t=a*_,t/=N<=1?N:2-N,t=t||0,M/=2,[o,t*100,M*100]};zn.hwb.rgb=function(i){let o=i[0]/360,a=i[1]/100,c=i[2]/100,_=a+c,t;_>1&&(a/=_,c/=_);let M=Math.floor(6*o),N=1-c;t=6*o-M,(M&1)!=0&&(t=1-t);let O=a+t*(N-a),T,B,H;switch(M){default:case 6:case 0:T=N,B=O,H=a;break;case 1:T=O,B=N,H=a;break;case 2:T=a,B=N,H=O;break;case 3:T=a,B=O,H=N;break;case 4:T=O,B=a,H=N;break;case 5:T=N,B=a,H=O;break}return[T*255,B*255,H*255]};zn.cmyk.rgb=function(i){let o=i[0]/100,a=i[1]/100,c=i[2]/100,_=i[3]/100,t=1-Math.min(1,o*(1-_)+_),M=1-Math.min(1,a*(1-_)+_),N=1-Math.min(1,c*(1-_)+_);return[t*255,M*255,N*255]};zn.xyz.rgb=function(i){let o=i[0]/100,a=i[1]/100,c=i[2]/100,_,t,M;return _=o*3.2406+a*-1.5372+c*-.4986,t=o*-.9689+a*1.8758+c*.0415,M=o*.0557+a*-.204+c*1.057,_=_>.0031308?1.055*_**(1/2.4)-.055:_*12.92,t=t>.0031308?1.055*t**(1/2.4)-.055:t*12.92,M=M>.0031308?1.055*M**(1/2.4)-.055:M*12.92,_=Math.min(Math.max(0,_),1),t=Math.min(Math.max(0,t),1),M=Math.min(Math.max(0,M),1),[_*255,t*255,M*255]};zn.xyz.lab=function(i){let o=i[0],a=i[1],c=i[2];o/=95.047,a/=100,c/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,c=c>.008856?c**(1/3):7.787*c+16/116;let _=116*a-16,t=500*(o-a),M=200*(a-c);return[_,t,M]};zn.lab.xyz=function(i){let o=i[0],a=i[1],c=i[2],_,t,M;t=(o+16)/116,_=a/500+t,M=t-c/200;let N=t**3,O=_**3,T=M**3;return t=N>.008856?N:(t-16/116)/7.787,_=O>.008856?O:(_-16/116)/7.787,M=T>.008856?T:(M-16/116)/7.787,_*=95.047,t*=100,M*=108.883,[_,t,M]};zn.lab.lch=function(i){let o=i[0],a=i[1],c=i[2],_;_=Math.atan2(c,a)*360/2/Math.PI,_<0&&(_+=360);let M=Math.sqrt(a*a+c*c);return[o,M,_]};zn.lch.lab=function(i){let o=i[0],a=i[1],_=i[2]/360*2*Math.PI,t=a*Math.cos(_),M=a*Math.sin(_);return[o,t,M]};zn.rgb.ansi16=function(i,o=null){let[a,c,_]=i,t=o===null?zn.rgb.hsv(i)[2]:o;if(t=Math.round(t/50),t===0)return 30;let M=30+(Math.round(_/255)<<2|Math.round(c/255)<<1|Math.round(a/255));return t===2&&(M+=60),M};zn.hsv.ansi16=function(i){return zn.rgb.ansi16(zn.hsv.rgb(i),i[2])};zn.rgb.ansi256=function(i){let o=i[0],a=i[1],c=i[2];return o===a&&a===c?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(a/255*5)+Math.round(c/255*5)};zn.ansi16.rgb=function(i){let o=i%10;if(o===0||o===7)return i>50&&(o+=3.5),o=o/10.5*255,[o,o,o];let a=(~~(i>50)+1)*.5,c=(o&1)*a*255,_=(o>>1&1)*a*255,t=(o>>2&1)*a*255;return[c,_,t]};zn.ansi256.rgb=function(i){if(i>=232){let t=(i-232)*10+8;return[t,t,t]}i-=16;let o,a=Math.floor(i/36)/5*255,c=Math.floor((o=i%36)/6)/5*255,_=o%6/5*255;return[a,c,_]};zn.rgb.hex=function(i){let a=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(a.length)+a};zn.hex.rgb=function(i){let o=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!o)return[0,0,0];let a=o[0];o[0].length===3&&(a=a.split("").map(N=>N+N).join(""));let c=parseInt(a,16),_=c>>16&255,t=c>>8&255,M=c&255;return[_,t,M]};zn.rgb.hcg=function(i){let o=i[0]/255,a=i[1]/255,c=i[2]/255,_=Math.max(Math.max(o,a),c),t=Math.min(Math.min(o,a),c),M=_-t,N,O;return M<1?N=t/(1-M):N=0,M<=0?O=0:_===o?O=(a-c)/M%6:_===a?O=2+(c-o)/M:O=4+(o-a)/M,O/=6,O%=1,[O*360,M*100,N*100]};zn.hsl.hcg=function(i){let o=i[1]/100,a=i[2]/100,c=a<.5?2*o*a:2*o*(1-a),_=0;return c<1&&(_=(a-.5*c)/(1-c)),[i[0],c*100,_*100]};zn.hsv.hcg=function(i){let o=i[1]/100,a=i[2]/100,c=o*a,_=0;return c<1&&(_=(a-c)/(1-c)),[i[0],c*100,_*100]};zn.hcg.rgb=function(i){let o=i[0]/360,a=i[1]/100,c=i[2]/100;if(a===0)return[c*255,c*255,c*255];let _=[0,0,0],t=o%1*6,M=t%1,N=1-M,O=0;switch(Math.floor(t)){case 0:_[0]=1,_[1]=M,_[2]=0;break;case 1:_[0]=N,_[1]=1,_[2]=0;break;case 2:_[0]=0,_[1]=1,_[2]=M;break;case 3:_[0]=0,_[1]=N,_[2]=1;break;case 4:_[0]=M,_[1]=0,_[2]=1;break;default:_[0]=1,_[1]=0,_[2]=N}return O=(1-a)*c,[(a*_[0]+O)*255,(a*_[1]+O)*255,(a*_[2]+O)*255]};zn.hcg.hsv=function(i){let o=i[1]/100,a=i[2]/100,c=o+a*(1-o),_=0;return c>0&&(_=o/c),[i[0],_*100,c*100]};zn.hcg.hsl=function(i){let o=i[1]/100,c=i[2]/100*(1-o)+.5*o,_=0;return c>0&&c<.5?_=o/(2*c):c>=.5&&c<1&&(_=o/(2*(1-c))),[i[0],_*100,c*100]};zn.hcg.hwb=function(i){let o=i[1]/100,a=i[2]/100,c=o+a*(1-o);return[i[0],(c-o)*100,(1-c)*100]};zn.hwb.hcg=function(i){let o=i[1]/100,a=i[2]/100,c=1-a,_=c-o,t=0;return _<1&&(t=(c-_)/(1-_)),[i[0],_*100,t*100]};zn.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]};zn.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]};zn.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]};zn.gray.hsl=function(i){return[0,0,i[0]]};zn.gray.hsv=zn.gray.hsl;zn.gray.hwb=function(i){return[0,100,i[0]]};zn.gray.cmyk=function(i){return[0,0,0,i[0]]};zn.gray.lab=function(i){return[i[0],0,0]};zn.gray.hex=function(i){let o=Math.round(i[0]/100*255)&255,c=((o<<16)+(o<<8)+o).toString(16).toUpperCase();return"000000".substring(c.length)+c};zn.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]}});var UT=Ke((nV,BT)=>{var $_=KD();function sb(){let i={},o=Object.keys($_);for(let a=o.length,c=0;c{var XD=KD(),db=UT(),Qv={},pb=Object.keys(XD);function hb(i){let o=function(...a){let c=a[0];return c==null?c:(c.length>1&&(a=c),i(a))};return"conversion"in i&&(o.conversion=i.conversion),o}function vb(i){let o=function(...a){let c=a[0];if(c==null)return c;c.length>1&&(a=c);let _=i(a);if(typeof _=="object")for(let t=_.length,M=0;M{Qv[i]={},Object.defineProperty(Qv[i],"channels",{value:XD[i].channels}),Object.defineProperty(Qv[i],"labels",{value:XD[i].labels});let o=db(i);Object.keys(o).forEach(c=>{let _=o[c];Qv[i][c]=vb(_),Qv[i][c].raw=hb(_)})});jT.exports=Qv});var t4=Ke((iV,HT)=>{"use strict";var qT=(i,o)=>(...a)=>`[${i(...a)+o}m`,WT=(i,o)=>(...a)=>{let c=i(...a);return`[${38+o};5;${c}m`},VT=(i,o)=>(...a)=>{let c=i(...a);return`[${38+o};2;${c[0]};${c[1]};${c[2]}m`},e4=i=>i,GT=(i,o,a)=>[i,o,a],Jv=(i,o,a)=>{Object.defineProperty(i,o,{get:()=>{let c=a();return Object.defineProperty(i,o,{value:c,enumerable:!0,configurable:!0}),c},enumerable:!0,configurable:!0})},QD,Zv=(i,o,a,c)=>{QD===void 0&&(QD=zT());let _=c?10:0,t={};for(let[M,N]of Object.entries(QD)){let O=M==="ansi16"?"ansi":M;M===o?t[O]=i(a,_):typeof N=="object"&&(t[O]=i(N[o],_))}return t};function mb(){let i=new Map,o={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};o.color.gray=o.color.blackBright,o.bgColor.bgGray=o.bgColor.bgBlackBright,o.color.grey=o.color.blackBright,o.bgColor.bgGrey=o.bgColor.bgBlackBright;for(let[a,c]of Object.entries(o)){for(let[_,t]of Object.entries(c))o[_]={open:`[${t[0]}m`,close:`[${t[1]}m`},c[_]=o[_],i.set(t[0],t[1]);Object.defineProperty(o,a,{value:c,enumerable:!1})}return Object.defineProperty(o,"codes",{value:i,enumerable:!1}),o.color.close="",o.bgColor.close="",Jv(o.color,"ansi",()=>Zv(qT,"ansi16",e4,!1)),Jv(o.color,"ansi256",()=>Zv(WT,"ansi256",e4,!1)),Jv(o.color,"ansi16m",()=>Zv(VT,"rgb",GT,!1)),Jv(o.bgColor,"ansi",()=>Zv(qT,"ansi16",e4,!0)),Jv(o.bgColor,"ansi256",()=>Zv(WT,"ansi256",e4,!0)),Jv(o.bgColor,"ansi16m",()=>Zv(VT,"rgb",GT,!0)),o}Object.defineProperty(HT,"exports",{enumerable:!0,get:mb})});var XT=Ke((uV,YT)=>{"use strict";var eg=Z_(),yb=zD(),gb=t4(),JD=new Set(["","\x9B"]),_b=39,KT=i=>`${JD.values().next().value}[${i}m`,Eb=i=>i.split(" ").map(o=>eg(o)),ZD=(i,o,a)=>{let c=[...o],_=!1,t=eg(yb(i[i.length-1]));for(let[M,N]of c.entries()){let O=eg(N);if(t+O<=a?i[i.length-1]+=N:(i.push(N),t=0),JD.has(N))_=!0;else if(_&&N==="m"){_=!1;continue}_||(t+=O,t===a&&M0&&i.length>1&&(i[i.length-2]+=i.pop())},Db=i=>{let o=i.split(" "),a=o.length;for(;a>0&&!(eg(o[a-1])>0);)a--;return a===o.length?i:o.slice(0,a).join(" ")+o.slice(a).join("")},wb=(i,o,a={})=>{if(a.trim!==!1&&i.trim()==="")return"";let c="",_="",t,M=Eb(i),N=[""];for(let[O,T]of i.split(" ").entries()){a.trim!==!1&&(N[N.length-1]=N[N.length-1].trimLeft());let B=eg(N[N.length-1]);if(O!==0&&(B>=o&&(a.wordWrap===!1||a.trim===!1)&&(N.push(""),B=0),(B>0||a.trim===!1)&&(N[N.length-1]+=" ",B++)),a.hard&&M[O]>o){let H=o-B,q=1+Math.floor((M[O]-H-1)/o);Math.floor((M[O]-1)/o)o&&B>0&&M[O]>0){if(a.wordWrap===!1&&Bo&&a.wordWrap===!1){ZD(N,T,o);continue}N[N.length-1]+=T}a.trim!==!1&&(N=N.map(Db)),c=N.join(` +`);for(let[O,T]of[...c].entries()){if(_+=T,JD.has(T)){let H=parseFloat(/\d[^m]*/.exec(c.slice(O,O+4)));t=H===_b?null:H}let B=gb.codes.get(Number(t));t&&B&&(c[O+1]===` +`?_+=KT(B):T===` +`&&(_+=KT(t)))}return _};YT.exports=(i,o,a)=>String(i).normalize().replace(/\r\n/g,` +`).split(` +`).map(c=>wb(c,o,a)).join(` +`)});var ZT=Ke((oV,QT)=>{"use strict";var JT="[\uD800-\uDBFF][\uDC00-\uDFFF]",Sb=i=>i&&i.exact?new RegExp(`^${JT}$`):new RegExp(JT,"g");QT.exports=Sb});var $D=Ke((lV,$T)=>{"use strict";var Tb=qD(),Cb=ZT(),eC=t4(),tC=["","\x9B"],n4=i=>`${tC[0]}[${i}m`,nC=(i,o,a)=>{let c=[];i=[...i];for(let _ of i){let t=_;_.match(";")&&(_=_.split(";")[0][0]+"0");let M=eC.codes.get(parseInt(_,10));if(M){let N=i.indexOf(M.toString());N>=0?i.splice(N,1):c.push(n4(o?M:t))}else if(o){c.push(n4(0));break}else c.push(n4(t))}if(o&&(c=c.filter((_,t)=>c.indexOf(_)===t),a!==void 0)){let _=n4(eC.codes.get(parseInt(a,10)));c=c.reduce((t,M)=>M===_?[M,...t]:[...t,M],[])}return c.join("")};$T.exports=(i,o,a)=>{let c=[...i.normalize()],_=[];a=typeof a=="number"?a:c.length;let t=!1,M,N=0,O="";for(let[T,B]of c.entries()){let H=!1;if(tC.includes(B)){let q=/\d[^m]*/.exec(i.slice(T,T+18));M=q&&q.length>0?q[0]:void 0,No&&N<=a)O+=B;else if(N===o&&!t&&M!==void 0)O=nC(_);else if(N>=a){O+=nC(_,!0,M);break}}return O}});var iC=Ke((sV,rC)=>{"use strict";var p2=$D(),xb=Z_();function r4(i,o,a){if(i.charAt(o)===" ")return o;for(let c=1;c<=3;c++)if(a){if(i.charAt(o+c)===" ")return o+c}else if(i.charAt(o-c)===" ")return o-c;return o}rC.exports=(i,o,a)=>{a=qt({position:"end",preferTruncationOnSpace:!1},a);let{position:c,space:_,preferTruncationOnSpace:t}=a,M="\u2026",N=1;if(typeof i!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof i}`);if(typeof o!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof o}`);if(o<1)return"";if(o===1)return M;let O=xb(i);if(O<=o)return i;if(c==="start"){if(t){let T=r4(i,O-o+1,!0);return M+p2(i,T,O).trim()}return _===!0&&(M+=" ",N=2),M+p2(i,O-o+N,O)}if(c==="middle"){_===!0&&(M=" "+M+" ",N=3);let T=Math.floor(o/2);if(t){let B=r4(i,T),H=r4(i,O-(o-T)+1,!0);return p2(i,0,B)+M+p2(i,H,O).trim()}return p2(i,0,T)+M+p2(i,O-(o-T)+N,O)}if(c==="end"){if(t){let T=r4(i,o-1);return p2(i,0,T)+M}return _===!0&&(M=" "+M,N=2),p2(i,0,o-N)+M}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${c}`)}});var tw=Ke(tg=>{"use strict";var uC=tg&&tg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(tg,"__esModule",{value:!0});var Rb=uC(XT()),Ab=uC(iC()),ew={};tg.default=(i,o,a)=>{let c=i+String(o)+String(a);if(ew[c])return ew[c];let _=i;if(a==="wrap"&&(_=Rb.default(i,o,{trim:!1,hard:!0})),a.startsWith("truncate")){let t="end";a==="truncate-middle"&&(t="middle"),a==="truncate-start"&&(t="start"),_=Ab.default(i,o,{position:t})}return ew[c]=_,_}});var rw=Ke(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});var oC=i=>{let o="";if(i.childNodes.length>0)for(let a of i.childNodes){let c="";a.nodeName==="#text"?c=a.nodeValue:((a.nodeName==="ink-text"||a.nodeName==="ink-virtual-text")&&(c=oC(a)),c.length>0&&typeof a.internal_transform=="function"&&(c=a.internal_transform(c))),o+=c}return o};nw.default=oC});var iw=Ke(co=>{"use strict";var ng=co&&co.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(co,"__esModule",{value:!0});co.setTextNodeValue=co.createTextNode=co.setStyle=co.setAttribute=co.removeChildNode=co.insertBeforeNode=co.appendChildNode=co.createNode=co.TEXT_NAME=void 0;var Ob=ng(eh()),lC=ng(LT()),Mb=ng(NT()),kb=ng(tw()),Lb=ng(rw());co.TEXT_NAME="#text";co.createNode=i=>{var o;let a={nodeName:i,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:i==="ink-virtual-text"?void 0:Ob.default.Node.create()};return i==="ink-text"&&((o=a.yogaNode)===null||o===void 0||o.setMeasureFunc(Nb.bind(null,a))),a};co.appendChildNode=(i,o)=>{var a;o.parentNode&&co.removeChildNode(o.parentNode,o),o.parentNode=i,i.childNodes.push(o),o.yogaNode&&((a=i.yogaNode)===null||a===void 0||a.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&i4(i)};co.insertBeforeNode=(i,o,a)=>{var c,_;o.parentNode&&co.removeChildNode(o.parentNode,o),o.parentNode=i;let t=i.childNodes.indexOf(a);if(t>=0){i.childNodes.splice(t,0,o),o.yogaNode&&((c=i.yogaNode)===null||c===void 0||c.insertChild(o.yogaNode,t));return}i.childNodes.push(o),o.yogaNode&&((_=i.yogaNode)===null||_===void 0||_.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&i4(i)};co.removeChildNode=(i,o)=>{var a,c;o.yogaNode&&((c=(a=o.parentNode)===null||a===void 0?void 0:a.yogaNode)===null||c===void 0||c.removeChild(o.yogaNode)),o.parentNode=null;let _=i.childNodes.indexOf(o);_>=0&&i.childNodes.splice(_,1),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&i4(i)};co.setAttribute=(i,o,a)=>{i.attributes[o]=a};co.setStyle=(i,o)=>{i.style=o,i.yogaNode&&Mb.default(i.yogaNode,o)};co.createTextNode=i=>{let o={nodeName:"#text",nodeValue:i,yogaNode:void 0,parentNode:null,style:{}};return co.setTextNodeValue(o,i),o};var Nb=function(i,o){var a,c;let _=i.nodeName==="#text"?i.nodeValue:Lb.default(i),t=lC.default(_);if(t.width<=o||t.width>=1&&o>0&&o<1)return t;let M=(c=(a=i.style)===null||a===void 0?void 0:a.textWrap)!==null&&c!==void 0?c:"wrap",N=kb.default(_,o,M);return lC.default(N)},sC=i=>{var o;if(!(!i||!i.parentNode))return(o=i.yogaNode)!==null&&o!==void 0?o:sC(i.parentNode)},i4=i=>{let o=sC(i);o==null||o.markDirty()};co.setTextNodeValue=(i,o)=>{typeof o!="string"&&(o=String(o)),i.nodeValue=o,i4(i)}});var th=Ke((dV,aC)=>{"use strict";aC.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var rg=Ke((pV,uw)=>{"use strict";var{EMPTY_BUFFER:Fb}=th();function fC(i,o){if(i.length===0)return Fb;if(i.length===1)return i[0];let a=Buffer.allocUnsafe(o),c=0;for(let _=0;_{"use strict";var vC=Symbol("kDone"),ow=Symbol("kRun"),mC=class{constructor(o){this[vC]=()=>{this.pending--,this[ow]()},this.concurrency=o||Infinity,this.jobs=[],this.pending=0}add(o){this.jobs.push(o),this[ow]()}[ow](){if(this.pending!==this.concurrency&&this.jobs.length){let o=this.jobs.shift();this.pending++,o(this[vC])}}};hC.exports=mC});var og=Ke((vV,gC)=>{"use strict";var ig=require("zlib"),_C=rg(),Pb=yC(),{kStatusCode:EC,NOOP:Ib}=th(),bb=Buffer.from([0,0,255,255]),o4=Symbol("permessage-deflate"),X1=Symbol("total-length"),ug=Symbol("callback"),h2=Symbol("buffers"),lw=Symbol("error"),l4,DC=class{constructor(o,a,c){if(this._maxPayload=c|0,this._options=o||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!a,this._deflate=null,this._inflate=null,this.params=null,!l4){let _=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;l4=new Pb(_)}}static get extensionName(){return"permessage-deflate"}offer(){let o={};return this._options.serverNoContextTakeover&&(o.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(o.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(o.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?o.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(o.client_max_window_bits=!0),o}accept(o){return o=this.normalizeParams(o),this.params=this._isServer?this.acceptAsServer(o):this.acceptAsClient(o),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let o=this._deflate[ug];this._deflate.close(),this._deflate=null,o&&o(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(o){let a=this._options,c=o.find(_=>!(a.serverNoContextTakeover===!1&&_.server_no_context_takeover||_.server_max_window_bits&&(a.serverMaxWindowBits===!1||typeof a.serverMaxWindowBits=="number"&&a.serverMaxWindowBits>_.server_max_window_bits)||typeof a.clientMaxWindowBits=="number"&&!_.client_max_window_bits));if(!c)throw new Error("None of the extension offers can be accepted");return a.serverNoContextTakeover&&(c.server_no_context_takeover=!0),a.clientNoContextTakeover&&(c.client_no_context_takeover=!0),typeof a.serverMaxWindowBits=="number"&&(c.server_max_window_bits=a.serverMaxWindowBits),typeof a.clientMaxWindowBits=="number"?c.client_max_window_bits=a.clientMaxWindowBits:(c.client_max_window_bits===!0||a.clientMaxWindowBits===!1)&&delete c.client_max_window_bits,c}acceptAsClient(o){let a=o[0];if(this._options.clientNoContextTakeover===!1&&a.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!a.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(a.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&a.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return a}normalizeParams(o){return o.forEach(a=>{Object.keys(a).forEach(c=>{let _=a[c];if(_.length>1)throw new Error(`Parameter "${c}" must have only a single value`);if(_=_[0],c==="client_max_window_bits"){if(_!==!0){let t=+_;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${c}": ${_}`);_=t}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${c}": ${_}`)}else if(c==="server_max_window_bits"){let t=+_;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${c}": ${_}`);_=t}else if(c==="client_no_context_takeover"||c==="server_no_context_takeover"){if(_!==!0)throw new TypeError(`Invalid value for parameter "${c}": ${_}`)}else throw new Error(`Unknown parameter "${c}"`);a[c]=_})}),o}decompress(o,a,c){l4.add(_=>{this._decompress(o,a,(t,M)=>{_(),c(t,M)})})}compress(o,a,c){l4.add(_=>{this._compress(o,a,(t,M)=>{_(),c(t,M)})})}_decompress(o,a,c){let _=this._isServer?"client":"server";if(!this._inflate){let t=`${_}_max_window_bits`,M=typeof this.params[t]!="number"?ig.Z_DEFAULT_WINDOWBITS:this.params[t];this._inflate=ig.createInflateRaw(Zr(qt({},this._options.zlibInflateOptions),{windowBits:M})),this._inflate[o4]=this,this._inflate[X1]=0,this._inflate[h2]=[],this._inflate.on("error",Ub),this._inflate.on("data",wC)}this._inflate[ug]=c,this._inflate.write(o),a&&this._inflate.write(bb),this._inflate.flush(()=>{let t=this._inflate[lw];if(t){this._inflate.close(),this._inflate=null,c(t);return}let M=_C.concat(this._inflate[h2],this._inflate[X1]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[X1]=0,this._inflate[h2]=[],a&&this.params[`${_}_no_context_takeover`]&&this._inflate.reset()),c(null,M)})}_compress(o,a,c){let _=this._isServer?"server":"client";if(!this._deflate){let t=`${_}_max_window_bits`,M=typeof this.params[t]!="number"?ig.Z_DEFAULT_WINDOWBITS:this.params[t];this._deflate=ig.createDeflateRaw(Zr(qt({},this._options.zlibDeflateOptions),{windowBits:M})),this._deflate[X1]=0,this._deflate[h2]=[],this._deflate.on("error",Ib),this._deflate.on("data",Bb)}this._deflate[ug]=c,this._deflate.write(o),this._deflate.flush(ig.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let t=_C.concat(this._deflate[h2],this._deflate[X1]);a&&(t=t.slice(0,t.length-4)),this._deflate[ug]=null,this._deflate[X1]=0,this._deflate[h2]=[],a&&this.params[`${_}_no_context_takeover`]&&this._deflate.reset(),c(null,t)})}};gC.exports=DC;function Bb(i){this[h2].push(i),this[X1]+=i.length}function wC(i){if(this[X1]+=i.length,this[o4]._maxPayload<1||this[X1]<=this[o4]._maxPayload){this[h2].push(i);return}this[lw]=new RangeError("Max payload size exceeded"),this[lw][EC]=1009,this.removeListener("data",wC),this.reset()}function Ub(i){this[o4]._inflate=null,i[EC]=1007,this[ug](i)}});var aw=Ke((mV,sw)=>{"use strict";function SC(i){return i>=1e3&&i<=1014&&i!==1004&&i!==1005&&i!==1006||i>=3e3&&i<=4999}function TC(i){let o=i.length,a=0;for(;a=o||(i[a+1]&192)!=128||(i[a+2]&192)!=128||i[a]===224&&(i[a+1]&224)==128||i[a]===237&&(i[a+1]&224)==160)return!1;a+=3}else if((i[a]&248)==240){if(a+3>=o||(i[a+1]&192)!=128||(i[a+2]&192)!=128||(i[a+3]&192)!=128||i[a]===240&&(i[a+1]&240)==128||i[a]===244&&i[a+1]>143||i[a]>244)return!1;a+=4}else return!1;return!0}try{let i=require("utf-8-validate");typeof i=="object"&&(i=i.Validation.isValidUTF8),sw.exports={isValidStatusCode:SC,isValidUTF8(o){return o.length<150?TC(o):i(o)}}}catch(i){sw.exports={isValidStatusCode:SC,isValidUTF8:TC}}});var dw=Ke((yV,CC)=>{"use strict";var{Writable:jb}=require("stream"),xC=og(),{BINARY_TYPES:zb,EMPTY_BUFFER:Hb,kStatusCode:qb,kWebSocket:Wb}=th(),{concat:fw,toArrayBuffer:Vb,unmask:Gb}=rg(),{isValidStatusCode:Yb,isValidUTF8:RC}=aw(),lg=0,AC=1,OC=2,MC=3,cw=4,Kb=5,kC=class extends jb{constructor(o,a,c,_){super();this._binaryType=o||zb[0],this[Wb]=void 0,this._extensions=a||{},this._isServer=!!c,this._maxPayload=_|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=lg,this._loop=!1}_write(o,a,c){if(this._opcode===8&&this._state==lg)return c();this._bufferedBytes+=o.length,this._buffers.push(o),this.startLoop(c)}consume(o){if(this._bufferedBytes-=o,o===this._buffers[0].length)return this._buffers.shift();if(o=c.length?a.set(this._buffers.shift(),_):(a.set(new Uint8Array(c.buffer,c.byteOffset,o),_),this._buffers[0]=c.slice(o)),o-=c.length}while(o>0);return a}startLoop(o){let a;this._loop=!0;do switch(this._state){case lg:a=this.getInfo();break;case AC:a=this.getPayloadLength16();break;case OC:a=this.getPayloadLength64();break;case MC:this.getMask();break;case cw:a=this.getData(o);break;default:this._loop=!1;return}while(this._loop);o(a)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let o=this.consume(2);if((o[0]&48)!=0)return this._loop=!1,K0(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let a=(o[0]&64)==64;if(a&&!this._extensions[xC.extensionName])return this._loop=!1,K0(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(o[0]&128)==128,this._opcode=o[0]&15,this._payloadLength=o[1]&127,this._opcode===0){if(a)return this._loop=!1,K0(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,K0(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,K0(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=a}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,K0(RangeError,"FIN must be set",!0,1002);if(a)return this._loop=!1,K0(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,K0(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,K0(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(o[1]&128)==128,this._isServer){if(!this._masked)return this._loop=!1,K0(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,K0(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=AC;else if(this._payloadLength===127)this._state=OC;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let o=this.consume(8),a=o.readUInt32BE(0);return a>Math.pow(2,53-32)-1?(this._loop=!1,K0(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=a*Math.pow(2,32)+o.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,K0(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=MC:this._state=cw}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=cw}getData(o){let a=Hb;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(a);if(this._compressed){this._state=Kb,this.decompress(a,o);return}return a.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(a)),this.dataMessage()}decompress(o,a){this._extensions[xC.extensionName].decompress(o,this._fin,(_,t)=>{if(_)return a(_);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return a(K0(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(t)}let M=this.dataMessage();if(M)return a(M);this.startLoop(a)})}dataMessage(){if(this._fin){let o=this._messageLength,a=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let c;this._binaryType==="nodebuffer"?c=fw(a,o):this._binaryType==="arraybuffer"?c=Vb(fw(a,o)):c=a,this.emit("message",c)}else{let c=fw(a,o);if(!RC(c))return this._loop=!1,K0(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",c.toString())}}this._state=lg}controlMessage(o){if(this._opcode===8)if(this._loop=!1,o.length===0)this.emit("conclude",1005,""),this.end();else{if(o.length===1)return K0(RangeError,"invalid payload length 1",!0,1002);{let a=o.readUInt16BE(0);if(!Yb(a))return K0(RangeError,`invalid status code ${a}`,!0,1002);let c=o.slice(2);if(!RC(c))return K0(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",a,c.toString()),this.end()}}else this._opcode===9?this.emit("ping",o):this.emit("pong",o);this._state=lg}};CC.exports=kC;function K0(i,o,a,c){let _=new i(a?`Invalid WebSocket frame: ${o}`:o);return Error.captureStackTrace(_,K0),_[qb]=c,_}});var pw=Ke((gV,LC)=>{"use strict";var{randomFillSync:Xb}=require("crypto"),NC=og(),{EMPTY_BUFFER:Qb}=th(),{isValidStatusCode:Jb}=aw(),{mask:FC,toBuffer:Q1}=rg(),nh=Buffer.alloc(4),J1=class{constructor(o,a){this._extensions=a||{},this._socket=o,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(o,a){let c=a.mask&&a.readOnly,_=a.mask?6:2,t=o.length;o.length>=65536?(_+=8,t=127):o.length>125&&(_+=2,t=126);let M=Buffer.allocUnsafe(c?o.length+_:_);return M[0]=a.fin?a.opcode|128:a.opcode,a.rsv1&&(M[0]|=64),M[1]=t,t===126?M.writeUInt16BE(o.length,2):t===127&&(M.writeUInt32BE(0,2),M.writeUInt32BE(o.length,6)),a.mask?(Xb(nh,0,4),M[1]|=128,M[_-4]=nh[0],M[_-3]=nh[1],M[_-2]=nh[2],M[_-1]=nh[3],c?(FC(o,nh,M,_,o.length),[M]):(FC(o,nh,o,0,o.length),[M,o])):[M,o]}close(o,a,c,_){let t;if(o===void 0)t=Qb;else{if(typeof o!="number"||!Jb(o))throw new TypeError("First argument must be a valid error code number");if(a===void 0||a==="")t=Buffer.allocUnsafe(2),t.writeUInt16BE(o,0);else{let M=Buffer.byteLength(a);if(M>123)throw new RangeError("The message must not be greater than 123 bytes");t=Buffer.allocUnsafe(2+M),t.writeUInt16BE(o,0),t.write(a,2)}}this._deflating?this.enqueue([this.doClose,t,c,_]):this.doClose(t,c,_)}doClose(o,a,c){this.sendFrame(J1.frame(o,{fin:!0,rsv1:!1,opcode:8,mask:a,readOnly:!1}),c)}ping(o,a,c){let _=Q1(o);if(_.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,_,a,Q1.readOnly,c]):this.doPing(_,a,Q1.readOnly,c)}doPing(o,a,c,_){this.sendFrame(J1.frame(o,{fin:!0,rsv1:!1,opcode:9,mask:a,readOnly:c}),_)}pong(o,a,c){let _=Q1(o);if(_.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,_,a,Q1.readOnly,c]):this.doPong(_,a,Q1.readOnly,c)}doPong(o,a,c,_){this.sendFrame(J1.frame(o,{fin:!0,rsv1:!1,opcode:10,mask:a,readOnly:c}),_)}send(o,a,c){let _=Q1(o),t=this._extensions[NC.extensionName],M=a.binary?2:1,N=a.compress;if(this._firstFragment?(this._firstFragment=!1,N&&t&&(N=_.length>=t._threshold),this._compress=N):(N=!1,M=0),a.fin&&(this._firstFragment=!0),t){let O={fin:a.fin,rsv1:N,opcode:M,mask:a.mask,readOnly:Q1.readOnly};this._deflating?this.enqueue([this.dispatch,_,this._compress,O,c]):this.dispatch(_,this._compress,O,c)}else this.sendFrame(J1.frame(_,{fin:a.fin,rsv1:!1,opcode:M,mask:a.mask,readOnly:Q1.readOnly}),c)}dispatch(o,a,c,_){if(!a){this.sendFrame(J1.frame(o,c),_);return}let t=this._extensions[NC.extensionName];this._bufferedBytes+=o.length,this._deflating=!0,t.compress(o,c.fin,(M,N)=>{if(this._socket.destroyed){let O=new Error("The socket was closed while data was being compressed");typeof _=="function"&&_(O);for(let T=0;T{"use strict";var sg=class{constructor(o,a){this.target=a,this.type=o}},IC=class extends sg{constructor(o,a){super("message",a);this.data=o}},bC=class extends sg{constructor(o,a,c){super("close",c);this.wasClean=c._closeFrameReceived&&c._closeFrameSent,this.reason=a,this.code=o}},BC=class extends sg{constructor(o){super("open",o)}},UC=class extends sg{constructor(o,a){super("error",a);this.message=o.message,this.error=o}},Zb={addEventListener(i,o,a){if(typeof o!="function")return;function c(O){o.call(this,new IC(O,this))}function _(O,T){o.call(this,new bC(O,T,this))}function t(O){o.call(this,new UC(O,this))}function M(){o.call(this,new BC(this))}let N=a&&a.once?"once":"on";i==="message"?(c._listener=o,this[N](i,c)):i==="close"?(_._listener=o,this[N](i,_)):i==="error"?(t._listener=o,this[N](i,t)):i==="open"?(M._listener=o,this[N](i,M)):this[N](i,o)},removeEventListener(i,o){let a=this.listeners(i);for(let c=0;c{"use strict";var ag=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function zc(i,o,a){i[o]===void 0?i[o]=[a]:i[o].push(a)}function $b(i){let o=Object.create(null);if(i===void 0||i==="")return o;let a=Object.create(null),c=!1,_=!1,t=!1,M,N,O=-1,T=-1,B=0;for(;B{let a=i[o];return Array.isArray(a)||(a=[a]),a.map(c=>[o].concat(Object.keys(c).map(_=>{let t=c[_];return Array.isArray(t)||(t=[t]),t.map(M=>M===!0?_:`${_}=${M}`).join("; ")})).join("; ")).join(", ")}).join(", ")}zC.exports={format:eB,parse:$b}});var _w=Ke((DV,HC)=>{"use strict";var tB=require("events"),nB=require("https"),rB=require("http"),qC=require("net"),iB=require("tls"),{randomBytes:uB,createHash:oB}=require("crypto"),{URL:vw}=require("url"),v2=og(),lB=dw(),sB=pw(),{BINARY_TYPES:WC,EMPTY_BUFFER:mw,GUID:aB,kStatusCode:fB,kWebSocket:na,NOOP:VC}=th(),{addEventListener:cB,removeEventListener:dB}=jC(),{format:pB,parse:hB}=hw(),{toBuffer:vB}=rg(),GC=["CONNECTING","OPEN","CLOSING","CLOSED"],yw=[8,13],mB=30*1e3,Gi=class extends tB{constructor(o,a,c){super();this._binaryType=WC[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=Gi.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,o!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(a)?a=a.join(", "):typeof a=="object"&&a!==null&&(c=a,a=void 0),YC(this,o,a,c)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(o){!WC.includes(o)||(this._binaryType=o,this._receiver&&(this._receiver._binaryType=o))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(o,a,c){let _=new lB(this.binaryType,this._extensions,this._isServer,c);this._sender=new sB(o,this._extensions),this._receiver=_,this._socket=o,_[na]=this,o[na]=this,_.on("conclude",yB),_.on("drain",gB),_.on("error",_B),_.on("message",EB),_.on("ping",DB),_.on("pong",wB),o.setTimeout(0),o.setNoDelay(),a.length>0&&o.unshift(a),o.on("close",KC),o.on("data",s4),o.on("end",XC),o.on("error",QC),this._readyState=Gi.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=Gi.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[v2.extensionName]&&this._extensions[v2.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=Gi.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(o,a){if(this.readyState!==Gi.CLOSED){if(this.readyState===Gi.CONNECTING){let c="WebSocket was closed before the connection was established";return Z1(this,this._req,c)}if(this.readyState===Gi.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=Gi.CLOSING,this._sender.close(o,a,!this._isServer,c=>{c||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),mB)}}ping(o,a,c){if(this.readyState===Gi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(c=o,o=a=void 0):typeof a=="function"&&(c=a,a=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Gi.OPEN){gw(this,o,c);return}a===void 0&&(a=!this._isServer),this._sender.ping(o||mw,a,c)}pong(o,a,c){if(this.readyState===Gi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(c=o,o=a=void 0):typeof a=="function"&&(c=a,a=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Gi.OPEN){gw(this,o,c);return}a===void 0&&(a=!this._isServer),this._sender.pong(o||mw,a,c)}send(o,a,c){if(this.readyState===Gi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof a=="function"&&(c=a,a={}),typeof o=="number"&&(o=o.toString()),this.readyState!==Gi.OPEN){gw(this,o,c);return}let _=qt({binary:typeof o!="string",mask:!this._isServer,compress:!0,fin:!0},a);this._extensions[v2.extensionName]||(_.compress=!1),this._sender.send(o||mw,_,c)}terminate(){if(this.readyState!==Gi.CLOSED){if(this.readyState===Gi.CONNECTING){let o="WebSocket was closed before the connection was established";return Z1(this,this._req,o)}this._socket&&(this._readyState=Gi.CLOSING,this._socket.destroy())}}};GC.forEach((i,o)=>{let a={enumerable:!0,value:o};Object.defineProperty(Gi.prototype,i,a),Object.defineProperty(Gi,i,a)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(i=>{Object.defineProperty(Gi.prototype,i,{enumerable:!0})});["open","error","close","message"].forEach(i=>{Object.defineProperty(Gi.prototype,`on${i}`,{configurable:!0,enumerable:!0,get(){let o=this.listeners(i);for(let a=0;a{Z1(i,q,"Opening handshake has timed out")}),q.on("error",ne=>{q===null||q.aborted||(q=i._req=null,i._readyState=Gi.CLOSING,i.emit("error",ne),i.emitClose())}),q.on("response",ne=>{let m=ne.headers.location,pe=ne.statusCode;if(m&&_.followRedirects&&pe>=300&&pe<400){if(++i._redirects>_.maxRedirects){Z1(i,q,"Maximum redirects exceeded");return}q.abort();let ge=new vw(m,o);YC(i,ge,a,c)}else i.emit("unexpected-response",q,ne)||Z1(i,q,`Unexpected server response: ${ne.statusCode}`)}),q.on("upgrade",(ne,m,pe)=>{if(i.emit("upgrade",ne),i.readyState!==Gi.CONNECTING)return;q=i._req=null;let ge=oB("sha1").update(T+aB).digest("base64");if(ne.headers["sec-websocket-accept"]!==ge){Z1(i,m,"Invalid Sec-WebSocket-Accept header");return}let ve=ne.headers["sec-websocket-protocol"],ue=(a||"").split(/, */),_e;if(!a&&ve?_e="Server sent a subprotocol but none was requested":a&&!ve?_e="Server sent no subprotocol":ve&&!ue.includes(ve)&&(_e="Server sent an invalid subprotocol"),_e){Z1(i,m,_e);return}if(ve&&(i._protocol=ve),H)try{let ce=hB(ne.headers["sec-websocket-extensions"]);ce[v2.extensionName]&&(H.accept(ce[v2.extensionName]),i._extensions[v2.extensionName]=H)}catch(ce){Z1(i,m,"Invalid Sec-WebSocket-Extensions header");return}i.setSocket(m,pe,_.maxPayload)})}function SB(i){return i.path=i.socketPath,qC.connect(i)}function TB(i){return i.path=void 0,!i.servername&&i.servername!==""&&(i.servername=qC.isIP(i.host)?"":i.host),iB.connect(i)}function Z1(i,o,a){i._readyState=Gi.CLOSING;let c=new Error(a);Error.captureStackTrace(c,Z1),o.setHeader?(o.abort(),o.socket&&!o.socket.destroyed&&o.socket.destroy(),o.once("abort",i.emitClose.bind(i)),i.emit("error",c)):(o.destroy(c),o.once("error",i.emit.bind(i,"error")),o.once("close",i.emitClose.bind(i)))}function gw(i,o,a){if(o){let c=vB(o).length;i._socket?i._sender._bufferedBytes+=c:i._bufferedAmount+=c}if(a){let c=new Error(`WebSocket is not open: readyState ${i.readyState} (${GC[i.readyState]})`);a(c)}}function yB(i,o){let a=this[na];a._socket.removeListener("data",s4),a._socket.resume(),a._closeFrameReceived=!0,a._closeMessage=o,a._closeCode=i,i===1005?a.close():a.close(i,o)}function gB(){this[na]._socket.resume()}function _B(i){let o=this[na];o._socket.removeListener("data",s4),o._readyState=Gi.CLOSING,o._closeCode=i[fB],o.emit("error",i),o._socket.destroy()}function JC(){this[na].emitClose()}function EB(i){this[na].emit("message",i)}function DB(i){let o=this[na];o.pong(i,!o._isServer,VC),o.emit("ping",i)}function wB(i){this[na].emit("pong",i)}function KC(){let i=this[na];this.removeListener("close",KC),this.removeListener("end",XC),i._readyState=Gi.CLOSING,i._socket.read(),i._receiver.end(),this.removeListener("data",s4),this[na]=void 0,clearTimeout(i._closeTimer),i._receiver._writableState.finished||i._receiver._writableState.errorEmitted?i.emitClose():(i._receiver.on("error",JC),i._receiver.on("finish",JC))}function s4(i){this[na]._receiver.write(i)||this.pause()}function XC(){let i=this[na];i._readyState=Gi.CLOSING,i._receiver.end(),this.end()}function QC(){let i=this[na];this.removeListener("error",QC),this.on("error",VC),i&&(i._readyState=Gi.CLOSING,this.destroy())}});var t6=Ke((wV,ZC)=>{"use strict";var{Duplex:CB}=require("stream");function $C(i){i.emit("close")}function xB(){!this.destroyed&&this._writableState.finished&&this.destroy()}function e6(i){this.removeListener("error",e6),this.destroy(),this.listenerCount("error")===0&&this.emit("error",i)}function RB(i,o){let a=!0;function c(){a&&i._socket.resume()}i.readyState===i.CONNECTING?i.once("open",function(){i._receiver.removeAllListeners("drain"),i._receiver.on("drain",c)}):(i._receiver.removeAllListeners("drain"),i._receiver.on("drain",c));let _=new CB(Zr(qt({},o),{autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1}));return i.on("message",function(M){_.push(M)||(a=!1,i._socket.pause())}),i.once("error",function(M){_.destroyed||_.destroy(M)}),i.once("close",function(){_.destroyed||_.push(null)}),_._destroy=function(t,M){if(i.readyState===i.CLOSED){M(t),process.nextTick($C,_);return}let N=!1;i.once("error",function(T){N=!0,M(T)}),i.once("close",function(){N||M(t),process.nextTick($C,_)}),i.terminate()},_._final=function(t){if(i.readyState===i.CONNECTING){i.once("open",function(){_._final(t)});return}i._socket!==null&&(i._socket._writableState.finished?(t(),_._readableState.endEmitted&&_.destroy()):(i._socket.once("finish",function(){t()}),i.close()))},_._read=function(){i.readyState===i.OPEN&&!a&&(a=!0,i._receiver._writableState.needDrain||i._socket.resume())},_._write=function(t,M,N){if(i.readyState===i.CONNECTING){i.once("open",function(){_._write(t,M,N)});return}i.send(t,N)},_.on("end",xB),_.on("error",e6),_}ZC.exports=RB});var i6=Ke((SV,n6)=>{"use strict";var AB=require("events"),{createHash:OB}=require("crypto"),{createServer:MB,STATUS_CODES:Ew}=require("http"),rh=og(),kB=_w(),{format:LB,parse:NB}=hw(),{GUID:FB,kWebSocket:PB}=th(),IB=/^[+/0-9A-Za-z]{22}==$/,r6=class extends AB{constructor(o,a){super();if(o=qt({maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},o),o.port==null&&!o.server&&!o.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(o.port!=null?(this._server=MB((c,_)=>{let t=Ew[426];_.writeHead(426,{"Content-Length":t.length,"Content-Type":"text/plain"}),_.end(t)}),this._server.listen(o.port,o.host,o.backlog,a)):o.server&&(this._server=o.server),this._server){let c=this.emit.bind(this,"connection");this._removeListeners=bB(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(_,t,M)=>{this.handleUpgrade(_,t,M,c)}})}o.perMessageDeflate===!0&&(o.perMessageDeflate={}),o.clientTracking&&(this.clients=new Set),this.options=o}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(o){if(o&&this.once("close",o),this.clients)for(let c of this.clients)c.terminate();let a=this._server;if(a&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){a.close(()=>this.emit("close"));return}process.nextTick(BB,this)}shouldHandle(o){if(this.options.path){let a=o.url.indexOf("?");if((a!==-1?o.url.slice(0,a):o.url)!==this.options.path)return!1}return!0}handleUpgrade(o,a,c,_){a.on("error",Dw);let t=o.headers["sec-websocket-key"]!==void 0?o.headers["sec-websocket-key"].trim():!1,M=+o.headers["sec-websocket-version"],N={};if(o.method!=="GET"||o.headers.upgrade.toLowerCase()!=="websocket"||!t||!IB.test(t)||M!==8&&M!==13||!this.shouldHandle(o))return a4(a,400);if(this.options.perMessageDeflate){let O=new rh(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let T=NB(o.headers["sec-websocket-extensions"]);T[rh.extensionName]&&(O.accept(T[rh.extensionName]),N[rh.extensionName]=O)}catch(T){return a4(a,400)}}if(this.options.verifyClient){let O={origin:o.headers[`${M===8?"sec-websocket-origin":"origin"}`],secure:!!(o.socket.authorized||o.socket.encrypted),req:o};if(this.options.verifyClient.length===2){this.options.verifyClient(O,(T,B,H,q)=>{if(!T)return a4(a,B||401,H,q);this.completeUpgrade(t,N,o,a,c,_)});return}if(!this.options.verifyClient(O))return a4(a,401)}this.completeUpgrade(t,N,o,a,c,_)}completeUpgrade(o,a,c,_,t,M){if(!_.readable||!_.writable)return _.destroy();if(_[PB])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let N=OB("sha1").update(o+FB).digest("base64"),O=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${N}`],T=new kB(null),B=c.headers["sec-websocket-protocol"];if(B&&(B=B.split(",").map(UB),this.options.handleProtocols?B=this.options.handleProtocols(B,c):B=B[0],B&&(O.push(`Sec-WebSocket-Protocol: ${B}`),T._protocol=B)),a[rh.extensionName]){let H=a[rh.extensionName].params,q=LB({[rh.extensionName]:[H]});O.push(`Sec-WebSocket-Extensions: ${q}`),T._extensions=a}this.emit("headers",O,c),_.write(O.concat(`\r +`).join(`\r +`)),_.removeListener("error",Dw),T.setSocket(_,t,this.options.maxPayload),this.clients&&(this.clients.add(T),T.on("close",()=>this.clients.delete(T))),M(T,c)}};n6.exports=r6;function bB(i,o){for(let a of Object.keys(o))i.on(a,o[a]);return function(){for(let c of Object.keys(o))i.removeListener(c,o[c])}}function BB(i){i.emit("close")}function Dw(){this.destroy()}function a4(i,o,a,c){i.writable&&(a=a||Ew[o],c=qt({Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(a)},c),i.write(`HTTP/1.1 ${o} ${Ew[o]}\r +`+Object.keys(c).map(_=>`${_}: ${c[_]}`).join(`\r +`)+`\r +\r +`+a)),i.removeListener("error",Dw),i.destroy()}function UB(i){return i.trim()}});var o6=Ke((TV,u6)=>{"use strict";var fg=_w();fg.createWebSocketStream=t6();fg.Server=i6();fg.Receiver=dw();fg.Sender=pw();u6.exports=fg});var l6=Ke(f4=>{"use strict";var jB=f4&&f4.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(f4,"__esModule",{value:!0});var zB=jB(o6()),cg=global;cg.WebSocket||(cg.WebSocket=zB.default);cg.window||(cg.window=global);cg.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var s6=Ke((c4,ww)=>{(function(i,o){typeof c4=="object"&&typeof ww=="object"?ww.exports=o():typeof define=="function"&&define.amd?define([],o):typeof c4=="object"?c4.ReactDevToolsBackend=o():i.ReactDevToolsBackend=o()})(window,function(){return function(i){var o={};function a(c){if(o[c])return o[c].exports;var _=o[c]={i:c,l:!1,exports:{}};return i[c].call(_.exports,_,_.exports,a),_.l=!0,_.exports}return a.m=i,a.c=o,a.d=function(c,_,t){a.o(c,_)||Object.defineProperty(c,_,{enumerable:!0,get:t})},a.r=function(c){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},a.t=function(c,_){if(1&_&&(c=a(c)),8&_||4&_&&typeof c=="object"&&c&&c.__esModule)return c;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:c}),2&_&&typeof c!="string")for(var M in c)a.d(t,M,function(N){return c[N]}.bind(null,M));return t},a.n=function(c){var _=c&&c.__esModule?function(){return c.default}:function(){return c};return a.d(_,"a",_),_},a.o=function(c,_){return Object.prototype.hasOwnProperty.call(c,_)},a.p="",a(a.s=20)}([function(i,o,a){"use strict";i.exports=a(12)},function(i,o,a){"use strict";var c=Object.getOwnPropertySymbols,_=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function M(N){if(N==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(N)}i.exports=function(){try{if(!Object.assign)return!1;var N=new String("abc");if(N[5]="de",Object.getOwnPropertyNames(N)[0]==="5")return!1;for(var O={},T=0;T<10;T++)O["_"+String.fromCharCode(T)]=T;if(Object.getOwnPropertyNames(O).map(function(H){return O[H]}).join("")!=="0123456789")return!1;var B={};return"abcdefghijklmnopqrst".split("").forEach(function(H){B[H]=H}),Object.keys(Object.assign({},B)).join("")==="abcdefghijklmnopqrst"}catch(H){return!1}}()?Object.assign:function(N,O){for(var T,B,H=M(N),q=1;q=re||nn<0||zt&&Rt-He>=ct}function le(){var Rt=ge();if(xe(Rt))return qe(Rt);Xe=setTimeout(le,function(nn){var an=re-(nn-tt);return zt?pe(an,ct-(nn-He)):an}(Rt))}function qe(Rt){return Xe=void 0,nt&&Ie?X(Rt):(Ie=je=void 0,pt)}function dt(){var Rt=ge(),nn=xe(Rt);if(Ie=arguments,je=this,tt=Rt,nn){if(Xe===void 0)return fe(tt);if(zt)return Xe=setTimeout(le,re),X(tt)}return Xe===void 0&&(Xe=setTimeout(le,re)),pt}return re=ce(re)||0,ue(we)&&(kt=!!we.leading,ct=(zt="maxWait"in we)?m(ce(we.maxWait)||0,re):ct,nt="trailing"in we?!!we.trailing:nt),dt.cancel=function(){Xe!==void 0&&clearTimeout(Xe),He=0,Ie=tt=je=Xe=void 0},dt.flush=function(){return Xe===void 0?pt:qe(ge())},dt}function ue(me){var re=_(me);return!!me&&(re=="object"||re=="function")}function _e(me){return _(me)=="symbol"||function(re){return!!re&&_(re)=="object"}(me)&&ne.call(me)=="[object Symbol]"}function ce(me){if(typeof me=="number")return me;if(_e(me))return NaN;if(ue(me)){var re=typeof me.valueOf=="function"?me.valueOf():me;me=ue(re)?re+"":re}if(typeof me!="string")return me===0?me:+me;me=me.replace(t,"");var we=N.test(me);return we||O.test(me)?T(me.slice(2),we?2:8):M.test(me)?NaN:+me}i.exports=function(me,re,we){var Ie=!0,je=!0;if(typeof me!="function")throw new TypeError("Expected a function");return ue(we)&&(Ie="leading"in we?!!we.leading:Ie,je="trailing"in we?!!we.trailing:je),ve(me,re,{leading:Ie,maxWait:re,trailing:je})}}).call(this,a(4))},function(i,o,a){(function(c){function _(X){return(_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(fe){return typeof fe}:function(fe){return fe&&typeof Symbol=="function"&&fe.constructor===Symbol&&fe!==Symbol.prototype?"symbol":typeof fe})(X)}var t;o=i.exports=m,t=(c===void 0?"undefined":_(c))==="object"&&c.env&&c.env.NODE_DEBUG&&/\bsemver\b/i.test(c.env.NODE_DEBUG)?function(){var X=Array.prototype.slice.call(arguments,0);X.unshift("SEMVER"),console.log.apply(console,X)}:function(){},o.SEMVER_SPEC_VERSION="2.0.0";var M=Number.MAX_SAFE_INTEGER||9007199254740991,N=o.re=[],O=o.src=[],T=o.tokens={},B=0;function H(X){T[X]=B++}H("NUMERICIDENTIFIER"),O[T.NUMERICIDENTIFIER]="0|[1-9]\\d*",H("NUMERICIDENTIFIERLOOSE"),O[T.NUMERICIDENTIFIERLOOSE]="[0-9]+",H("NONNUMERICIDENTIFIER"),O[T.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",H("MAINVERSION"),O[T.MAINVERSION]="("+O[T.NUMERICIDENTIFIER]+")\\.("+O[T.NUMERICIDENTIFIER]+")\\.("+O[T.NUMERICIDENTIFIER]+")",H("MAINVERSIONLOOSE"),O[T.MAINVERSIONLOOSE]="("+O[T.NUMERICIDENTIFIERLOOSE]+")\\.("+O[T.NUMERICIDENTIFIERLOOSE]+")\\.("+O[T.NUMERICIDENTIFIERLOOSE]+")",H("PRERELEASEIDENTIFIER"),O[T.PRERELEASEIDENTIFIER]="(?:"+O[T.NUMERICIDENTIFIER]+"|"+O[T.NONNUMERICIDENTIFIER]+")",H("PRERELEASEIDENTIFIERLOOSE"),O[T.PRERELEASEIDENTIFIERLOOSE]="(?:"+O[T.NUMERICIDENTIFIERLOOSE]+"|"+O[T.NONNUMERICIDENTIFIER]+")",H("PRERELEASE"),O[T.PRERELEASE]="(?:-("+O[T.PRERELEASEIDENTIFIER]+"(?:\\."+O[T.PRERELEASEIDENTIFIER]+")*))",H("PRERELEASELOOSE"),O[T.PRERELEASELOOSE]="(?:-?("+O[T.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+O[T.PRERELEASEIDENTIFIERLOOSE]+")*))",H("BUILDIDENTIFIER"),O[T.BUILDIDENTIFIER]="[0-9A-Za-z-]+",H("BUILD"),O[T.BUILD]="(?:\\+("+O[T.BUILDIDENTIFIER]+"(?:\\."+O[T.BUILDIDENTIFIER]+")*))",H("FULL"),H("FULLPLAIN"),O[T.FULLPLAIN]="v?"+O[T.MAINVERSION]+O[T.PRERELEASE]+"?"+O[T.BUILD]+"?",O[T.FULL]="^"+O[T.FULLPLAIN]+"$",H("LOOSEPLAIN"),O[T.LOOSEPLAIN]="[v=\\s]*"+O[T.MAINVERSIONLOOSE]+O[T.PRERELEASELOOSE]+"?"+O[T.BUILD]+"?",H("LOOSE"),O[T.LOOSE]="^"+O[T.LOOSEPLAIN]+"$",H("GTLT"),O[T.GTLT]="((?:<|>)?=?)",H("XRANGEIDENTIFIERLOOSE"),O[T.XRANGEIDENTIFIERLOOSE]=O[T.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",H("XRANGEIDENTIFIER"),O[T.XRANGEIDENTIFIER]=O[T.NUMERICIDENTIFIER]+"|x|X|\\*",H("XRANGEPLAIN"),O[T.XRANGEPLAIN]="[v=\\s]*("+O[T.XRANGEIDENTIFIER]+")(?:\\.("+O[T.XRANGEIDENTIFIER]+")(?:\\.("+O[T.XRANGEIDENTIFIER]+")(?:"+O[T.PRERELEASE]+")?"+O[T.BUILD]+"?)?)?",H("XRANGEPLAINLOOSE"),O[T.XRANGEPLAINLOOSE]="[v=\\s]*("+O[T.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+O[T.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+O[T.XRANGEIDENTIFIERLOOSE]+")(?:"+O[T.PRERELEASELOOSE]+")?"+O[T.BUILD]+"?)?)?",H("XRANGE"),O[T.XRANGE]="^"+O[T.GTLT]+"\\s*"+O[T.XRANGEPLAIN]+"$",H("XRANGELOOSE"),O[T.XRANGELOOSE]="^"+O[T.GTLT]+"\\s*"+O[T.XRANGEPLAINLOOSE]+"$",H("COERCE"),O[T.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",H("COERCERTL"),N[T.COERCERTL]=new RegExp(O[T.COERCE],"g"),H("LONETILDE"),O[T.LONETILDE]="(?:~>?)",H("TILDETRIM"),O[T.TILDETRIM]="(\\s*)"+O[T.LONETILDE]+"\\s+",N[T.TILDETRIM]=new RegExp(O[T.TILDETRIM],"g"),H("TILDE"),O[T.TILDE]="^"+O[T.LONETILDE]+O[T.XRANGEPLAIN]+"$",H("TILDELOOSE"),O[T.TILDELOOSE]="^"+O[T.LONETILDE]+O[T.XRANGEPLAINLOOSE]+"$",H("LONECARET"),O[T.LONECARET]="(?:\\^)",H("CARETTRIM"),O[T.CARETTRIM]="(\\s*)"+O[T.LONECARET]+"\\s+",N[T.CARETTRIM]=new RegExp(O[T.CARETTRIM],"g"),H("CARET"),O[T.CARET]="^"+O[T.LONECARET]+O[T.XRANGEPLAIN]+"$",H("CARETLOOSE"),O[T.CARETLOOSE]="^"+O[T.LONECARET]+O[T.XRANGEPLAINLOOSE]+"$",H("COMPARATORLOOSE"),O[T.COMPARATORLOOSE]="^"+O[T.GTLT]+"\\s*("+O[T.LOOSEPLAIN]+")$|^$",H("COMPARATOR"),O[T.COMPARATOR]="^"+O[T.GTLT]+"\\s*("+O[T.FULLPLAIN]+")$|^$",H("COMPARATORTRIM"),O[T.COMPARATORTRIM]="(\\s*)"+O[T.GTLT]+"\\s*("+O[T.LOOSEPLAIN]+"|"+O[T.XRANGEPLAIN]+")",N[T.COMPARATORTRIM]=new RegExp(O[T.COMPARATORTRIM],"g"),H("HYPHENRANGE"),O[T.HYPHENRANGE]="^\\s*("+O[T.XRANGEPLAIN]+")\\s+-\\s+("+O[T.XRANGEPLAIN]+")\\s*$",H("HYPHENRANGELOOSE"),O[T.HYPHENRANGELOOSE]="^\\s*("+O[T.XRANGEPLAINLOOSE]+")\\s+-\\s+("+O[T.XRANGEPLAINLOOSE]+")\\s*$",H("STAR"),O[T.STAR]="(<|>)?=?\\s*\\*";for(var q=0;q256||!(fe.loose?N[T.LOOSE]:N[T.FULL]).test(X))return null;try{return new m(X,fe)}catch(xe){return null}}function m(X,fe){if(fe&&_(fe)==="object"||(fe={loose:!!fe,includePrerelease:!1}),X instanceof m){if(X.loose===fe.loose)return X;X=X.version}else if(typeof X!="string")throw new TypeError("Invalid Version: "+X);if(X.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof m))return new m(X,fe);t("SemVer",X,fe),this.options=fe,this.loose=!!fe.loose;var xe=X.trim().match(fe.loose?N[T.LOOSE]:N[T.FULL]);if(!xe)throw new TypeError("Invalid Version: "+X);if(this.raw=X,this.major=+xe[1],this.minor=+xe[2],this.patch=+xe[3],this.major>M||this.major<0)throw new TypeError("Invalid major version");if(this.minor>M||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>M||this.patch<0)throw new TypeError("Invalid patch version");xe[4]?this.prerelease=xe[4].split(".").map(function(le){if(/^[0-9]+$/.test(le)){var qe=+le;if(qe>=0&&qe=0;)typeof this.prerelease[xe]=="number"&&(this.prerelease[xe]++,xe=-2);xe===-1&&this.prerelease.push(0)}fe&&(this.prerelease[0]===fe?isNaN(this.prerelease[1])&&(this.prerelease=[fe,0]):this.prerelease=[fe,0]);break;default:throw new Error("invalid increment argument: "+X)}return this.format(),this.raw=this.version,this},o.inc=function(X,fe,xe,le){typeof xe=="string"&&(le=xe,xe=void 0);try{return new m(X,xe).inc(fe,le).version}catch(qe){return null}},o.diff=function(X,fe){if(ce(X,fe))return null;var xe=ne(X),le=ne(fe),qe="";if(xe.prerelease.length||le.prerelease.length){qe="pre";var dt="prerelease"}for(var Rt in xe)if((Rt==="major"||Rt==="minor"||Rt==="patch")&&xe[Rt]!==le[Rt])return qe+Rt;return dt},o.compareIdentifiers=ge;var pe=/^[0-9]+$/;function ge(X,fe){var xe=pe.test(X),le=pe.test(fe);return xe&&le&&(X=+X,fe=+fe),X===fe?0:xe&&!le?-1:le&&!xe?1:X0}function _e(X,fe,xe){return ve(X,fe,xe)<0}function ce(X,fe,xe){return ve(X,fe,xe)===0}function me(X,fe,xe){return ve(X,fe,xe)!==0}function re(X,fe,xe){return ve(X,fe,xe)>=0}function we(X,fe,xe){return ve(X,fe,xe)<=0}function Ie(X,fe,xe,le){switch(fe){case"===":return _(X)==="object"&&(X=X.version),_(xe)==="object"&&(xe=xe.version),X===xe;case"!==":return _(X)==="object"&&(X=X.version),_(xe)==="object"&&(xe=xe.version),X!==xe;case"":case"=":case"==":return ce(X,xe,le);case"!=":return me(X,xe,le);case">":return ue(X,xe,le);case">=":return re(X,xe,le);case"<":return _e(X,xe,le);case"<=":return we(X,xe,le);default:throw new TypeError("Invalid operator: "+fe)}}function je(X,fe){if(fe&&_(fe)==="object"||(fe={loose:!!fe,includePrerelease:!1}),X instanceof je){if(X.loose===!!fe.loose)return X;X=X.value}if(!(this instanceof je))return new je(X,fe);t("comparator",X,fe),this.options=fe,this.loose=!!fe.loose,this.parse(X),this.semver===ct?this.value="":this.value=this.operator+this.semver.version,t("comp",this)}o.rcompareIdentifiers=function(X,fe){return ge(fe,X)},o.major=function(X,fe){return new m(X,fe).major},o.minor=function(X,fe){return new m(X,fe).minor},o.patch=function(X,fe){return new m(X,fe).patch},o.compare=ve,o.compareLoose=function(X,fe){return ve(X,fe,!0)},o.compareBuild=function(X,fe,xe){var le=new m(X,xe),qe=new m(fe,xe);return le.compare(qe)||le.compareBuild(qe)},o.rcompare=function(X,fe,xe){return ve(fe,X,xe)},o.sort=function(X,fe){return X.sort(function(xe,le){return o.compareBuild(xe,le,fe)})},o.rsort=function(X,fe){return X.sort(function(xe,le){return o.compareBuild(le,xe,fe)})},o.gt=ue,o.lt=_e,o.eq=ce,o.neq=me,o.gte=re,o.lte=we,o.cmp=Ie,o.Comparator=je;var ct={};function pt(X,fe){if(fe&&_(fe)==="object"||(fe={loose:!!fe,includePrerelease:!1}),X instanceof pt)return X.loose===!!fe.loose&&X.includePrerelease===!!fe.includePrerelease?X:new pt(X.raw,fe);if(X instanceof je)return new pt(X.value,fe);if(!(this instanceof pt))return new pt(X,fe);if(this.options=fe,this.loose=!!fe.loose,this.includePrerelease=!!fe.includePrerelease,this.raw=X,this.set=X.split(/\s*\|\|\s*/).map(function(xe){return this.parseRange(xe.trim())},this).filter(function(xe){return xe.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+X);this.format()}function Xe(X,fe){for(var xe=!0,le=X.slice(),qe=le.pop();xe&&le.length;)xe=le.every(function(dt){return qe.intersects(dt,fe)}),qe=le.pop();return xe}function tt(X){return!X||X.toLowerCase()==="x"||X==="*"}function He(X,fe,xe,le,qe,dt,Rt,nn,an,Mn,lr,ln,Gt){return((fe=tt(xe)?"":tt(le)?">="+xe+".0.0":tt(qe)?">="+xe+"."+le+".0":">="+fe)+" "+(nn=tt(an)?"":tt(Mn)?"<"+(+an+1)+".0.0":tt(lr)?"<"+an+"."+(+Mn+1)+".0":ln?"<="+an+"."+Mn+"."+lr+"-"+ln:"<="+nn)).trim()}function kt(X,fe,xe){for(var le=0;le0){var qe=X[le].semver;if(qe.major===fe.major&&qe.minor===fe.minor&&qe.patch===fe.patch)return!0}return!1}return!0}function zt(X,fe,xe){try{fe=new pt(fe,xe)}catch(le){return!1}return fe.test(X)}function nt(X,fe,xe,le){var qe,dt,Rt,nn,an;switch(X=new m(X,le),fe=new pt(fe,le),xe){case">":qe=ue,dt=we,Rt=_e,nn=">",an=">=";break;case"<":qe=_e,dt=re,Rt=ue,nn="<",an="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(zt(X,fe,le))return!1;for(var Mn=0;Mn=0.0.0")),ln=ln||Er,Gt=Gt||Er,qe(Er.semver,ln.semver,le)?ln=Er:Rt(Er.semver,Gt.semver,le)&&(Gt=Er)}),ln.operator===nn||ln.operator===an||(!Gt.operator||Gt.operator===nn)&&dt(X,Gt.semver)||Gt.operator===an&&Rt(X,Gt.semver))return!1}return!0}je.prototype.parse=function(X){var fe=this.options.loose?N[T.COMPARATORLOOSE]:N[T.COMPARATOR],xe=X.match(fe);if(!xe)throw new TypeError("Invalid comparator: "+X);this.operator=xe[1]!==void 0?xe[1]:"",this.operator==="="&&(this.operator=""),xe[2]?this.semver=new m(xe[2],this.options.loose):this.semver=ct},je.prototype.toString=function(){return this.value},je.prototype.test=function(X){if(t("Comparator.test",X,this.options.loose),this.semver===ct||X===ct)return!0;if(typeof X=="string")try{X=new m(X,this.options)}catch(fe){return!1}return Ie(X,this.operator,this.semver,this.options)},je.prototype.intersects=function(X,fe){if(!(X instanceof je))throw new TypeError("a Comparator is required");var xe;if(fe&&_(fe)==="object"||(fe={loose:!!fe,includePrerelease:!1}),this.operator==="")return this.value===""||(xe=new pt(X.value,fe),zt(this.value,xe,fe));if(X.operator==="")return X.value===""||(xe=new pt(this.value,fe),zt(X.semver,xe,fe));var le=!(this.operator!==">="&&this.operator!==">"||X.operator!==">="&&X.operator!==">"),qe=!(this.operator!=="<="&&this.operator!=="<"||X.operator!=="<="&&X.operator!=="<"),dt=this.semver.version===X.semver.version,Rt=!(this.operator!==">="&&this.operator!=="<="||X.operator!==">="&&X.operator!=="<="),nn=Ie(this.semver,"<",X.semver,fe)&&(this.operator===">="||this.operator===">")&&(X.operator==="<="||X.operator==="<"),an=Ie(this.semver,">",X.semver,fe)&&(this.operator==="<="||this.operator==="<")&&(X.operator===">="||X.operator===">");return le||qe||dt&&Rt||nn||an},o.Range=pt,pt.prototype.format=function(){return this.range=this.set.map(function(X){return X.join(" ").trim()}).join("||").trim(),this.range},pt.prototype.toString=function(){return this.range},pt.prototype.parseRange=function(X){var fe=this.options.loose;X=X.trim();var xe=fe?N[T.HYPHENRANGELOOSE]:N[T.HYPHENRANGE];X=X.replace(xe,He),t("hyphen replace",X),X=X.replace(N[T.COMPARATORTRIM],"$1$2$3"),t("comparator trim",X,N[T.COMPARATORTRIM]),X=(X=(X=X.replace(N[T.TILDETRIM],"$1~")).replace(N[T.CARETTRIM],"$1^")).split(/\s+/).join(" ");var le=fe?N[T.COMPARATORLOOSE]:N[T.COMPARATOR],qe=X.split(" ").map(function(dt){return function(Rt,nn){return t("comp",Rt,nn),Rt=function(an,Mn){return an.trim().split(/\s+/).map(function(lr){return function(ln,Gt){t("caret",ln,Gt);var Er=Gt.loose?N[T.CARETLOOSE]:N[T.CARET];return ln.replace(Er,function(w,jt,Xn,vr,jr){var fr;return t("caret",ln,w,jt,Xn,vr,jr),tt(jt)?fr="":tt(Xn)?fr=">="+jt+".0.0 <"+(+jt+1)+".0.0":tt(vr)?fr=jt==="0"?">="+jt+"."+Xn+".0 <"+jt+"."+(+Xn+1)+".0":">="+jt+"."+Xn+".0 <"+(+jt+1)+".0.0":jr?(t("replaceCaret pr",jr),fr=jt==="0"?Xn==="0"?">="+jt+"."+Xn+"."+vr+"-"+jr+" <"+jt+"."+Xn+"."+(+vr+1):">="+jt+"."+Xn+"."+vr+"-"+jr+" <"+jt+"."+(+Xn+1)+".0":">="+jt+"."+Xn+"."+vr+"-"+jr+" <"+(+jt+1)+".0.0"):(t("no pr"),fr=jt==="0"?Xn==="0"?">="+jt+"."+Xn+"."+vr+" <"+jt+"."+Xn+"."+(+vr+1):">="+jt+"."+Xn+"."+vr+" <"+jt+"."+(+Xn+1)+".0":">="+jt+"."+Xn+"."+vr+" <"+(+jt+1)+".0.0"),t("caret return",fr),fr})}(lr,Mn)}).join(" ")}(Rt,nn),t("caret",Rt),Rt=function(an,Mn){return an.trim().split(/\s+/).map(function(lr){return function(ln,Gt){var Er=Gt.loose?N[T.TILDELOOSE]:N[T.TILDE];return ln.replace(Er,function(w,jt,Xn,vr,jr){var fr;return t("tilde",ln,w,jt,Xn,vr,jr),tt(jt)?fr="":tt(Xn)?fr=">="+jt+".0.0 <"+(+jt+1)+".0.0":tt(vr)?fr=">="+jt+"."+Xn+".0 <"+jt+"."+(+Xn+1)+".0":jr?(t("replaceTilde pr",jr),fr=">="+jt+"."+Xn+"."+vr+"-"+jr+" <"+jt+"."+(+Xn+1)+".0"):fr=">="+jt+"."+Xn+"."+vr+" <"+jt+"."+(+Xn+1)+".0",t("tilde return",fr),fr})}(lr,Mn)}).join(" ")}(Rt,nn),t("tildes",Rt),Rt=function(an,Mn){return t("replaceXRanges",an,Mn),an.split(/\s+/).map(function(lr){return function(ln,Gt){ln=ln.trim();var Er=Gt.loose?N[T.XRANGELOOSE]:N[T.XRANGE];return ln.replace(Er,function(w,jt,Xn,vr,jr,fr){t("xRange",ln,w,jt,Xn,vr,jr,fr);var zr=tt(Xn),Qt=zr||tt(vr),wu=Qt||tt(jr),po=wu;return jt==="="&&po&&(jt=""),fr=Gt.includePrerelease?"-0":"",zr?w=jt===">"||jt==="<"?"<0.0.0-0":"*":jt&&po?(Qt&&(vr=0),jr=0,jt===">"?(jt=">=",Qt?(Xn=+Xn+1,vr=0,jr=0):(vr=+vr+1,jr=0)):jt==="<="&&(jt="<",Qt?Xn=+Xn+1:vr=+vr+1),w=jt+Xn+"."+vr+"."+jr+fr):Qt?w=">="+Xn+".0.0"+fr+" <"+(+Xn+1)+".0.0"+fr:wu&&(w=">="+Xn+"."+vr+".0"+fr+" <"+Xn+"."+(+vr+1)+".0"+fr),t("xRange return",w),w})}(lr,Mn)}).join(" ")}(Rt,nn),t("xrange",Rt),Rt=function(an,Mn){return t("replaceStars",an,Mn),an.trim().replace(N[T.STAR],"")}(Rt,nn),t("stars",Rt),Rt}(dt,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(qe=qe.filter(function(dt){return!!dt.match(le)})),qe=qe.map(function(dt){return new je(dt,this.options)},this)},pt.prototype.intersects=function(X,fe){if(!(X instanceof pt))throw new TypeError("a Range is required");return this.set.some(function(xe){return Xe(xe,fe)&&X.set.some(function(le){return Xe(le,fe)&&xe.every(function(qe){return le.every(function(dt){return qe.intersects(dt,fe)})})})})},o.toComparators=function(X,fe){return new pt(X,fe).set.map(function(xe){return xe.map(function(le){return le.value}).join(" ").trim().split(" ")})},pt.prototype.test=function(X){if(!X)return!1;if(typeof X=="string")try{X=new m(X,this.options)}catch(xe){return!1}for(var fe=0;fe":dt.prerelease.length===0?dt.patch++:dt.prerelease.push(0),dt.raw=dt.format();case"":case">=":xe&&!ue(xe,dt)||(xe=dt);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+qe.operator)}});return xe&&X.test(xe)?xe:null},o.validRange=function(X,fe){try{return new pt(X,fe).range||"*"}catch(xe){return null}},o.ltr=function(X,fe,xe){return nt(X,fe,"<",xe)},o.gtr=function(X,fe,xe){return nt(X,fe,">",xe)},o.outside=nt,o.prerelease=function(X,fe){var xe=ne(X,fe);return xe&&xe.prerelease.length?xe.prerelease:null},o.intersects=function(X,fe,xe){return X=new pt(X,xe),fe=new pt(fe,xe),X.intersects(fe)},o.coerce=function(X,fe){if(X instanceof m)return X;if(typeof X=="number"&&(X=String(X)),typeof X!="string")return null;var xe=null;if((fe=fe||{}).rtl){for(var le;(le=N[T.COERCERTL].exec(X))&&(!xe||xe.index+xe[0].length!==X.length);)xe&&le.index+le[0].length===xe.index+xe[0].length||(xe=le),N[T.COERCERTL].lastIndex=le.index+le[1].length+le[2].length;N[T.COERCERTL].lastIndex=-1}else xe=X.match(N[T.COERCE]);return xe===null?null:ne(xe[2]+"."+(xe[3]||"0")+"."+(xe[4]||"0"),fe)}}).call(this,a(5))},function(i,o){function a(_){return(a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(_)}var c;c=function(){return this}();try{c=c||new Function("return this")()}catch(_){(typeof window=="undefined"?"undefined":a(window))==="object"&&(c=window)}i.exports=c},function(i,o){var a,c,_=i.exports={};function t(){throw new Error("setTimeout has not been defined")}function M(){throw new Error("clearTimeout has not been defined")}function N(ge){if(a===setTimeout)return setTimeout(ge,0);if((a===t||!a)&&setTimeout)return a=setTimeout,setTimeout(ge,0);try{return a(ge,0)}catch(ve){try{return a.call(null,ge,0)}catch(ue){return a.call(this,ge,0)}}}(function(){try{a=typeof setTimeout=="function"?setTimeout:t}catch(ge){a=t}try{c=typeof clearTimeout=="function"?clearTimeout:M}catch(ge){c=M}})();var O,T=[],B=!1,H=-1;function q(){B&&O&&(B=!1,O.length?T=O.concat(T):H=-1,T.length&&ne())}function ne(){if(!B){var ge=N(q);B=!0;for(var ve=T.length;ve;){for(O=T,T=[];++H1)for(var ue=1;uethis[M])return me(this,this[m].get(Xe)),!1;var nt=this[m].get(Xe).value;return this[H]&&(this[q]||this[H](Xe,nt.value)),nt.now=kt,nt.maxAge=He,nt.value=tt,this[N]+=zt-nt.length,nt.length=zt,this.get(Xe),ce(this),!0}var X=new re(Xe,tt,zt,kt,He);return X.length>this[M]?(this[H]&&this[H](Xe,tt),!1):(this[N]+=X.length,this[ne].unshift(X),this[m].set(Xe,this[ne].head),ce(this),!0)}},{key:"has",value:function(Xe){if(!this[m].has(Xe))return!1;var tt=this[m].get(Xe).value;return!_e(this,tt)}},{key:"get",value:function(Xe){return ue(this,Xe,!0)}},{key:"peek",value:function(Xe){return ue(this,Xe,!1)}},{key:"pop",value:function(){var Xe=this[ne].tail;return Xe?(me(this,Xe),Xe.value):null}},{key:"del",value:function(Xe){me(this,this[m].get(Xe))}},{key:"load",value:function(Xe){this.reset();for(var tt=Date.now(),He=Xe.length-1;He>=0;He--){var kt=Xe[He],zt=kt.e||0;if(zt===0)this.set(kt.k,kt.v);else{var nt=zt-tt;nt>0&&this.set(kt.k,kt.v,nt)}}}},{key:"prune",value:function(){var Xe=this;this[m].forEach(function(tt,He){return ue(Xe,He,!1)})}},{key:"max",set:function(Xe){if(typeof Xe!="number"||Xe<0)throw new TypeError("max must be a non-negative number");this[M]=Xe||1/0,ce(this)},get:function(){return this[M]}},{key:"allowStale",set:function(Xe){this[T]=!!Xe},get:function(){return this[T]}},{key:"maxAge",set:function(Xe){if(typeof Xe!="number")throw new TypeError("maxAge must be a non-negative number");this[B]=Xe,ce(this)},get:function(){return this[B]}},{key:"lengthCalculator",set:function(Xe){var tt=this;typeof Xe!="function"&&(Xe=ge),Xe!==this[O]&&(this[O]=Xe,this[N]=0,this[ne].forEach(function(He){He.length=tt[O](He.value,He.key),tt[N]+=He.length})),ce(this)},get:function(){return this[O]}},{key:"length",get:function(){return this[N]}},{key:"itemCount",get:function(){return this[ne].length}}])&&_(je.prototype,ct),pt&&_(je,pt),Ie}(),ue=function(Ie,je,ct){var pt=Ie[m].get(je);if(pt){var Xe=pt.value;if(_e(Ie,Xe)){if(me(Ie,pt),!Ie[T])return}else ct&&(Ie[pe]&&(pt.value.now=Date.now()),Ie[ne].unshiftNode(pt));return Xe.value}},_e=function(Ie,je){if(!je||!je.maxAge&&!Ie[B])return!1;var ct=Date.now()-je.now;return je.maxAge?ct>je.maxAge:Ie[B]&&ct>Ie[B]},ce=function(Ie){if(Ie[N]>Ie[M])for(var je=Ie[ne].tail;Ie[N]>Ie[M]&&je!==null;){var ct=je.prev;me(Ie,je),je=ct}},me=function(Ie,je){if(je){var ct=je.value;Ie[H]&&Ie[H](ct.key,ct.value),Ie[N]-=ct.length,Ie[m].delete(ct.key),Ie[ne].removeNode(je)}},re=function Ie(je,ct,pt,Xe,tt){c(this,Ie),this.key=je,this.value=ct,this.length=pt,this.now=Xe,this.maxAge=tt||0},we=function(Ie,je,ct,pt){var Xe=ct.value;_e(Ie,Xe)&&(me(Ie,ct),Ie[T]||(Xe=void 0)),Xe&&je.call(pt,Xe.value,Xe.key,Ie)};i.exports=ve},function(i,o,a){(function(c){function _(t){return(_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(M){return typeof M}:function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M})(t)}i.exports=function(){if(typeof document=="undefined"||!document.addEventListener)return null;var t,M,N,O={};return O.copy=function(){var T=!1,B=null,H=!1;function q(){T=!1,B=null,H&&window.getSelection().removeAllRanges(),H=!1}return document.addEventListener("copy",function(ne){if(T){for(var m in B)ne.clipboardData.setData(m,B[m]);ne.preventDefault()}}),function(ne){return new Promise(function(m,pe){T=!0,typeof ne=="string"?B={"text/plain":ne}:ne instanceof Node?B={"text/html":new XMLSerializer().serializeToString(ne)}:ne instanceof Object?B=ne:pe("Invalid data type. Must be string, DOM node, or an object mapping MIME types to strings."),function ge(ve){try{if(document.execCommand("copy"))q(),m();else{if(ve)throw q(),new Error("Unable to copy. Perhaps it's not available in your browser?");(function(){var ue=document.getSelection();if(!document.queryCommandEnabled("copy")&&ue.isCollapsed){var _e=document.createRange();_e.selectNodeContents(document.body),ue.removeAllRanges(),ue.addRange(_e),H=!0}})(),ge(!0)}}catch(ue){q(),pe(ue)}}(!1)})}}(),O.paste=(N=!1,document.addEventListener("paste",function(T){if(N){N=!1,T.preventDefault();var B=t;t=null,B(T.clipboardData.getData(M))}}),function(T){return new Promise(function(B,H){N=!0,t=B,M=T||"text/plain";try{document.execCommand("paste")||(N=!1,H(new Error("Unable to paste. Pasting only works in Internet Explorer at the moment.")))}catch(q){N=!1,H(new Error(q))}})}),typeof ClipboardEvent=="undefined"&&window.clipboardData!==void 0&&window.clipboardData.setData!==void 0&&(function(T){function B(ce,me){return function(){ce.apply(me,arguments)}}function H(ce){if(_(this)!="object")throw new TypeError("Promises must be constructed via new");if(typeof ce!="function")throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],ve(ce,B(ne,this),B(m,this))}function q(ce){var me=this;return this._state===null?void this._deferreds.push(ce):void ue(function(){var re=me._state?ce.onFulfilled:ce.onRejected;if(re!==null){var we;try{we=re(me._value)}catch(Ie){return void ce.reject(Ie)}ce.resolve(we)}else(me._state?ce.resolve:ce.reject)(me._value)})}function ne(ce){try{if(ce===this)throw new TypeError("A promise cannot be resolved with itself.");if(ce&&(_(ce)=="object"||typeof ce=="function")){var me=ce.then;if(typeof me=="function")return void ve(B(me,ce),B(ne,this),B(m,this))}this._state=!0,this._value=ce,pe.call(this)}catch(re){m.call(this,re)}}function m(ce){this._state=!1,this._value=ce,pe.call(this)}function pe(){for(var ce=0,me=this._deferreds.length;me>ce;ce++)q.call(this,this._deferreds[ce]);this._deferreds=null}function ge(ce,me,re,we){this.onFulfilled=typeof ce=="function"?ce:null,this.onRejected=typeof me=="function"?me:null,this.resolve=re,this.reject=we}function ve(ce,me,re){var we=!1;try{ce(function(Ie){we||(we=!0,me(Ie))},function(Ie){we||(we=!0,re(Ie))})}catch(Ie){if(we)return;we=!0,re(Ie)}}var ue=H.immediateFn||typeof c=="function"&&c||function(ce){setTimeout(ce,1)},_e=Array.isArray||function(ce){return Object.prototype.toString.call(ce)==="[object Array]"};H.prototype.catch=function(ce){return this.then(null,ce)},H.prototype.then=function(ce,me){var re=this;return new H(function(we,Ie){q.call(re,new ge(ce,me,we,Ie))})},H.all=function(){var ce=Array.prototype.slice.call(arguments.length===1&&_e(arguments[0])?arguments[0]:arguments);return new H(function(me,re){function we(ct,pt){try{if(pt&&(_(pt)=="object"||typeof pt=="function")){var Xe=pt.then;if(typeof Xe=="function")return void Xe.call(pt,function(tt){we(ct,tt)},re)}ce[ct]=pt,--Ie==0&&me(ce)}catch(tt){re(tt)}}if(ce.length===0)return me([]);for(var Ie=ce.length,je=0;jewe;we++)ce[we].then(me,re)})},i.exports?i.exports=H:T.Promise||(T.Promise=H)}(this),O.copy=function(T){return new Promise(function(B,H){if(typeof T!="string"&&!("text/plain"in T))throw new Error("You must provide a text/plain type.");var q=typeof T=="string"?T:T["text/plain"];window.clipboardData.setData("Text",q)?B():H(new Error("Copying was rejected."))})},O.paste=function(){return new Promise(function(T,B){var H=window.clipboardData.getData("Text");H?T(H):B(new Error("Pasting was rejected."))})}),O}()}).call(this,a(13).setImmediate)},function(i,o,a){"use strict";i.exports=a(15)},function(i,o,a){"use strict";a.r(o),o.default=`:root { + /** + * IMPORTANT: When new theme variables are added below\u2013 also add them to SettingsContext updateThemeVariables() + */ + + /* Light theme */ + --light-color-attribute-name: #ef6632; + --light-color-attribute-name-not-editable: #23272f; + --light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7); + --light-color-attribute-value: #1a1aa6; + --light-color-attribute-value-inverted: #ffffff; + --light-color-attribute-editable-value: #1a1aa6; + --light-color-background: #ffffff; + --light-color-background-hover: rgba(0, 136, 250, 0.1); + --light-color-background-inactive: #e5e5e5; + --light-color-background-invalid: #fff0f0; + --light-color-background-selected: #0088fa; + --light-color-button-background: #ffffff; + --light-color-button-background-focus: #ededed; + --light-color-button: #5f6673; + --light-color-button-disabled: #cfd1d5; + --light-color-button-active: #0088fa; + --light-color-button-focus: #23272f; + --light-color-button-hover: #23272f; + --light-color-border: #eeeeee; + --light-color-commit-did-not-render-fill: #cfd1d5; + --light-color-commit-did-not-render-fill-text: #000000; + --light-color-commit-did-not-render-pattern: #cfd1d5; + --light-color-commit-did-not-render-pattern-text: #333333; + --light-color-commit-gradient-0: #37afa9; + --light-color-commit-gradient-1: #63b19e; + --light-color-commit-gradient-2: #80b393; + --light-color-commit-gradient-3: #97b488; + --light-color-commit-gradient-4: #abb67d; + --light-color-commit-gradient-5: #beb771; + --light-color-commit-gradient-6: #cfb965; + --light-color-commit-gradient-7: #dfba57; + --light-color-commit-gradient-8: #efbb49; + --light-color-commit-gradient-9: #febc38; + --light-color-commit-gradient-text: #000000; + --light-color-component-name: #6a51b2; + --light-color-component-name-inverted: #ffffff; + --light-color-component-badge-background: rgba(0, 0, 0, 0.1); + --light-color-component-badge-background-inverted: rgba(255, 255, 255, 0.25); + --light-color-component-badge-count: #777d88; + --light-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --light-color-context-background: rgba(0,0,0,.9); + --light-color-context-background-hover: rgba(255, 255, 255, 0.1); + --light-color-context-background-selected: #178fb9; + --light-color-context-border: #3d424a; + --light-color-context-text: #ffffff; + --light-color-context-text-selected: #ffffff; + --light-color-dim: #777d88; + --light-color-dimmer: #cfd1d5; + --light-color-dimmest: #eff0f1; + --light-color-error-background: hsl(0, 100%, 97%); + --light-color-error-border: hsl(0, 100%, 92%); + --light-color-error-text: #ff0000; + --light-color-expand-collapse-toggle: #777d88; + --light-color-link: #0000ff; + --light-color-modal-background: rgba(255, 255, 255, 0.75); + --light-color-record-active: #fc3a4b; + --light-color-record-hover: #3578e5; + --light-color-record-inactive: #0088fa; + --light-color-scroll-thumb: #c2c2c2; + --light-color-scroll-track: #fafafa; + --light-color-search-match: yellow; + --light-color-search-match-current: #f7923b; + --light-color-selected-tree-highlight-active: rgba(0, 136, 250, 0.1); + --light-color-selected-tree-highlight-inactive: rgba(0, 0, 0, 0.05); + --light-color-shadow: rgba(0, 0, 0, 0.25); + --light-color-tab-selected-border: #0088fa; + --light-color-text: #000000; + --light-color-text-invalid: #ff0000; + --light-color-text-selected: #ffffff; + --light-color-toggle-background-invalid: #fc3a4b; + --light-color-toggle-background-on: #0088fa; + --light-color-toggle-background-off: #cfd1d5; + --light-color-toggle-text: #ffffff; + --light-color-tooltip-background: rgba(0, 0, 0, 0.9); + --light-color-tooltip-text: #ffffff; + + /* Dark theme */ + --dark-color-attribute-name: #9d87d2; + --dark-color-attribute-name-not-editable: #ededed; + --dark-color-attribute-name-inverted: #282828; + --dark-color-attribute-value: #cedae0; + --dark-color-attribute-value-inverted: #ffffff; + --dark-color-attribute-editable-value: yellow; + --dark-color-background: #282c34; + --dark-color-background-hover: rgba(255, 255, 255, 0.1); + --dark-color-background-inactive: #3d424a; + --dark-color-background-invalid: #5c0000; + --dark-color-background-selected: #178fb9; + --dark-color-button-background: #282c34; + --dark-color-button-background-focus: #3d424a; + --dark-color-button: #afb3b9; + --dark-color-button-active: #61dafb; + --dark-color-button-disabled: #4f5766; + --dark-color-button-focus: #a2e9fc; + --dark-color-button-hover: #ededed; + --dark-color-border: #3d424a; + --dark-color-commit-did-not-render-fill: #777d88; + --dark-color-commit-did-not-render-fill-text: #000000; + --dark-color-commit-did-not-render-pattern: #666c77; + --dark-color-commit-did-not-render-pattern-text: #ffffff; + --dark-color-commit-gradient-0: #37afa9; + --dark-color-commit-gradient-1: #63b19e; + --dark-color-commit-gradient-2: #80b393; + --dark-color-commit-gradient-3: #97b488; + --dark-color-commit-gradient-4: #abb67d; + --dark-color-commit-gradient-5: #beb771; + --dark-color-commit-gradient-6: #cfb965; + --dark-color-commit-gradient-7: #dfba57; + --dark-color-commit-gradient-8: #efbb49; + --dark-color-commit-gradient-9: #febc38; + --dark-color-commit-gradient-text: #000000; + --dark-color-component-name: #61dafb; + --dark-color-component-name-inverted: #282828; + --dark-color-component-badge-background: rgba(255, 255, 255, 0.25); + --dark-color-component-badge-background-inverted: rgba(0, 0, 0, 0.25); + --dark-color-component-badge-count: #8f949d; + --dark-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --dark-color-context-background: rgba(255,255,255,.9); + --dark-color-context-background-hover: rgba(0, 136, 250, 0.1); + --dark-color-context-background-selected: #0088fa; + --dark-color-context-border: #eeeeee; + --dark-color-context-text: #000000; + --dark-color-context-text-selected: #ffffff; + --dark-color-dim: #8f949d; + --dark-color-dimmer: #777d88; + --dark-color-dimmest: #4f5766; + --dark-color-error-background: #200; + --dark-color-error-border: #900; + --dark-color-error-text: #f55; + --dark-color-expand-collapse-toggle: #8f949d; + --dark-color-link: #61dafb; + --dark-color-modal-background: rgba(0, 0, 0, 0.75); + --dark-color-record-active: #fc3a4b; + --dark-color-record-hover: #a2e9fc; + --dark-color-record-inactive: #61dafb; + --dark-color-scroll-thumb: #afb3b9; + --dark-color-scroll-track: #313640; + --dark-color-search-match: yellow; + --dark-color-search-match-current: #f7923b; + --dark-color-selected-tree-highlight-active: rgba(23, 143, 185, 0.15); + --dark-color-selected-tree-highlight-inactive: rgba(255, 255, 255, 0.05); + --dark-color-shadow: rgba(0, 0, 0, 0.5); + --dark-color-tab-selected-border: #178fb9; + --dark-color-text: #ffffff; + --dark-color-text-invalid: #ff8080; + --dark-color-text-selected: #ffffff; + --dark-color-toggle-background-invalid: #fc3a4b; + --dark-color-toggle-background-on: #178fb9; + --dark-color-toggle-background-off: #777d88; + --dark-color-toggle-text: #ffffff; + --dark-color-tooltip-background: rgba(255, 255, 255, 0.9); + --dark-color-tooltip-text: #000000; + + /* Font smoothing */ + --light-font-smoothing: auto; + --dark-font-smoothing: antialiased; + --font-smoothing: auto; + + /* Compact density */ + --compact-font-size-monospace-small: 9px; + --compact-font-size-monospace-normal: 11px; + --compact-font-size-monospace-large: 15px; + --compact-font-size-sans-small: 10px; + --compact-font-size-sans-normal: 12px; + --compact-font-size-sans-large: 14px; + --compact-line-height-data: 18px; + --compact-root-font-size: 16px; + + /* Comfortable density */ + --comfortable-font-size-monospace-small: 10px; + --comfortable-font-size-monospace-normal: 13px; + --comfortable-font-size-monospace-large: 17px; + --comfortable-font-size-sans-small: 12px; + --comfortable-font-size-sans-normal: 14px; + --comfortable-font-size-sans-large: 16px; + --comfortable-line-height-data: 22px; + --comfortable-root-font-size: 20px; + + /* GitHub.com system fonts */ + --font-family-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, + Courier, monospace; + --font-family-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, + Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + + /* Constant values shared between JS and CSS */ + --interaction-commit-size: 10px; + --interaction-label-width: 200px; +} +`},function(i,o,a){"use strict";function c(O){var T=this;if(T instanceof c||(T=new c),T.tail=null,T.head=null,T.length=0,O&&typeof O.forEach=="function")O.forEach(function(q){T.push(q)});else if(arguments.length>0)for(var B=0,H=arguments.length;B1)B=T;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");H=this.head.next,B=this.head.value}for(var q=0;H!==null;q++)B=O(B,H.value,q),H=H.next;return B},c.prototype.reduceReverse=function(O,T){var B,H=this.tail;if(arguments.length>1)B=T;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");H=this.tail.prev,B=this.tail.value}for(var q=this.length-1;H!==null;q--)B=O(B,H.value,q),H=H.prev;return B},c.prototype.toArray=function(){for(var O=new Array(this.length),T=0,B=this.head;B!==null;T++)O[T]=B.value,B=B.next;return O},c.prototype.toArrayReverse=function(){for(var O=new Array(this.length),T=0,B=this.tail;B!==null;T++)O[T]=B.value,B=B.prev;return O},c.prototype.slice=function(O,T){(T=T||this.length)<0&&(T+=this.length),(O=O||0)<0&&(O+=this.length);var B=new c;if(Tthis.length&&(T=this.length);for(var H=0,q=this.head;q!==null&&Hthis.length&&(T=this.length);for(var H=this.length,q=this.tail;q!==null&&H>T;H--)q=q.prev;for(;q!==null&&H>O;H--,q=q.prev)B.push(q.value);return B},c.prototype.splice=function(O,T){O>this.length&&(O=this.length-1),O<0&&(O=this.length+O);for(var B=0,H=this.head;H!==null&&B=0&&(N._idleTimeoutId=setTimeout(function(){N._onTimeout&&N._onTimeout()},O))},a(14),o.setImmediate=typeof self!="undefined"&&self.setImmediate||c!==void 0&&c.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self!="undefined"&&self.clearImmediate||c!==void 0&&c.clearImmediate||this&&this.clearImmediate}).call(this,a(4))},function(i,o,a){(function(c,_){(function(t,M){"use strict";if(!t.setImmediate){var N,O,T,B,H,q=1,ne={},m=!1,pe=t.document,ge=Object.getPrototypeOf&&Object.getPrototypeOf(t);ge=ge&&ge.setTimeout?ge:t,{}.toString.call(t.process)==="[object process]"?N=function(_e){_.nextTick(function(){ue(_e)})}:function(){if(t.postMessage&&!t.importScripts){var _e=!0,ce=t.onmessage;return t.onmessage=function(){_e=!1},t.postMessage("","*"),t.onmessage=ce,_e}}()?(B="setImmediate$"+Math.random()+"$",H=function(_e){_e.source===t&&typeof _e.data=="string"&&_e.data.indexOf(B)===0&&ue(+_e.data.slice(B.length))},t.addEventListener?t.addEventListener("message",H,!1):t.attachEvent("onmessage",H),N=function(_e){t.postMessage(B+_e,"*")}):t.MessageChannel?((T=new MessageChannel).port1.onmessage=function(_e){ue(_e.data)},N=function(_e){T.port2.postMessage(_e)}):pe&&"onreadystatechange"in pe.createElement("script")?(O=pe.documentElement,N=function(_e){var ce=pe.createElement("script");ce.onreadystatechange=function(){ue(_e),ce.onreadystatechange=null,O.removeChild(ce),ce=null},O.appendChild(ce)}):N=function(_e){setTimeout(ue,0,_e)},ge.setImmediate=function(_e){typeof _e!="function"&&(_e=new Function(""+_e));for(var ce=new Array(arguments.length-1),me=0;mefe;fe++)if((X=ve(nt,kt,fe))!==-1){ge=fe,kt=X;break e}kt=-1}}e:{if(nt=zt,(X=q().get(He.primitive))!==void 0){for(fe=0;fekt-nt?null:zt.slice(nt,kt-1))!==null){if(kt=0,je!==null){for(;ktkt;je--)ct=Xe.pop()}for(je=zt.length-kt-1;1<=je;je--)kt=[],ct.push({id:null,isStateEditable:!1,name:_e(zt[je-1].functionName),value:void 0,subHooks:kt}),Xe.push(ct),ct=kt;je=zt}kt=(zt=He.primitive)==="Context"||zt==="DebugValue"?null:pt++,ct.push({id:kt,isStateEditable:zt==="Reducer"||zt==="State",name:zt,value:He.value,subHooks:[]})}return function xe(le,qe){for(var dt=[],Rt=0;Rt-1&&(ne=ne.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var m=ne.replace(/^\s+/,"").replace(/\(eval code/g,"("),pe=m.match(/ (\((.+):(\d+):(\d+)\)$)/),ge=(m=pe?m.replace(pe[0],""):m).split(/\s+/).slice(1),ve=this.extractLocation(pe?pe[1]:ge.pop()),ue=ge.join(" ")||void 0,_e=["eval",""].indexOf(ve[0])>-1?void 0:ve[0];return new O({functionName:ue,fileName:_e,lineNumber:ve[1],columnNumber:ve[2],source:ne})},this)},parseFFOrSafari:function(q){return q.stack.split(` +`).filter(function(ne){return!ne.match(H)},this).map(function(ne){if(ne.indexOf(" > eval")>-1&&(ne=ne.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),ne.indexOf("@")===-1&&ne.indexOf(":")===-1)return new O({functionName:ne});var m=/((.*".+"[^@]*)?[^@]*)(?:@)/,pe=ne.match(m),ge=pe&&pe[1]?pe[1]:void 0,ve=this.extractLocation(ne.replace(m,""));return new O({functionName:ge,fileName:ve[0],lineNumber:ve[1],columnNumber:ve[2],source:ne})},this)},parseOpera:function(q){return!q.stacktrace||q.message.indexOf(` +`)>-1&&q.message.split(` +`).length>q.stacktrace.split(` +`).length?this.parseOpera9(q):q.stack?this.parseOpera11(q):this.parseOpera10(q)},parseOpera9:function(q){for(var ne=/Line (\d+).*script (?:in )?(\S+)/i,m=q.message.split(` +`),pe=[],ge=2,ve=m.length;ge/,"$2").replace(/\([^)]*\)/g,"")||void 0;ve.match(/\(([^)]*)\)/)&&(m=ve.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var _e=m===void 0||m==="[arguments not available]"?void 0:m.split(",");return new O({functionName:ue,args:_e,fileName:ge[0],lineNumber:ge[1],columnNumber:ge[2],source:ne})},this)}}})=="function"?c.apply(o,_):c)===void 0||(i.exports=t)})()},function(i,o,a){var c,_,t;(function(M,N){"use strict";_=[],(t=typeof(c=function(){function O(ue){return ue.charAt(0).toUpperCase()+ue.substring(1)}function T(ue){return function(){return this[ue]}}var B=["isConstructor","isEval","isNative","isToplevel"],H=["columnNumber","lineNumber"],q=["fileName","functionName","source"],ne=B.concat(H,q,["args"]);function m(ue){if(ue)for(var _e=0;_e1?Ae-1:0),ke=1;ke=0&&Ae.splice(Z,1)}}}])&&c(z.prototype,G),$&&c(z,$),U}(),t=a(2),M=a.n(t);try{var N=a(9).default,O=function(U){var z=new RegExp("".concat(U,": ([0-9]+)")),G=N.match(z);return parseInt(G[1],10)};O("comfortable-line-height-data"),O("compact-line-height-data")}catch(U){}function T(U){try{return sessionStorage.getItem(U)}catch(z){return null}}function B(U){try{sessionStorage.removeItem(U)}catch(z){}}function H(U,z){try{return sessionStorage.setItem(U,z)}catch(G){}}var q=function(U,z){return U===z},ne=a(1),m=a.n(ne);function pe(U){return U.ownerDocument?U.ownerDocument.defaultView:null}function ge(U){var z=pe(U);return z?z.frameElement:null}function ve(U){var z=ce(U);return ue([U.getBoundingClientRect(),{top:z.borderTop,left:z.borderLeft,bottom:z.borderBottom,right:z.borderRight,width:0,height:0}])}function ue(U){return U.reduce(function(z,G){return z==null?G:{top:z.top+G.top,left:z.left+G.left,width:z.width,height:z.height,bottom:z.bottom+G.bottom,right:z.right+G.right}})}function _e(U,z){var G=ge(U);if(G&&G!==z){for(var $=[U.getBoundingClientRect()],Ce=G,Ee=!1;Ce;){var Ae=ve(Ce);if($.push(Ae),Ce=ge(Ce),Ee)break;Ce&&pe(Ce)===z&&(Ee=!0)}return ue($)}return U.getBoundingClientRect()}function ce(U){var z=window.getComputedStyle(U);return{borderLeft:parseInt(z.borderLeftWidth,10),borderRight:parseInt(z.borderRightWidth,10),borderTop:parseInt(z.borderTopWidth,10),borderBottom:parseInt(z.borderBottomWidth,10),marginLeft:parseInt(z.marginLeft,10),marginRight:parseInt(z.marginRight,10),marginTop:parseInt(z.marginTop,10),marginBottom:parseInt(z.marginBottom,10),paddingLeft:parseInt(z.paddingLeft,10),paddingRight:parseInt(z.paddingRight,10),paddingTop:parseInt(z.paddingTop,10),paddingBottom:parseInt(z.paddingBottom,10)}}function me(U,z){var G;if(typeof Symbol=="undefined"||U[Symbol.iterator]==null){if(Array.isArray(U)||(G=function(ke,Je){if(!!ke){if(typeof ke=="string")return re(ke,Je);var mt=Object.prototype.toString.call(ke).slice(8,-1);if(mt==="Object"&&ke.constructor&&(mt=ke.constructor.name),mt==="Map"||mt==="Set")return Array.from(ke);if(mt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(mt))return re(ke,Je)}}(U))||z&&U&&typeof U.length=="number"){G&&(U=G);var $=0,Ce=function(){};return{s:Ce,n:function(){return $>=U.length?{done:!0}:{done:!1,value:U[$++]}},e:function(ke){throw ke},f:Ce}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Ee,Ae=!0,Z=!1;return{s:function(){G=U[Symbol.iterator]()},n:function(){var ke=G.next();return Ae=ke.done,ke},e:function(ke){Z=!0,Ee=ke},f:function(){try{Ae||G.return==null||G.return()}finally{if(Z)throw Ee}}}}function re(U,z){(z==null||z>U.length)&&(z=U.length);for(var G=0,$=new Array(z);GAe.left+Ae.width&&(oe=Ae.left+Ae.width-mt-5),{style:{top:ke+="px",left:oe+="px"}}}(z,G,{width:$.width,height:$.height});m()(this.tip.style,Ce.style)}}]),U}(),Xe=function(){function U(){we(this,U);var z=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.window=z;var G=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.tipBoundsWindow=G;var $=z.document;this.container=$.createElement("div"),this.container.style.zIndex="10000000",this.tip=new pt($,this.container),this.rects=[],$.body.appendChild(this.container)}return je(U,[{key:"remove",value:function(){this.tip.remove(),this.rects.forEach(function(z){z.remove()}),this.rects.length=0,this.container.parentNode&&this.container.parentNode.removeChild(this.container)}},{key:"inspect",value:function(z,G){for(var $=this,Ce=z.filter(function(Ct){return Ct.nodeType===Node.ELEMENT_NODE});this.rects.length>Ce.length;)this.rects.pop().remove();if(Ce.length!==0){for(;this.rects.length1&&arguments[1]!==void 0?arguments[1]:q,it=void 0,Ct=[],Mt=void 0,It=!1,sn=function(Ft,Dn){return We(Ft,Ct[Dn])},rn=function(){for(var Ft=arguments.length,Dn=Array(Ft),dr=0;dr5&&arguments[5]!==void 0?arguments[5]:0,Z=M0(U);switch(Z){case"html_element":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:U.tagName,type:Z};case"function":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:typeof U.name!="function"&&U.name?U.name:"function",type:Z};case"string":return U.length<=500?U:U.slice(0,500)+"...";case"bigint":case"symbol":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:U.toString(),type:Z};case"react_element":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:Po(U)||"Unknown",type:Z};case"array_buffer":case"data_view":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:Z==="data_view"?"DataView":"ArrayBuffer",size:U.byteLength,type:Z};case"array":return Ee=Ce($),Ae>=2&&!Ee?po(Z,!0,U,z,$):U.map(function(mt,oe){return A0(mt,z,G,$.concat([oe]),Ce,Ee?1:Ae+1)});case"html_all_collection":case"typed_array":case"iterator":if(Ee=Ce($),Ae>=2&&!Ee)return po(Z,!0,U,z,$);var ke={unserializable:!0,type:Z,readonly:!0,size:Z==="typed_array"?U.length:void 0,preview_short:ki(U,!1),preview_long:ki(U,!0),name:U.constructor&&U.constructor.name!=="Object"?U.constructor.name:""};return Qt(U[Symbol.iterator])&&Array.from(U).forEach(function(mt,oe){return ke[oe]=A0(mt,z,G,$.concat([oe]),Ce,Ee?1:Ae+1)}),G.push($),ke;case"opaque_iterator":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:U[Symbol.toStringTag],type:Z};case"date":case"regexp":return z.push($),{inspectable:!1,preview_short:ki(U,!1),preview_long:ki(U,!0),name:U.toString(),type:Z};case"object":if(Ee=Ce($),Ae>=2&&!Ee)return po(Z,!0,U,z,$);var Je={};return su(U).forEach(function(mt){var oe=mt.toString();Je[oe]=A0(U[mt],z,G,$.concat([oe]),Ce,Ee?1:Ae+1)}),Je;case"infinity":case"nan":case"undefined":return z.push($),{type:Z};default:return U}}function J0(U){return(J0=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(U)}function Ps(U){return function(z){if(Array.isArray(z))return Z0(z)}(U)||function(z){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(z))return Array.from(z)}(U)||function(z,G){if(!!z){if(typeof z=="string")return Z0(z,G);var $=Object.prototype.toString.call(z).slice(8,-1);if($==="Object"&&z.constructor&&($=z.constructor.name),$==="Map"||$==="Set")return Array.from(z);if($==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test($))return Z0(z,G)}}(U)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Z0(U,z){(z==null||z>U.length)&&(z=U.length);for(var G=0,$=new Array(z);Gz.toString()?1:z.toString()>U.toString()?-1:0}function su(U){for(var z=[],G=U,$=function(){var Ce=[].concat(Ps(Object.keys(G)),Ps(Object.getOwnPropertySymbols(G))),Ee=Object.getOwnPropertyDescriptors(G);Ce.forEach(function(Ae){Ee[Ae].enumerable&&z.push(Ae)}),G=Object.getPrototypeOf(G)};G!=null;)$();return z}function mi(U){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Anonymous",G=$0.get(U);if(G!=null)return G;var $=z;return typeof U.displayName=="string"?$=U.displayName:typeof U.name=="string"&&U.name!==""&&($=U.name),$0.set(U,$),$}var Dr=0;function el(){return++Dr}function Ko(U){var z=Wt.get(U);if(z!==void 0)return z;for(var G=new Array(U.length),$=0;$1&&arguments[1]!==void 0?arguments[1]:50;return U.length>z?U.substr(0,z)+"\u2026":U}function ki(U,z){if(U!=null&&hasOwnProperty.call(U,wu.type))return z?U[wu.preview_long]:U[wu.preview_short];switch(M0(U)){case"html_element":return"<".concat(au(U.tagName.toLowerCase())," />");case"function":return au("\u0192 ".concat(typeof U.name=="function"?"":U.name,"() {}"));case"string":return'"'.concat(U,'"');case"bigint":return au(U.toString()+"n");case"regexp":case"symbol":return au(U.toString());case"react_element":return"<".concat(au(Po(U)||"Unknown")," />");case"array_buffer":return"ArrayBuffer(".concat(U.byteLength,")");case"data_view":return"DataView(".concat(U.buffer.byteLength,")");case"array":if(z){for(var G="",$=0;$0&&(G+=", "),!((G+=ki(U[$],!1)).length>50));$++);return"[".concat(au(G),"]")}var Ce=hasOwnProperty.call(U,wu.size)?U[wu.size]:U.length;return"Array(".concat(Ce,")");case"typed_array":var Ee="".concat(U.constructor.name,"(").concat(U.length,")");if(z){for(var Ae="",Z=0;Z0&&(Ae+=", "),!((Ae+=U[Z]).length>50));Z++);return"".concat(Ee," [").concat(au(Ae),"]")}return Ee;case"iterator":var ke=U.constructor.name;if(z){for(var Je=Array.from(U),mt="",oe=0;oe0&&(mt+=", "),Array.isArray(We)){var it=ki(We[0],!0),Ct=ki(We[1],!1);mt+="".concat(it," => ").concat(Ct)}else mt+=ki(We,!1);if(mt.length>50)break}return"".concat(ke,"(").concat(U.size,") {").concat(au(mt),"}")}return"".concat(ke,"(").concat(U.size,")");case"opaque_iterator":return U[Symbol.toStringTag];case"date":return U.toString();case"object":if(z){for(var Mt=su(U).sort(xi),It="",sn=0;sn0&&(It+=", "),(It+="".concat(rn.toString(),": ").concat(ki(U[rn],!1))).length>50)break}return"{".concat(au(It),"}")}return"{\u2026}";case"boolean":case"number":case"infinity":case"nan":case"null":case"undefined":return U;default:try{return au(""+U)}catch(Ft){return"unserializable"}}}var Is=a(7);function Xl(U){return(Xl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(U)}function Io(U,z){var G=Object.keys(U);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(U);z&&($=$.filter(function(Ce){return Object.getOwnPropertyDescriptor(U,Ce).enumerable})),G.push.apply(G,$)}return G}function ho(U){for(var z=1;z2&&arguments[2]!==void 0?arguments[2]:[];if(U!==null){var $=[],Ce=[],Ee=A0(U,$,Ce,G,z);return{data:Ee,cleaned:$,unserializable:Ce}}return null}function Qo(U){var z,G,$=(z=U,G=new Set,JSON.stringify(z,function(Ae,Z){if(Xl(Z)==="object"&&Z!==null){if(G.has(Z))return;G.add(Z)}return typeof Z=="bigint"?Z.toString()+"n":Z})),Ce=$===void 0?"undefined":$,Ee=window.__REACT_DEVTOOLS_GLOBAL_HOOK__.clipboardCopyText;typeof Ee=="function"?Ee(Ce).catch(function(Ae){}):Object(Is.copy)(Ce)}function yi(U,z){var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,$=z[G],Ce=Array.isArray(U)?U.slice():ho({},U);return G+1===z.length?Array.isArray(Ce)?Ce.splice($,1):delete Ce[$]:Ce[$]=yi(U[$],z,G+1),Ce}function en(U,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,Ce=z[$],Ee=Array.isArray(U)?U.slice():ho({},U);if($+1===z.length){var Ae=G[$];Ee[Ae]=Ee[Ce],Array.isArray(Ee)?Ee.splice(Ce,1):delete Ee[Ce]}else Ee[Ce]=en(U[Ce],z,G,$+1);return Ee}function bn(U,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if($>=z.length)return G;var Ce=z[$],Ee=Array.isArray(U)?U.slice():ho({},U);return Ee[Ce]=bn(U[Ce],z,G,$+1),Ee}var Ai=a(8);function gi(U,z){var G=Object.keys(U);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(U);z&&($=$.filter(function(Ce){return Object.getOwnPropertyDescriptor(U,Ce).enumerable})),G.push.apply(G,$)}return G}function Vt(U){for(var z=1;z=U.length?{done:!0}:{done:!1,value:U[$++]}},e:function(ke){throw ke},f:Ce}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Ee,Ae=!0,Z=!1;return{s:function(){G=U[Symbol.iterator]()},n:function(){var ke=G.next();return Ae=ke.done,ke},e:function(ke){Z=!0,Ee=ke},f:function(){try{Ae||G.return==null||G.return()}finally{if(Z)throw Ee}}}}function Ql(U,z){if(U){if(typeof U=="string")return k0(U,z);var G=Object.prototype.toString.call(U).slice(8,-1);return G==="Object"&&U.constructor&&(G=U.constructor.name),G==="Map"||G==="Set"?Array.from(U):G==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(G)?k0(U,z):void 0}}function k0(U,z){(z==null||z>U.length)&&(z=U.length);for(var G=0,$=new Array(z);G0){var yt=Ee(ae);if(yt!=null){var Jt,On=Yi(I0);try{for(On.s();!(Jt=On.n()).done;)if(Jt.value.test(yt))return!0}catch(ir){On.e(ir)}finally{On.f()}}}if(ie!=null&&gs.size>0){var Sn,_n=ie.fileName,Tn=Yi(gs);try{for(Tn.s();!(Sn=Tn.n()).done;)if(Sn.value.test(_n))return!0}catch(ir){Tn.e(ir)}finally{Tn.f()}}return!1}function Tu(ae){var ie=ae.type;switch(ae.tag){case Ct:case Cr:return 1;case it:case An:return 5;case rn:return 6;case Ft:return 11;case dr:return 7;case Dn:case er:case sn:return 9;case Lr:case Nr:return 8;case ut:return 12;case Dt:return 13;default:switch(Ae(ie)){case 60111:case"Symbol(react.concurrent_mode)":case"Symbol(react.async_mode)":return 9;case 60109:case"Symbol(react.provider)":return 2;case 60110:case"Symbol(react.context)":return 2;case 60108:case"Symbol(react.strict_mode)":return 9;case 60114:case"Symbol(react.profiler)":return 10;default:return 9}}}function Ei(ae){if(U0.has(ae))return ae;var ie=ae.alternate;return ie!=null&&U0.has(ie)?ie:(U0.add(ae),ae)}window.__REACT_DEVTOOLS_COMPONENT_FILTERS__!=null?_s(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__):_s([{type:1,value:7,isEnabled:!0}]);var xo=new Map,e0=new Map,U0=new Set,sa=new Map,es=new Map,tu=-1;function ei(ae){if(!xo.has(ae)){var ie=el();xo.set(ae,ie),e0.set(ie,ae)}return xo.get(ae)}function h0(ae){switch(Tu(ae)){case 1:if(Uo!==null){var ie=ei(Ei(ae)),Fe=Ci(ae);Fe!==null&&Uo.set(ie,Fe)}}}var Bi={};function Ci(ae){switch(Tu(ae)){case 1:var ie=ae.stateNode,Fe=Bi,Oe=Bi;return ie!=null&&(ie.constructor&&ie.constructor.contextType!=null?Oe=ie.context:(Fe=ie.context)&&Object.keys(Fe).length===0&&(Fe=Bi)),[Fe,Oe];default:return null}}function yf(ae){switch(Tu(ae)){case 1:if(Uo!==null){var ie=ei(Ei(ae)),Fe=Uo.has(ie)?Uo.get(ie):null,Oe=Ci(ae);if(Fe==null||Oe==null)return null;var st=Jo(Fe,2),yt=st[0],Jt=st[1],On=Jo(Oe,2),Sn=On[0],_n=On[1];if(Sn!==Bi)return t0(yt,Sn);if(_n!==Bi)return Jt!==_n}}return null}function gf(ae,ie){if(ae==null||ie==null)return!1;if(ie.hasOwnProperty("baseState")&&ie.hasOwnProperty("memoizedState")&&ie.hasOwnProperty("next")&&ie.hasOwnProperty("queue"))for(;ie!==null;){if(ie.memoizedState!==ae.memoizedState)return!0;ie=ie.next,ae=ae.next}return!1}function t0(ae,ie){if(ae==null||ie==null||ie.hasOwnProperty("baseState")&&ie.hasOwnProperty("memoizedState")&&ie.hasOwnProperty("next")&&ie.hasOwnProperty("queue"))return null;var Fe,Oe=[],st=Yi(new Set([].concat(eu(Object.keys(ae)),eu(Object.keys(ie)))));try{for(st.s();!(Fe=st.n()).done;){var yt=Fe.value;ae[yt]!==ie[yt]&&Oe.push(yt)}}catch(Jt){st.e(Jt)}finally{st.f()}return Oe}function n0(ae,ie){switch(ie.tag){case Ct:case it:case Mt:case Lr:case Nr:return(f0(ie)&oe)===oe;default:return ae.memoizedProps!==ie.memoizedProps||ae.memoizedState!==ie.memoizedState||ae.ref!==ie.ref}}var Re=[],rt=[],Ye=[],Kt=[],Xt=new Map,pr=0,Wr=null;function xn(ae){Re.push(ae)}function yu(ae){if(Re.length!==0||rt.length!==0||Ye.length!==0||Wr!==null||Pu){var ie=rt.length+Ye.length+(Wr===null?0:1),Fe=new Array(3+pr+(ie>0?2+ie:0)+Re.length),Oe=0;if(Fe[Oe++]=z,Fe[Oe++]=tu,Fe[Oe++]=pr,Xt.forEach(function(On,Sn){Fe[Oe++]=Sn.length;for(var _n=Ko(Sn),Tn=0;Tn<_n.length;Tn++)Fe[Oe+Tn]=_n[Tn];Oe+=Sn.length}),ie>0){Fe[Oe++]=2,Fe[Oe++]=ie;for(var st=rt.length-1;st>=0;st--)Fe[Oe++]=rt[st];for(var yt=0;yt0?ae.forEach(function(ie){U.emit("operations",ie)}):(Rr!==null&&(cu=!0),U.getFiberRoots(z).forEach(function(ie){eo(tu=ei(Ei(ie.current)),ie.current),Pu&&ie.memoizedInteractions!=null&&(il={changeDescriptions:ts?new Map:null,durations:[],commitTime:Jl()-Zu,interactions:Array.from(ie.memoizedInteractions).map(function(Fe){return Vt(Vt({},Fe),{},{timestamp:Fe.timestamp-Zu})}),maxActualDuration:0,priorityLevel:null}),Jr(ie.current,null,!1,!1),yu(),tu=-1}))},getBestMatchForTrackedPath:function(){if(Rr===null||r0===null)return null;for(var ae=r0;ae!==null&&Qu(ae);)ae=ae.return;return ae===null?null:{id:ei(Ei(ae)),isFullMatch:nu===Rr.length-1}},getDisplayNameForFiberID:function(ae){var ie=e0.get(ae);return ie!=null?Ee(ie):null},getFiberIDForNative:function(ae){var ie=arguments.length>1&&arguments[1]!==void 0&&arguments[1],Fe=G.findFiberByHostInstance(ae);if(Fe!=null){if(ie)for(;Fe!==null&&Qu(Fe);)Fe=Fe.return;return ei(Ei(Fe))}return null},getInstanceAndStyle:function(ae){var ie=null,Fe=null,Oe=Vu(ae);return Oe!==null&&(ie=Oe.stateNode,Oe.memoizedProps!==null&&(Fe=Oe.memoizedProps.style)),{instance:ie,style:Fe}},getOwnersList:function(ae){var ie=Vu(ae);if(ie==null)return null;var Fe=ie._debugOwner,Oe=[{displayName:Ee(ie)||"Anonymous",id:ae,type:Tu(ie)}];if(Fe)for(var st=Fe;st!==null;)Oe.unshift({displayName:Ee(st)||"Anonymous",id:ei(Ei(st)),type:Tu(st)}),st=st._debugOwner||null;return Oe},getPathForElement:function(ae){var ie=e0.get(ae);if(ie==null)return null;for(var Fe=[];ie!==null;)Fe.push(Do(ie)),ie=ie.return;return Fe.reverse(),Fe},getProfilingData:function(){var ae=[];if(Es===null)throw Error("getProfilingData() called before any profiling data was recorded");return Es.forEach(function(ie,Fe){var Oe=[],st=[],yt=new Map,Jt=new Map,On=xl!==null&&xl.get(Fe)||"Unknown";Mo!=null&&Mo.forEach(function(Sn,_n){v0!=null&&v0.get(_n)===Fe&&st.push([_n,Sn])}),ie.forEach(function(Sn,_n){var Tn=Sn.changeDescriptions,ir=Sn.durations,Bt=Sn.interactions,Fi=Sn.maxActualDuration,Ar=Sn.priorityLevel,mr=Sn.commitTime,Y=[];Bt.forEach(function(Di){yt.has(Di.id)||yt.set(Di.id,Di),Y.push(Di.id);var ru=Jt.get(Di.id);ru!=null?ru.push(_n):Jt.set(Di.id,[_n])});for(var ri=[],ii=[],Vr=0;Vr1?Kn.set(Tn,ir-1):Kn.delete(Tn),ni.delete(Sn)}(tu),ti(Fe,!1))}else eo(tu,Fe),Jr(Fe,null,!1,!1);if(Pu&&st){var On=Es.get(tu);On!=null?On.push(il):Es.set(tu,[il])}yu(),b0&&U.emit("traceUpdates",B0),tu=-1},handleCommitFiberUnmount:function(ae){ti(ae,!1)},inspectElement:function(ae,ie){if(zi(ae)){if(ie!=null){Oo(ie);var Fe=null;return ie[0]==="hooks"&&(Fe="hooks"),{id:ae,type:"hydrated-path",path:ie,value:Ri(Uu(Xi,ie),Hi(null,Fe),ie)}}return{id:ae,type:"no-change"}}if(qs=!1,Xi!==null&&Xi.id===ae||(Ao={}),(Xi=aa(ae))===null)return{id:ae,type:"not-found"};ie!=null&&Oo(ie),function(st){var yt=st.hooks,Jt=st.id,On=st.props,Sn=e0.get(Jt);if(Sn!=null){var _n=Sn.elementType,Tn=Sn.stateNode,ir=Sn.tag,Bt=Sn.type;switch(ir){case Ct:case Cr:case An:$.$r=Tn;break;case it:$.$r={hooks:yt,props:On,type:Bt};break;case rn:$.$r={props:On,type:Bt.render};break;case Lr:case Nr:$.$r={props:On,type:_n!=null&&_n.type!=null?_n.type:Bt};break;default:$.$r=null}}else console.warn('Could not find Fiber with id "'.concat(Jt,'"'))}(Xi);var Oe=Vt({},Xi);return Oe.context=Ri(Oe.context,Hi("context",null)),Oe.hooks=Ri(Oe.hooks,Hi("hooks","hooks")),Oe.props=Ri(Oe.props,Hi("props",null)),Oe.state=Ri(Oe.state,Hi("state",null)),{id:ae,type:"full-data",value:Oe}},logElementToConsole:function(ae){var ie=zi(ae)?Xi:aa(ae);if(ie!==null){var Fe=typeof console.groupCollapsed=="function";Fe&&console.groupCollapsed("[Click to expand] %c<".concat(ie.displayName||"Component"," />"),"color: var(--dom-tag-name-color); font-weight: normal;"),ie.props!==null&&console.log("Props:",ie.props),ie.state!==null&&console.log("State:",ie.state),ie.hooks!==null&&console.log("Hooks:",ie.hooks);var Oe=Cl(ae);Oe!==null&&console.log("Nodes:",Oe),ie.source!==null&&console.log("Location:",ie.source),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Fe&&console.groupEnd()}else console.warn('Could not find Fiber with id "'.concat(ae,'"'))},prepareViewAttributeSource:function(ae,ie){zi(ae)&&(window.$attribute=Uu(Xi,ie))},prepareViewElementSource:function(ae){var ie=e0.get(ae);if(ie!=null){var Fe=ie.elementType,Oe=ie.tag,st=ie.type;switch(Oe){case Ct:case Cr:case An:case it:$.$type=st;break;case rn:$.$type=st.render;break;case Lr:case Nr:$.$type=Fe!=null&&Fe.type!=null?Fe.type:st;break;default:$.$type=null}}else console.warn('Could not find Fiber with id "'.concat(ae,'"'))},overrideSuspense:function(ae,ie){if(typeof P0!="function"||typeof rl!="function")throw new Error("Expected overrideSuspense() to not get called for earlier React versions.");ie?($u.add(ae),$u.size===1&&P0(Ds)):($u.delete(ae),$u.size===0&&P0(_f));var Fe=e0.get(ae);Fe!=null&&rl(Fe)},overrideValueAtPath:function(ae,ie,Fe,Oe,st){var yt=Vu(ie);if(yt!==null){var Jt=yt.stateNode;switch(ae){case"context":switch(Oe=Oe.slice(1),yt.tag){case Ct:Oe.length===0?Jt.context=st:O0(Jt.context,Oe,st),Jt.forceUpdate()}break;case"hooks":typeof fu=="function"&&fu(yt,Fe,Oe,st);break;case"props":switch(yt.tag){case Ct:yt.pendingProps=bn(Jt.props,Oe,st),Jt.forceUpdate();break;default:typeof $o=="function"&&$o(yt,Oe,st)}break;case"state":switch(yt.tag){case Ct:O0(Jt.state,Oe,st),Jt.forceUpdate()}}}},renamePath:function(ae,ie,Fe,Oe,st){var yt=Vu(ie);if(yt!==null){var Jt=yt.stateNode;switch(ae){case"context":switch(Oe=Oe.slice(1),st=st.slice(1),yt.tag){case Ct:Oe.length===0||Xr(Jt.context,Oe,st),Jt.forceUpdate()}break;case"hooks":typeof Co=="function"&&Co(yt,Fe,Oe,st);break;case"props":Jt===null?typeof _i=="function"&&_i(yt,Oe,st):(yt.pendingProps=en(Jt.props,Oe,st),Jt.forceUpdate());break;case"state":Xr(Jt.state,Oe,st),Jt.forceUpdate()}}},renderer:G,setTraceUpdatesEnabled:function(ae){b0=ae},setTrackedPath:Ni,startProfiling:fa,stopProfiling:function(){Pu=!1,ts=!1},storeAsGlobal:function(ae,ie,Fe){if(zi(ae)){var Oe=Uu(Xi,ie),st="$reactTemp".concat(Fe);window[st]=Oe,console.log(st),console.log(Oe)}},updateComponentFilters:function(ae){if(Pu)throw Error("Cannot modify filter preferences while profiling");U.getFiberRoots(z).forEach(function(ie){tu=ei(Ei(ie.current)),Wu(ie.current),ti(ie.current,!1),tu=-1}),_s(ae),Kn.clear(),U.getFiberRoots(z).forEach(function(ie){eo(tu=ei(Ei(ie.current)),ie.current),Jr(ie.current,null,!1,!1),yu(ie),tu=-1})}}}var $n;function tl(U){return(tl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(U)}function c0(U,z,G){if($n===void 0)try{throw Error()}catch(Ce){var $=Ce.stack.trim().match(/\n( *(at )?)/);$n=$&&$[1]||""}return` +`+$n+U}var bo=!1;function Sl(U,z,G){if(!U||bo)return"";var $,Ce=Error.prepareStackTrace;Error.prepareStackTrace=void 0,bo=!0;var Ee=G.current;G.current=null;try{if(z){var Ae=function(){throw Error()};if(Object.defineProperty(Ae.prototype,"props",{set:function(){throw Error()}}),(typeof Reflect=="undefined"?"undefined":tl(Reflect))==="object"&&Reflect.construct){try{Reflect.construct(Ae,[])}catch(We){$=We}Reflect.construct(U,[],Ae)}else{try{Ae.call()}catch(We){$=We}U.call(Ae.prototype)}}else{try{throw Error()}catch(We){$=We}U()}}catch(We){if(We&&$&&typeof We.stack=="string"){for(var Z=We.stack.split(` +`),ke=$.stack.split(` +`),Je=Z.length-1,mt=ke.length-1;Je>=1&&mt>=0&&Z[Je]!==ke[mt];)mt--;for(;Je>=1&&mt>=0;Je--,mt--)if(Z[Je]!==ke[mt]){if(Je!==1||mt!==1)do if(Je--,--mt<0||Z[Je]!==ke[mt])return` +`+Z[Je].replace(" at new "," at ");while(Je>=1&&mt>=0);break}}}finally{bo=!1,Error.prepareStackTrace=Ce,G.current=Ee}var oe=U?U.displayName||U.name:"";return oe?c0(oe):""}function N0(U,z,G,$){return Sl(U,!1,$)}function wt(U,z,G){var $=U.HostComponent,Ce=U.LazyComponent,Ee=U.SuspenseComponent,Ae=U.SuspenseListComponent,Z=U.FunctionComponent,ke=U.IndeterminateComponent,Je=U.SimpleMemoComponent,mt=U.ForwardRef,oe=U.Block,We=U.ClassComponent;switch(z.tag){case $:return c0(z.type);case Ce:return c0("Lazy");case Ee:return c0("Suspense");case Ae:return c0("SuspenseList");case Z:case ke:case Je:return N0(z.type,0,0,G);case mt:return N0(z.type.render,0,0,G);case oe:return N0(z.type._render,0,0,G);case We:return function(it,Ct,Mt,It){return Sl(it,!0,It)}(z.type,0,0,G);default:return""}}function bt(U,z,G){try{var $="",Ce=z;do $+=wt(U,Ce,G),Ce=Ce.return;while(Ce);return $}catch(Ee){return` +Error generating stack: `+Ee.message+` +`+Ee.stack}}function Hn(U,z){var G;if(typeof Symbol=="undefined"||U[Symbol.iterator]==null){if(Array.isArray(U)||(G=function(ke,Je){if(!!ke){if(typeof ke=="string")return qr(ke,Je);var mt=Object.prototype.toString.call(ke).slice(8,-1);if(mt==="Object"&&ke.constructor&&(mt=ke.constructor.name),mt==="Map"||mt==="Set")return Array.from(ke);if(mt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(mt))return qr(ke,Je)}}(U))||z&&U&&typeof U.length=="number"){G&&(U=G);var $=0,Ce=function(){};return{s:Ce,n:function(){return $>=U.length?{done:!0}:{done:!1,value:U[$++]}},e:function(ke){throw ke},f:Ce}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Ee,Ae=!0,Z=!1;return{s:function(){G=U[Symbol.iterator]()},n:function(){var ke=G.next();return Ae=ke.done,ke},e:function(ke){Z=!0,Ee=ke},f:function(){try{Ae||G.return==null||G.return()}finally{if(Z)throw Ee}}}}function qr(U,z){(z==null||z>U.length)&&(z=U.length);for(var G=0,$=new Array(z);G0?Je[Je.length-1]:null,We=oe!==null&&(Qr.test(oe)||Ou.test(oe));if(!We){var it,Ct=Hn(vo.values());try{for(Ct.s();!(it=Ct.n()).done;){var Mt=it.value,It=Mt.currentDispatcherRef,sn=Mt.getCurrentFiber,rn=Mt.workTagMap,Ft=sn();if(Ft!=null){var Dn=bt(rn,Ft,It);Dn!==""&&Je.push(Dn);break}}}catch(dr){Ct.e(dr)}finally{Ct.f()}}}catch(dr){}Ee.apply(void 0,Je)};Ae.__REACT_DEVTOOLS_ORIGINAL_METHOD__=Ee,Li[Ce]=Ae}catch(Z){}})}}function ju(U){return(ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(U)}function ms(U,z){for(var G=0;GU.length)&&(z=U.length);for(var G=0,$=new Array(z);G1?Z-1:0),Je=1;Je0?oe[oe.length-1]:0),oe.push(un),Z.set(et,Je(Pt._topLevelWrapper));try{var fn=ut.apply(this,Dt);return oe.pop(),fn}catch(wr){throw oe=[],wr}finally{if(oe.length===0){var Jn=Z.get(et);if(Jn===void 0)throw new Error("Expected to find root ID.");dr(Jn)}}},performUpdateIfNecessary:function(ut,Dt){var et=Dt[0];if(To(et)===9)return ut.apply(this,Dt);var Pt=Je(et);oe.push(Pt);var un=Qn(et);try{var fn=ut.apply(this,Dt),Jn=Qn(et);return mt(un,Jn)||Ct(et,Pt,Jn),oe.pop(),fn}catch(fu){throw oe=[],fu}finally{if(oe.length===0){var wr=Z.get(et);if(wr===void 0)throw new Error("Expected to find root ID.");dr(wr)}}},receiveComponent:function(ut,Dt){var et=Dt[0];if(To(et)===9)return ut.apply(this,Dt);var Pt=Je(et);oe.push(Pt);var un=Qn(et);try{var fn=ut.apply(this,Dt),Jn=Qn(et);return mt(un,Jn)||Ct(et,Pt,Jn),oe.pop(),fn}catch(fu){throw oe=[],fu}finally{if(oe.length===0){var wr=Z.get(et);if(wr===void 0)throw new Error("Expected to find root ID.");dr(wr)}}},unmountComponent:function(ut,Dt){var et=Dt[0];if(To(et)===9)return ut.apply(this,Dt);var Pt=Je(et);oe.push(Pt);try{var un=ut.apply(this,Dt);return oe.pop(),function(Jn,wr){rn.push(wr),Ee.delete(wr)}(0,Pt),un}catch(Jn){throw oe=[],Jn}finally{if(oe.length===0){var fn=Z.get(et);if(fn===void 0)throw new Error("Expected to find root ID.");dr(fn)}}}}));var It=[],sn=new Map,rn=[],Ft=0,Dn=null;function dr(ut){if(It.length!==0||rn.length!==0||Dn!==null){var Dt=rn.length+(Dn===null?0:1),et=new Array(3+Ft+(Dt>0?2+Dt:0)+It.length),Pt=0;if(et[Pt++]=z,et[Pt++]=ut,et[Pt++]=Ft,sn.forEach(function(Jn,wr){et[Pt++]=wr.length;for(var fu=Ko(wr),Lu=0;Lu0){et[Pt++]=2,et[Pt++]=Dt;for(var un=0;un"),"color: var(--dom-tag-name-color); font-weight: normal;"),Dt.props!==null&&console.log("Props:",Dt.props),Dt.state!==null&&console.log("State:",Dt.state),Dt.context!==null&&console.log("Context:",Dt.context);var Pt=Ce(ut);Pt!==null&&console.log("Node:",Pt),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),et&&console.groupEnd()}else console.warn('Could not find element with id "'.concat(ut,'"'))},overrideSuspense:function(){throw new Error("overrideSuspense not supported by this renderer")},overrideValueAtPath:function(ut,Dt,et,Pt,un){var fn=Ee.get(Dt);if(fn!=null){var Jn=fn._instance;if(Jn!=null)switch(ut){case"context":O0(Jn.context,Pt,un),yo(Jn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var wr=fn._currentElement;fn._currentElement=Zo(Zo({},wr),{},{props:bn(wr.props,Pt,un)}),yo(Jn);break;case"state":O0(Jn.state,Pt,un),yo(Jn)}}},renamePath:function(ut,Dt,et,Pt,un){var fn=Ee.get(Dt);if(fn!=null){var Jn=fn._instance;if(Jn!=null)switch(ut){case"context":Xr(Jn.context,Pt,un),yo(Jn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var wr=fn._currentElement;fn._currentElement=Zo(Zo({},wr),{},{props:en(wr.props,Pt,un)}),yo(Jn);break;case"state":Xr(Jn.state,Pt,un),yo(Jn)}}},prepareViewAttributeSource:function(ut,Dt){var et=Nr(ut);et!==null&&(window.$attribute=Uu(et,Dt))},prepareViewElementSource:function(ut){var Dt=Ee.get(ut);if(Dt!=null){var et=Dt._currentElement;et!=null?$.$type=et.type:console.warn('Could not find element with id "'.concat(ut,'"'))}else console.warn('Could not find instance with id "'.concat(ut,'"'))},renderer:G,setTraceUpdatesEnabled:function(ut){},setTrackedPath:function(ut){},startProfiling:function(){},stopProfiling:function(){},storeAsGlobal:function(ut,Dt,et){var Pt=Nr(ut);if(Pt!==null){var un=Uu(Pt,Dt),fn="$reactTemp".concat(et);window[fn]=un,console.log(fn),console.log(un)}},updateComponentFilters:function(ut){}}}function fi(U,z){var G=!1,$={bottom:0,left:0,right:0,top:0},Ce=z[U];if(Ce!=null){for(var Ee=0,Ae=Object.keys($);Ee0?"development":"production";var It=Function.prototype.toString;if(Mt.Mount&&Mt.Mount._renderNewRootComponent){var sn=It.call(Mt.Mount._renderNewRootComponent);return sn.indexOf("function")!==0?"production":sn.indexOf("storedMeasure")!==-1?"development":sn.indexOf("should be a pure function")!==-1?sn.indexOf("NODE_ENV")!==-1||sn.indexOf("development")!==-1||sn.indexOf("true")!==-1?"development":sn.indexOf("nextElement")!==-1||sn.indexOf("nextComponent")!==-1?"unminified":"development":sn.indexOf("nextElement")!==-1||sn.indexOf("nextComponent")!==-1?"unminified":"outdated"}}catch(rn){}return"production"}(ke);try{var oe=window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__!==!1,We=window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__===!0;(oe||We)&&(d0(ke),Zl({appendComponentStack:oe,breakOnConsoleErrors:We}))}catch(Mt){}var it=U.__REACT_DEVTOOLS_ATTACH__;if(typeof it=="function"){var Ct=it(Z,Je,ke,U);Z.rendererInterfaces.set(Je,Ct)}return Z.emit("renderer",{id:Je,renderer:ke,reactBuildType:mt}),Je},on:function(ke,Je){Ee[ke]||(Ee[ke]=[]),Ee[ke].push(Je)},off:function(ke,Je){if(Ee[ke]){var mt=Ee[ke].indexOf(Je);mt!==-1&&Ee[ke].splice(mt,1),Ee[ke].length||delete Ee[ke]}},sub:function(ke,Je){return Z.on(ke,Je),function(){return Z.off(ke,Je)}},supportsFiber:!0,checkDCE:function(ke){try{Function.prototype.toString.call(ke).indexOf("^_^")>-1&&(G=!0,setTimeout(function(){throw new Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build")}))}catch(Je){}},onCommitFiberUnmount:function(ke,Je){var mt=Ce.get(ke);mt!=null&&mt.handleCommitFiberUnmount(Je)},onCommitFiberRoot:function(ke,Je,mt){var oe=Z.getFiberRoots(ke),We=Je.current,it=oe.has(Je),Ct=We.memoizedState==null||We.memoizedState.element==null;it||Ct?it&&Ct&&oe.delete(Je):oe.add(Je);var Mt=Ce.get(ke);Mt!=null&&Mt.handleCommitFiberRoot(Je,mt)}};Object.defineProperty(U,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!1,enumerable:!1,get:function(){return Z}})})(window);var go=window.__REACT_DEVTOOLS_GLOBAL_HOOK__,js=[{type:1,value:7,isEnabled:!0}];function ji(U){if(go!=null){var z=U||{},G=z.host,$=G===void 0?"localhost":G,Ce=z.nativeStyleEditorValidAttributes,Ee=z.useHttps,Ae=Ee!==void 0&&Ee,Z=z.port,ke=Z===void 0?8097:Z,Je=z.websocket,mt=z.resolveRNStyle,oe=mt===void 0?null:mt,We=z.isAppActive,it=Ae?"wss":"ws",Ct=null;if((We===void 0?function(){return!0}:We)()){var Mt=null,It=[],sn=it+"://"+$+":"+ke,rn=Je||new window.WebSocket(sn);rn.onclose=function(){Mt!==null&&Mt.emit("shutdown"),Ft()},rn.onerror=function(){Ft()},rn.onmessage=function(Dn){var dr;try{if(typeof Dn.data!="string")throw Error();dr=JSON.parse(Dn.data)}catch(er){return void console.error("[React DevTools] Failed to parse JSON: "+Dn.data)}It.forEach(function(er){try{er(dr)}catch(Cr){throw console.log("[React DevTools] Error calling listener",dr),console.log("error:",Cr),Cr}})},rn.onopen=function(){(Mt=new p0({listen:function(An){return It.push(An),function(){var Lr=It.indexOf(An);Lr>=0&&It.splice(Lr,1)}},send:function(An,Lr,_o){rn.readyState===rn.OPEN?rn.send(JSON.stringify({event:An,payload:Lr})):(Mt!==null&&Mt.shutdown(),Ft())}})).addListener("inspectElement",function(An){var Lr=An.id,_o=An.rendererID,Nr=Dn.rendererInterfaces[_o];if(Nr!=null){var ut=Nr.findNativeNodesForFiberID(Lr);ut!=null&&ut[0]!=null&&Dn.emit("showNativeHighlight",ut[0])}}),Mt.addListener("updateComponentFilters",function(An){js=An}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null&&Mt.send("overrideComponentFilters",js);var Dn=new Yn(Mt);if(Dn.addListener("shutdown",function(){go.emit("shutdown")}),function(An,Lr,_o){if(An==null)return function(){};var Nr=[An.sub("renderer-attached",function(et){var Pt=et.id,un=(et.renderer,et.rendererInterface);Lr.setRendererInterface(Pt,un),un.flushInitialOperations()}),An.sub("unsupported-renderer-version",function(et){Lr.onUnsupportedRenderer(et)}),An.sub("operations",Lr.onHookOperations),An.sub("traceUpdates",Lr.onTraceUpdates)],ut=function(et,Pt){var un=An.rendererInterfaces.get(et);un==null&&(typeof Pt.findFiberByHostInstance=="function"?un=bs(An,et,Pt,_o):Pt.ComponentTree&&(un=fc(An,et,Pt,_o)),un!=null&&An.rendererInterfaces.set(et,un)),un!=null?An.emit("renderer-attached",{id:et,renderer:Pt,rendererInterface:un}):An.emit("unsupported-renderer-version",et)};An.renderers.forEach(function(et,Pt){ut(Pt,et)}),Nr.push(An.sub("renderer",function(et){var Pt=et.id,un=et.renderer;ut(Pt,un)})),An.emit("react-devtools",Lr),An.reactDevtoolsAgent=Lr;var Dt=function(){Nr.forEach(function(et){return et()}),An.rendererInterfaces.forEach(function(et){et.cleanup()}),An.reactDevtoolsAgent=null};Lr.addListener("shutdown",Dt),Nr.push(function(){Lr.removeListener("shutdown",Dt)})}(go,Dn,window),oe!=null||go.resolveRNStyle!=null)la(Mt,Dn,oe||go.resolveRNStyle,Ce||go.nativeStyleEditorValidAttributes||null);else{var dr,er,Cr=function(){Mt!==null&&la(Mt,Dn,dr,er)};go.hasOwnProperty("resolveRNStyle")||Object.defineProperty(go,"resolveRNStyle",{enumerable:!1,get:function(){return dr},set:function(An){dr=An,Cr()}}),go.hasOwnProperty("nativeStyleEditorValidAttributes")||Object.defineProperty(go,"nativeStyleEditorValidAttributes",{enumerable:!1,get:function(){return er},set:function(An){er=An,Cr()}})}}}else Ft()}function Ft(){Ct===null&&(Ct=setTimeout(function(){return ji(U)},2e3))}}}])})});var f6=Ke(a6=>{"use strict";Object.defineProperty(a6,"__esModule",{value:!0});l6();var HB=s6();HB.connectToDevTools()});var v6=Ke(dg=>{"use strict";var c6=dg&&dg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(dg,"__esModule",{value:!0});var d6=Q_(),qB=c6(vT()),p6=c6(eh()),hs=iw();process.env.DEV==="true"&&f6();var h6=i=>{i==null||i.unsetMeasureFunc(),i==null||i.freeRecursive()};dg.default=qB.default({schedulePassiveEffects:d6.unstable_scheduleCallback,cancelPassiveEffects:d6.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:i=>{if(i.isStaticDirty){i.isStaticDirty=!1,typeof i.onImmediateRender=="function"&&i.onImmediateRender();return}typeof i.onRender=="function"&&i.onRender()},getChildHostContext:(i,o)=>{let a=i.isInsideText,c=o==="ink-text"||o==="ink-virtual-text";return a===c?i:{isInsideText:c}},shouldSetTextContent:()=>!1,createInstance:(i,o,a,c)=>{if(c.isInsideText&&i==="ink-box")throw new Error(" can\u2019t be nested inside component");let _=i==="ink-text"&&c.isInsideText?"ink-virtual-text":i,t=hs.createNode(_);for(let[M,N]of Object.entries(o))M!=="children"&&(M==="style"?hs.setStyle(t,N):M==="internal_transform"?t.internal_transform=N:M==="internal_static"?t.internal_static=!0:hs.setAttribute(t,M,N));return t},createTextInstance:(i,o,a)=>{if(!a.isInsideText)throw new Error(`Text string "${i}" must be rendered inside component`);return hs.createTextNode(i)},resetTextContent:()=>{},hideTextInstance:i=>{hs.setTextNodeValue(i,"")},unhideTextInstance:(i,o)=>{hs.setTextNodeValue(i,o)},getPublicInstance:i=>i,hideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(p6.default.DISPLAY_NONE)},unhideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(p6.default.DISPLAY_FLEX)},appendInitialChild:hs.appendChildNode,appendChild:hs.appendChildNode,insertBefore:hs.insertBeforeNode,finalizeInitialChildren:(i,o,a,c)=>(i.internal_static&&(c.isStaticDirty=!0,c.staticNode=i),!1),supportsMutation:!0,appendChildToContainer:hs.appendChildNode,insertInContainerBefore:hs.insertBeforeNode,removeChildFromContainer:(i,o)=>{hs.removeChildNode(i,o),h6(o.yogaNode)},prepareUpdate:(i,o,a,c,_)=>{i.internal_static&&(_.isStaticDirty=!0);let t={},M=Object.keys(c);for(let N of M)if(c[N]!==a[N]){if(N==="style"&&typeof c.style=="object"&&typeof a.style=="object"){let T=c.style,B=a.style,H=Object.keys(T);for(let q of H){if(q==="borderStyle"||q==="borderColor"){if(typeof t.style!="object"){let ne={};t.style=ne}t.style.borderStyle=T.borderStyle,t.style.borderColor=T.borderColor}if(T[q]!==B[q]){if(typeof t.style!="object"){let ne={};t.style=ne}t.style[q]=T[q]}}continue}t[N]=c[N]}return t},commitUpdate:(i,o)=>{for(let[a,c]of Object.entries(o))a!=="children"&&(a==="style"?hs.setStyle(i,c):a==="internal_transform"?i.internal_transform=c:a==="internal_static"?i.internal_static=!0:hs.setAttribute(i,a,c))},commitTextUpdate:(i,o,a)=>{hs.setTextNodeValue(i,a)},removeChild:(i,o)=>{hs.removeChildNode(i,o),h6(o.yogaNode)}})});var y6=Ke((AV,m6)=>{"use strict";m6.exports=(i,o=1,a)=>{if(a=qt({indent:" ",includeEmptyLines:!1},a),typeof i!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof i}\``);if(typeof o!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof o}\``);if(typeof a.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof a.indent}\``);if(o===0)return i;let c=a.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return i.replace(c,a.indent.repeat(o))}});var g6=Ke(pg=>{"use strict";var WB=pg&&pg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(pg,"__esModule",{value:!0});var d4=WB(eh());pg.default=i=>i.getComputedWidth()-i.getComputedPadding(d4.default.EDGE_LEFT)-i.getComputedPadding(d4.default.EDGE_RIGHT)-i.getComputedBorder(d4.default.EDGE_LEFT)-i.getComputedBorder(d4.default.EDGE_RIGHT)});var E6=Ke((MV,_6)=>{_6.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var w6=Ke((kV,Sw)=>{"use strict";var D6=E6();Sw.exports=D6;Sw.exports.default=D6});var T6=Ke((LV,S6)=>{"use strict";S6.exports=(i,o=process.argv)=>{let a=i.startsWith("-")?"":i.length===1?"-":"--",c=o.indexOf(a+i),_=o.indexOf("--");return c!==-1&&(_===-1||c<_)}});var R6=Ke((NV,C6)=>{"use strict";var VB=require("os"),x6=require("tty"),pf=T6(),{env:X0}=process,m2;pf("no-color")||pf("no-colors")||pf("color=false")||pf("color=never")?m2=0:(pf("color")||pf("colors")||pf("color=true")||pf("color=always"))&&(m2=1);"FORCE_COLOR"in X0&&(X0.FORCE_COLOR==="true"?m2=1:X0.FORCE_COLOR==="false"?m2=0:m2=X0.FORCE_COLOR.length===0?1:Math.min(parseInt(X0.FORCE_COLOR,10),3));function Tw(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function Cw(i,o){if(m2===0)return 0;if(pf("color=16m")||pf("color=full")||pf("color=truecolor"))return 3;if(pf("color=256"))return 2;if(i&&!o&&m2===void 0)return 0;let a=m2||0;if(X0.TERM==="dumb")return a;if(process.platform==="win32"){let c=VB.release().split(".");return Number(c[0])>=10&&Number(c[2])>=10586?Number(c[2])>=14931?3:2:1}if("CI"in X0)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(c=>c in X0)||X0.CI_NAME==="codeship"?1:a;if("TEAMCITY_VERSION"in X0)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(X0.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in X0)return 1;if(X0.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in X0){let c=parseInt((X0.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(X0.TERM_PROGRAM){case"iTerm.app":return c>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(X0.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(X0.TERM)||"COLORTERM"in X0?1:a}function GB(i){let o=Cw(i,i&&i.isTTY);return Tw(o)}C6.exports={supportsColor:GB,stdout:Tw(Cw(!0,x6.isatty(1))),stderr:Tw(Cw(!0,x6.isatty(2)))}});var O6=Ke((FV,A6)=>{"use strict";var YB=(i,o,a)=>{let c=i.indexOf(o);if(c===-1)return i;let _=o.length,t=0,M="";do M+=i.substr(t,c-t)+o+a,t=c+_,c=i.indexOf(o,t);while(c!==-1);return M+=i.substr(t),M},KB=(i,o,a,c)=>{let _=0,t="";do{let M=i[c-1]==="\r";t+=i.substr(_,(M?c-1:c)-_)+o+(M?`\r +`:` +`)+a,_=c+1,c=i.indexOf(` +`,_)}while(c!==-1);return t+=i.substr(_),t};A6.exports={stringReplaceAll:YB,stringEncaseCRLFWithFirstIndex:KB}});var F6=Ke((PV,M6)=>{"use strict";var XB=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,k6=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,QB=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,JB=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,ZB=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function L6(i){let o=i[0]==="u",a=i[1]==="{";return o&&!a&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):o&&a?String.fromCodePoint(parseInt(i.slice(2,-1),16)):ZB.get(i)||i}function $B(i,o){let a=[],c=o.trim().split(/\s*,\s*/g),_;for(let t of c){let M=Number(t);if(!Number.isNaN(M))a.push(M);else if(_=t.match(QB))a.push(_[2].replace(JB,(N,O,T)=>O?L6(O):T));else throw new Error(`Invalid Chalk template style argument: ${t} (in style '${i}')`)}return a}function eU(i){k6.lastIndex=0;let o=[],a;for(;(a=k6.exec(i))!==null;){let c=a[1];if(a[2]){let _=$B(c,a[2]);o.push([c].concat(_))}else o.push([c])}return o}function N6(i,o){let a={};for(let _ of o)for(let t of _.styles)a[t[0]]=_.inverse?null:t.slice(1);let c=i;for(let[_,t]of Object.entries(a))if(!!Array.isArray(t)){if(!(_ in c))throw new Error(`Unknown Chalk style: ${_}`);c=t.length>0?c[_](...t):c[_]}return c}M6.exports=(i,o)=>{let a=[],c=[],_=[];if(o.replace(XB,(t,M,N,O,T,B)=>{if(M)_.push(L6(M));else if(O){let H=_.join("");_=[],c.push(a.length===0?H:N6(i,a)(H)),a.push({inverse:N,styles:eU(O)})}else if(T){if(a.length===0)throw new Error("Found extraneous } in Chalk template literal");c.push(N6(i,a)(_.join(""))),_=[],a.pop()}else _.push(B)}),c.push(_.join("")),a.length>0){let t=`Chalk template literal is missing ${a.length} closing bracket${a.length===1?"":"s"} (\`}\`)`;throw new Error(t)}return c.join("")}});var y4=Ke((IV,P6)=>{"use strict";var hg=t4(),{stdout:xw,stderr:Rw}=R6(),{stringReplaceAll:tU,stringEncaseCRLFWithFirstIndex:nU}=O6(),{isArray:p4}=Array,I6=["ansi","ansi","ansi256","ansi16m"],$v=Object.create(null),rU=(i,o={})=>{if(o.level&&!(Number.isInteger(o.level)&&o.level>=0&&o.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let a=xw?xw.level:0;i.level=o.level===void 0?a:o.level},b6=class{constructor(o){return B6(o)}},B6=i=>{let o={};return rU(o,i),o.template=(...a)=>U6(o.template,...a),Object.setPrototypeOf(o,h4.prototype),Object.setPrototypeOf(o.template,o),o.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},o.template.Instance=b6,o.template};function h4(i){return B6(i)}for(let[i,o]of Object.entries(hg))$v[i]={get(){let a=v4(this,Aw(o.open,o.close,this._styler),this._isEmpty);return Object.defineProperty(this,i,{value:a}),a}};$v.visible={get(){let i=v4(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:i}),i}};var j6=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let i of j6)$v[i]={get(){let{level:o}=this;return function(...a){let c=Aw(hg.color[I6[o]][i](...a),hg.color.close,this._styler);return v4(this,c,this._isEmpty)}}};for(let i of j6){let o="bg"+i[0].toUpperCase()+i.slice(1);$v[o]={get(){let{level:a}=this;return function(...c){let _=Aw(hg.bgColor[I6[a]][i](...c),hg.bgColor.close,this._styler);return v4(this,_,this._isEmpty)}}}}var iU=Object.defineProperties(()=>{},Zr(qt({},$v),{level:{enumerable:!0,get(){return this._generator.level},set(i){this._generator.level=i}}})),Aw=(i,o,a)=>{let c,_;return a===void 0?(c=i,_=o):(c=a.openAll+i,_=o+a.closeAll),{open:i,close:o,openAll:c,closeAll:_,parent:a}},v4=(i,o,a)=>{let c=(..._)=>p4(_[0])&&p4(_[0].raw)?z6(c,U6(c,..._)):z6(c,_.length===1?""+_[0]:_.join(" "));return Object.setPrototypeOf(c,iU),c._generator=i,c._styler=o,c._isEmpty=a,c},z6=(i,o)=>{if(i.level<=0||!o)return i._isEmpty?"":o;let a=i._styler;if(a===void 0)return o;let{openAll:c,closeAll:_}=a;if(o.indexOf("")!==-1)for(;a!==void 0;)o=tU(o,a.close,a.open),a=a.parent;let t=o.indexOf(` +`);return t!==-1&&(o=nU(o,_,c,t)),c+o+_},Ow,U6=(i,...o)=>{let[a]=o;if(!p4(a)||!p4(a.raw))return o.join(" ");let c=o.slice(1),_=[a.raw[0]];for(let t=1;t{"use strict";var uU=vg&&vg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(vg,"__esModule",{value:!0});var mg=uU(y4()),oU=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,lU=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,g4=(i,o)=>o==="foreground"?i:"bg"+i[0].toUpperCase()+i.slice(1);vg.default=(i,o,a)=>{if(!o)return i;if(o in mg.default){let _=g4(o,a);return mg.default[_](i)}if(o.startsWith("#")){let _=g4("hex",a);return mg.default[_](o)(i)}if(o.startsWith("ansi")){let _=lU.exec(o);if(!_)return i;let t=g4(_[1],a),M=Number(_[2]);return mg.default[t](M)(i)}if(o.startsWith("rgb")||o.startsWith("hsl")||o.startsWith("hsv")||o.startsWith("hwb")){let _=oU.exec(o);if(!_)return i;let t=g4(_[1],a),M=Number(_[2]),N=Number(_[3]),O=Number(_[4]);return mg.default[t](M,N,O)(i)}return i}});var q6=Ke(yg=>{"use strict";var H6=yg&&yg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(yg,"__esModule",{value:!0});var sU=H6(w6()),kw=H6(Mw());yg.default=(i,o,a,c)=>{if(typeof a.style.borderStyle=="string"){let _=a.yogaNode.getComputedWidth(),t=a.yogaNode.getComputedHeight(),M=a.style.borderColor,N=sU.default[a.style.borderStyle],O=kw.default(N.topLeft+N.horizontal.repeat(_-2)+N.topRight,M,"foreground"),T=(kw.default(N.vertical,M,"foreground")+` +`).repeat(t-2),B=kw.default(N.bottomLeft+N.horizontal.repeat(_-2)+N.bottomRight,M,"foreground");c.write(i,o,O,{transformers:[]}),c.write(i,o+1,T,{transformers:[]}),c.write(i+_-1,o+1,T,{transformers:[]}),c.write(i,o+t-1,B,{transformers:[]})}}});var V6=Ke(gg=>{"use strict";var ih=gg&&gg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(gg,"__esModule",{value:!0});var aU=ih(eh()),fU=ih(GD()),cU=ih(y6()),dU=ih(tw()),pU=ih(g6()),hU=ih(rw()),vU=ih(q6()),mU=(i,o)=>{var a;let c=(a=i.childNodes[0])===null||a===void 0?void 0:a.yogaNode;if(c){let _=c.getComputedLeft(),t=c.getComputedTop();o=` +`.repeat(t)+cU.default(o,_)}return o},W6=(i,o,a)=>{var c;let{offsetX:_=0,offsetY:t=0,transformers:M=[],skipStaticElements:N}=a;if(N&&i.internal_static)return;let{yogaNode:O}=i;if(O){if(O.getDisplay()===aU.default.DISPLAY_NONE)return;let T=_+O.getComputedLeft(),B=t+O.getComputedTop(),H=M;if(typeof i.internal_transform=="function"&&(H=[i.internal_transform,...M]),i.nodeName==="ink-text"){let q=hU.default(i);if(q.length>0){let ne=fU.default(q),m=pU.default(O);if(ne>m){let pe=(c=i.style.textWrap)!==null&&c!==void 0?c:"wrap";q=dU.default(q,m,pe)}q=mU(i,q),o.write(T,B,q,{transformers:H})}return}if(i.nodeName==="ink-box"&&vU.default(T,B,i,o),i.nodeName==="ink-root"||i.nodeName==="ink-box")for(let q of i.childNodes)W6(q,o,{offsetX:T,offsetY:B,transformers:H,skipStaticElements:N})}};gg.default=W6});var Y6=Ke((jV,G6)=>{"use strict";G6.exports=i=>{i=Object.assign({onlyFirst:!1},i);let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i.onlyFirst?void 0:"g")}});var X6=Ke((zV,Lw)=>{"use strict";var yU=Y6(),K6=i=>typeof i=="string"?i.replace(yU(),""):i;Lw.exports=K6;Lw.exports.default=K6});var Z6=Ke((HV,Q6)=>{"use strict";var J6="[\uD800-\uDBFF][\uDC00-\uDFFF]";Q6.exports=i=>i&&i.exact?new RegExp(`^${J6}$`):new RegExp(J6,"g")});var ex=Ke((qV,Nw)=>{"use strict";var gU=X6(),_U=Z6(),$6=i=>gU(i).replace(_U()," ").length;Nw.exports=$6;Nw.exports.default=$6});var ix=Ke(_g=>{"use strict";var tx=_g&&_g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(_g,"__esModule",{value:!0});var nx=tx($D()),EU=tx(ex()),rx=class{constructor(o){this.writes=[];let{width:a,height:c}=o;this.width=a,this.height=c}write(o,a,c,_){let{transformers:t}=_;!c||this.writes.push({x:o,y:a,text:c,transformers:t})}get(){let o=[];for(let c=0;cc.trimRight()).join(` +`),height:o.length}}};_g.default=rx});var lx=Ke(Eg=>{"use strict";var Fw=Eg&&Eg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Eg,"__esModule",{value:!0});var DU=Fw(eh()),ux=Fw(V6()),ox=Fw(ix());Eg.default=(i,o)=>{var a;if(i.yogaNode.setWidth(o),i.yogaNode){i.yogaNode.calculateLayout(void 0,void 0,DU.default.DIRECTION_LTR);let c=new ox.default({width:i.yogaNode.getComputedWidth(),height:i.yogaNode.getComputedHeight()});ux.default(i,c,{skipStaticElements:!0});let _;((a=i.staticNode)===null||a===void 0?void 0:a.yogaNode)&&(_=new ox.default({width:i.staticNode.yogaNode.getComputedWidth(),height:i.staticNode.yogaNode.getComputedHeight()}),ux.default(i.staticNode,_,{skipStaticElements:!1}));let{output:t,height:M}=c.get();return{output:t,outputHeight:M,staticOutput:_?`${_.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var cx=Ke((GV,sx)=>{"use strict";var ax=require("stream"),fx=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Pw={},wU=i=>{let o=new ax.PassThrough,a=new ax.PassThrough;o.write=_=>i("stdout",_),a.write=_=>i("stderr",_);let c=new console.Console(o,a);for(let _ of fx)Pw[_]=console[_],console[_]=c[_];return()=>{for(let _ of fx)console[_]=Pw[_];Pw={}}};sx.exports=wU});var bw=Ke(Iw=>{"use strict";Object.defineProperty(Iw,"__esModule",{value:!0});Iw.default=new WeakMap});var Uw=Ke(Bw=>{"use strict";Object.defineProperty(Bw,"__esModule",{value:!0});var SU=Mi(),dx=SU.createContext({exit:()=>{}});dx.displayName="InternalAppContext";Bw.default=dx});var zw=Ke(jw=>{"use strict";Object.defineProperty(jw,"__esModule",{value:!0});var TU=Mi(),px=TU.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});px.displayName="InternalStdinContext";jw.default=px});var qw=Ke(Hw=>{"use strict";Object.defineProperty(Hw,"__esModule",{value:!0});var CU=Mi(),hx=CU.createContext({stdout:void 0,write:()=>{}});hx.displayName="InternalStdoutContext";Hw.default=hx});var Vw=Ke(Ww=>{"use strict";Object.defineProperty(Ww,"__esModule",{value:!0});var xU=Mi(),vx=xU.createContext({stderr:void 0,write:()=>{}});vx.displayName="InternalStderrContext";Ww.default=vx});var _4=Ke(Gw=>{"use strict";Object.defineProperty(Gw,"__esModule",{value:!0});var RU=Mi(),mx=RU.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});mx.displayName="InternalFocusContext";Gw.default=mx});var gx=Ke(($V,yx)=>{"use strict";var AU=/[|\\{}()[\]^$+*?.-]/g;yx.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(AU,"\\$&")}});var wx=Ke((eG,_x)=>{"use strict";var OU=gx(),Ex=[].concat(require("module").builtinModules,"bootstrap_node","node").map(i=>new RegExp(`(?:\\(${i}\\.js:\\d+:\\d+\\)$|^\\s*at ${i}\\.js:\\d+:\\d+$)`));Ex.push(/\(internal\/[^:]+:\d+:\d+\)$/,/\s*at internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var E4=class{constructor(o){o=qt({ignoredPackages:[]},o),"internals"in o||(o.internals=E4.nodeInternals()),"cwd"in o||(o.cwd=process.cwd()),this._cwd=o.cwd.replace(/\\/g,"/"),this._internals=[].concat(o.internals,MU(o.ignoredPackages)),this._wrapCallSite=o.wrapCallSite||!1}static nodeInternals(){return[...Ex]}clean(o,a=0){a=" ".repeat(a),Array.isArray(o)||(o=o.split(` +`)),!/^\s*at /.test(o[0])&&/^\s*at /.test(o[1])&&(o=o.slice(1));let c=!1,_=null,t=[];return o.forEach(M=>{if(M=M.replace(/\\/g,"/"),this._internals.some(O=>O.test(M)))return;let N=/^\s*at /.test(M);c?M=M.trimEnd().replace(/^(\s+)at /,"$1"):(M=M.trim(),N&&(M=M.slice(3))),M=M.replace(`${this._cwd}/`,""),M&&(N?(_&&(t.push(_),_=null),t.push(M)):(c=!0,_=M))}),t.map(M=>`${a}${M} +`).join("")}captureString(o,a=this.captureString){typeof o=="function"&&(a=o,o=Infinity);let{stackTraceLimit:c}=Error;o&&(Error.stackTraceLimit=o);let _={};Error.captureStackTrace(_,a);let{stack:t}=_;return Error.stackTraceLimit=c,this.clean(t)}capture(o,a=this.capture){typeof o=="function"&&(a=o,o=Infinity);let{prepareStackTrace:c,stackTraceLimit:_}=Error;Error.prepareStackTrace=(N,O)=>this._wrapCallSite?O.map(this._wrapCallSite):O,o&&(Error.stackTraceLimit=o);let t={};Error.captureStackTrace(t,a);let{stack:M}=t;return Object.assign(Error,{prepareStackTrace:c,stackTraceLimit:_}),M}at(o=this.at){let[a]=this.capture(1,o);if(!a)return{};let c={line:a.getLineNumber(),column:a.getColumnNumber()};Dx(c,a.getFileName(),this._cwd),a.isConstructor()&&(c.constructor=!0),a.isEval()&&(c.evalOrigin=a.getEvalOrigin()),a.isNative()&&(c.native=!0);let _;try{_=a.getTypeName()}catch(N){}_&&_!=="Object"&&_!=="[object Object]"&&(c.type=_);let t=a.getFunctionName();t&&(c.function=t);let M=a.getMethodName();return M&&t!==M&&(c.method=M),c}parseLine(o){let a=o&&o.match(kU);if(!a)return null;let c=a[1]==="new",_=a[2],t=a[3],M=a[4],N=Number(a[5]),O=Number(a[6]),T=a[7],B=a[8],H=a[9],q=a[10]==="native",ne=a[11]===")",m,pe={};if(B&&(pe.line=Number(B)),H&&(pe.column=Number(H)),ne&&T){let ge=0;for(let ve=T.length-1;ve>0;ve--)if(T.charAt(ve)===")")ge++;else if(T.charAt(ve)==="("&&T.charAt(ve-1)===" "&&(ge--,ge===-1&&T.charAt(ve-1)===" ")){let ue=T.slice(0,ve-1);T=T.slice(ve+1),_+=` (${ue}`;break}}if(_){let ge=_.match(LU);ge&&(_=ge[1],m=ge[2])}return Dx(pe,T,this._cwd),c&&(pe.constructor=!0),t&&(pe.evalOrigin=t,pe.evalLine=N,pe.evalColumn=O,pe.evalFile=M&&M.replace(/\\/g,"/")),q&&(pe.native=!0),_&&(pe.function=_),m&&_!==m&&(pe.method=m),pe}};function Dx(i,o,a){o&&(o=o.replace(/\\/g,"/"),o.startsWith(`${a}/`)&&(o=o.slice(a.length+1)),i.file=o)}function MU(i){if(i.length===0)return[];let o=i.map(a=>OU(a));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${o.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var kU=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),LU=/^(.*?) \[as (.*?)\]$/;_x.exports=E4});var Tx=Ke((tG,Sx)=>{"use strict";Sx.exports=(i,o)=>i.replace(/^\t+/gm,a=>" ".repeat(a.length*(o||2)))});var xx=Ke((nG,Cx)=>{"use strict";var NU=Tx(),FU=(i,o)=>{let a=[],c=i-o,_=i+o;for(let t=c;t<=_;t++)a.push(t);return a};Cx.exports=(i,o,a)=>{if(typeof i!="string")throw new TypeError("Source code is missing.");if(!o||o<1)throw new TypeError("Line number must start from `1`.");if(i=NU(i).split(/\r?\n/),!(o>i.length))return a=qt({around:3},a),FU(o,a.around).filter(c=>i[c-1]!==void 0).map(c=>({line:c,value:i[c-1]}))}});var D4=Ke(rc=>{"use strict";var PU=rc&&rc.__createBinding||(Object.create?function(i,o,a,c){c===void 0&&(c=a),Object.defineProperty(i,c,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,c){c===void 0&&(c=a),i[c]=o[a]}),IU=rc&&rc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),bU=rc&&rc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&PU(o,i,a);return IU(o,i),o},BU=rc&&rc.__rest||function(i,o){var a={};for(var c in i)Object.prototype.hasOwnProperty.call(i,c)&&o.indexOf(c)<0&&(a[c]=i[c]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var _=0,c=Object.getOwnPropertySymbols(i);_{var{children:a}=i,c=BU(i,["children"]);let _=Object.assign(Object.assign({},c),{marginLeft:c.marginLeft||c.marginX||c.margin||0,marginRight:c.marginRight||c.marginX||c.margin||0,marginTop:c.marginTop||c.marginY||c.margin||0,marginBottom:c.marginBottom||c.marginY||c.margin||0,paddingLeft:c.paddingLeft||c.paddingX||c.padding||0,paddingRight:c.paddingRight||c.paddingX||c.padding||0,paddingTop:c.paddingTop||c.paddingY||c.padding||0,paddingBottom:c.paddingBottom||c.paddingY||c.padding||0});return Rx.default.createElement("ink-box",{ref:o,style:_},a)});Yw.displayName="Box";Yw.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};rc.default=Yw});var Qw=Ke(Dg=>{"use strict";var Kw=Dg&&Dg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Dg,"__esModule",{value:!0});var UU=Kw(Mi()),em=Kw(y4()),Ax=Kw(Mw()),Xw=({color:i,backgroundColor:o,dimColor:a,bold:c,italic:_,underline:t,strikethrough:M,inverse:N,wrap:O,children:T})=>{if(T==null)return null;let B=H=>(a&&(H=em.default.dim(H)),i&&(H=Ax.default(H,i,"foreground")),o&&(H=Ax.default(H,o,"background")),c&&(H=em.default.bold(H)),_&&(H=em.default.italic(H)),t&&(H=em.default.underline(H)),M&&(H=em.default.strikethrough(H)),N&&(H=em.default.inverse(H)),H);return UU.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:O},internal_transform:B},T)};Xw.displayName="Text";Xw.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};Dg.default=Xw});var Lx=Ke(ic=>{"use strict";var jU=ic&&ic.__createBinding||(Object.create?function(i,o,a,c){c===void 0&&(c=a),Object.defineProperty(i,c,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,c){c===void 0&&(c=a),i[c]=o[a]}),zU=ic&&ic.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),HU=ic&&ic.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&jU(o,i,a);return zU(o,i),o},wg=ic&&ic.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(ic,"__esModule",{value:!0});var Ox=HU(require("fs")),Q0=wg(Mi()),Mx=wg(wx()),qU=wg(xx()),$1=wg(D4()),Hc=wg(Qw()),kx=new Mx.default({cwd:process.cwd(),internals:Mx.default.nodeInternals()}),WU=({error:i})=>{let o=i.stack?i.stack.split(` +`).slice(1):void 0,a=o?kx.parseLine(o[0]):void 0,c,_=0;if((a==null?void 0:a.file)&&(a==null?void 0:a.line)&&Ox.existsSync(a.file)){let t=Ox.readFileSync(a.file,"utf8");if(c=qU.default(t,a.line),c)for(let{line:M}of c)_=Math.max(_,String(M).length)}return Q0.default.createElement($1.default,{flexDirection:"column",padding:1},Q0.default.createElement($1.default,null,Q0.default.createElement(Hc.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Q0.default.createElement(Hc.default,null," ",i.message)),a&&Q0.default.createElement($1.default,{marginTop:1},Q0.default.createElement(Hc.default,{dimColor:!0},a.file,":",a.line,":",a.column)),a&&c&&Q0.default.createElement($1.default,{marginTop:1,flexDirection:"column"},c.map(({line:t,value:M})=>Q0.default.createElement($1.default,{key:t},Q0.default.createElement($1.default,{width:_+1},Q0.default.createElement(Hc.default,{dimColor:t!==a.line,backgroundColor:t===a.line?"red":void 0,color:t===a.line?"white":void 0},String(t).padStart(_," "),":")),Q0.default.createElement(Hc.default,{key:t,backgroundColor:t===a.line?"red":void 0,color:t===a.line?"white":void 0}," "+M)))),i.stack&&Q0.default.createElement($1.default,{marginTop:1,flexDirection:"column"},i.stack.split(` +`).slice(1).map(t=>{let M=kx.parseLine(t);return M?Q0.default.createElement($1.default,{key:t},Q0.default.createElement(Hc.default,{dimColor:!0},"- "),Q0.default.createElement(Hc.default,{dimColor:!0,bold:!0},M.function),Q0.default.createElement(Hc.default,{dimColor:!0,color:"gray"}," ","(",M.file,":",M.line,":",M.column,")")):Q0.default.createElement($1.default,{key:t},Q0.default.createElement(Hc.default,{dimColor:!0},"- "),Q0.default.createElement(Hc.default,{dimColor:!0,bold:!0},t))})))};ic.default=WU});var Fx=Ke(uc=>{"use strict";var VU=uc&&uc.__createBinding||(Object.create?function(i,o,a,c){c===void 0&&(c=a),Object.defineProperty(i,c,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,c){c===void 0&&(c=a),i[c]=o[a]}),GU=uc&&uc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),YU=uc&&uc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&VU(o,i,a);return GU(o,i),o},uh=uc&&uc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(uc,"__esModule",{value:!0});var oh=YU(Mi()),Nx=uh(SD()),KU=uh(Uw()),XU=uh(zw()),QU=uh(qw()),JU=uh(Vw()),ZU=uh(_4()),$U=uh(Lx()),ej=" ",tj="",nj="",Jw=class extends oh.PureComponent{constructor(){super(...arguments);this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=o=>{let{stdin:a}=this.props;if(!this.isRawModeSupported())throw a===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(a.setEncoding("utf8"),o){this.rawModeEnabledCount===0&&(a.addListener("data",this.handleInput),a.resume(),a.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount==0&&(a.setRawMode(!1),a.removeListener("data",this.handleInput),a.pause())},this.handleInput=o=>{o===""&&this.props.exitOnCtrlC&&this.handleExit(),o===nj&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(o===ej&&this.focusNext(),o===tj&&this.focusPrevious())},this.handleExit=o=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(o)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(o=>{let a=o.focusables[0].id;return{activeFocusId:this.findNextFocusable(o)||a}})},this.focusPrevious=()=>{this.setState(o=>{let a=o.focusables[o.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(o)||a}})},this.addFocusable=(o,{autoFocus:a})=>{this.setState(c=>{let _=c.activeFocusId;return!_&&a&&(_=o),{activeFocusId:_,focusables:[...c.focusables,{id:o,isActive:!0}]}})},this.removeFocusable=o=>{this.setState(a=>({activeFocusId:a.activeFocusId===o?void 0:a.activeFocusId,focusables:a.focusables.filter(c=>c.id!==o)}))},this.activateFocusable=o=>{this.setState(a=>({focusables:a.focusables.map(c=>c.id!==o?c:{id:o,isActive:!0})}))},this.deactivateFocusable=o=>{this.setState(a=>({activeFocusId:a.activeFocusId===o?void 0:a.activeFocusId,focusables:a.focusables.map(c=>c.id!==o?c:{id:o,isActive:!1})}))},this.findNextFocusable=o=>{let a=o.focusables.findIndex(c=>c.id===o.activeFocusId);for(let c=a+1;c{let a=o.focusables.findIndex(c=>c.id===o.activeFocusId);for(let c=a-1;c>=0;c--)if(o.focusables[c].isActive)return o.focusables[c].id}}static getDerivedStateFromError(o){return{error:o}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return oh.default.createElement(KU.default.Provider,{value:{exit:this.handleExit}},oh.default.createElement(XU.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},oh.default.createElement(QU.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},oh.default.createElement(JU.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},oh.default.createElement(ZU.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?oh.default.createElement($U.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){Nx.default.hide(this.props.stdout)}componentWillUnmount(){Nx.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(o){this.handleExit(o)}};uc.default=Jw;Jw.displayName="InternalApp"});var Bx=Ke(oc=>{"use strict";var rj=oc&&oc.__createBinding||(Object.create?function(i,o,a,c){c===void 0&&(c=a),Object.defineProperty(i,c,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,c){c===void 0&&(c=a),i[c]=o[a]}),ij=oc&&oc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),uj=oc&&oc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&rj(o,i,a);return ij(o,i),o},lc=oc&&oc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(oc,"__esModule",{value:!0});var oj=lc(Mi()),Px=kS(),lj=lc(GS()),sj=lc(yD()),aj=lc($S()),fj=lc(tT()),w4=lc(v6()),cj=lc(lx()),dj=lc(wD()),pj=lc(cx()),hj=uj(iw()),vj=lc(bw()),mj=lc(Fx()),tm=process.env.CI==="false"?!1:aj.default,Ix=()=>{},bx=class{constructor(o){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:a,outputHeight:c,staticOutput:_}=cj.default(this.rootNode,this.options.stdout.columns||80),t=_&&_!==` +`;if(this.options.debug){t&&(this.fullStaticOutput+=_),this.options.stdout.write(this.fullStaticOutput+a);return}if(tm){t&&this.options.stdout.write(_),this.lastOutput=a;return}if(t&&(this.fullStaticOutput+=_),c>=this.options.stdout.rows){this.options.stdout.write(sj.default.clearTerminal+this.fullStaticOutput+a),this.lastOutput=a;return}t&&(this.log.clear(),this.options.stdout.write(_),this.log(a)),!t&&a!==this.lastOutput&&this.throttledLog(a),this.lastOutput=a},fj.default(this),this.options=o,this.rootNode=hj.createNode("ink-root"),this.rootNode.onRender=o.debug?this.onRender:Px.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=lj.default.create(o.stdout),this.throttledLog=o.debug?this.log:Px.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=w4.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=dj.default(this.unmount,{alwaysLast:!1}),process.env.DEV==="true"&&w4.default.injectIntoDevTools({bundleType:0,version:"16.13.1",rendererPackageName:"ink"}),o.patchConsole&&this.patchConsole(),tm||(o.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{o.stdout.off("resize",this.onRender)})}render(o){let a=oj.default.createElement(mj.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},o);w4.default.updateContainer(a,this.container,null,Ix)}writeToStdout(o){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(o+this.fullStaticOutput+this.lastOutput);return}if(tm){this.options.stdout.write(o);return}this.log.clear(),this.options.stdout.write(o),this.log(this.lastOutput)}}writeToStderr(o){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(o),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(tm){this.options.stderr.write(o);return}this.log.clear(),this.options.stderr.write(o),this.log(this.lastOutput)}}unmount(o){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),tm?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,w4.default.updateContainer(null,this.container,null,Ix),vj.default.delete(this.options.stdout),o instanceof Error?this.rejectExitPromise(o):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((o,a)=>{this.resolveExitPromise=o,this.rejectExitPromise=a})),this.exitPromise}clear(){!tm&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=pj.default((o,a)=>{o==="stdout"&&this.writeToStdout(a),o==="stderr"&&(a.startsWith("The above error occurred")||this.writeToStderr(a))}))}};oc.default=bx});var jx=Ke(Sg=>{"use strict";var Ux=Sg&&Sg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Sg,"__esModule",{value:!0});var yj=Ux(Bx()),S4=Ux(bw()),gj=require("stream"),Dj=(i,o)=>{let a=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},_j(o)),c=Ej(a.stdout,()=>new yj.default(a));return c.render(i),{rerender:c.render,unmount:()=>c.unmount(),waitUntilExit:c.waitUntilExit,cleanup:()=>S4.default.delete(a.stdout),clear:c.clear}};Sg.default=Dj;var _j=(i={})=>i instanceof gj.Stream?{stdout:i,stdin:process.stdin}:i,Ej=(i,o)=>{let a;return S4.default.has(i)?a=S4.default.get(i):(a=o(),S4.default.set(i,a)),a}});var Hx=Ke(ed=>{"use strict";var wj=ed&&ed.__createBinding||(Object.create?function(i,o,a,c){c===void 0&&(c=a),Object.defineProperty(i,c,{enumerable:!0,get:function(){return o[a]}})}:function(i,o,a,c){c===void 0&&(c=a),i[c]=o[a]}),Sj=ed&&ed.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),Tj=ed&&ed.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var a in i)a!=="default"&&Object.hasOwnProperty.call(i,a)&&wj(o,i,a);return Sj(o,i),o};Object.defineProperty(ed,"__esModule",{value:!0});var Tg=Tj(Mi()),zx=i=>{let{items:o,children:a,style:c}=i,[_,t]=Tg.useState(0),M=Tg.useMemo(()=>o.slice(_),[o,_]);Tg.useLayoutEffect(()=>{t(o.length)},[o.length]);let N=M.map((T,B)=>a(T,_+B)),O=Tg.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},c),[c]);return Tg.default.createElement("ink-box",{internal_static:!0,style:O},N)};zx.displayName="Static";ed.default=zx});var Wx=Ke(Cg=>{"use strict";var Cj=Cg&&Cg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Cg,"__esModule",{value:!0});var xj=Cj(Mi()),qx=({children:i,transform:o})=>i==null?null:xj.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:o},i);qx.displayName="Transform";Cg.default=qx});var Gx=Ke(xg=>{"use strict";var Rj=xg&&xg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(xg,"__esModule",{value:!0});var Aj=Rj(Mi()),Vx=({count:i=1})=>Aj.default.createElement("ink-text",null,` +`.repeat(i));Vx.displayName="Newline";xg.default=Vx});var Xx=Ke(Rg=>{"use strict";var Yx=Rg&&Rg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Rg,"__esModule",{value:!0});var Oj=Yx(Mi()),Mj=Yx(D4()),Kx=()=>Oj.default.createElement(Mj.default,{flexGrow:1});Kx.displayName="Spacer";Rg.default=Kx});var T4=Ke(Ag=>{"use strict";var kj=Ag&&Ag.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ag,"__esModule",{value:!0});var Lj=Mi(),Nj=kj(zw()),Fj=()=>Lj.useContext(Nj.default);Ag.default=Fj});var Jx=Ke(Og=>{"use strict";var Pj=Og&&Og.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Og,"__esModule",{value:!0});var Qx=Mi(),Ij=Pj(T4()),bj=(i,o={})=>{let{stdin:a,setRawMode:c,internal_exitOnCtrlC:_}=Ij.default();Qx.useEffect(()=>{if(o.isActive!==!1)return c(!0),()=>{c(!1)}},[o.isActive,c]),Qx.useEffect(()=>{if(o.isActive===!1)return;let t=M=>{let N=String(M),O={upArrow:N==="",downArrow:N==="",leftArrow:N==="",rightArrow:N==="",pageDown:N==="[6~",pageUp:N==="[5~",return:N==="\r",escape:N==="",ctrl:!1,shift:!1,tab:N===" "||N==="",backspace:N==="\b",delete:N==="\x7F"||N==="[3~",meta:!1};N<=""&&!O.return&&(N=String.fromCharCode(N.charCodeAt(0)+"a".charCodeAt(0)-1),O.ctrl=!0),N.startsWith("")&&(N=N.slice(1),O.meta=!0);let T=N>="A"&&N<="Z",B=N>="\u0410"&&N<="\u042F";N.length===1&&(T||B)&&(O.shift=!0),O.tab&&N==="[Z"&&(O.shift=!0),(O.tab||O.backspace||O.delete)&&(N=""),(!(N==="c"&&O.ctrl)||!_)&&i(N,O)};return a==null||a.on("data",t),()=>{a==null||a.off("data",t)}},[o.isActive,a,_,i])};Og.default=bj});var Zx=Ke(Mg=>{"use strict";var Bj=Mg&&Mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Mg,"__esModule",{value:!0});var Uj=Mi(),jj=Bj(Uw()),zj=()=>Uj.useContext(jj.default);Mg.default=zj});var $x=Ke(kg=>{"use strict";var Hj=kg&&kg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(kg,"__esModule",{value:!0});var qj=Mi(),Wj=Hj(qw()),Vj=()=>qj.useContext(Wj.default);kg.default=Vj});var e5=Ke(Lg=>{"use strict";var Gj=Lg&&Lg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Lg,"__esModule",{value:!0});var Yj=Mi(),Kj=Gj(Vw()),Xj=()=>Yj.useContext(Kj.default);Lg.default=Xj});var n5=Ke(Ng=>{"use strict";var t5=Ng&&Ng.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ng,"__esModule",{value:!0});var Fg=Mi(),Qj=t5(_4()),Jj=t5(T4()),Zj=({isActive:i=!0,autoFocus:o=!1}={})=>{let{isRawModeSupported:a,setRawMode:c}=Jj.default(),{activeId:_,add:t,remove:M,activate:N,deactivate:O}=Fg.useContext(Qj.default),T=Fg.useMemo(()=>Math.random().toString().slice(2,7),[]);return Fg.useEffect(()=>(t(T,{autoFocus:o}),()=>{M(T)}),[T,o]),Fg.useEffect(()=>{i?N(T):O(T)},[i,T]),Fg.useEffect(()=>{if(!(!a||!i))return c(!0),()=>{c(!1)}},[i]),{isFocused:Boolean(T)&&_===T}};Ng.default=Zj});var r5=Ke(Pg=>{"use strict";var $j=Pg&&Pg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Pg,"__esModule",{value:!0});var ez=Mi(),tz=$j(_4()),nz=()=>{let i=ez.useContext(tz.default);return{enableFocus:i.enableFocus,disableFocus:i.disableFocus,focusNext:i.focusNext,focusPrevious:i.focusPrevious}};Pg.default=nz});var i5=Ke(Zw=>{"use strict";Object.defineProperty(Zw,"__esModule",{value:!0});Zw.default=i=>{var o,a,c,_;return{width:(a=(o=i.yogaNode)===null||o===void 0?void 0:o.getComputedWidth())!==null&&a!==void 0?a:0,height:(_=(c=i.yogaNode)===null||c===void 0?void 0:c.getComputedHeight())!==null&&_!==void 0?_:0}}});var sc=Ke(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});var rz=jx();Object.defineProperty(Kl,"render",{enumerable:!0,get:function(){return rz.default}});var iz=D4();Object.defineProperty(Kl,"Box",{enumerable:!0,get:function(){return iz.default}});var uz=Qw();Object.defineProperty(Kl,"Text",{enumerable:!0,get:function(){return uz.default}});var oz=Hx();Object.defineProperty(Kl,"Static",{enumerable:!0,get:function(){return oz.default}});var lz=Wx();Object.defineProperty(Kl,"Transform",{enumerable:!0,get:function(){return lz.default}});var sz=Gx();Object.defineProperty(Kl,"Newline",{enumerable:!0,get:function(){return sz.default}});var az=Xx();Object.defineProperty(Kl,"Spacer",{enumerable:!0,get:function(){return az.default}});var fz=Jx();Object.defineProperty(Kl,"useInput",{enumerable:!0,get:function(){return fz.default}});var cz=Zx();Object.defineProperty(Kl,"useApp",{enumerable:!0,get:function(){return cz.default}});var dz=T4();Object.defineProperty(Kl,"useStdin",{enumerable:!0,get:function(){return dz.default}});var pz=$x();Object.defineProperty(Kl,"useStdout",{enumerable:!0,get:function(){return pz.default}});var hz=e5();Object.defineProperty(Kl,"useStderr",{enumerable:!0,get:function(){return hz.default}});var vz=n5();Object.defineProperty(Kl,"useFocus",{enumerable:!0,get:function(){return vz.default}});var mz=r5();Object.defineProperty(Kl,"useFocusManager",{enumerable:!0,get:function(){return mz.default}});var yz=i5();Object.defineProperty(Kl,"measureElement",{enumerable:!0,get:function(){return yz.default}})});var h5=Ke(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});Ig.UncontrolledTextInput=void 0;var c5=Mi(),t3=Mi(),d5=sc(),ah=y4(),p5=({value:i,placeholder:o="",focus:a=!0,mask:c,highlightPastedText:_=!1,showCursor:t=!0,onChange:M,onSubmit:N})=>{let[{cursorOffset:O,cursorWidth:T},B]=t3.useState({cursorOffset:(i||"").length,cursorWidth:0});t3.useEffect(()=>{B(pe=>{if(!a||!t)return pe;let ge=i||"";return pe.cursorOffset>ge.length-1?{cursorOffset:ge.length,cursorWidth:0}:pe})},[i,a,t]);let H=_?T:0,q=c?c.repeat(i.length):i,ne=q,m=o?ah.grey(o):void 0;if(t&&a){m=o.length>0?ah.inverse(o[0])+ah.grey(o.slice(1)):ah.inverse(" "),ne=q.length>0?"":ah.inverse(" ");let pe=0;for(let ge of q)pe>=O-H&&pe<=O?ne+=ah.inverse(ge):ne+=ge,pe++;q.length>0&&O===q.length&&(ne+=ah.inverse(" "))}return d5.useInput((pe,ge)=>{if(ge.upArrow||ge.downArrow||ge.ctrl&&pe==="c"||ge.tab||ge.shift&&ge.tab)return;if(ge.return){N&&N(i);return}let ve=O,ue=i,_e=0;ge.leftArrow?t&&ve--:ge.rightArrow?t&&ve++:ge.backspace||ge.delete?O>0&&(ue=i.slice(0,O-1)+i.slice(O,i.length),ve--):(ue=i.slice(0,O)+pe+i.slice(O,i.length),ve+=pe.length,pe.length>1&&(_e=pe.length)),O<0&&(ve=0),O>i.length&&(ve=i.length),B({cursorOffset:ve,cursorWidth:_e}),ue!==i&&M(ue)},{isActive:a}),c5.createElement(d5.Text,null,o?q.length>0?ne:m:ne)};Ig.default=p5;Ig.UncontrolledTextInput=i=>{let[o,a]=t3.useState("");return c5.createElement(p5,Object.assign({},i,{value:o,onChange:a}))}});var m5=Ke(N4=>{"use strict";Object.defineProperty(N4,"__esModule",{value:!0});function bg(i){let o=[...i.caches],a=o.shift();return a===void 0?v5():{get(c,_,t={miss:()=>Promise.resolve()}){return a.get(c,_,t).catch(()=>bg({caches:o}).get(c,_,t))},set(c,_){return a.set(c,_).catch(()=>bg({caches:o}).set(c,_))},delete(c){return a.delete(c).catch(()=>bg({caches:o}).delete(c))},clear(){return a.clear().catch(()=>bg({caches:o}).clear())}}}function v5(){return{get(i,o,a={miss:()=>Promise.resolve()}){return o().then(_=>Promise.all([_,a.miss(_)])).then(([_])=>_)},set(i,o){return Promise.resolve(o)},delete(i){return Promise.resolve()},clear(){return Promise.resolve()}}}N4.createFallbackableCache=bg;N4.createNullCache=v5});var g5=Ke((jG,y5)=>{y5.exports=m5()});var _5=Ke(n3=>{"use strict";Object.defineProperty(n3,"__esModule",{value:!0});function gz(i={serializable:!0}){let o={};return{get(a,c,_={miss:()=>Promise.resolve()}){let t=JSON.stringify(a);if(t in o)return Promise.resolve(i.serializable?JSON.parse(o[t]):o[t]);let M=c(),N=_&&_.miss||(()=>Promise.resolve());return M.then(O=>N(O)).then(()=>M)},set(a,c){return o[JSON.stringify(a)]=i.serializable?JSON.stringify(c):c,Promise.resolve(c)},delete(a){return delete o[JSON.stringify(a)],Promise.resolve()},clear(){return o={},Promise.resolve()}}}n3.createInMemoryCache=gz});var D5=Ke((HG,E5)=>{E5.exports=_5()});var S5=Ke(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});function _z(i,o,a){let c={"x-algolia-api-key":a,"x-algolia-application-id":o};return{headers(){return i===r3.WithinHeaders?c:{}},queryParameters(){return i===r3.WithinQueryParameters?c:{}}}}function Ez(i){let o=0,a=()=>(o++,new Promise(c=>{setTimeout(()=>{c(i(a))},Math.min(100*o,1e3))}));return i(a)}function w5(i,o=(a,c)=>Promise.resolve()){return Object.assign(i,{wait(a){return w5(i.then(c=>Promise.all([o(c,a),c])).then(c=>c[1]))}})}function Dz(i){let o=i.length-1;for(o;o>0;o--){let a=Math.floor(Math.random()*(o+1)),c=i[o];i[o]=i[a],i[a]=c}return i}function wz(i,o){return Object.keys(o!==void 0?o:{}).forEach(a=>{i[a]=o[a](i)}),i}function Sz(i,...o){let a=0;return i.replace(/%s/g,()=>encodeURIComponent(o[a++]))}var Tz="4.2.0",Cz=i=>()=>i.transporter.requester.destroy(),r3={WithinQueryParameters:0,WithinHeaders:1};ac.AuthMode=r3;ac.addMethods=wz;ac.createAuth=_z;ac.createRetryablePromise=Ez;ac.createWaitablePromise=w5;ac.destroy=Cz;ac.encode=Sz;ac.shuffle=Dz;ac.version=Tz});var Bg=Ke((WG,T5)=>{T5.exports=S5()});var C5=Ke(i3=>{"use strict";Object.defineProperty(i3,"__esModule",{value:!0});var xz={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};i3.MethodEnum=xz});var Ug=Ke((GG,x5)=>{x5.exports=C5()});var z5=Ke(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});var R5=Ug();function u3(i,o){let a=i||{},c=a.data||{};return Object.keys(a).forEach(_=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(_)===-1&&(c[_]=a[_])}),{data:Object.entries(c).length>0?c:void 0,timeout:a.timeout||o,headers:a.headers||{},queryParameters:a.queryParameters||{},cacheable:a.cacheable}}var F4={Read:1,Write:2,Any:3},nm={Up:1,Down:2,Timeouted:3},A5=2*60*1e3;function o3(i,o=nm.Up){return Zr(qt({},i),{status:o,lastUpdate:Date.now()})}function O5(i){return i.status===nm.Up||Date.now()-i.lastUpdate>A5}function M5(i){return i.status===nm.Timeouted&&Date.now()-i.lastUpdate<=A5}function l3(i){return{protocol:i.protocol||"https",url:i.url,accept:i.accept||F4.Any}}function Rz(i,o){return Promise.all(o.map(a=>i.get(a,()=>Promise.resolve(o3(a))))).then(a=>{let c=a.filter(N=>O5(N)),_=a.filter(N=>M5(N)),t=[...c,..._],M=t.length>0?t.map(N=>l3(N)):o;return{getTimeout(N,O){return(_.length===0&&N===0?1:_.length+3+N)*O},statelessHosts:M}})}var Az=({isTimedOut:i,status:o})=>!i&&~~o==0,Oz=i=>{let o=i.status;return i.isTimedOut||Az(i)||~~(o/100)!=2&&~~(o/100)!=4},Mz=({status:i})=>~~(i/100)==2,kz=(i,o)=>Oz(i)?o.onRetry(i):Mz(i)?o.onSucess(i):o.onFail(i);function b5(i,o,a,c){let _=[],t=F5(a,c),M=P5(i,c),N=a.method,O=a.method!==R5.MethodEnum.Get?{}:qt(qt({},a.data),c.data),T=qt(qt(qt({"x-algolia-agent":i.userAgent.value},i.queryParameters),O),c.queryParameters),B=0,H=(q,ne)=>{let m=q.pop();if(m===void 0)throw I5(s3(_));let pe={data:t,headers:M,method:N,url:N5(m,a.path,T),connectTimeout:ne(B,i.timeouts.connect),responseTimeout:ne(B,c.timeout)},ge=ue=>{let _e={request:pe,response:ue,host:m,triesLeft:q.length};return _.push(_e),_e},ve={onSucess:ue=>k5(ue),onRetry(ue){let _e=ge(ue);return ue.isTimedOut&&B++,Promise.all([i.logger.info("Retryable failure",a3(_e)),i.hostsCache.set(m,o3(m,ue.isTimedOut?nm.Timeouted:nm.Down))]).then(()=>H(q,ne))},onFail(ue){throw ge(ue),L5(ue,s3(_))}};return i.requester.send(pe).then(ue=>kz(ue,ve))};return Rz(i.hostsCache,o).then(q=>H([...q.statelessHosts].reverse(),q.getTimeout))}function Lz(i){let{hostsCache:o,logger:a,requester:c,requestsCache:_,responsesCache:t,timeouts:M,userAgent:N,hosts:O,queryParameters:T,headers:B}=i,H={hostsCache:o,logger:a,requester:c,requestsCache:_,responsesCache:t,timeouts:M,userAgent:N,headers:B,queryParameters:T,hosts:O.map(q=>l3(q)),read(q,ne){let m=u3(ne,H.timeouts.read),pe=()=>b5(H,H.hosts.filter(ue=>(ue.accept&F4.Read)!=0),q,m);if((m.cacheable!==void 0?m.cacheable:q.cacheable)!==!0)return pe();let ve={request:q,mappedRequestOptions:m,transporter:{queryParameters:H.queryParameters,headers:H.headers}};return H.responsesCache.get(ve,()=>H.requestsCache.get(ve,()=>H.requestsCache.set(ve,pe()).then(ue=>Promise.all([H.requestsCache.delete(ve),ue]),ue=>Promise.all([H.requestsCache.delete(ve),Promise.reject(ue)])).then(([ue,_e])=>_e)),{miss:ue=>H.responsesCache.set(ve,ue)})},write(q,ne){return b5(H,H.hosts.filter(m=>(m.accept&F4.Write)!=0),q,u3(ne,H.timeouts.write))}};return H}function Nz(i){let o={value:`Algolia for JavaScript (${i})`,add(a){let c=`; ${a.segment}${a.version!==void 0?` (${a.version})`:""}`;return o.value.indexOf(c)===-1&&(o.value=`${o.value}${c}`),o}};return o}function k5(i){try{return JSON.parse(i.content)}catch(o){throw B5(o.message,i)}}function L5({content:i,status:o},a){let c=i;try{c=JSON.parse(i).message}catch(_){}return U5(c,o,a)}function Fz(i,...o){let a=0;return i.replace(/%s/g,()=>encodeURIComponent(o[a++]))}function N5(i,o,a){let c=j5(a),_=`${i.protocol}://${i.url}/${o.charAt(0)==="/"?o.substr(1):o}`;return c.length&&(_+=`?${c}`),_}function j5(i){let o=a=>Object.prototype.toString.call(a)==="[object Object]"||Object.prototype.toString.call(a)==="[object Array]";return Object.keys(i).map(a=>Fz("%s=%s",a,o(i[a])?JSON.stringify(i[a]):i[a])).join("&")}function F5(i,o){if(i.method===R5.MethodEnum.Get||i.data===void 0&&o.data===void 0)return;let a=Array.isArray(i.data)?i.data:qt(qt({},i.data),o.data);return JSON.stringify(a)}function P5(i,o){let a=qt(qt({},i.headers),o.headers),c={};return Object.keys(a).forEach(_=>{let t=a[_];c[_.toLowerCase()]=t}),c}function s3(i){return i.map(o=>a3(o))}function a3(i){let o=i.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return Zr(qt({},i),{request:Zr(qt({},i.request),{headers:qt(qt({},i.request.headers),o)})})}function U5(i,o,a){return{name:"ApiError",message:i,status:o,transporterStackTrace:a}}function B5(i,o){return{name:"DeserializationError",message:i,response:o}}function I5(i){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:i}}Go.CallEnum=F4;Go.HostStatusEnum=nm;Go.createApiError=U5;Go.createDeserializationError=B5;Go.createMappedRequestOptions=u3;Go.createRetryError=I5;Go.createStatefulHost=o3;Go.createStatelessHost=l3;Go.createTransporter=Lz;Go.createUserAgent=Nz;Go.deserializeFailure=L5;Go.deserializeSuccess=k5;Go.isStatefulHostTimeouted=M5;Go.isStatefulHostUp=O5;Go.serializeData=F5;Go.serializeHeaders=P5;Go.serializeQueryParameters=j5;Go.serializeUrl=N5;Go.stackFrameWithoutCredentials=a3;Go.stackTraceWithoutCredentials=s3});var jg=Ke((KG,H5)=>{H5.exports=z5()});var q5=Ke(_2=>{"use strict";Object.defineProperty(_2,"__esModule",{value:!0});var rm=Bg(),Pz=jg(),zg=Ug(),Iz=i=>{let o=i.region||"us",a=rm.createAuth(rm.AuthMode.WithinHeaders,i.appId,i.apiKey),c=Pz.createTransporter(Zr(qt({hosts:[{url:`analytics.${o}.algolia.com`}]},i),{headers:qt(Zr(qt({},a.headers()),{"content-type":"application/json"}),i.headers),queryParameters:qt(qt({},a.queryParameters()),i.queryParameters)})),_=i.appId;return rm.addMethods({appId:_,transporter:c},i.methods)},bz=i=>(o,a)=>i.transporter.write({method:zg.MethodEnum.Post,path:"2/abtests",data:o},a),Bz=i=>(o,a)=>i.transporter.write({method:zg.MethodEnum.Delete,path:rm.encode("2/abtests/%s",o)},a),Uz=i=>(o,a)=>i.transporter.read({method:zg.MethodEnum.Get,path:rm.encode("2/abtests/%s",o)},a),jz=i=>o=>i.transporter.read({method:zg.MethodEnum.Get,path:"2/abtests"},o),zz=i=>(o,a)=>i.transporter.write({method:zg.MethodEnum.Post,path:rm.encode("2/abtests/%s/stop",o)},a);_2.addABTest=bz;_2.createAnalyticsClient=Iz;_2.deleteABTest=Bz;_2.getABTest=Uz;_2.getABTests=jz;_2.stopABTest=zz});var V5=Ke((QG,W5)=>{W5.exports=q5()});var Y5=Ke(Hg=>{"use strict";Object.defineProperty(Hg,"__esModule",{value:!0});var f3=Bg(),Hz=jg(),G5=Ug(),qz=i=>{let o=i.region||"us",a=f3.createAuth(f3.AuthMode.WithinHeaders,i.appId,i.apiKey),c=Hz.createTransporter(Zr(qt({hosts:[{url:`recommendation.${o}.algolia.com`}]},i),{headers:qt(Zr(qt({},a.headers()),{"content-type":"application/json"}),i.headers),queryParameters:qt(qt({},a.queryParameters()),i.queryParameters)}));return f3.addMethods({appId:i.appId,transporter:c},i.methods)},Wz=i=>o=>i.transporter.read({method:G5.MethodEnum.Get,path:"1/strategies/personalization"},o),Vz=i=>(o,a)=>i.transporter.write({method:G5.MethodEnum.Post,path:"1/strategies/personalization",data:o},a);Hg.createRecommendationClient=qz;Hg.getPersonalizationStrategy=Wz;Hg.setPersonalizationStrategy=Vz});var X5=Ke((ZG,K5)=>{K5.exports=Y5()});var s9=Ke(tn=>{"use strict";Object.defineProperty(tn,"__esModule",{value:!0});var Nn=Bg(),ia=jg(),Ur=Ug(),Gz=require("crypto");function P4(i){let o=a=>i.request(a).then(c=>{if(i.batch!==void 0&&i.batch(c.hits),!i.shouldStop(c))return c.cursor?o({cursor:c.cursor}):o({page:(a.page||0)+1})});return o({})}var Yz=i=>{let o=i.appId,a=Nn.createAuth(i.authMode!==void 0?i.authMode:Nn.AuthMode.WithinHeaders,o,i.apiKey),c=ia.createTransporter(Zr(qt({hosts:[{url:`${o}-dsn.algolia.net`,accept:ia.CallEnum.Read},{url:`${o}.algolia.net`,accept:ia.CallEnum.Write}].concat(Nn.shuffle([{url:`${o}-1.algolianet.com`},{url:`${o}-2.algolianet.com`},{url:`${o}-3.algolianet.com`}]))},i),{headers:qt(Zr(qt({},a.headers()),{"content-type":"application/x-www-form-urlencoded"}),i.headers),queryParameters:qt(qt({},a.queryParameters()),i.queryParameters)})),_={transporter:c,appId:o,addAlgoliaAgent(t,M){c.userAgent.add({segment:t,version:M})},clearCache(){return Promise.all([c.requestsCache.clear(),c.responsesCache.clear()]).then(()=>{})}};return Nn.addMethods(_,i.methods)};function Q5(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function J5(){return{name:"ObjectNotFoundError",message:"Object not found."}}function Z5(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Kz=i=>(o,a)=>{let N=a||{},{queryParameters:c}=N,_=wl(N,["queryParameters"]),t=qt({acl:o},c!==void 0?{queryParameters:c}:{}),M=(O,T)=>Nn.createRetryablePromise(B=>qg(i)(O.key,T).catch(H=>{if(H.status!==404)throw H;return B()}));return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:"1/keys",data:t},_),M)},Xz=i=>(o,a,c)=>{let _=ia.createMappedRequestOptions(c);return _.queryParameters["X-Algolia-User-ID"]=o,i.transporter.write({method:Ur.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:a}},_)},Qz=i=>(o,a,c)=>i.transporter.write({method:Ur.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:o,cluster:a}},c),I4=i=>(o,a,c)=>{let _=(t,M)=>Wg(i)(o,{methods:{waitTask:x0}}).waitTask(t.taskID,M);return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/operation",o),data:{operation:"copy",destination:a}},c),_)},Jz=i=>(o,a,c)=>I4(i)(o,a,Zr(qt({},c),{scope:[b4.Rules]})),Zz=i=>(o,a,c)=>I4(i)(o,a,Zr(qt({},c),{scope:[b4.Settings]})),$z=i=>(o,a,c)=>I4(i)(o,a,Zr(qt({},c),{scope:[b4.Synonyms]})),eH=i=>(o,a)=>{let c=(_,t)=>Nn.createRetryablePromise(M=>qg(i)(o,t).then(M).catch(N=>{if(N.status!==404)throw N}));return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Delete,path:Nn.encode("1/keys/%s",o)},a),c)},tH=()=>(i,o)=>{let a=ia.serializeQueryParameters(o),c=Gz.createHmac("sha256",i).update(a).digest("hex");return Buffer.from(c+a).toString("base64")},qg=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/keys/%s",o)},a),nH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/logs"},o),rH=()=>i=>{let o=Buffer.from(i,"base64").toString("ascii"),a=/validUntil=(\d+)/,c=o.match(a);if(c===null)throw Z5();return parseInt(c[1],10)-Math.round(new Date().getTime()/1e3)},iH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/clusters/mapping/top"},o),uH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/clusters/mapping/%s",o)},a),oH=i=>o=>{let _=o||{},{retrieveMappings:a}=_,c=wl(_,["retrieveMappings"]);return a===!0&&(c.getClusters=!0),i.transporter.read({method:Ur.MethodEnum.Get,path:"1/clusters/mapping/pending"},c)},Wg=i=>(o,a={})=>{let c={transporter:i.transporter,appId:i.appId,indexName:o};return Nn.addMethods(c,a.methods)},lH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/keys"},o),sH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/clusters"},o),aH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/indexes"},o),fH=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:"1/clusters/mapping"},o),cH=i=>(o,a,c)=>{let _=(t,M)=>Wg(i)(o,{methods:{waitTask:x0}}).waitTask(t.taskID,M);return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/operation",o),data:{operation:"move",destination:a}},c),_)},dH=i=>(o,a)=>{let c=(_,t)=>Promise.all(Object.keys(_.taskID).map(M=>Wg(i)(M,{methods:{waitTask:x0}}).waitTask(_.taskID[M],t)));return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:o}},a),c)},pH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:o}},a),hH=i=>(o,a)=>{let c=o.map(_=>Zr(qt({},_),{params:ia.serializeQueryParameters(_.params||{})}));return i.transporter.read({method:Ur.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:c},cacheable:!0},a)},vH=i=>(o,a)=>Promise.all(o.map(c=>{let N=c.params,{facetName:_,facetQuery:t}=N,M=wl(N,["facetName","facetQuery"]);return Wg(i)(c.indexName,{methods:{searchForFacetValues:$5}}).searchForFacetValues(_,t,qt(qt({},a),M))})),mH=i=>(o,a)=>{let c=ia.createMappedRequestOptions(a);return c.queryParameters["X-Algolia-User-ID"]=o,i.transporter.write({method:Ur.MethodEnum.Delete,path:"1/clusters/mapping"},c)},yH=i=>(o,a)=>{let c=(_,t)=>Nn.createRetryablePromise(M=>qg(i)(o,t).catch(N=>{if(N.status!==404)throw N;return M()}));return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/keys/%s/restore",o)},a),c)},gH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:o}},a),_H=i=>(o,a)=>{let c=Object.assign({},a),B=a||{},{queryParameters:_}=B,t=wl(B,["queryParameters"]),M=_?{queryParameters:_}:{},N=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],O=H=>Object.keys(c).filter(q=>N.indexOf(q)!==-1).every(q=>H[q]===c[q]),T=(H,q)=>Nn.createRetryablePromise(ne=>qg(i)(o,q).then(m=>O(m)?Promise.resolve():ne()));return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Put,path:Nn.encode("1/keys/%s",o),data:M},t),T)},e9=i=>(o,a)=>{let c=(_,t)=>x0(i)(_.taskID,t);return Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/batch",i.indexName),data:{requests:o}},a),c)},EH=i=>o=>P4(Zr(qt({},o),{shouldStop:a=>a.cursor===void 0,request:a=>i.transporter.read({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/browse",i.indexName),data:a},o)})),DH=i=>o=>{let a=qt({hitsPerPage:1e3},o);return P4(Zr(qt({},a),{shouldStop:c=>c.hits.lengthZr(qt({},_),{hits:_.hits.map(t=>(delete t._highlightResult,t))}))}}))},wH=i=>o=>{let a=qt({hitsPerPage:1e3},o);return P4(Zr(qt({},a),{shouldStop:c=>c.hits.lengthZr(qt({},_),{hits:_.hits.map(t=>(delete t._highlightResult,t))}))}}))},B4=i=>(o,a,c)=>{let O=c||{},{batchSize:_}=O,t=wl(O,["batchSize"]),M={taskIDs:[],objectIDs:[]},N=(T=0)=>{let B=[],H;for(H=T;H({action:a,body:q})),t).then(q=>(M.objectIDs=M.objectIDs.concat(q.objectIDs),M.taskIDs.push(q.taskID),H++,N(H)))};return Nn.createWaitablePromise(N(),(T,B)=>Promise.all(T.taskIDs.map(H=>x0(i)(H,B))))},SH=i=>o=>Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/clear",i.indexName)},o),(a,c)=>x0(i)(a.taskID,c)),TH=i=>o=>{let t=o||{},{forwardToReplicas:a}=t,c=wl(t,["forwardToReplicas"]),_=ia.createMappedRequestOptions(c);return a&&(_.queryParameters.forwardToReplicas=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/rules/clear",i.indexName)},_),(M,N)=>x0(i)(M.taskID,N))},CH=i=>o=>{let t=o||{},{forwardToReplicas:a}=t,c=wl(t,["forwardToReplicas"]),_=ia.createMappedRequestOptions(c);return a&&(_.queryParameters.forwardToReplicas=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/synonyms/clear",i.indexName)},_),(M,N)=>x0(i)(M.taskID,N))},xH=i=>(o,a)=>Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/deleteByQuery",i.indexName),data:o},a),(c,_)=>x0(i)(c.taskID,_)),RH=i=>o=>Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Delete,path:Nn.encode("1/indexes/%s",i.indexName)},o),(a,c)=>x0(i)(a.taskID,c)),AH=i=>(o,a)=>Nn.createWaitablePromise(r9(i)([o],a).then(c=>({taskID:c.taskIDs[0]})),(c,_)=>x0(i)(c.taskID,_)),r9=i=>(o,a)=>{let c=o.map(_=>({objectID:_}));return B4(i)(c,fh.DeleteObject,a)},OH=i=>(o,a)=>{let M=a||{},{forwardToReplicas:c}=M,_=wl(M,["forwardToReplicas"]),t=ia.createMappedRequestOptions(_);return c&&(t.queryParameters.forwardToReplicas=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Delete,path:Nn.encode("1/indexes/%s/rules/%s",i.indexName,o)},t),(N,O)=>x0(i)(N.taskID,O))},MH=i=>(o,a)=>{let M=a||{},{forwardToReplicas:c}=M,_=wl(M,["forwardToReplicas"]),t=ia.createMappedRequestOptions(_);return c&&(t.queryParameters.forwardToReplicas=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Delete,path:Nn.encode("1/indexes/%s/synonyms/%s",i.indexName,o)},t),(N,O)=>x0(i)(N.taskID,O))},kH=i=>o=>i9(i)(o).then(()=>!0).catch(a=>{if(a.status!==404)throw a;return!1}),LH=i=>(o,a)=>{let O=a||{},{query:c,paginate:_}=O,t=wl(O,["query","paginate"]),M=0,N=()=>u9(i)(c||"",Zr(qt({},t),{page:M})).then(T=>{for(let[B,H]of Object.entries(T.hits))if(o(H))return{object:H,position:parseInt(B,10),page:M};if(M++,_===!1||M>=T.nbPages)throw J5();return N()});return N()},NH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/indexes/%s/%s",i.indexName,o)},a),FH=()=>(i,o)=>{for(let[a,c]of Object.entries(i.hits))if(c.objectID===o)return parseInt(a,10);return-1},PH=i=>(o,a)=>{let M=a||{},{attributesToRetrieve:c}=M,_=wl(M,["attributesToRetrieve"]),t=o.map(N=>qt({indexName:i.indexName,objectID:N},c?{attributesToRetrieve:c}:{}));return i.transporter.read({method:Ur.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},_)},IH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/indexes/%s/rules/%s",i.indexName,o)},a),i9=i=>o=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/indexes/%s/settings",i.indexName),data:{getVersion:2}},o),bH=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/indexes/%s/synonyms/%s",i.indexName,o)},a),o9=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Get,path:Nn.encode("1/indexes/%s/task/%s",i.indexName,o.toString())},a),BH=i=>(o,a)=>Nn.createWaitablePromise(l9(i)([o],a).then(c=>({objectID:c.objectIDs[0],taskID:c.taskIDs[0]})),(c,_)=>x0(i)(c.taskID,_)),l9=i=>(o,a)=>{let M=a||{},{createIfNotExists:c}=M,_=wl(M,["createIfNotExists"]),t=c?fh.PartialUpdateObject:fh.PartialUpdateObjectNoCreate;return B4(i)(o,t,_)},UH=i=>(o,a)=>{let m=a||{},{safe:c,autoGenerateObjectIDIfNotExist:_,batchSize:t}=m,M=wl(m,["safe","autoGenerateObjectIDIfNotExist","batchSize"]),N=(pe,ge,ve,ue)=>Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/operation",pe),data:{operation:ve,destination:ge}},ue),(_e,ce)=>x0(i)(_e.taskID,ce)),O=Math.random().toString(36).substring(7),T=`${i.indexName}_tmp_${O}`,B=c3({appId:i.appId,transporter:i.transporter,indexName:T}),H=[],q=N(i.indexName,T,"copy",Zr(qt({},M),{scope:["settings","synonyms","rules"]}));H.push(q);let ne=(c?q.wait(M):q).then(()=>{let pe=B(o,Zr(qt({},M),{autoGenerateObjectIDIfNotExist:_,batchSize:t}));return H.push(pe),c?pe.wait(M):pe}).then(()=>{let pe=N(T,i.indexName,"move",M);return H.push(pe),c?pe.wait(M):pe}).then(()=>Promise.all(H)).then(([pe,ge,ve])=>({objectIDs:ge.objectIDs,taskIDs:[pe.taskID,...ge.taskIDs,ve.taskID]}));return Nn.createWaitablePromise(ne,(pe,ge)=>Promise.all(H.map(ve=>ve.wait(ge))))},jH=i=>(o,a)=>d3(i)(o,Zr(qt({},a),{clearExistingRules:!0})),zH=i=>(o,a)=>p3(i)(o,Zr(qt({},a),{replaceExistingSynonyms:!0})),HH=i=>(o,a)=>Nn.createWaitablePromise(c3(i)([o],a).then(c=>({objectID:c.objectIDs[0],taskID:c.taskIDs[0]})),(c,_)=>x0(i)(c.taskID,_)),c3=i=>(o,a)=>{let M=a||{},{autoGenerateObjectIDIfNotExist:c}=M,_=wl(M,["autoGenerateObjectIDIfNotExist"]),t=c?fh.AddObject:fh.UpdateObject;if(t===fh.UpdateObject){for(let N of o)if(N.objectID===void 0)return Nn.createWaitablePromise(Promise.reject(Q5()))}return B4(i)(o,t,_)},qH=i=>(o,a)=>d3(i)([o],a),d3=i=>(o,a)=>{let N=a||{},{forwardToReplicas:c,clearExistingRules:_}=N,t=wl(N,["forwardToReplicas","clearExistingRules"]),M=ia.createMappedRequestOptions(t);return c&&(M.queryParameters.forwardToReplicas=1),_&&(M.queryParameters.clearExistingRules=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/rules/batch",i.indexName),data:o},M),(O,T)=>x0(i)(O.taskID,T))},WH=i=>(o,a)=>p3(i)([o],a),p3=i=>(o,a)=>{let N=a||{},{forwardToReplicas:c,replaceExistingSynonyms:_}=N,t=wl(N,["forwardToReplicas","replaceExistingSynonyms"]),M=ia.createMappedRequestOptions(t);return c&&(M.queryParameters.forwardToReplicas=1),_&&(M.queryParameters.replaceExistingSynonyms=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/synonyms/batch",i.indexName),data:o},M),(O,T)=>x0(i)(O.taskID,T))},u9=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/query",i.indexName),data:{query:o},cacheable:!0},a),$5=i=>(o,a,c)=>i.transporter.read({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/facets/%s/query",i.indexName,o),data:{facetQuery:a},cacheable:!0},c),t9=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/rules/search",i.indexName),data:{query:o}},a),n9=i=>(o,a)=>i.transporter.read({method:Ur.MethodEnum.Post,path:Nn.encode("1/indexes/%s/synonyms/search",i.indexName),data:{query:o}},a),VH=i=>(o,a)=>{let M=a||{},{forwardToReplicas:c}=M,_=wl(M,["forwardToReplicas"]),t=ia.createMappedRequestOptions(_);return c&&(t.queryParameters.forwardToReplicas=1),Nn.createWaitablePromise(i.transporter.write({method:Ur.MethodEnum.Put,path:Nn.encode("1/indexes/%s/settings",i.indexName),data:o},t),(N,O)=>x0(i)(N.taskID,O))},x0=i=>(o,a)=>Nn.createRetryablePromise(c=>o9(i)(o,a).then(_=>_.status!=="published"?c():void 0)),GH={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},fh={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject"},b4={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},YH={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},KH={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};tn.ApiKeyACLEnum=GH;tn.BatchActionEnum=fh;tn.ScopeEnum=b4;tn.StrategyEnum=YH;tn.SynonymEnum=KH;tn.addApiKey=Kz;tn.assignUserID=Xz;tn.assignUserIDs=Qz;tn.batch=e9;tn.browseObjects=EH;tn.browseRules=DH;tn.browseSynonyms=wH;tn.chunkedBatch=B4;tn.clearObjects=SH;tn.clearRules=TH;tn.clearSynonyms=CH;tn.copyIndex=I4;tn.copyRules=Jz;tn.copySettings=Zz;tn.copySynonyms=$z;tn.createBrowsablePromise=P4;tn.createMissingObjectIDError=Q5;tn.createObjectNotFoundError=J5;tn.createSearchClient=Yz;tn.createValidUntilNotFoundError=Z5;tn.deleteApiKey=eH;tn.deleteBy=xH;tn.deleteIndex=RH;tn.deleteObject=AH;tn.deleteObjects=r9;tn.deleteRule=OH;tn.deleteSynonym=MH;tn.exists=kH;tn.findObject=LH;tn.generateSecuredApiKey=tH;tn.getApiKey=qg;tn.getLogs=nH;tn.getObject=NH;tn.getObjectPosition=FH;tn.getObjects=PH;tn.getRule=IH;tn.getSecuredApiKeyRemainingValidity=rH;tn.getSettings=i9;tn.getSynonym=bH;tn.getTask=o9;tn.getTopUserIDs=iH;tn.getUserID=uH;tn.hasPendingMappings=oH;tn.initIndex=Wg;tn.listApiKeys=lH;tn.listClusters=sH;tn.listIndices=aH;tn.listUserIDs=fH;tn.moveIndex=cH;tn.multipleBatch=dH;tn.multipleGetObjects=pH;tn.multipleQueries=hH;tn.multipleSearchForFacetValues=vH;tn.partialUpdateObject=BH;tn.partialUpdateObjects=l9;tn.removeUserID=mH;tn.replaceAllObjects=UH;tn.replaceAllRules=jH;tn.replaceAllSynonyms=zH;tn.restoreApiKey=yH;tn.saveObject=HH;tn.saveObjects=c3;tn.saveRule=qH;tn.saveRules=d3;tn.saveSynonym=WH;tn.saveSynonyms=p3;tn.search=u9;tn.searchForFacetValues=$5;tn.searchRules=t9;tn.searchSynonyms=n9;tn.searchUserIDs=gH;tn.setSettings=VH;tn.updateApiKey=_H;tn.waitTask=x0});var f9=Ke((eY,a9)=>{a9.exports=s9()});var c9=Ke(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});function XH(){return{debug(i,o){return Promise.resolve()},info(i,o){return Promise.resolve()},error(i,o){return Promise.resolve()}}}var QH={Debug:1,Info:2,Error:3};U4.LogLevelEnum=QH;U4.createNullLogger=XH});var p9=Ke((nY,d9)=>{d9.exports=c9()});var m9=Ke(h3=>{"use strict";Object.defineProperty(h3,"__esModule",{value:!0});var h9=require("http"),v9=require("https"),JH=require("url");function ZH(){let i={keepAlive:!0},o=new h9.Agent(i),a=new v9.Agent(i);return{send(c){return new Promise(_=>{let t=JH.parse(c.url),M=t.query===null?t.pathname:`${t.pathname}?${t.query}`,N=qt({agent:t.protocol==="https:"?a:o,hostname:t.hostname,path:M,method:c.method,headers:c.headers},t.port!==void 0?{port:t.port||""}:{}),O=(t.protocol==="https:"?v9:h9).request(N,q=>{let ne="";q.on("data",m=>ne+=m),q.on("end",()=>{clearTimeout(B),clearTimeout(H),_({status:q.statusCode||0,content:ne,isTimedOut:!1})})}),T=(q,ne)=>setTimeout(()=>{O.abort(),_({status:0,content:ne,isTimedOut:!0})},q*1e3),B=T(c.connectTimeout,"Connection timeout"),H;O.on("error",q=>{clearTimeout(B),clearTimeout(H),_({status:0,content:q.message,isTimedOut:!1})}),O.once("response",()=>{clearTimeout(B),H=T(c.responseTimeout,"Socket timeout")}),c.data!==void 0&&O.write(c.data),O.end()})},destroy(){return o.destroy(),a.destroy(),Promise.resolve()}}}h3.createNodeHttpRequester=ZH});var g9=Ke((iY,y9)=>{y9.exports=m9()});var w9=Ke((uY,_9)=>{"use strict";var E9=g5(),$H=D5(),im=V5(),v3=Bg(),m3=X5(),wn=f9(),eq=p9(),tq=g9(),nq=jg();function D9(i,o,a){let c={appId:i,apiKey:o,timeouts:{connect:2,read:5,write:30},requester:tq.createNodeHttpRequester(),logger:eq.createNullLogger(),responsesCache:E9.createNullCache(),requestsCache:E9.createNullCache(),hostsCache:$H.createInMemoryCache(),userAgent:nq.createUserAgent(v3.version).add({segment:"Node.js",version:process.versions.node})};return wn.createSearchClient(Zr(qt(qt({},c),a),{methods:{search:wn.multipleQueries,searchForFacetValues:wn.multipleSearchForFacetValues,multipleBatch:wn.multipleBatch,multipleGetObjects:wn.multipleGetObjects,multipleQueries:wn.multipleQueries,copyIndex:wn.copyIndex,copySettings:wn.copySettings,copyRules:wn.copyRules,copySynonyms:wn.copySynonyms,moveIndex:wn.moveIndex,listIndices:wn.listIndices,getLogs:wn.getLogs,listClusters:wn.listClusters,multipleSearchForFacetValues:wn.multipleSearchForFacetValues,getApiKey:wn.getApiKey,addApiKey:wn.addApiKey,listApiKeys:wn.listApiKeys,updateApiKey:wn.updateApiKey,deleteApiKey:wn.deleteApiKey,restoreApiKey:wn.restoreApiKey,assignUserID:wn.assignUserID,assignUserIDs:wn.assignUserIDs,getUserID:wn.getUserID,searchUserIDs:wn.searchUserIDs,listUserIDs:wn.listUserIDs,getTopUserIDs:wn.getTopUserIDs,removeUserID:wn.removeUserID,hasPendingMappings:wn.hasPendingMappings,generateSecuredApiKey:wn.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:wn.getSecuredApiKeyRemainingValidity,destroy:v3.destroy,initIndex:_=>t=>wn.initIndex(_)(t,{methods:{batch:wn.batch,delete:wn.deleteIndex,getObject:wn.getObject,getObjects:wn.getObjects,saveObject:wn.saveObject,saveObjects:wn.saveObjects,search:wn.search,searchForFacetValues:wn.searchForFacetValues,waitTask:wn.waitTask,setSettings:wn.setSettings,getSettings:wn.getSettings,partialUpdateObject:wn.partialUpdateObject,partialUpdateObjects:wn.partialUpdateObjects,deleteObject:wn.deleteObject,deleteObjects:wn.deleteObjects,deleteBy:wn.deleteBy,clearObjects:wn.clearObjects,browseObjects:wn.browseObjects,getObjectPosition:wn.getObjectPosition,findObject:wn.findObject,exists:wn.exists,saveSynonym:wn.saveSynonym,saveSynonyms:wn.saveSynonyms,getSynonym:wn.getSynonym,searchSynonyms:wn.searchSynonyms,browseSynonyms:wn.browseSynonyms,deleteSynonym:wn.deleteSynonym,clearSynonyms:wn.clearSynonyms,replaceAllObjects:wn.replaceAllObjects,replaceAllSynonyms:wn.replaceAllSynonyms,searchRules:wn.searchRules,getRule:wn.getRule,deleteRule:wn.deleteRule,saveRule:wn.saveRule,saveRules:wn.saveRules,replaceAllRules:wn.replaceAllRules,browseRules:wn.browseRules,clearRules:wn.clearRules}}),initAnalytics:()=>_=>im.createAnalyticsClient(Zr(qt(qt({},c),_),{methods:{addABTest:im.addABTest,getABTest:im.getABTest,getABTests:im.getABTests,stopABTest:im.stopABTest,deleteABTest:im.deleteABTest}})),initRecommendation:()=>_=>m3.createRecommendationClient(Zr(qt(qt({},c),_),{methods:{getPersonalizationStrategy:m3.getPersonalizationStrategy,setPersonalizationStrategy:m3.setPersonalizationStrategy}}))}}))}D9.version=v3.version;_9.exports=D9});var T9=Ke((oY,y3)=>{var S9=w9();y3.exports=S9;y3.exports.default=S9});var nd=Ke(E3=>{"use strict";Object.defineProperty(E3,"__esModule",{value:!0});E3.default=N9;function N9(){}N9.prototype={diff:function(o,a){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},_=c.callback;typeof c=="function"&&(_=c,c={}),this.options=c;var t=this;function M(pe){return _?(setTimeout(function(){_(void 0,pe)},0),!0):pe}o=this.castInput(o),a=this.castInput(a),o=this.removeEmpty(this.tokenize(o)),a=this.removeEmpty(this.tokenize(a));var N=a.length,O=o.length,T=1,B=N+O,H=[{newPos:-1,components:[]}],q=this.extractCommon(H[0],a,o,0);if(H[0].newPos+1>=N&&q+1>=O)return M([{value:this.join(a),count:a.length}]);function ne(){for(var pe=-1*T;pe<=T;pe+=2){var ge=void 0,ve=H[pe-1],ue=H[pe+1],_e=(ue?ue.newPos:0)-pe;ve&&(H[pe-1]=void 0);var ce=ve&&ve.newPos+1=N&&_e+1>=O)return M(iq(t,ge.components,a,o,t.useLongestToken));H[pe]=ge}T++}if(_)(function pe(){setTimeout(function(){if(T>B)return _();ne()||pe()},0)})();else for(;T<=B;){var m=ne();if(m)return m}},pushComponent:function(o,a,c){var _=o[o.length-1];_&&_.added===a&&_.removed===c?o[o.length-1]={count:_.count+1,added:a,removed:c}:o.push({count:1,added:a,removed:c})},extractCommon:function(o,a,c,_){for(var t=a.length,M=c.length,N=o.newPos,O=N-_,T=0;N+1ne.length?pe:ne}),T.value=i.join(B)}else T.value=i.join(a.slice(N,N+T.count));N+=T.count,T.added||(O+=T.count)}}var q=o[M-1];return M>1&&typeof q.value=="string"&&(q.added||q.removed)&&i.equals("",q.value)&&(o[M-2].value+=q.value,o.pop()),o}function uq(i){return{newPos:i.newPos,components:i.components.slice(0)}}});var P9=Ke(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});Kg.diffChars=oq;Kg.characterDiff=void 0;var sq=lq(nd());function lq(i){return i&&i.__esModule?i:{default:i}}var F9=new sq.default;Kg.characterDiff=F9;function oq(i,o,a){return F9.diff(i,o,a)}});var w3=Ke(D3=>{"use strict";Object.defineProperty(D3,"__esModule",{value:!0});D3.generateOptions=aq;function aq(i,o){if(typeof i=="function")o.callback=i;else if(i)for(var a in i)i.hasOwnProperty(a)&&(o[a]=i[a]);return o}});var B9=Ke(um=>{"use strict";Object.defineProperty(um,"__esModule",{value:!0});um.diffWords=fq;um.diffWordsWithSpace=cq;um.wordDiff=void 0;var pq=dq(nd()),hq=w3();function dq(i){return i&&i.__esModule?i:{default:i}}var I9=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,b9=/\S/,Xg=new pq.default;um.wordDiff=Xg;Xg.equals=function(i,o){return this.options.ignoreCase&&(i=i.toLowerCase(),o=o.toLowerCase()),i===o||this.options.ignoreWhitespace&&!b9.test(i)&&!b9.test(o)};Xg.tokenize=function(i){for(var o=i.split(/(\s+|[()[\]{}'"]|\b)/),a=0;a{"use strict";Object.defineProperty(om,"__esModule",{value:!0});om.diffLines=vq;om.diffTrimmedLines=mq;om.lineDiff=void 0;var gq=yq(nd()),_q=w3();function yq(i){return i&&i.__esModule?i:{default:i}}var z4=new gq.default;om.lineDiff=z4;z4.tokenize=function(i){var o=[],a=i.split(/(\n|\r\n)/);a[a.length-1]||a.pop();for(var c=0;c{"use strict";Object.defineProperty(Qg,"__esModule",{value:!0});Qg.diffSentences=Eq;Qg.sentenceDiff=void 0;var wq=Dq(nd());function Dq(i){return i&&i.__esModule?i:{default:i}}var S3=new wq.default;Qg.sentenceDiff=S3;S3.tokenize=function(i){return i.split(/(\S.+?[.!?])(?=\s+|$)/)};function Eq(i,o,a){return S3.diff(i,o,a)}});var j9=Ke(Jg=>{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});Jg.diffCss=Sq;Jg.cssDiff=void 0;var Cq=Tq(nd());function Tq(i){return i&&i.__esModule?i:{default:i}}var T3=new Cq.default;Jg.cssDiff=T3;T3.tokenize=function(i){return i.split(/([{}:;,]|\s+)/)};function Sq(i,o,a){return T3.diff(i,o,a)}});var H9=Ke(lm=>{"use strict";Object.defineProperty(lm,"__esModule",{value:!0});lm.diffJson=xq;lm.canonicalize=q4;lm.jsonDiff=void 0;var z9=Rq(nd()),Aq=H4();function Rq(i){return i&&i.__esModule?i:{default:i}}function W4(i){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?W4=function(a){return typeof a}:W4=function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},W4(i)}var Oq=Object.prototype.toString,dh=new z9.default;lm.jsonDiff=dh;dh.useLongestToken=!0;dh.tokenize=Aq.lineDiff.tokenize;dh.castInput=function(i){var o=this.options,a=o.undefinedReplacement,c=o.stringifyReplacer,_=c===void 0?function(t,M){return typeof M=="undefined"?a:M}:c;return typeof i=="string"?i:JSON.stringify(q4(i,null,null,_),_," ")};dh.equals=function(i,o){return z9.default.prototype.equals.call(dh,i.replace(/,([\r\n])/g,"$1"),o.replace(/,([\r\n])/g,"$1"))};function xq(i,o,a){return dh.diff(i,o,a)}function q4(i,o,a,c,_){o=o||[],a=a||[],c&&(i=c(_,i));var t;for(t=0;t{"use strict";Object.defineProperty(Zg,"__esModule",{value:!0});Zg.diffArrays=Mq;Zg.arrayDiff=void 0;var Lq=kq(nd());function kq(i){return i&&i.__esModule?i:{default:i}}var $g=new Lq.default;Zg.arrayDiff=$g;$g.tokenize=function(i){return i.slice()};$g.join=$g.removeEmpty=function(i){return i};function Mq(i,o,a){return $g.diff(i,o,a)}});var V4=Ke(C3=>{"use strict";Object.defineProperty(C3,"__esModule",{value:!0});C3.parsePatch=Nq;function Nq(i){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=i.split(/\r\n|[\n\v\f\r\x85]/),c=i.match(/\r\n|[\n\v\f\r\x85]/g)||[],_=[],t=0;function M(){var T={};for(_.push(T);t{"use strict";Object.defineProperty(x3,"__esModule",{value:!0});x3.default=Fq;function Fq(i,o,a){var c=!0,_=!1,t=!1,M=1;return function N(){if(c&&!t){if(_?M++:c=!1,i+M<=a)return M;t=!0}if(!_)return t||(c=!0),o<=i-M?-M++:(_=!0,N())}}});var Y9=Ke(G4=>{"use strict";Object.defineProperty(G4,"__esModule",{value:!0});G4.applyPatch=V9;G4.applyPatches=Pq;var G9=V4(),bq=Iq(W9());function Iq(i){return i&&i.__esModule?i:{default:i}}function V9(i,o){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof o=="string"&&(o=(0,G9.parsePatch)(o)),Array.isArray(o)){if(o.length>1)throw new Error("applyPatch only works with a single input.");o=o[0]}var c=i.split(/\r\n|[\n\v\f\r\x85]/),_=i.match(/\r\n|[\n\v\f\r\x85]/g)||[],t=o.hunks,M=a.compareLine||function(kt,zt,nt,X){return zt===X},N=0,O=a.fuzzFactor||0,T=0,B=0,H,q;function ne(kt,zt){for(var nt=0;nt0?X[0]:" ",xe=X.length>0?X.substr(1):X;if(fe===" "||fe==="-"){if(!M(zt+1,c[zt],fe,xe)&&(N++,N>O))return!1;zt++}}return!0}for(var m=0;m0?je[0]:" ",pt=je.length>0?je.substr(1):je,Xe=re.linedelimiters[Ie];if(ct===" ")we++;else if(ct==="-")c.splice(we,1),_.splice(we,1);else if(ct==="+")c.splice(we,0,pt),_.splice(we,0,Xe),we++;else if(ct==="\\"){var tt=re.lines[Ie-1]?re.lines[Ie-1][0]:null;tt==="+"?H=!0:tt==="-"&&(q=!0)}}}if(H)for(;!c[c.length-1];)c.pop(),_.pop();else q&&(c.push(""),_.push(` +`));for(var He=0;He{"use strict";Object.defineProperty(e_,"__esModule",{value:!0});e_.structuredPatch=K9;e_.createTwoFilesPatch=X9;e_.createPatch=Bq;var Uq=H4();function R3(i){return Hq(i)||zq(i)||jq()}function jq(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function zq(i){if(Symbol.iterator in Object(i)||Object.prototype.toString.call(i)==="[object Arguments]")return Array.from(i)}function Hq(i){if(Array.isArray(i)){for(var o=0,a=new Array(i.length);o0?O(re.lines.slice(-M.context)):[],B-=q.length,H-=q.length)}(me=q).push.apply(me,R3(ce.map(function(He){return(_e.added?"+":"-")+He}))),_e.added?m+=ce.length:ne+=ce.length}else{if(B)if(ce.length<=M.context*2&&ue=N.length-2&&ce.length<=M.context){var pt=/\n$/.test(a),Xe=/\n$/.test(c),tt=ce.length==0&&q.length>ct.oldLines;!pt&&tt&&q.splice(ct.oldLines,0,"\\ No newline at end of file"),(!pt&&!tt||!Xe)&&q.push("\\ No newline at end of file")}T.push(ct),B=0,H=0,q=[]}ne+=ce.length,m+=ce.length}},ge=0;ge{"use strict";Object.defineProperty(Y4,"__esModule",{value:!0});Y4.arrayEqual=qq;Y4.arrayStartsWith=Q9;function qq(i,o){return i.length!==o.length?!1:Q9(i,o)}function Q9(i,o){if(o.length>i.length)return!1;for(var a=0;a{"use strict";Object.defineProperty(K4,"__esModule",{value:!0});K4.calcLineCount=Z9;K4.merge=Wq;var Vq=A3(),Gq=V4(),O3=J9();function sm(i){return Xq(i)||Kq(i)||Yq()}function Yq(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function Kq(i){if(Symbol.iterator in Object(i)||Object.prototype.toString.call(i)==="[object Arguments]")return Array.from(i)}function Xq(i){if(Array.isArray(i)){for(var o=0,a=new Array(i.length);o{"use strict";Object.defineProperty(L3,"__esModule",{value:!0});L3.convertChangesToDMP=$q;function $q(i){for(var o=[],a,c,_=0;_{"use strict";Object.defineProperty(N3,"__esModule",{value:!0});N3.convertChangesToXML=eW;function eW(i){for(var o=[],a=0;a"):c.removed&&o.push(""),o.push(tW(c.value)),c.added?o.push(""):c.removed&&o.push("")}return o.join("")}function tW(i){var o=i;return o=o.replace(/&/g,"&"),o=o.replace(//g,">"),o=o.replace(/"/g,"""),o}});var vR=Ke(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Object.defineProperty(Yo,"Diff",{enumerable:!0,get:function(){return nW.default}});Object.defineProperty(Yo,"diffChars",{enumerable:!0,get:function(){return rW.diffChars}});Object.defineProperty(Yo,"diffWords",{enumerable:!0,get:function(){return cR.diffWords}});Object.defineProperty(Yo,"diffWordsWithSpace",{enumerable:!0,get:function(){return cR.diffWordsWithSpace}});Object.defineProperty(Yo,"diffLines",{enumerable:!0,get:function(){return dR.diffLines}});Object.defineProperty(Yo,"diffTrimmedLines",{enumerable:!0,get:function(){return dR.diffTrimmedLines}});Object.defineProperty(Yo,"diffSentences",{enumerable:!0,get:function(){return iW.diffSentences}});Object.defineProperty(Yo,"diffCss",{enumerable:!0,get:function(){return uW.diffCss}});Object.defineProperty(Yo,"diffJson",{enumerable:!0,get:function(){return pR.diffJson}});Object.defineProperty(Yo,"canonicalize",{enumerable:!0,get:function(){return pR.canonicalize}});Object.defineProperty(Yo,"diffArrays",{enumerable:!0,get:function(){return oW.diffArrays}});Object.defineProperty(Yo,"applyPatch",{enumerable:!0,get:function(){return hR.applyPatch}});Object.defineProperty(Yo,"applyPatches",{enumerable:!0,get:function(){return hR.applyPatches}});Object.defineProperty(Yo,"parsePatch",{enumerable:!0,get:function(){return lW.parsePatch}});Object.defineProperty(Yo,"merge",{enumerable:!0,get:function(){return sW.merge}});Object.defineProperty(Yo,"structuredPatch",{enumerable:!0,get:function(){return F3.structuredPatch}});Object.defineProperty(Yo,"createTwoFilesPatch",{enumerable:!0,get:function(){return F3.createTwoFilesPatch}});Object.defineProperty(Yo,"createPatch",{enumerable:!0,get:function(){return F3.createPatch}});Object.defineProperty(Yo,"convertChangesToDMP",{enumerable:!0,get:function(){return aW.convertChangesToDMP}});Object.defineProperty(Yo,"convertChangesToXML",{enumerable:!0,get:function(){return fW.convertChangesToXML}});var nW=cW(nd()),rW=P9(),cR=B9(),dR=H4(),iW=U9(),uW=j9(),pR=H9(),oW=q9(),hR=Y9(),lW=V4(),sW=sR(),F3=A3(),aW=aR(),fW=fR();function cW(i){return i&&i.__esModule?i:{default:i}}});var dW={};oI(dW,{default:()=>hW});var x9=ou(require("@yarnpkg/cli")),ch=ou(require("@yarnpkg/core"));var u5=ou(sc()),lh=ou(Mi()),C4=(0,lh.memo)(({active:i})=>{let o=(0,lh.useMemo)(()=>i?"\u25C9":"\u25EF",[i]),a=(0,lh.useMemo)(()=>i?"green":"yellow",[i]);return lh.default.createElement(u5.Text,{color:a},o)});var g2=ou(sc()),ra=ou(Mi());var o5=ou(sc()),x4=ou(Mi());function y2({active:i},o,a){let{stdin:c}=(0,o5.useStdin)(),_=(0,x4.useCallback)((t,M)=>o(t,M),a);(0,x4.useEffect)(()=>{if(!(!i||!c))return c.on("keypress",_),()=>{c.off("keypress",_)}},[i,_,c])}var R4;(function(a){a.BEFORE="before",a.AFTER="after"})(R4||(R4={}));var l5=function({active:i},o,a){y2({active:i},(c,_)=>{_.name==="tab"&&(_.shift?o(R4.BEFORE):o(R4.AFTER))},a)};var A4=function(i,o,{active:a,minus:c,plus:_,set:t,loop:M=!0}){y2({active:a},(N,O)=>{let T=o.indexOf(i);switch(O.name){case c:{let B=T-1;if(M){t(o[(o.length+B)%o.length]);return}if(B<0)return;t(o[B])}break;case _:{let B=T+1;if(M){t(o[B%o.length]);return}if(B>=o.length)return;t(o[B])}break}},[o,i,_,t,M])};var O4=({active:i=!0,children:o=[],radius:a=10,size:c=1,loop:_=!0,onFocusRequest:t,willReachEnd:M})=>{let N=ge=>{if(ge.key===null)throw new Error("Expected all children to have a key");return ge.key},O=ra.default.Children.map(o,ge=>N(ge)),T=O[0],[B,H]=(0,ra.useState)(T),q=O.indexOf(B);(0,ra.useEffect)(()=>{O.includes(B)||H(T)},[o]),(0,ra.useEffect)(()=>{M&&q>=O.length-2&&M()},[q]),l5({active:i&&!!t},ge=>{t==null||t(ge)},[t]),A4(B,O,{active:i,minus:"up",plus:"down",set:H,loop:_});let ne=q-a,m=q+a;m>O.length&&(ne-=m-O.length,m=O.length),ne<0&&(m+=-ne,ne=0),m>=O.length&&(m=O.length-1);let pe=[];for(let ge=ne;ge<=m;++ge){let ve=O[ge],ue=i&&ve===B;pe.push(ra.default.createElement(g2.Box,{key:ve,height:c},ra.default.createElement(g2.Box,{marginLeft:1,marginRight:1},ra.default.createElement(g2.Text,null,ue?ra.default.createElement(g2.Text,{color:"cyan",bold:!0},">"):" ")),ra.default.createElement(g2.Box,null,ra.default.cloneElement(o[ge],{active:ue}))))}return ra.default.createElement(g2.Box,{flexDirection:"column",width:"100%"},pe)};var M4=ou(Mi());var s5=ou(sc()),td=ou(Mi()),a5=ou(require("readline")),$w=td.default.createContext(null),f5=({children:i})=>{let{stdin:o,setRawMode:a}=(0,s5.useStdin)();(0,td.useEffect)(()=>{a&&a(!0),o&&(0,a5.emitKeypressEvents)(o)},[o,a]);let[c,_]=(0,td.useState)(new Map),t=(0,td.useMemo)(()=>({getAll:()=>c,get:M=>c.get(M),set:(M,N)=>_(new Map([...c,[M,N]]))}),[c,_]);return td.default.createElement($w.Provider,{value:t,children:i})};function sh(i,o){let a=(0,M4.useContext)($w);if(a===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof i=="undefined")return a.getAll();let c=(0,M4.useCallback)(t=>{a.set(i,t)},[i,a.set]),_=a.get(i);return typeof _=="undefined"&&(_=o),[_,c]}var k4=ou(sc()),e3=ou(Mi());async function L4(i,o,{stdin:a,stdout:c,stderr:_}={}){let t,M=O=>{let{exit:T}=(0,k4.useApp)();y2({active:!0},(B,H)=>{H.name==="return"&&(t=O,T())},[T,O])},{waitUntilExit:N}=(0,k4.render)(e3.default.createElement(f5,null,e3.default.createElement(i,Zr(qt({},o),{useSubmit:M}))),{stdin:a,stdout:c,stderr:_});return await N(),t}var R9=ou(require("clipanion")),A9=ou(h5()),or=ou(sc()),En=ou(Mi());var C9=ou(T9()),g3={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},rq=(0,C9.default)(g3.appId,g3.apiKey).initIndex(g3.indexName),_3=async(i,o=0)=>await rq.search(i,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:o,hitsPerPage:10});var Vg=["regular","dev","peer"],Gg=class extends x9.BaseCommand{async execute(){let o=await ch.Configuration.find(this.context.cwd,this.context.plugins),a=()=>En.default.createElement(or.Box,{flexDirection:"row"},En.default.createElement(or.Box,{flexDirection:"column",width:48},En.default.createElement(or.Box,null,En.default.createElement(or.Text,null,"Press ",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},""),"/",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},"")," to move between packages.")),En.default.createElement(or.Box,null,En.default.createElement(or.Text,null,"Press ",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},"")," to select a package.")),En.default.createElement(or.Box,null,En.default.createElement(or.Text,null,"Press ",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},"")," again to change the target."))),En.default.createElement(or.Box,{flexDirection:"column"},En.default.createElement(or.Box,{marginLeft:1},En.default.createElement(or.Text,null,"Press ",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),En.default.createElement(or.Box,{marginLeft:1},En.default.createElement(or.Text,null,"Press ",En.default.createElement(or.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),c=()=>En.default.createElement(En.default.Fragment,null,En.default.createElement(or.Box,{width:15},En.default.createElement(or.Text,{bold:!0,underline:!0,color:"gray"},"Owner")),En.default.createElement(or.Box,{width:11},En.default.createElement(or.Text,{bold:!0,underline:!0,color:"gray"},"Version")),En.default.createElement(or.Box,{width:10},En.default.createElement(or.Text,{bold:!0,underline:!0,color:"gray"},"Downloads"))),_=()=>En.default.createElement(or.Box,{width:17},En.default.createElement(or.Text,{bold:!0,underline:!0,color:"gray"},"Target")),t=({hit:ne,active:m})=>{let[pe,ge]=sh(ne.name,null);y2({active:m},(_e,ce)=>{if(ce.name!=="space")return;if(!pe){ge(Vg[0]);return}let me=Vg.indexOf(pe)+1;me===Vg.length?ge(null):ge(Vg[me])},[pe,ge]);let ve=ch.structUtils.parseIdent(ne.name),ue=ch.structUtils.prettyIdent(o,ve);return En.default.createElement(or.Box,null,En.default.createElement(or.Box,{width:45},En.default.createElement(or.Text,{bold:!0,wrap:"wrap"},ue)),En.default.createElement(or.Box,{width:14,marginLeft:1},En.default.createElement(or.Text,{bold:!0,wrap:"truncate"},ne.owner.name)),En.default.createElement(or.Box,{width:10,marginLeft:1},En.default.createElement(or.Text,{italic:!0,wrap:"truncate"},ne.version)),En.default.createElement(or.Box,{width:16,marginLeft:1},En.default.createElement(or.Text,null,ne.humanDownloadsLast30Days)))},M=({name:ne,active:m})=>{let[pe]=sh(ne,null),ge=ch.structUtils.parseIdent(ne);return En.default.createElement(or.Box,null,En.default.createElement(or.Box,{width:47},En.default.createElement(or.Text,{bold:!0}," - ",ch.structUtils.prettyIdent(o,ge))),Vg.map(ve=>En.default.createElement(or.Box,{key:ve,width:14,marginLeft:1},En.default.createElement(or.Text,null," ",En.default.createElement(C4,{active:pe===ve})," ",En.default.createElement(or.Text,{bold:!0},ve)))))},N=()=>En.default.createElement(or.Box,{marginTop:1},En.default.createElement(or.Text,null,"Powered by Algolia.")),T=await L4(({useSubmit:ne})=>{let m=sh();ne(m);let pe=Array.from(m.keys()).filter(je=>m.get(je)!==null),[ge,ve]=(0,En.useState)(""),[ue,_e]=(0,En.useState)(0),[ce,me]=(0,En.useState)([]),re=je=>{je.match(/\t| /)||ve(je)},we=async()=>{_e(0);let je=await _3(ge);je.query===ge&&me(je.hits)},Ie=async()=>{let je=await _3(ge,ue+1);je.query===ge&&je.page-1===ue&&(_e(je.page),me([...ce,...je.hits]))};return(0,En.useEffect)(()=>{ge?we():me([])},[ge]),En.default.createElement(or.Box,{flexDirection:"column"},En.default.createElement(a,null),En.default.createElement(or.Box,{flexDirection:"row",marginTop:1},En.default.createElement(or.Text,{bold:!0},"Search: "),En.default.createElement(or.Box,{width:41},En.default.createElement(A9.default,{value:ge,onChange:re,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),En.default.createElement(c,null)),ce.length?En.default.createElement(O4,{radius:2,loop:!1,children:ce.map(je=>En.default.createElement(t,{key:je.name,hit:je,active:!1})),willReachEnd:Ie}):En.default.createElement(or.Text,{color:"gray"},"Start typing..."),En.default.createElement(or.Box,{flexDirection:"row",marginTop:1},En.default.createElement(or.Box,{width:49},En.default.createElement(or.Text,{bold:!0},"Selected:")),En.default.createElement(_,null)),pe.length?pe.map(je=>En.default.createElement(M,{key:je,name:je,active:!1})):En.default.createElement(or.Text,{color:"gray"},"No selected packages..."),En.default.createElement(N,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof T=="undefined")return 1;let B=Array.from(T.keys()).filter(ne=>T.get(ne)==="regular"),H=Array.from(T.keys()).filter(ne=>T.get(ne)==="dev"),q=Array.from(T.keys()).filter(ne=>T.get(ne)==="peer");return B.length&&await this.cli.run(["add",...B]),H.length&&await this.cli.run(["add","--dev",...H]),q&&await this.cli.run(["add","--peer",...q]),0}};Gg.paths=[["search"]],Gg.usage=R9.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]});var O9=Gg;var Q4=ou(require("@yarnpkg/cli")),R0=ou(require("@yarnpkg/core"));var Yg=ou(sc()),E2=ou(Mi());var M9=ou(sc()),k9=ou(Mi()),j4=({length:i,active:o})=>{if(i===0)return null;let a=i>1?` ${"-".repeat(i-1)}`:" ";return k9.default.createElement(M9.Text,{dimColor:!o},a)};var L9=function({active:i,skewer:o,options:a,value:c,onChange:_,sizes:t=[]}){let M=a.filter(({label:O})=>!!O).map(({value:O})=>O),N=a.findIndex(O=>O.value===c&&O.label!="");return A4(c,M,{active:i,minus:"left",plus:"right",set:_}),E2.default.createElement(E2.default.Fragment,null,a.map(({label:O},T)=>{let B=T===N,H=t[T]-1||0,q=O.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),ne=Math.max(0,H-q.length-2);return O?E2.default.createElement(Yg.Box,{key:O,width:H,marginLeft:1},E2.default.createElement(Yg.Text,{wrap:"truncate"},E2.default.createElement(C4,{active:B})," ",O),o?E2.default.createElement(j4,{active:i,length:ne}):null):E2.default.createElement(Yg.Box,{key:`spacer-${T}`,width:H,marginLeft:1})}))};var mR=ou(require("@yarnpkg/plugin-essentials")),J4=ou(require("clipanion")),yR=ou(vR()),bi=ou(sc()),Tr=ou(Mi()),gR=ou(require("semver")),_R=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,ER=(i,o)=>i.length>0?[i.slice(0,o)].concat(ER(i.slice(o),o)):[],t_=class extends Q4.BaseCommand{async execute(){if(!this.context.stdout.isTTY)throw new J4.UsageError("This command can only be run in a TTY environment");let o=await R0.Configuration.find(this.context.cwd,this.context.plugins),{project:a,workspace:c}=await R0.Project.find(o,this.context.cwd),_=await R0.Cache.find(o);if(!c)throw new Q4.WorkspaceRequiredError(a.cwd,this.context.cwd);await a.restoreInstallState({restoreResolutions:!1});let t=this.context.stdout.rows-7,M=(ue,_e)=>{let ce=(0,yR.diffWords)(ue,_e),me="";for(let re of ce)re.added?me+=R0.formatUtils.pretty(o,re.value,"green"):re.removed||(me+=re.value);return me},N=(ue,_e)=>{if(ue===_e)return _e;let ce=R0.structUtils.parseRange(ue),me=R0.structUtils.parseRange(_e),re=ce.selector.match(_R),we=me.selector.match(_R);if(!re||!we)return M(ue,_e);let Ie=["gray","red","yellow","green","magenta"],je=null,ct="";for(let pt=1;pt{let me=await mR.suggestUtils.fetchDescriptorFrom(ue,ce,{project:a,cache:_,preserveModifier:_e,workspace:c});return me!==null?me.range:ue.range},T=async ue=>{let _e=gR.default.valid(ue.range)?`^${ue.range}`:ue.range,[ce,me]=await Promise.all([O(ue,ue.range,_e).catch(()=>null),O(ue,ue.range,"latest").catch(()=>null)]),re=[{value:null,label:ue.range}];return ce&&ce!==ue.range?re.push({value:ce,label:N(ue.range,ce)}):re.push({value:null,label:""}),me&&me!==ce&&me!==ue.range?re.push({value:me,label:N(ue.range,me)}):re.push({value:null,label:""}),re},B=()=>Tr.default.createElement(bi.Box,{flexDirection:"row"},Tr.default.createElement(bi.Box,{flexDirection:"column",width:49},Tr.default.createElement(bi.Box,{marginLeft:1},Tr.default.createElement(bi.Text,null,"Press ",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},""),"/",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},"")," to select packages.")),Tr.default.createElement(bi.Box,{marginLeft:1},Tr.default.createElement(bi.Text,null,"Press ",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},""),"/",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},"")," to select versions."))),Tr.default.createElement(bi.Box,{flexDirection:"column"},Tr.default.createElement(bi.Box,{marginLeft:1},Tr.default.createElement(bi.Text,null,"Press ",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},"")," to install.")),Tr.default.createElement(bi.Box,{marginLeft:1},Tr.default.createElement(bi.Text,null,"Press ",Tr.default.createElement(bi.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),H=()=>Tr.default.createElement(bi.Box,{flexDirection:"row",paddingTop:1,paddingBottom:1},Tr.default.createElement(bi.Box,{width:50},Tr.default.createElement(bi.Text,{bold:!0},Tr.default.createElement(bi.Text,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),Tr.default.createElement(bi.Box,{width:17},Tr.default.createElement(bi.Text,{bold:!0,underline:!0,color:"gray"},"Current")),Tr.default.createElement(bi.Box,{width:17},Tr.default.createElement(bi.Text,{bold:!0,underline:!0,color:"gray"},"Range")),Tr.default.createElement(bi.Box,{width:17},Tr.default.createElement(bi.Text,{bold:!0,underline:!0,color:"gray"},"Latest"))),q=({active:ue,descriptor:_e,suggestions:ce})=>{let[me,re]=sh(_e.descriptorHash,null),we=R0.structUtils.stringifyIdent(_e),Ie=Math.max(0,45-we.length);return Tr.default.createElement(Tr.default.Fragment,null,Tr.default.createElement(bi.Box,null,Tr.default.createElement(bi.Box,{width:45},Tr.default.createElement(bi.Text,{bold:!0},R0.structUtils.prettyIdent(o,_e)),Tr.default.createElement(j4,{active:ue,length:Ie})),Tr.default.createElement(L9,{active:ue,options:ce,value:me,skewer:!0,onChange:re,sizes:[17,17,17]})))},ne=({dependencies:ue})=>{let[_e,ce]=(0,Tr.useState)(ue.map(()=>null)),me=(0,Tr.useRef)(!0),re=async we=>{let Ie=await T(we);return Ie.filter(je=>je.label!=="").length<=1?null:{descriptor:we,suggestions:Ie}};return(0,Tr.useEffect)(()=>()=>{me.current=!1},[]),(0,Tr.useEffect)(()=>{let we=Math.trunc(t*1.75),Ie=ue.slice(0,we),je=ue.slice(we),ct=ER(je,t),pt=Ie.map(re).reduce(async(Xe,tt)=>{await Xe;let He=await tt;He!==null&&(!me.current||ce(kt=>{let zt=kt.findIndex(X=>X===null),nt=[...kt];return nt[zt]=He,nt}))},Promise.resolve());ct.reduce((Xe,tt)=>Promise.all(tt.map(He=>Promise.resolve().then(()=>re(He)))).then(async He=>{He=He.filter(kt=>kt!==null),await Xe,me.current&&ce(kt=>{let zt=kt.findIndex(nt=>nt===null);return kt.slice(0,zt).concat(He).concat(kt.slice(zt+He.length))})}),pt).then(()=>{me.current&&ce(Xe=>Xe.filter(tt=>tt!==null))})},[]),_e.length?Tr.default.createElement(O4,{radius:t>>1,children:_e.map((we,Ie)=>we!==null?Tr.default.createElement(q,{key:Ie,active:!1,descriptor:we.descriptor,suggestions:we.suggestions}):Tr.default.createElement(bi.Text,{key:Ie},"Loading..."))}):Tr.default.createElement(bi.Text,null,"No upgrades found")},pe=await L4(({useSubmit:ue})=>{ue(sh());let _e=new Map;for(let me of a.workspaces)for(let re of["dependencies","devDependencies"])for(let we of me.manifest[re].values())a.tryWorkspaceByDescriptor(we)===null&&_e.set(we.descriptorHash,we);let ce=R0.miscUtils.sortMap(_e.values(),me=>R0.structUtils.stringifyDescriptor(me));return Tr.default.createElement(bi.Box,{flexDirection:"column"},Tr.default.createElement(B,null),Tr.default.createElement(H,null),Tr.default.createElement(ne,{dependencies:ce}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof pe=="undefined")return 1;let ge=!1;for(let ue of a.workspaces)for(let _e of["dependencies","devDependencies"]){let ce=ue.manifest[_e];for(let me of ce.values()){let re=pe.get(me.descriptorHash);typeof re!="undefined"&&re!==null&&(ce.set(me.identHash,R0.structUtils.makeDescriptor(me,re)),ge=!0)}}return ge?(await R0.StreamReport.start({configuration:o,stdout:this.context.stdout,includeLogs:!this.context.quiet},async ue=>{await a.install({cache:_,report:ue})})).exitCode():0}};t_.paths=[["upgrade-interactive"]],t_.usage=J4.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var DR=t_;var pW={commands:[O9,DR]},hW=pW;return dW;})(); +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-debug-tools.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-is.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +return plugin; +} +}; diff --git a/.yarn/plugins/@yarnpkg/plugin-version.cjs b/.yarn/plugins/@yarnpkg/plugin-version.cjs new file mode 100644 index 000000000..3da304b02 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-version.cjs @@ -0,0 +1,550 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-version", +factory: function (require) { +var plugin=(()=>{var ZB=Object.create,zy=Object.defineProperty,$B=Object.defineProperties,eU=Object.getOwnPropertyDescriptor,tU=Object.getOwnPropertyDescriptors,nU=Object.getOwnPropertyNames,uS=Object.getOwnPropertySymbols,rU=Object.getPrototypeOf,oS=Object.prototype.hasOwnProperty,iU=Object.prototype.propertyIsEnumerable;var lS=(i,o,f)=>o in i?zy(i,o,{enumerable:!0,configurable:!0,writable:!0,value:f}):i[o]=f,E0=(i,o)=>{for(var f in o||(o={}))oS.call(o,f)&&lS(i,f,o[f]);if(uS)for(var f of uS(o))iU.call(o,f)&&lS(i,f,o[f]);return i},Gf=(i,o)=>$B(i,tU(o)),uU=i=>zy(i,"__esModule",{value:!0});var ce=(i,o)=>()=>(o||i((o={exports:{}}).exports,o),o.exports),sS=(i,o)=>{for(var f in o)zy(i,f,{get:o[f],enumerable:!0})},oU=(i,o,f)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of nU(o))!oS.call(i,p)&&p!=="default"&&zy(i,p,{get:()=>o[p],enumerable:!(f=eU(o,p))||f.enumerable});return i},Mi=i=>oU(uU(zy(i!=null?ZB(rU(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var eD=ce((F$,aS)=>{function lU(i,o){for(var f=-1,p=i==null?0:i.length,E=Array(p);++f{function sU(){this.__data__=[],this.size=0}fS.exports=sU});var tD=ce((P$,dS)=>{function aU(i,o){return i===o||i!==i&&o!==o}dS.exports=aU});var qy=ce((I$,pS)=>{var fU=tD();function cU(i,o){for(var f=i.length;f--;)if(fU(i[f][0],o))return f;return-1}pS.exports=cU});var vS=ce((B$,hS)=>{var dU=qy(),pU=Array.prototype,hU=pU.splice;function vU(i){var o=this.__data__,f=dU(o,i);if(f<0)return!1;var p=o.length-1;return f==p?o.pop():hU.call(o,f,1),--this.size,!0}hS.exports=vU});var yS=ce((U$,mS)=>{var mU=qy();function yU(i){var o=this.__data__,f=mU(o,i);return f<0?void 0:o[f][1]}mS.exports=yU});var _S=ce((j$,gS)=>{var gU=qy();function _U(i){return gU(this.__data__,i)>-1}gS.exports=_U});var DS=ce((z$,ES)=>{var EU=qy();function DU(i,o){var f=this.__data__,p=EU(f,i);return p<0?(++this.size,f.push([i,o])):f[p][1]=o,this}ES.exports=DU});var Hy=ce((q$,wS)=>{var wU=cS(),SU=vS(),TU=yS(),CU=_S(),xU=DS();function jv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var AU=Hy();function RU(){this.__data__=new AU,this.size=0}SS.exports=RU});var xS=ce((W$,CS)=>{function OU(i){var o=this.__data__,f=o.delete(i);return this.size=o.size,f}CS.exports=OU});var RS=ce((V$,AS)=>{function kU(i){return this.__data__.get(i)}AS.exports=kU});var kS=ce((G$,OS)=>{function MU(i){return this.__data__.has(i)}OS.exports=MU});var nD=ce((Y$,MS)=>{var NU=typeof global=="object"&&global&&global.Object===Object&&global;MS.exports=NU});var Yf=ce((K$,NS)=>{var LU=nD(),FU=typeof self=="object"&&self&&self.Object===Object&&self,bU=LU||FU||Function("return this")();NS.exports=bU});var zv=ce((X$,LS)=>{var PU=Yf(),IU=PU.Symbol;LS.exports=IU});var BS=ce((Q$,bS)=>{var PS=zv(),IS=Object.prototype,BU=IS.hasOwnProperty,UU=IS.toString,Wy=PS?PS.toStringTag:void 0;function jU(i){var o=BU.call(i,Wy),f=i[Wy];try{i[Wy]=void 0;var p=!0}catch(t){}var E=UU.call(i);return p&&(o?i[Wy]=f:delete i[Wy]),E}bS.exports=jU});var jS=ce((J$,US)=>{var zU=Object.prototype,qU=zU.toString;function HU(i){return qU.call(i)}US.exports=HU});var Qp=ce((Z$,zS)=>{var qS=zv(),WU=BS(),VU=jS(),GU="[object Null]",YU="[object Undefined]",HS=qS?qS.toStringTag:void 0;function KU(i){return i==null?i===void 0?YU:GU:HS&&HS in Object(i)?WU(i):VU(i)}zS.exports=KU});var qv=ce(($$,WS)=>{function XU(i){var o=typeof i;return i!=null&&(o=="object"||o=="function")}WS.exports=XU});var rD=ce((eee,VS)=>{var QU=Qp(),JU=qv(),ZU="[object AsyncFunction]",$U="[object Function]",ej="[object GeneratorFunction]",tj="[object Proxy]";function nj(i){if(!JU(i))return!1;var o=QU(i);return o==$U||o==ej||o==ZU||o==tj}VS.exports=nj});var YS=ce((tee,GS)=>{var rj=Yf(),ij=rj["__core-js_shared__"];GS.exports=ij});var QS=ce((nee,KS)=>{var iD=YS(),XS=function(){var i=/[^.]+$/.exec(iD&&iD.keys&&iD.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function uj(i){return!!XS&&XS in i}KS.exports=uj});var uD=ce((ree,JS)=>{var oj=Function.prototype,lj=oj.toString;function sj(i){if(i!=null){try{return lj.call(i)}catch(o){}try{return i+""}catch(o){}}return""}JS.exports=sj});var $S=ce((iee,ZS)=>{var aj=rD(),fj=QS(),cj=qv(),dj=uD(),pj=/[\\^$.*+?()[\]{}|]/g,hj=/^\[object .+?Constructor\]$/,vj=Function.prototype,mj=Object.prototype,yj=vj.toString,gj=mj.hasOwnProperty,_j=RegExp("^"+yj.call(gj).replace(pj,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ej(i){if(!cj(i)||fj(i))return!1;var o=aj(i)?_j:hj;return o.test(dj(i))}ZS.exports=Ej});var tT=ce((uee,eT)=>{function Dj(i,o){return i==null?void 0:i[o]}eT.exports=Dj});var sd=ce((oee,nT)=>{var wj=$S(),Sj=tT();function Tj(i,o){var f=Sj(i,o);return wj(f)?f:void 0}nT.exports=Tj});var L_=ce((lee,rT)=>{var Cj=sd(),xj=Yf(),Aj=Cj(xj,"Map");rT.exports=Aj});var Vy=ce((see,iT)=>{var Rj=sd(),Oj=Rj(Object,"create");iT.exports=Oj});var lT=ce((aee,uT)=>{var oT=Vy();function kj(){this.__data__=oT?oT(null):{},this.size=0}uT.exports=kj});var aT=ce((fee,sT)=>{function Mj(i){var o=this.has(i)&&delete this.__data__[i];return this.size-=o?1:0,o}sT.exports=Mj});var cT=ce((cee,fT)=>{var Nj=Vy(),Lj="__lodash_hash_undefined__",Fj=Object.prototype,bj=Fj.hasOwnProperty;function Pj(i){var o=this.__data__;if(Nj){var f=o[i];return f===Lj?void 0:f}return bj.call(o,i)?o[i]:void 0}fT.exports=Pj});var pT=ce((dee,dT)=>{var Ij=Vy(),Bj=Object.prototype,Uj=Bj.hasOwnProperty;function jj(i){var o=this.__data__;return Ij?o[i]!==void 0:Uj.call(o,i)}dT.exports=jj});var vT=ce((pee,hT)=>{var zj=Vy(),qj="__lodash_hash_undefined__";function Hj(i,o){var f=this.__data__;return this.size+=this.has(i)?0:1,f[i]=zj&&o===void 0?qj:o,this}hT.exports=Hj});var yT=ce((hee,mT)=>{var Wj=lT(),Vj=aT(),Gj=cT(),Yj=pT(),Kj=vT();function Hv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var _T=yT(),Xj=Hy(),Qj=L_();function Jj(){this.size=0,this.__data__={hash:new _T,map:new(Qj||Xj),string:new _T}}gT.exports=Jj});var wT=ce((mee,DT)=>{function Zj(i){var o=typeof i;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?i!=="__proto__":i===null}DT.exports=Zj});var Gy=ce((yee,ST)=>{var $j=wT();function ez(i,o){var f=i.__data__;return $j(o)?f[typeof o=="string"?"string":"hash"]:f.map}ST.exports=ez});var CT=ce((gee,TT)=>{var tz=Gy();function nz(i){var o=tz(this,i).delete(i);return this.size-=o?1:0,o}TT.exports=nz});var AT=ce((_ee,xT)=>{var rz=Gy();function iz(i){return rz(this,i).get(i)}xT.exports=iz});var OT=ce((Eee,RT)=>{var uz=Gy();function oz(i){return uz(this,i).has(i)}RT.exports=oz});var MT=ce((Dee,kT)=>{var lz=Gy();function sz(i,o){var f=lz(this,i),p=f.size;return f.set(i,o),this.size+=f.size==p?0:1,this}kT.exports=sz});var oD=ce((wee,NT)=>{var az=ET(),fz=CT(),cz=AT(),dz=OT(),pz=MT();function Wv(i){var o=-1,f=i==null?0:i.length;for(this.clear();++o{var hz=Hy(),vz=L_(),mz=oD(),yz=200;function gz(i,o){var f=this.__data__;if(f instanceof hz){var p=f.__data__;if(!vz||p.length{var _z=Hy(),Ez=TS(),Dz=xS(),wz=RS(),Sz=kS(),Tz=FT();function Vv(i){var o=this.__data__=new _z(i);this.size=o.size}Vv.prototype.clear=Ez;Vv.prototype.delete=Dz;Vv.prototype.get=wz;Vv.prototype.has=Sz;Vv.prototype.set=Tz;bT.exports=Vv});var BT=ce((Cee,IT)=>{function Cz(i,o){for(var f=-1,p=i==null?0:i.length;++f{var xz=sd(),Az=function(){try{var i=xz(Object,"defineProperty");return i({},"",{}),i}catch(o){}}();UT.exports=Az});var sD=ce((Aee,jT)=>{var zT=lD();function Rz(i,o,f){o=="__proto__"&&zT?zT(i,o,{configurable:!0,enumerable:!0,value:f,writable:!0}):i[o]=f}jT.exports=Rz});var aD=ce((Ree,qT)=>{var Oz=sD(),kz=tD(),Mz=Object.prototype,Nz=Mz.hasOwnProperty;function Lz(i,o,f){var p=i[o];(!(Nz.call(i,o)&&kz(p,f))||f===void 0&&!(o in i))&&Oz(i,o,f)}qT.exports=Lz});var Gv=ce((Oee,HT)=>{var Fz=aD(),bz=sD();function Pz(i,o,f,p){var E=!f;f||(f={});for(var t=-1,k=o.length;++t{function Iz(i,o){for(var f=-1,p=Array(i);++f{function Bz(i){return i!=null&&typeof i=="object"}GT.exports=Bz});var KT=ce((Nee,YT)=>{var Uz=Qp(),jz=ad(),zz="[object Arguments]";function qz(i){return jz(i)&&Uz(i)==zz}YT.exports=qz});var fD=ce((Lee,XT)=>{var QT=KT(),Hz=ad(),JT=Object.prototype,Wz=JT.hasOwnProperty,Vz=JT.propertyIsEnumerable,Gz=QT(function(){return arguments}())?QT:function(i){return Hz(i)&&Wz.call(i,"callee")&&!Vz.call(i,"callee")};XT.exports=Gz});var fd=ce((Fee,ZT)=>{var Yz=Array.isArray;ZT.exports=Yz});var eC=ce((bee,$T)=>{function Kz(){return!1}$T.exports=Kz});var cD=ce((Yy,Yv)=>{var Xz=Yf(),Qz=eC(),tC=typeof Yy=="object"&&Yy&&!Yy.nodeType&&Yy,nC=tC&&typeof Yv=="object"&&Yv&&!Yv.nodeType&&Yv,Jz=nC&&nC.exports===tC,rC=Jz?Xz.Buffer:void 0,Zz=rC?rC.isBuffer:void 0,$z=Zz||Qz;Yv.exports=$z});var uC=ce((Pee,iC)=>{var eq=9007199254740991,tq=/^(?:0|[1-9]\d*)$/;function nq(i,o){var f=typeof i;return o=o==null?eq:o,!!o&&(f=="number"||f!="symbol"&&tq.test(i))&&i>-1&&i%1==0&&i{var rq=9007199254740991;function iq(i){return typeof i=="number"&&i>-1&&i%1==0&&i<=rq}oC.exports=iq});var sC=ce((Bee,lC)=>{var uq=Qp(),oq=dD(),lq=ad(),sq="[object Arguments]",aq="[object Array]",fq="[object Boolean]",cq="[object Date]",dq="[object Error]",pq="[object Function]",hq="[object Map]",vq="[object Number]",mq="[object Object]",yq="[object RegExp]",gq="[object Set]",_q="[object String]",Eq="[object WeakMap]",Dq="[object ArrayBuffer]",wq="[object DataView]",Sq="[object Float32Array]",Tq="[object Float64Array]",Cq="[object Int8Array]",xq="[object Int16Array]",Aq="[object Int32Array]",Rq="[object Uint8Array]",Oq="[object Uint8ClampedArray]",kq="[object Uint16Array]",Mq="[object Uint32Array]",o0={};o0[Sq]=o0[Tq]=o0[Cq]=o0[xq]=o0[Aq]=o0[Rq]=o0[Oq]=o0[kq]=o0[Mq]=!0;o0[sq]=o0[aq]=o0[Dq]=o0[fq]=o0[wq]=o0[cq]=o0[dq]=o0[pq]=o0[hq]=o0[vq]=o0[mq]=o0[yq]=o0[gq]=o0[_q]=o0[Eq]=!1;function Nq(i){return lq(i)&&oq(i.length)&&!!o0[uq(i)]}lC.exports=Nq});var F_=ce((Uee,aC)=>{function Lq(i){return function(o){return i(o)}}aC.exports=Lq});var b_=ce((Ky,Kv)=>{var Fq=nD(),fC=typeof Ky=="object"&&Ky&&!Ky.nodeType&&Ky,Xy=fC&&typeof Kv=="object"&&Kv&&!Kv.nodeType&&Kv,bq=Xy&&Xy.exports===fC,pD=bq&&Fq.process,Pq=function(){try{var i=Xy&&Xy.require&&Xy.require("util").types;return i||pD&&pD.binding&&pD.binding("util")}catch(o){}}();Kv.exports=Pq});var hC=ce((jee,cC)=>{var Iq=sC(),Bq=F_(),dC=b_(),pC=dC&&dC.isTypedArray,Uq=pC?Bq(pC):Iq;cC.exports=Uq});var hD=ce((zee,vC)=>{var jq=VT(),zq=fD(),qq=fd(),Hq=cD(),Wq=uC(),Vq=hC(),Gq=Object.prototype,Yq=Gq.hasOwnProperty;function Kq(i,o){var f=qq(i),p=!f&&zq(i),E=!f&&!p&&Hq(i),t=!f&&!p&&!E&&Vq(i),k=f||p||E||t,L=k?jq(i.length,String):[],N=L.length;for(var C in i)(o||Yq.call(i,C))&&!(k&&(C=="length"||E&&(C=="offset"||C=="parent")||t&&(C=="buffer"||C=="byteLength"||C=="byteOffset")||Wq(C,N)))&&L.push(C);return L}vC.exports=Kq});var P_=ce((qee,mC)=>{var Xq=Object.prototype;function Qq(i){var o=i&&i.constructor,f=typeof o=="function"&&o.prototype||Xq;return i===f}mC.exports=Qq});var vD=ce((Hee,yC)=>{function Jq(i,o){return function(f){return i(o(f))}}yC.exports=Jq});var _C=ce((Wee,gC)=>{var Zq=vD(),$q=Zq(Object.keys,Object);gC.exports=$q});var DC=ce((Vee,EC)=>{var eH=P_(),tH=_C(),nH=Object.prototype,rH=nH.hasOwnProperty;function iH(i){if(!eH(i))return tH(i);var o=[];for(var f in Object(i))rH.call(i,f)&&f!="constructor"&&o.push(f);return o}EC.exports=iH});var mD=ce((Gee,wC)=>{var uH=rD(),oH=dD();function lH(i){return i!=null&&oH(i.length)&&!uH(i)}wC.exports=lH});var I_=ce((Yee,SC)=>{var sH=hD(),aH=DC(),fH=mD();function cH(i){return fH(i)?sH(i):aH(i)}SC.exports=cH});var CC=ce((Kee,TC)=>{var dH=Gv(),pH=I_();function hH(i,o){return i&&dH(o,pH(o),i)}TC.exports=hH});var AC=ce((Xee,xC)=>{function vH(i){var o=[];if(i!=null)for(var f in Object(i))o.push(f);return o}xC.exports=vH});var OC=ce((Qee,RC)=>{var mH=qv(),yH=P_(),gH=AC(),_H=Object.prototype,EH=_H.hasOwnProperty;function DH(i){if(!mH(i))return gH(i);var o=yH(i),f=[];for(var p in i)p=="constructor"&&(o||!EH.call(i,p))||f.push(p);return f}RC.exports=DH});var B_=ce((Jee,kC)=>{var wH=hD(),SH=OC(),TH=mD();function CH(i){return TH(i)?wH(i,!0):SH(i)}kC.exports=CH});var NC=ce((Zee,MC)=>{var xH=Gv(),AH=B_();function RH(i,o){return i&&xH(o,AH(o),i)}MC.exports=RH});var IC=ce((Qy,Xv)=>{var OH=Yf(),LC=typeof Qy=="object"&&Qy&&!Qy.nodeType&&Qy,FC=LC&&typeof Xv=="object"&&Xv&&!Xv.nodeType&&Xv,kH=FC&&FC.exports===LC,bC=kH?OH.Buffer:void 0,PC=bC?bC.allocUnsafe:void 0;function MH(i,o){if(o)return i.slice();var f=i.length,p=PC?PC(f):new i.constructor(f);return i.copy(p),p}Xv.exports=MH});var UC=ce(($ee,BC)=>{function NH(i,o){var f=-1,p=i.length;for(o||(o=Array(p));++f{function LH(i,o){for(var f=-1,p=i==null?0:i.length,E=0,t=[];++f{function FH(){return[]}qC.exports=FH});var U_=ce((nte,HC)=>{var bH=zC(),PH=yD(),IH=Object.prototype,BH=IH.propertyIsEnumerable,WC=Object.getOwnPropertySymbols,UH=WC?function(i){return i==null?[]:(i=Object(i),bH(WC(i),function(o){return BH.call(i,o)}))}:PH;HC.exports=UH});var GC=ce((rte,VC)=>{var jH=Gv(),zH=U_();function qH(i,o){return jH(i,zH(i),o)}VC.exports=qH});var j_=ce((ite,YC)=>{function HH(i,o){for(var f=-1,p=o.length,E=i.length;++f{var WH=vD(),VH=WH(Object.getPrototypeOf,Object);KC.exports=VH});var gD=ce((ote,XC)=>{var GH=j_(),YH=z_(),KH=U_(),XH=yD(),QH=Object.getOwnPropertySymbols,JH=QH?function(i){for(var o=[];i;)GH(o,KH(i)),i=YH(i);return o}:XH;XC.exports=JH});var JC=ce((lte,QC)=>{var ZH=Gv(),$H=gD();function eW(i,o){return ZH(i,$H(i),o)}QC.exports=eW});var _D=ce((ste,ZC)=>{var tW=j_(),nW=fd();function rW(i,o,f){var p=o(i);return nW(i)?p:tW(p,f(i))}ZC.exports=rW});var e6=ce((ate,$C)=>{var iW=_D(),uW=U_(),oW=I_();function lW(i){return iW(i,oW,uW)}$C.exports=lW});var ED=ce((fte,t6)=>{var sW=_D(),aW=gD(),fW=B_();function cW(i){return sW(i,fW,aW)}t6.exports=cW});var r6=ce((cte,n6)=>{var dW=sd(),pW=Yf(),hW=dW(pW,"DataView");n6.exports=hW});var u6=ce((dte,i6)=>{var vW=sd(),mW=Yf(),yW=vW(mW,"Promise");i6.exports=yW});var l6=ce((pte,o6)=>{var gW=sd(),_W=Yf(),EW=gW(_W,"Set");o6.exports=EW});var a6=ce((hte,s6)=>{var DW=sd(),wW=Yf(),SW=DW(wW,"WeakMap");s6.exports=SW});var q_=ce((vte,f6)=>{var DD=r6(),wD=L_(),SD=u6(),TD=l6(),CD=a6(),c6=Qp(),Qv=uD(),d6="[object Map]",TW="[object Object]",p6="[object Promise]",h6="[object Set]",v6="[object WeakMap]",m6="[object DataView]",CW=Qv(DD),xW=Qv(wD),AW=Qv(SD),RW=Qv(TD),OW=Qv(CD),Jp=c6;(DD&&Jp(new DD(new ArrayBuffer(1)))!=m6||wD&&Jp(new wD)!=d6||SD&&Jp(SD.resolve())!=p6||TD&&Jp(new TD)!=h6||CD&&Jp(new CD)!=v6)&&(Jp=function(i){var o=c6(i),f=o==TW?i.constructor:void 0,p=f?Qv(f):"";if(p)switch(p){case CW:return m6;case xW:return d6;case AW:return p6;case RW:return h6;case OW:return v6}return o});f6.exports=Jp});var g6=ce((mte,y6)=>{var kW=Object.prototype,MW=kW.hasOwnProperty;function NW(i){var o=i.length,f=new i.constructor(o);return o&&typeof i[0]=="string"&&MW.call(i,"index")&&(f.index=i.index,f.input=i.input),f}y6.exports=NW});var E6=ce((yte,_6)=>{var LW=Yf(),FW=LW.Uint8Array;_6.exports=FW});var H_=ce((gte,D6)=>{var w6=E6();function bW(i){var o=new i.constructor(i.byteLength);return new w6(o).set(new w6(i)),o}D6.exports=bW});var T6=ce((_te,S6)=>{var PW=H_();function IW(i,o){var f=o?PW(i.buffer):i.buffer;return new i.constructor(f,i.byteOffset,i.byteLength)}S6.exports=IW});var x6=ce((Ete,C6)=>{var BW=/\w*$/;function UW(i){var o=new i.constructor(i.source,BW.exec(i));return o.lastIndex=i.lastIndex,o}C6.exports=UW});var M6=ce((Dte,A6)=>{var R6=zv(),O6=R6?R6.prototype:void 0,k6=O6?O6.valueOf:void 0;function jW(i){return k6?Object(k6.call(i)):{}}A6.exports=jW});var L6=ce((wte,N6)=>{var zW=H_();function qW(i,o){var f=o?zW(i.buffer):i.buffer;return new i.constructor(f,i.byteOffset,i.length)}N6.exports=qW});var b6=ce((Ste,F6)=>{var HW=H_(),WW=T6(),VW=x6(),GW=M6(),YW=L6(),KW="[object Boolean]",XW="[object Date]",QW="[object Map]",JW="[object Number]",ZW="[object RegExp]",$W="[object Set]",eV="[object String]",tV="[object Symbol]",nV="[object ArrayBuffer]",rV="[object DataView]",iV="[object Float32Array]",uV="[object Float64Array]",oV="[object Int8Array]",lV="[object Int16Array]",sV="[object Int32Array]",aV="[object Uint8Array]",fV="[object Uint8ClampedArray]",cV="[object Uint16Array]",dV="[object Uint32Array]";function pV(i,o,f){var p=i.constructor;switch(o){case nV:return HW(i);case KW:case XW:return new p(+i);case rV:return WW(i,f);case iV:case uV:case oV:case lV:case sV:case aV:case fV:case cV:case dV:return YW(i,f);case QW:return new p;case JW:case eV:return new p(i);case ZW:return VW(i);case $W:return new p;case tV:return GW(i)}}F6.exports=pV});var B6=ce((Tte,P6)=>{var hV=qv(),I6=Object.create,vV=function(){function i(){}return function(o){if(!hV(o))return{};if(I6)return I6(o);i.prototype=o;var f=new i;return i.prototype=void 0,f}}();P6.exports=vV});var j6=ce((Cte,U6)=>{var mV=B6(),yV=z_(),gV=P_();function _V(i){return typeof i.constructor=="function"&&!gV(i)?mV(yV(i)):{}}U6.exports=_V});var q6=ce((xte,z6)=>{var EV=q_(),DV=ad(),wV="[object Map]";function SV(i){return DV(i)&&EV(i)==wV}z6.exports=SV});var G6=ce((Ate,H6)=>{var TV=q6(),CV=F_(),W6=b_(),V6=W6&&W6.isMap,xV=V6?CV(V6):TV;H6.exports=xV});var K6=ce((Rte,Y6)=>{var AV=q_(),RV=ad(),OV="[object Set]";function kV(i){return RV(i)&&AV(i)==OV}Y6.exports=kV});var Z6=ce((Ote,X6)=>{var MV=K6(),NV=F_(),Q6=b_(),J6=Q6&&Q6.isSet,LV=J6?NV(J6):MV;X6.exports=LV});var rx=ce((kte,$6)=>{var FV=PT(),bV=BT(),PV=aD(),IV=CC(),BV=NC(),UV=IC(),jV=UC(),zV=GC(),qV=JC(),HV=e6(),WV=ED(),VV=q_(),GV=g6(),YV=b6(),KV=j6(),XV=fd(),QV=cD(),JV=G6(),ZV=qv(),$V=Z6(),eG=I_(),tG=B_(),nG=1,rG=2,iG=4,ex="[object Arguments]",uG="[object Array]",oG="[object Boolean]",lG="[object Date]",sG="[object Error]",tx="[object Function]",aG="[object GeneratorFunction]",fG="[object Map]",cG="[object Number]",nx="[object Object]",dG="[object RegExp]",pG="[object Set]",hG="[object String]",vG="[object Symbol]",mG="[object WeakMap]",yG="[object ArrayBuffer]",gG="[object DataView]",_G="[object Float32Array]",EG="[object Float64Array]",DG="[object Int8Array]",wG="[object Int16Array]",SG="[object Int32Array]",TG="[object Uint8Array]",CG="[object Uint8ClampedArray]",xG="[object Uint16Array]",AG="[object Uint32Array]",Wu={};Wu[ex]=Wu[uG]=Wu[yG]=Wu[gG]=Wu[oG]=Wu[lG]=Wu[_G]=Wu[EG]=Wu[DG]=Wu[wG]=Wu[SG]=Wu[fG]=Wu[cG]=Wu[nx]=Wu[dG]=Wu[pG]=Wu[hG]=Wu[vG]=Wu[TG]=Wu[CG]=Wu[xG]=Wu[AG]=!0;Wu[sG]=Wu[tx]=Wu[mG]=!1;function W_(i,o,f,p,E,t){var k,L=o&nG,N=o&rG,C=o&iG;if(f&&(k=E?f(i,p,E,t):f(i)),k!==void 0)return k;if(!ZV(i))return i;var U=XV(i);if(U){if(k=GV(i),!L)return jV(i,k)}else{var q=VV(i),W=q==tx||q==aG;if(QV(i))return UV(i,L);if(q==nx||q==ex||W&&!E){if(k=N||W?{}:KV(i),!L)return N?qV(i,BV(k,i)):zV(i,IV(k,i))}else{if(!Wu[q])return E?i:{};k=YV(i,q,L)}}t||(t=new FV);var ne=t.get(i);if(ne)return ne;t.set(i,k),$V(i)?i.forEach(function(Se){k.add(W_(Se,o,f,Se,i,t))}):JV(i)&&i.forEach(function(Se,he){k.set(he,W_(Se,o,f,he,i,t))});var m=C?N?WV:HV:N?tG:eG,we=U?void 0:m(i);return bV(we||i,function(Se,he){we&&(he=Se,Se=i[he]),PV(k,he,W_(Se,o,f,he,i,t))}),k}$6.exports=W_});var V_=ce((Mte,ix)=>{var RG=Qp(),OG=ad(),kG="[object Symbol]";function MG(i){return typeof i=="symbol"||OG(i)&&RG(i)==kG}ix.exports=MG});var ox=ce((Nte,ux)=>{var NG=fd(),LG=V_(),FG=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bG=/^\w*$/;function PG(i,o){if(NG(i))return!1;var f=typeof i;return f=="number"||f=="symbol"||f=="boolean"||i==null||LG(i)?!0:bG.test(i)||!FG.test(i)||o!=null&&i in Object(o)}ux.exports=PG});var ax=ce((Lte,lx)=>{var sx=oD(),IG="Expected a function";function xD(i,o){if(typeof i!="function"||o!=null&&typeof o!="function")throw new TypeError(IG);var f=function(){var p=arguments,E=o?o.apply(this,p):p[0],t=f.cache;if(t.has(E))return t.get(E);var k=i.apply(this,p);return f.cache=t.set(E,k)||t,k};return f.cache=new(xD.Cache||sx),f}xD.Cache=sx;lx.exports=xD});var cx=ce((Fte,fx)=>{var BG=ax(),UG=500;function jG(i){var o=BG(i,function(p){return f.size===UG&&f.clear(),p}),f=o.cache;return o}fx.exports=jG});var px=ce((bte,dx)=>{var zG=cx(),qG=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,HG=/\\(\\)?/g,WG=zG(function(i){var o=[];return i.charCodeAt(0)===46&&o.push(""),i.replace(qG,function(f,p,E,t){o.push(E?t.replace(HG,"$1"):p||f)}),o});dx.exports=WG});var _x=ce((Pte,hx)=>{var vx=zv(),VG=eD(),GG=fd(),YG=V_(),KG=1/0,mx=vx?vx.prototype:void 0,yx=mx?mx.toString:void 0;function gx(i){if(typeof i=="string")return i;if(GG(i))return VG(i,gx)+"";if(YG(i))return yx?yx.call(i):"";var o=i+"";return o=="0"&&1/i==-KG?"-0":o}hx.exports=gx});var Dx=ce((Ite,Ex)=>{var XG=_x();function QG(i){return i==null?"":XG(i)}Ex.exports=QG});var G_=ce((Bte,wx)=>{var JG=fd(),ZG=ox(),$G=px(),eY=Dx();function tY(i,o){return JG(i)?i:ZG(i,o)?[i]:$G(eY(i))}wx.exports=tY});var Tx=ce((Ute,Sx)=>{function nY(i){var o=i==null?0:i.length;return o?i[o-1]:void 0}Sx.exports=nY});var AD=ce((jte,Cx)=>{var rY=V_(),iY=1/0;function uY(i){if(typeof i=="string"||rY(i))return i;var o=i+"";return o=="0"&&1/i==-iY?"-0":o}Cx.exports=uY});var Ax=ce((zte,xx)=>{var oY=G_(),lY=AD();function sY(i,o){o=oY(o,i);for(var f=0,p=o.length;i!=null&&f{function aY(i,o,f){var p=-1,E=i.length;o<0&&(o=-o>E?0:E+o),f=f>E?E:f,f<0&&(f+=E),E=o>f?0:f-o>>>0,o>>>=0;for(var t=Array(E);++p{var fY=Ax(),cY=Ox();function dY(i,o){return o.length<2?i:fY(i,cY(o,0,-1))}kx.exports=dY});var Lx=ce((Wte,Nx)=>{var pY=G_(),hY=Tx(),vY=Mx(),mY=AD();function yY(i,o){return o=pY(o,i),i=vY(i,o),i==null||delete i[mY(hY(o))]}Nx.exports=yY});var Px=ce((Vte,Fx)=>{var gY=Qp(),_Y=z_(),EY=ad(),DY="[object Object]",wY=Function.prototype,SY=Object.prototype,bx=wY.toString,TY=SY.hasOwnProperty,CY=bx.call(Object);function xY(i){if(!EY(i)||gY(i)!=DY)return!1;var o=_Y(i);if(o===null)return!0;var f=TY.call(o,"constructor")&&o.constructor;return typeof f=="function"&&f instanceof f&&bx.call(f)==CY}Fx.exports=xY});var Bx=ce((Gte,Ix)=>{var AY=Px();function RY(i){return AY(i)?void 0:i}Ix.exports=RY});var qx=ce((Yte,Ux)=>{var jx=zv(),OY=fD(),kY=fd(),zx=jx?jx.isConcatSpreadable:void 0;function MY(i){return kY(i)||OY(i)||!!(zx&&i&&i[zx])}Ux.exports=MY});var Vx=ce((Kte,Hx)=>{var NY=j_(),LY=qx();function Wx(i,o,f,p,E){var t=-1,k=i.length;for(f||(f=LY),E||(E=[]);++t0&&f(L)?o>1?Wx(L,o-1,f,p,E):NY(E,L):p||(E[E.length]=L)}return E}Hx.exports=Wx});var Yx=ce((Xte,Gx)=>{var FY=Vx();function bY(i){var o=i==null?0:i.length;return o?FY(i,1):[]}Gx.exports=bY});var Xx=ce((Qte,Kx)=>{function PY(i,o,f){switch(f.length){case 0:return i.call(o);case 1:return i.call(o,f[0]);case 2:return i.call(o,f[0],f[1]);case 3:return i.call(o,f[0],f[1],f[2])}return i.apply(o,f)}Kx.exports=PY});var Zx=ce((Jte,Qx)=>{var IY=Xx(),Jx=Math.max;function BY(i,o,f){return o=Jx(o===void 0?i.length-1:o,0),function(){for(var p=arguments,E=-1,t=Jx(p.length-o,0),k=Array(t);++E{function UY(i){return function(){return i}}$x.exports=UY});var n5=ce(($te,t5)=>{function jY(i){return i}t5.exports=jY});var u5=ce((ene,r5)=>{var zY=e5(),i5=lD(),qY=n5(),HY=i5?function(i,o){return i5(i,"toString",{configurable:!0,enumerable:!1,value:zY(o),writable:!0})}:qY;r5.exports=HY});var l5=ce((tne,o5)=>{var WY=800,VY=16,GY=Date.now;function YY(i){var o=0,f=0;return function(){var p=GY(),E=VY-(p-f);if(f=p,E>0){if(++o>=WY)return arguments[0]}else o=0;return i.apply(void 0,arguments)}}o5.exports=YY});var a5=ce((nne,s5)=>{var KY=u5(),XY=l5(),QY=XY(KY);s5.exports=QY});var c5=ce((rne,f5)=>{var JY=Yx(),ZY=Zx(),$Y=a5();function eK(i){return $Y(ZY(i,void 0,JY),i+"")}f5.exports=eK});var p5=ce((ine,d5)=>{var tK=eD(),nK=rx(),rK=Lx(),iK=G_(),uK=Gv(),oK=Bx(),lK=c5(),sK=ED(),aK=1,fK=2,cK=4,dK=lK(function(i,o){var f={};if(i==null)return f;var p=!1;o=tK(o,function(t){return t=iK(t,i),p||(p=t.length>1),t}),uK(i,sK(i),f),p&&(f=nK(f,aK|fK|cK,oK));for(var E=o.length;E--;)rK(f,o[E]);return f});d5.exports=dK});var eg=ce((vne,y5)=>{"use strict";var g5=Object.getOwnPropertySymbols,_K=Object.prototype.hasOwnProperty,EK=Object.prototype.propertyIsEnumerable;function DK(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function wK(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var o={},f=0;f<10;f++)o["_"+String.fromCharCode(f)]=f;var p=Object.getOwnPropertyNames(o).map(function(t){return o[t]});if(p.join("")!=="0123456789")return!1;var E={};return"abcdefghijklmnopqrst".split("").forEach(function(t){E[t]=t}),Object.keys(Object.assign({},E)).join("")==="abcdefghijklmnopqrst"}catch(t){return!1}}y5.exports=wK()?Object.assign:function(i,o){for(var f,p=DK(i),E,t=1;t{"use strict";var LD=eg(),Kf=typeof Symbol=="function"&&Symbol.for,tg=Kf?Symbol.for("react.element"):60103,SK=Kf?Symbol.for("react.portal"):60106,TK=Kf?Symbol.for("react.fragment"):60107,CK=Kf?Symbol.for("react.strict_mode"):60108,xK=Kf?Symbol.for("react.profiler"):60114,AK=Kf?Symbol.for("react.provider"):60109,RK=Kf?Symbol.for("react.context"):60110,OK=Kf?Symbol.for("react.forward_ref"):60112,kK=Kf?Symbol.for("react.suspense"):60113,MK=Kf?Symbol.for("react.memo"):60115,NK=Kf?Symbol.for("react.lazy"):60116,_5=typeof Symbol=="function"&&Symbol.iterator;function ng(i){for(var o="https://reactjs.org/docs/error-decoder.html?invariant="+i,f=1;fJ_.length&&J_.push(i)}function BD(i,o,f,p){var E=typeof i;(E==="undefined"||E==="boolean")&&(i=null);var t=!1;if(i===null)t=!0;else switch(E){case"string":case"number":t=!0;break;case"object":switch(i.$$typeof){case tg:case SK:t=!0}}if(t)return f(p,i,o===""?"."+UD(i,0):o),1;if(t=0,o=o===""?".":o+":",Array.isArray(i))for(var k=0;k{"use strict";var BK="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";M5.exports=BK});var HD=ce((gne,L5)=>{"use strict";var qD=function(){};process.env.NODE_ENV!=="production"&&(F5=N5(),Z_={},b5=Function.call.bind(Object.prototype.hasOwnProperty),qD=function(i){var o="Warning: "+i;typeof console!="undefined"&&console.error(o);try{throw new Error(o)}catch(f){}});var F5,Z_,b5;function P5(i,o,f,p,E){if(process.env.NODE_ENV!=="production"){for(var t in i)if(b5(i,t)){var k;try{if(typeof i[t]!="function"){var L=Error((p||"React class")+": "+f+" type `"+t+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[t]+"`.");throw L.name="Invariant Violation",L}k=i[t](o,t,p,f,null,F5)}catch(C){k=C}if(k&&!(k instanceof Error)&&qD((p||"React class")+": type specification of "+f+" `"+t+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof k+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),k instanceof Error&&!(k.message in Z_)){Z_[k.message]=!0;var N=E?E():"";qD("Failed "+f+" type: "+k.message+(N!=null?N:""))}}}}P5.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(Z_={})};L5.exports=P5});var I5=ce(pu=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";var i=eg(),o=HD(),f="16.13.1",p=typeof Symbol=="function"&&Symbol.for,E=p?Symbol.for("react.element"):60103,t=p?Symbol.for("react.portal"):60106,k=p?Symbol.for("react.fragment"):60107,L=p?Symbol.for("react.strict_mode"):60108,N=p?Symbol.for("react.profiler"):60114,C=p?Symbol.for("react.provider"):60109,U=p?Symbol.for("react.context"):60110,q=p?Symbol.for("react.concurrent_mode"):60111,W=p?Symbol.for("react.forward_ref"):60112,ne=p?Symbol.for("react.suspense"):60113,m=p?Symbol.for("react.suspense_list"):60120,we=p?Symbol.for("react.memo"):60115,Se=p?Symbol.for("react.lazy"):60116,he=p?Symbol.for("react.block"):60121,ge=p?Symbol.for("react.fundamental"):60117,ze=p?Symbol.for("react.responder"):60118,pe=p?Symbol.for("react.scope"):60119,Oe=typeof Symbol=="function"&&Symbol.iterator,le="@@iterator";function Ue(X){if(X===null||typeof X!="object")return null;var _e=Oe&&X[Oe]||X[le];return typeof _e=="function"?_e:null}var Ge={current:null},rt={suspense:null},wt={current:null},xt=/^(.*)[\\\/]/;function $e(X,_e,Ne){var Me="";if(_e){var dt=_e.fileName,Hn=dt.replace(xt,"");if(/^index\./.test(Hn)){var Dn=dt.match(xt);if(Dn){var or=Dn[1];if(or){var mi=or.replace(xt,"");Hn=mi+"/"+Hn}}}Me=" (at "+Hn+":"+_e.lineNumber+")"}else Ne&&(Me=" (created by "+Ne+")");return` + in `+(X||"Unknown")+Me}var ft=1;function Ke(X){return X._status===ft?X._result:null}function jt(X,_e,Ne){var Me=_e.displayName||_e.name||"";return X.displayName||(Me!==""?Ne+"("+Me+")":Ne)}function $t(X){if(X==null)return null;if(typeof X.tag=="number"&&ct("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof X=="function")return X.displayName||X.name||null;if(typeof X=="string")return X;switch(X){case k:return"Fragment";case t:return"Portal";case N:return"Profiler";case L:return"StrictMode";case ne:return"Suspense";case m:return"SuspenseList"}if(typeof X=="object")switch(X.$$typeof){case U:return"Context.Consumer";case C:return"Context.Provider";case W:return jt(X,X.render,"ForwardRef");case we:return $t(X.type);case he:return $t(X.render);case Se:{var _e=X,Ne=Ke(_e);if(Ne)return $t(Ne);break}}return null}var at={},Q=null;function ae(X){Q=X}at.getCurrentStack=null,at.getStackAddendum=function(){var X="";if(Q){var _e=$t(Q.type),Ne=Q._owner;X+=$e(_e,Q._source,Ne&&$t(Ne.type))}var Me=at.getCurrentStack;return Me&&(X+=Me()||""),X};var Ce={current:!1},ue={ReactCurrentDispatcher:Ge,ReactCurrentBatchConfig:rt,ReactCurrentOwner:wt,IsSomeRendererActing:Ce,assign:i};i(ue,{ReactDebugCurrentFrame:at,ReactComponentTreeHook:{}});function je(X){{for(var _e=arguments.length,Ne=new Array(_e>1?_e-1:0),Me=1;Me<_e;Me++)Ne[Me-1]=arguments[Me];At("warn",X,Ne)}}function ct(X){{for(var _e=arguments.length,Ne=new Array(_e>1?_e-1:0),Me=1;Me<_e;Me++)Ne[Me-1]=arguments[Me];At("error",X,Ne)}}function At(X,_e,Ne){{var Me=Ne.length>0&&typeof Ne[Ne.length-1]=="string"&&Ne[Ne.length-1].indexOf(` + in`)===0;if(!Me){var dt=ue.ReactDebugCurrentFrame,Hn=dt.getStackAddendum();Hn!==""&&(_e+="%s",Ne=Ne.concat([Hn]))}var Dn=Ne.map(function(Su){return""+Su});Dn.unshift("Warning: "+_e),Function.prototype.apply.call(console[X],console,Dn);try{var or=0,mi="Warning: "+_e.replace(/%s/g,function(){return Ne[or++]});throw new Error(mi)}catch(Su){}}}var en={};function ln(X,_e){{var Ne=X.constructor,Me=Ne&&(Ne.displayName||Ne.name)||"ReactClass",dt=Me+"."+_e;if(en[dt])return;ct("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",_e,Me),en[dt]=!0}}var An={isMounted:function(X){return!1},enqueueForceUpdate:function(X,_e,Ne){ln(X,"forceUpdate")},enqueueReplaceState:function(X,_e,Ne,Me){ln(X,"replaceState")},enqueueSetState:function(X,_e,Ne,Me){ln(X,"setState")}},nr={};Object.freeze(nr);function un(X,_e,Ne){this.props=X,this.context=_e,this.refs=nr,this.updater=Ne||An}un.prototype.isReactComponent={},un.prototype.setState=function(X,_e){if(!(typeof X=="object"||typeof X=="function"||X==null))throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,X,_e,"setState")},un.prototype.forceUpdate=function(X){this.updater.enqueueForceUpdate(this,X,"forceUpdate")};{var Wt={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},vr=function(X,_e){Object.defineProperty(un.prototype,X,{get:function(){je("%s(...) is deprecated in plain JavaScript React classes. %s",_e[0],_e[1])}})};for(var w in Wt)Wt.hasOwnProperty(w)&&vr(w,Wt[w])}function Ut(){}Ut.prototype=un.prototype;function Vn(X,_e,Ne){this.props=X,this.context=_e,this.refs=nr,this.updater=Ne||An}var fr=Vn.prototype=new Ut;fr.constructor=Vn,i(fr,un.prototype),fr.isPureReactComponent=!0;function Fr(){var X={current:null};return Object.seal(X),X}var ur=Object.prototype.hasOwnProperty,br={key:!0,ref:!0,__self:!0,__source:!0},Kt,vu,a0;a0={};function So(X){if(ur.call(X,"ref")){var _e=Object.getOwnPropertyDescriptor(X,"ref").get;if(_e&&_e.isReactWarning)return!1}return X.ref!==void 0}function Go(X){if(ur.call(X,"key")){var _e=Object.getOwnPropertyDescriptor(X,"key").get;if(_e&&_e.isReactWarning)return!1}return X.key!==void 0}function Os(X,_e){var Ne=function(){Kt||(Kt=!0,ct("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",_e))};Ne.isReactWarning=!0,Object.defineProperty(X,"key",{get:Ne,configurable:!0})}function Yo(X,_e){var Ne=function(){vu||(vu=!0,ct("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://fb.me/react-special-props)",_e))};Ne.isReactWarning=!0,Object.defineProperty(X,"ref",{get:Ne,configurable:!0})}function Ko(X){if(typeof X.ref=="string"&&wt.current&&X.__self&&wt.current.stateNode!==X.__self){var _e=$t(wt.current.type);a0[_e]||(ct('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://fb.me/react-strict-mode-string-ref',$t(wt.current.type),X.ref),a0[_e]=!0)}}var qt=function(X,_e,Ne,Me,dt,Hn,Dn){var or={$$typeof:E,type:X,key:_e,ref:Ne,props:Dn,_owner:Hn};return or._store={},Object.defineProperty(or._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(or,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Me}),Object.defineProperty(or,"_source",{configurable:!1,enumerable:!1,writable:!1,value:dt}),Object.freeze&&(Object.freeze(or.props),Object.freeze(or)),or};function _i(X,_e,Ne){var Me,dt={},Hn=null,Dn=null,or=null,mi=null;if(_e!=null){So(_e)&&(Dn=_e.ref,Ko(_e)),Go(_e)&&(Hn=""+_e.key),or=_e.__self===void 0?null:_e.__self,mi=_e.__source===void 0?null:_e.__source;for(Me in _e)ur.call(_e,Me)&&!br.hasOwnProperty(Me)&&(dt[Me]=_e[Me])}var Su=arguments.length-2;if(Su===1)dt.children=Ne;else if(Su>1){for(var bu=Array(Su),Pu=0;Pu1){for(var mu=Array(Pu),yi=0;yi is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Provider},set:function(Dn){Ne.Provider=Dn}},_currentValue:{get:function(){return Ne._currentValue},set:function(Dn){Ne._currentValue=Dn}},_currentValue2:{get:function(){return Ne._currentValue2},set:function(Dn){Ne._currentValue2=Dn}},_threadCount:{get:function(){return Ne._threadCount},set:function(Dn){Ne._threadCount=Dn}},Consumer:{get:function(){return Me||(Me=!0,ct("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),Ne.Consumer}}}),Ne.Consumer=Hn}return Ne._currentRenderer=null,Ne._currentRenderer2=null,Ne}function Ht(X){var _e={$$typeof:Se,_ctor:X,_status:-1,_result:null};{var Ne,Me;Object.defineProperties(_e,{defaultProps:{configurable:!0,get:function(){return Ne},set:function(dt){ct("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Ne=dt,Object.defineProperty(_e,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return Me},set:function(dt){ct("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),Me=dt,Object.defineProperty(_e,"propTypes",{enumerable:!0})}}})}return _e}function Du(X){return X!=null&&X.$$typeof===we?ct("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof X!="function"?ct("forwardRef requires a render function but was given %s.",X===null?"null":typeof X):X.length!==0&&X.length!==2&&ct("forwardRef render functions accept exactly two parameters: props and ref. %s",X.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),X!=null&&(X.defaultProps!=null||X.propTypes!=null)&&ct("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:W,render:X}}function Yi(X){return typeof X=="string"||typeof X=="function"||X===k||X===q||X===N||X===L||X===ne||X===m||typeof X=="object"&&X!==null&&(X.$$typeof===Se||X.$$typeof===we||X.$$typeof===C||X.$$typeof===U||X.$$typeof===W||X.$$typeof===ge||X.$$typeof===ze||X.$$typeof===pe||X.$$typeof===he)}function Y0(X,_e){return Yi(X)||ct("memo: The first argument must be a component. Instead received: %s",X===null?"null":typeof X),{$$typeof:we,type:X,compare:_e===void 0?null:_e}}function Ui(){var X=Ge.current;if(X===null)throw Error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.`);return X}function Wl(X,_e){var Ne=Ui();if(_e!==void 0&&ct("useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",_e,typeof _e=="number"&&Array.isArray(arguments[2])?` + +Did you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks`:""),X._context!==void 0){var Me=X._context;Me.Consumer===X?ct("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):Me.Provider===X&&ct("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Ne.useContext(X,_e)}function xo(X){var _e=Ui();return _e.useState(X)}function ni(X,_e,Ne){var Me=Ui();return Me.useReducer(X,_e,Ne)}function oo(X){var _e=Ui();return _e.useRef(X)}function Vl(X,_e){var Ne=Ui();return Ne.useEffect(X,_e)}function Ao(X,_e){var Ne=Ui();return Ne.useLayoutEffect(X,_e)}function Ms(X,_e){var Ne=Ui();return Ne.useCallback(X,_e)}function Xn(X,_e){var Ne=Ui();return Ne.useMemo(X,_e)}function Qo(X,_e,Ne){var Me=Ui();return Me.useImperativeHandle(X,_e,Ne)}function lo(X,_e){{var Ne=Ui();return Ne.useDebugValue(X,_e)}}var b0;b0=!1;function yl(){if(wt.current){var X=$t(wt.current.type);if(X)return` + +Check the render method of \``+X+"`."}return""}function Ro(X){if(X!==void 0){var _e=X.fileName.replace(/^.*[\\\/]/,""),Ne=X.lineNumber;return` + +Check your code at `+_e+":"+Ne+"."}return""}function Et(X){return X!=null?Ro(X.__source):""}var Pt={};function Bn(X){var _e=yl();if(!_e){var Ne=typeof X=="string"?X:X.displayName||X.name;Ne&&(_e=` + +Check the top-level render call using <`+Ne+">.")}return _e}function Ir(X,_e){if(!(!X._store||X._store.validated||X.key!=null)){X._store.validated=!0;var Ne=Bn(_e);if(!Pt[Ne]){Pt[Ne]=!0;var Me="";X&&X._owner&&X._owner!==wt.current&&(Me=" It was passed a child from "+$t(X._owner.type)+"."),ae(X),ct('Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',Ne,Me),ae(null)}}}function ji(X,_e){if(typeof X=="object"){if(Array.isArray(X))for(var Ne=0;Ne",dt=" Did you accidentally export a JSX literal instead of a component?"):Dn=typeof X,ct("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Dn,dt)}var or=_i.apply(this,arguments);if(or==null)return or;if(Me)for(var mi=2;mi{"use strict";process.env.NODE_ENV==="production"?WD.exports=k5():WD.exports=I5()});var B5=ce((nm,rg)=>{(function(){var i,o="4.17.21",f=200,p="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",E="Expected a function",t="Invalid `variable` option passed into `_.template`",k="__lodash_hash_undefined__",L=500,N="__lodash_placeholder__",C=1,U=2,q=4,W=1,ne=2,m=1,we=2,Se=4,he=8,ge=16,ze=32,pe=64,Oe=128,le=256,Ue=512,Ge=30,rt="...",wt=800,xt=16,$e=1,ft=2,Ke=3,jt=1/0,$t=9007199254740991,at=17976931348623157e292,Q=0/0,ae=4294967295,Ce=ae-1,ue=ae>>>1,je=[["ary",Oe],["bind",m],["bindKey",we],["curry",he],["curryRight",ge],["flip",Ue],["partial",ze],["partialRight",pe],["rearg",le]],ct="[object Arguments]",At="[object Array]",en="[object AsyncFunction]",ln="[object Boolean]",An="[object Date]",nr="[object DOMException]",un="[object Error]",Wt="[object Function]",vr="[object GeneratorFunction]",w="[object Map]",Ut="[object Number]",Vn="[object Null]",fr="[object Object]",Fr="[object Promise]",ur="[object Proxy]",br="[object RegExp]",Kt="[object Set]",vu="[object String]",a0="[object Symbol]",So="[object Undefined]",Go="[object WeakMap]",Os="[object WeakSet]",Yo="[object ArrayBuffer]",Ko="[object DataView]",qt="[object Float32Array]",_i="[object Float64Array]",eu="[object Int8Array]",ai="[object Int16Array]",mr="[object Int32Array]",Xo="[object Uint8Array]",W0="[object Uint8ClampedArray]",Lu="[object Uint16Array]",V0="[object Uint32Array]",Hr=/\b__p \+= '';/g,To=/\b(__p \+=) '' \+/g,Co=/(__e\(.*?\)|\b__t\)) \+\n'';/g,L0=/&(?:amp|lt|gt|quot|#39);/g,tu=/[&<>"']/g,Si=RegExp(L0.source),ks=RegExp(tu.source),Hl=/<%-([\s\S]+?)%>/g,F0=/<%([\s\S]+?)%>/g,f0=/<%=([\s\S]+?)%>/g,Pr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ei=/^\w*$/,G0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,fi=/[\\^$.*+?()[\]{}|]/g,Zt=RegExp(fi.source),Ln=/^\s+/,Di=/\s/,ci=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ht=/\{\n\/\* \[wrapped with (.+)\] \*/,Du=/,? & /,Yi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Y0=/[()=,{}\[\]\/\s]/,Ui=/\\(\\)?/g,Wl=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,xo=/\w*$/,ni=/^[-+]0x[0-9a-f]+$/i,oo=/^0b[01]+$/i,Vl=/^\[object .+?Constructor\]$/,Ao=/^0o[0-7]+$/i,Ms=/^(?:0|[1-9]\d*)$/,Xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qo=/($^)/,lo=/['\n\r\u2028\u2029\\]/g,b0="\\ud800-\\udfff",yl="\\u0300-\\u036f",Ro="\\ufe20-\\ufe2f",Et="\\u20d0-\\u20ff",Pt=yl+Ro+Et,Bn="\\u2700-\\u27bf",Ir="a-z\\xdf-\\xf6\\xf8-\\xff",ji="\\xac\\xb1\\xd7\\xf7",Wr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",wu="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ti="A-Z\\xc0-\\xd6\\xd8-\\xde",d0="\\ufe0e\\ufe0f",as=ji+Wr+wu+c0,St="['\u2019]",so="["+b0+"]",Jo="["+as+"]",Gl="["+Pt+"]",Fu="\\d+",fs="["+Bn+"]",P0="["+Ir+"]",X="[^"+b0+as+Fu+Bn+Ir+Ti+"]",_e="\\ud83c[\\udffb-\\udfff]",Ne="(?:"+Gl+"|"+_e+")",Me="[^"+b0+"]",dt="(?:\\ud83c[\\udde6-\\uddff]){2}",Hn="[\\ud800-\\udbff][\\udc00-\\udfff]",Dn="["+Ti+"]",or="\\u200d",mi="(?:"+P0+"|"+X+")",Su="(?:"+Dn+"|"+X+")",bu="(?:"+St+"(?:d|ll|m|re|s|t|ve))?",Pu="(?:"+St+"(?:D|LL|M|RE|S|T|VE))?",mu=Ne+"?",yi="["+d0+"]?",Oo="(?:"+or+"(?:"+[Me,dt,Hn].join("|")+")"+yi+mu+")*",Tu="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ao="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Iu=yi+mu+Oo,Oa="(?:"+[fs,dt,Hn].join("|")+")"+Iu,p0="(?:"+[Me+Gl+"?",Gl,dt,Hn,so].join("|")+")",Zs=RegExp(St,"g"),K0=RegExp(Gl,"g"),$s=RegExp(_e+"(?="+_e+")|"+p0+Iu,"g"),ka=RegExp([Dn+"?"+P0+"+"+bu+"(?="+[Jo,Dn,"$"].join("|")+")",Su+"+"+Pu+"(?="+[Jo,Dn+mi,"$"].join("|")+")",Dn+"?"+mi+"+"+bu,Dn+"+"+Pu,ao,Tu,Fu,Oa].join("|"),"g"),cs=RegExp("["+or+b0+Pt+d0+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Gn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],ic=-1,ri={};ri[qt]=ri[_i]=ri[eu]=ri[ai]=ri[mr]=ri[Xo]=ri[W0]=ri[Lu]=ri[V0]=!0,ri[ct]=ri[At]=ri[Yo]=ri[ln]=ri[Ko]=ri[An]=ri[un]=ri[Wt]=ri[w]=ri[Ut]=ri[fr]=ri[br]=ri[Kt]=ri[vu]=ri[Go]=!1;var Gr={};Gr[ct]=Gr[At]=Gr[Yo]=Gr[Ko]=Gr[ln]=Gr[An]=Gr[qt]=Gr[_i]=Gr[eu]=Gr[ai]=Gr[mr]=Gr[w]=Gr[Ut]=Gr[fr]=Gr[br]=Gr[Kt]=Gr[vu]=Gr[a0]=Gr[Xo]=Gr[W0]=Gr[Lu]=Gr[V0]=!0,Gr[un]=Gr[Wt]=Gr[Go]=!1;var Yl={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},ea={"&":"&","<":"<",">":">",'"':""","'":"'"},lf={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ns={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ma=parseFloat,Ls=parseInt,h0=typeof global=="object"&&global&&global.Object===Object&&global,Fs=typeof self=="object"&&self&&self.Object===Object&&self,Ni=h0||Fs||Function("return this")(),B=typeof nm=="object"&&nm&&!nm.nodeType&&nm,z=B&&typeof rg=="object"&&rg&&!rg.nodeType&&rg,G=z&&z.exports===B,$=G&&h0.process,De=function(){try{var Te=z&&z.require&&z.require("util").types;return Te||$&&$.binding&&$.binding("util")}catch(et){}}(),me=De&&De.isArrayBuffer,xe=De&&De.isDate,Z=De&&De.isMap,ke=De&&De.isRegExp,Xe=De&&De.isSet,ht=De&&De.isTypedArray;function ie(Te,et,Ve){switch(Ve.length){case 0:return Te.call(et);case 1:return Te.call(et,Ve[0]);case 2:return Te.call(et,Ve[0],Ve[1]);case 3:return Te.call(et,Ve[0],Ve[1],Ve[2])}return Te.apply(et,Ve)}function qe(Te,et,Ve,Gt){for(var Yt=-1,sr=Te==null?0:Te.length;++Yt-1}function tn(Te,et,Ve){for(var Gt=-1,Yt=Te==null?0:Te.length;++Gt-1;);return Ve}function gl(Te,et){for(var Ve=Te.length;Ve--&&_t(et,Te[Ve],0)>-1;);return Ve}function af(Te,et){for(var Ve=Te.length,Gt=0;Ve--;)Te[Ve]===et&&++Gt;return Gt}var Mo=Yn(Yl),ds=Yn(ea);function bs(Te){return"\\"+Ns[Te]}function No(Te,et){return Te==null?i:Te[et]}function Lo(Te){return cs.test(Te)}function ps(Te){return w0.test(Te)}function Vu(Te){for(var et,Ve=[];!(et=Te.next()).done;)Ve.push(et.value);return Ve}function yu(Te){var et=-1,Ve=Array(Te.size);return Te.forEach(function(Gt,Yt){Ve[++et]=[Yt,Gt]}),Ve}function pi(Te,et){return function(Ve){return Te(et(Ve))}}function T0(Te,et){for(var Ve=-1,Gt=Te.length,Yt=0,sr=[];++Ve-1}function ia(d,v){var x=this.__data__,b=Ql(x,d);return b<0?(++this.size,x.push([d,v])):x[b][1]=v,this}to.prototype.clear=Na,to.prototype.delete=pf,to.prototype.get=uc,to.prototype.has=ms,to.prototype.set=ia;function B0(d){var v=-1,x=d==null?0:d.length;for(this.clear();++v=v?d:v)),d}function U0(d,v,x,b,H,ee){var de,ye=v&C,be=v&U,gt=v&q;if(x&&(de=H?x(d,b,H,ee):x(d)),de!==i)return de;if(!ku(d))return d;var Dt=Jn(d);if(Dt){if(de=Es(d),!ye)return Ji(d,de)}else{var Rt=Ou(d),rn=Rt==Wt||Rt==vr;if(Gs(d))return fc(d,ye);if(Rt==fr||Rt==ct||rn&&!H){if(de=be||rn?{}:vc(d),!ye)return be?Jl(d,tl(de,d)):t0(d,hf(de,d))}else{if(!Gr[Rt])return H?d:{};de=Dh(d,Rt,ye)}}ee||(ee=new el);var Rn=ee.get(d);if(Rn)return Rn;ee.set(d,de),L2(d)?d.forEach(function(ir){de.add(U0(ir,v,x,ir,d,ee))}):gp(d)&&d.forEach(function(ir,Zr){de.set(Zr,U0(ir,v,x,Zr,d,ee))});var $n=gt?be?rr:$c:be?fn:M0,Nr=Dt?i:$n(d);return tt(Nr||d,function(ir,Zr){Nr&&(Zr=ir,ir=d[Zr]),gs(de,Zr,U0(ir,v,x,Zr,d,ee))}),de}function vf(d){var v=M0(d);return function(x){return jc(x,d,v)}}function jc(d,v,x){var b=x.length;if(d==null)return!b;for(d=wn(d);b--;){var H=x[b],ee=v[H],de=d[H];if(de===i&&!(H in d)||!ee(de))return!1}return!0}function lc(d,v,x){if(typeof d!="function")throw new Kr(E);return Wa(function(){d.apply(i,x)},v)}function Sl(d,v,x,b){var H=-1,ee=on,de=!0,ye=d.length,be=[],gt=v.length;if(!ye)return be;x&&(v=Lt(v,di(x))),b?(ee=tn,de=!1):v.length>=f&&(ee=Zo,de=!1,v=new ho(v));e:for(;++HH?0:H+x),b=b===i||b>H?H:Cr(b),b<0&&(b+=H),b=x>b?0:Ep(b);x0&&x(ye)?v>1?bi(ye,v-1,x,b,H):gn(H,ye):b||(H[H.length]=ye)}return H}var g=dc(),y=dc(!0);function A(d,v){return d&&g(d,v,M0)}function F(d,v){return d&&y(d,v,M0)}function I(d,v){return bt(v,function(x){return Ea(d[x])})}function J(d,v){v=Us(v,d);for(var x=0,b=v.length;d!=null&&xv}function Mt(d,v){return d!=null&&ei.call(d,v)}function Er(d,v){return d!=null&&v in wn(d)}function $u(d,v,x){return d>=Wn(v,x)&&d=120&&Dt.length>=120)?new ho(de&&Dt):i}Dt=d[0];var Rt=-1,rn=ye[0];e:for(;++Rt-1;)ye!==d&&R0.call(ye,be,1),R0.call(d,be,1);return d}function u2(d,v){for(var x=d?v.length:0,b=x-1;x--;){var H=v[x];if(x==b||H!==ee){var ee=H;go(H)?R0.call(d,H,1):Cd(d,H)}}return d}function o2(d,v){return d+vs(y0()*(v-d+1))}function wd(d,v,x,b){for(var H=-1,ee=Xr(Ku((v-d)/(x||1)),0),de=Ve(ee);ee--;)de[b?ee:++H]=d,d+=x;return de}function Hc(d,v){var x="";if(!d||v<1||v>$t)return x;do v%2&&(x+=d),v=vs(v/2),v&&(d+=d);while(v);return x}function Mr(d,v){return r1(Nd(d,v,r0),d+"")}function l2(d){return ba(Ac(d))}function s2(d,v){var x=Ac(d);return yc(x,Zu(v,0,x.length))}function ja(d,v,x,b){if(!ku(d))return d;v=Us(v,d);for(var H=-1,ee=v.length,de=ee-1,ye=d;ye!=null&&++HH?0:H+v),x=x>H?H:x,x<0&&(x+=H),H=v>x?0:x-v>>>0,v>>>=0;for(var ee=Ve(H);++b>>1,de=d[ee];de!==null&&!Nl(de)&&(x?de<=v:de=f){var gt=v?null:mm(d);if(gt)return Q0(gt);de=!1,H=Zo,be=new ho}else be=v?[]:ye;e:for(;++b=b?d:rl(d,v,x)}var Kc=hs||function(d){return Ni.clearTimeout(d)};function fc(d,v){if(v)return d.slice();var x=d.length,b=Fi?Fi(x):new d.constructor(x);return d.copy(b),b}function cc(d){var v=new d.constructor(d.byteLength);return new A0(v).set(new A0(d)),v}function f2(d,v){var x=v?cc(d.buffer):d.buffer;return new d.constructor(x,d.byteOffset,d.byteLength)}function yh(d){var v=new d.constructor(d.source,xo.exec(d));return v.lastIndex=d.lastIndex,v}function gf(d){return Sr?wn(Sr.call(d)):{}}function Xc(d,v){var x=v?cc(d.buffer):d.buffer;return new d.constructor(x,d.byteOffset,d.length)}function gh(d,v){if(d!==v){var x=d!==i,b=d===null,H=d===d,ee=Nl(d),de=v!==i,ye=v===null,be=v===v,gt=Nl(v);if(!ye&&!gt&&!ee&&d>v||ee&&de&&be&&!ye&&!gt||b&&de&&be||!x&&be||!H)return 1;if(!b&&!ee&&!gt&&d=ye)return be;var gt=x[b];return be*(gt=="desc"?-1:1)}}return d.index-v.index}function js(d,v,x,b){for(var H=-1,ee=d.length,de=x.length,ye=-1,be=v.length,gt=Xr(ee-de,0),Dt=Ve(be+gt),Rt=!b;++ye1?x[H-1]:i,de=H>2?x[2]:i;for(ee=d.length>3&&typeof ee=="function"?(H--,ee):i,de&&io(x[0],x[1],de)&&(ee=H<3?i:ee,H=1),v=wn(v);++b-1?H[ee?v[de]:de]:i}}function Jc(d){return ol(function(v){var x=v.length,b=x,H=Ur.prototype.thru;for(d&&v.reverse();b--;){var ee=v[b];if(typeof ee!="function")throw new Kr(E);if(H&&!de&&Bo(ee)=="wrapper")var de=new Ur([],!0)}for(b=de?b:x;++b1&&ui.reverse(),Dt&&beye))return!1;var gt=ee.get(d),Dt=ee.get(v);if(gt&&Dt)return gt==v&&Dt==d;var Rt=-1,rn=!0,Rn=x&ne?new ho:i;for(ee.set(d,v),ee.set(v,d);++Rt1?"& ":"")+v[b],v=v.join(x>2?", ":" "),d.replace(ci,`{ +/* [wrapped with `+v+`] */ +`)}function $l(d){return Jn(d)||sl(d)||!!(co&&d&&d[co])}function go(d,v){var x=typeof d;return v=v==null?$t:v,!!v&&(x=="number"||x!="symbol"&&Ms.test(d))&&d>-1&&d%1==0&&d0){if(++v>=wt)return arguments[0]}else v=0;return d.apply(i,arguments)}}function yc(d,v){var x=-1,b=d.length,H=b-1;for(v=v===i?b:v;++x1?d[v-1]:i;return x=typeof x=="function"?(d.pop(),x):i,E2(d,x)});function Bh(d){var v=Y(d);return v.__chain__=!0,v}function Uh(d,v){return v(d),d}function h1(d,v){return v(d)}var Qd=ol(function(d){var v=d.length,x=v?d[0]:0,b=this.__wrapped__,H=function(ee){return Ia(ee,d)};return v>1||this.__actions__.length||!(b instanceof lt)||!go(x)?this.thru(H):(b=b.slice(x,+x+(v?1:0)),b.__actions__.push({func:h1,args:[H],thisArg:i}),new Ur(b,this.__chain__).thru(function(ee){return v&&!ee.length&&ee.push(i),ee}))});function jh(){return Bh(this)}function Jd(){return new Ur(this.value(),this.__chain__)}function zh(){this.__values__===i&&(this.__values__=lv(this.value()));var d=this.__index__>=this.__values__.length,v=d?i:this.__values__[this.__index__++];return{done:d,value:v}}function Cm(){return this}function xm(d){for(var v,x=this;x instanceof Jr;){var b=Fd(x);b.__index__=0,b.__values__=i,v?H.__wrapped__=b:v=b;var H=b;x=x.__wrapped__}return H.__wrapped__=d,v}function Of(){var d=this.__wrapped__;if(d instanceof lt){var v=d;return this.__actions__.length&&(v=new lt(this)),v=v.reverse(),v.__actions__.push({func:h1,args:[Hd],thisArg:i}),new Ur(v,this.__chain__)}return this.thru(Hd)}function kf(){return mh(this.__wrapped__,this.__actions__)}var D2=za(function(d,v,x){ei.call(d,x)?++d[x]:ju(d,x,1)});function Am(d,v,x){var b=Jn(d)?kt:n2;return x&&io(d,v,x)&&(v=i),b(d,zn(v,3))}function Zd(d,v){var x=Jn(d)?bt:zc;return x(d,zn(v,3))}var w2=xl(Bd),$d=xl(u1);function qh(d,v){return bi(v1(d,v),1)}function ep(d,v){return bi(v1(d,v),jt)}function Hh(d,v,x){return x=x===i?1:Cr(x),bi(v1(d,v),x)}function Wh(d,v){var x=Jn(d)?tt:_s;return x(d,zn(v,3))}function tp(d,v){var x=Jn(d)?Tt:oa;return x(d,zn(v,3))}var Rm=za(function(d,v,x){ei.call(d,x)?d[x].push(v):ju(d,x,[v])});function Om(d,v,x,b){d=al(d)?d:Ac(d),x=x&&!b?Cr(x):0;var H=d.length;return x<0&&(x=Xr(H+x,0)),_1(d)?x<=H&&d.indexOf(v,x)>-1:!!H&&_t(d,v,x)>-1}var km=Mr(function(d,v,x){var b=-1,H=typeof v=="function",ee=al(d)?Ve(d.length):[];return _s(d,function(de){ee[++b]=H?ie(v,de,x):Tl(de,v,x)}),ee}),Vh=za(function(d,v,x){ju(d,x,v)});function v1(d,v){var x=Jn(d)?Lt:Ed;return x(d,zn(v,3))}function Mm(d,v,x,b){return d==null?[]:(Jn(v)||(v=v==null?[]:[v]),x=b?i:x,Jn(x)||(x=x==null?[]:[x]),vo(d,v,x))}var np=za(function(d,v,x){d[x?0:1].push(v)},function(){return[[],[]]});function rp(d,v,x){var b=Jn(d)?lr:yr,H=arguments.length<3;return b(d,zn(v,4),x,H,_s)}function Nm(d,v,x){var b=Jn(d)?Qn:yr,H=arguments.length<3;return b(d,zn(v,4),x,H,oa)}function Lm(d,v){var x=Jn(d)?bt:zc;return x(d,C2(zn(v,3)))}function Gh(d){var v=Jn(d)?ba:l2;return v(d)}function Fm(d,v,x){(x?io(d,v,x):v===i)?v=1:v=Cr(v);var b=Jn(d)?Pa:s2;return b(d,v)}function bm(d){var v=Jn(d)?ua:nl;return v(d)}function ip(d){if(d==null)return 0;if(al(d))return _1(d)?Ki(d):d.length;var v=Ou(d);return v==w||v==Kt?d.size:Ba(d).length}function up(d,v,x){var b=Jn(d)?_r:hh;return x&&io(d,v,x)&&(v=i),b(d,zn(v,3))}var ya=Mr(function(d,v){if(d==null)return[];var x=v.length;return x>1&&io(d,v[0],v[1])?v=[]:x>2&&io(v[0],v[1],v[2])&&(v=[v[0]]),vo(d,bi(v,1),[])}),m1=ra||function(){return Ni.Date.now()};function op(d,v){if(typeof v!="function")throw new Kr(E);return d=Cr(d),function(){if(--d<1)return v.apply(this,arguments)}}function Yh(d,v,x){return v=x?i:v,v=d&&v==null?d.length:v,dn(d,Oe,i,i,i,i,v)}function S2(d,v){var x;if(typeof v!="function")throw new Kr(E);return d=Cr(d),function(){return--d>0&&(x=v.apply(this,arguments)),d<=1&&(v=i),x}}var y1=Mr(function(d,v,x){var b=m;if(x.length){var H=T0(x,dr(y1));b|=ze}return dn(d,b,v,x,H)}),Kh=Mr(function(d,v,x){var b=m|we;if(x.length){var H=T0(x,dr(Kh));b|=ze}return dn(v,b,d,x,H)});function lp(d,v,x){v=x?i:v;var b=dn(d,he,i,i,i,i,i,v);return b.placeholder=lp.placeholder,b}function Xh(d,v,x){v=x?i:v;var b=dn(d,ge,i,i,i,i,i,v);return b.placeholder=Xh.placeholder,b}function sp(d,v,x){var b,H,ee,de,ye,be,gt=0,Dt=!1,Rt=!1,rn=!0;if(typeof d!="function")throw new Kr(E);v=fl(v)||0,ku(x)&&(Dt=!!x.leading,Rt="maxWait"in x,ee=Rt?Xr(fl(x.maxWait)||0,v):ee,rn="trailing"in x?!!x.trailing:rn);function Rn(i0){var Ts=b,wo=H;return b=H=i,gt=i0,de=d.apply(wo,Ts),de}function $n(i0){return gt=i0,ye=Wa(Zr,v),Dt?Rn(i0):de}function Nr(i0){var Ts=i0-be,wo=i0-gt,Rv=v-Ts;return Rt?Wn(Rv,ee-wo):Rv}function ir(i0){var Ts=i0-be,wo=i0-gt;return be===i||Ts>=v||Ts<0||Rt&&wo>=ee}function Zr(){var i0=m1();if(ir(i0))return ui(i0);ye=Wa(Zr,Nr(i0))}function ui(i0){return ye=i,rn&&b?Rn(i0):(b=H=i,de)}function bl(){ye!==i&&Kc(ye),gt=0,b=be=H=ye=i}function Wi(){return ye===i?de:ui(m1())}function uo(){var i0=m1(),Ts=ir(i0);if(b=arguments,H=this,be=i0,Ts){if(ye===i)return $n(be);if(Rt)return Kc(ye),ye=Wa(Zr,v),Rn(be)}return ye===i&&(ye=Wa(Zr,v)),de}return uo.cancel=bl,uo.flush=Wi,uo}var Qh=Mr(function(d,v){return lc(d,1,v)}),Jh=Mr(function(d,v,x){return lc(d,fl(v)||0,x)});function ap(d){return dn(d,Ue)}function T2(d,v){if(typeof d!="function"||v!=null&&typeof v!="function")throw new Kr(E);var x=function(){var b=arguments,H=v?v.apply(this,b):b[0],ee=x.cache;if(ee.has(H))return ee.get(H);var de=d.apply(this,b);return x.cache=ee.set(H,de)||ee,de};return x.cache=new(T2.Cache||B0),x}T2.Cache=B0;function C2(d){if(typeof d!="function")throw new Kr(E);return function(){var v=arguments;switch(v.length){case 0:return!d.call(this);case 1:return!d.call(this,v[0]);case 2:return!d.call(this,v[0],v[1]);case 3:return!d.call(this,v[0],v[1],v[2])}return!d.apply(this,v)}}function z0(d){return S2(2,d)}var x2=Rd(function(d,v){v=v.length==1&&Jn(v[0])?Lt(v[0],di(zn())):Lt(bi(v,1),di(zn()));var x=v.length;return Mr(function(b){for(var H=-1,ee=Wn(b.length,x);++H=v}),sl=e0(function(){return arguments}())?e0:function(d){return zu(d)&&ei.call(d,"callee")&&!I0.call(d,"callee")},Jn=Ve.isArray,Vs=me?di(me):He;function al(d){return d!=null&&M2(d.length)&&!Ea(d)}function n0(d){return zu(d)&&al(d)}function ev(d){return d===!0||d===!1||zu(d)&&mt(d)==ln}var Gs=$0||Ip,hp=xe?di(xe):Be;function jm(d){return zu(d)&&d.nodeType===1&&!Ec(d)}function tv(d){if(d==null)return!0;if(al(d)&&(Jn(d)||typeof d=="string"||typeof d.splice=="function"||Gs(d)||Da(d)||sl(d)))return!d.length;var v=Ou(d);if(v==w||v==Kt)return!d.size;if(xf(d))return!Ba(d).length;for(var x in d)if(ei.call(d,x))return!1;return!0}function vp(d,v){return ut(d,v)}function zm(d,v,x){x=typeof x=="function"?x:i;var b=x?x(d,v):i;return b===i?ut(d,v,i,x):!!b}function mp(d){if(!zu(d))return!1;var v=mt(d);return v==un||v==nr||typeof d.message=="string"&&typeof d.name=="string"&&!Ec(d)}function _c(d){return typeof d=="number"&&Xi(d)}function Ea(d){if(!ku(d))return!1;var v=mt(d);return v==Wt||v==vr||v==en||v==ur}function yp(d){return typeof d=="number"&&d==Cr(d)}function M2(d){return typeof d=="number"&&d>-1&&d%1==0&&d<=$t}function ku(d){var v=typeof d;return d!=null&&(v=="object"||v=="function")}function zu(d){return d!=null&&typeof d=="object"}var gp=Z?di(Z):jn;function _p(d,v){return d===v||ti(d,v,Pn(v))}function nv(d,v,x){return x=typeof x=="function"?x:i,ti(d,v,Pn(v),x)}function qm(d){return rv(d)&&d!=+d}function Hm(d){if(Al(d))throw new Yt(p);return tr(d)}function Wm(d){return d===null}function N2(d){return d==null}function rv(d){return typeof d=="number"||zu(d)&&mt(d)==Ut}function Ec(d){if(!zu(d)||mt(d)!=fr)return!1;var v=$o(d);if(v===null)return!0;var x=ei.call(v,"constructor")&&v.constructor;return typeof x=="function"&&x instanceof x&&Au.call(x)==na}var g1=ke?di(ke):ii;function Vm(d){return yp(d)&&d>=-$t&&d<=$t}var L2=Xe?di(Xe):qi;function _1(d){return typeof d=="string"||!Jn(d)&&zu(d)&&mt(d)==vu}function Nl(d){return typeof d=="symbol"||zu(d)&&mt(d)==a0}var Da=ht?di(ht):jr;function iv(d){return d===i}function Gm(d){return zu(d)&&Ou(d)==Go}function uv(d){return zu(d)&&mt(d)==Os}var ov=p2(r2),Ym=p2(function(d,v){return d<=v});function lv(d){if(!d)return[];if(al(d))return _1(d)?Yr(d):Ji(d);if(Ru&&d[Ru])return Vu(d[Ru]());var v=Ou(d),x=v==w?yu:v==Kt?Q0:Ac;return x(d)}function wa(d){if(!d)return d===0?d:0;if(d=fl(d),d===jt||d===-jt){var v=d<0?-1:1;return v*at}return d===d?d:0}function Cr(d){var v=wa(d),x=v%1;return v===v?x?v-x:v:0}function Ep(d){return d?Zu(Cr(d),0,ae):0}function fl(d){if(typeof d=="number")return d;if(Nl(d))return Q;if(ku(d)){var v=typeof d.valueOf=="function"?d.valueOf():d;d=ku(v)?v+"":v}if(typeof d!="string")return d===0?d:+d;d=xu(d);var x=oo.test(d);return x||Ao.test(d)?Ls(d.slice(2),x?2:8):ni.test(d)?Q:+d}function cu(d){return O0(d,fn(d))}function E1(d){return d?Zu(Cr(d),-$t,$t):d===0?d:0}function ki(d){return d==null?"":il(d)}var Dp=no(function(d,v){if(xf(v)||al(v)){O0(v,M0(v),d);return}for(var x in v)ei.call(v,x)&&gs(d,x,v[x])}),F2=no(function(d,v){O0(v,fn(v),d)}),Do=no(function(d,v,x,b){O0(v,fn(v),d,b)}),Ss=no(function(d,v,x,b){O0(v,M0(v),d,b)}),Mf=ol(Ia);function b2(d,v){var x=Qr(d);return v==null?x:hf(x,v)}var wp=Mr(function(d,v){d=wn(d);var x=-1,b=v.length,H=b>2?v[2]:i;for(H&&io(v[0],v[1],H)&&(b=1);++x1),ee}),O0(d,rr(d),x),b&&(x=U0(x,C|U|q,ym));for(var H=v.length;H--;)Cd(x,v[H]);return x});function T1(d,v){return Ka(d,C2(zn(v)))}var Cp=ol(function(d,v){return d==null?{}:dh(d,v)});function Ka(d,v){if(d==null)return{};var x=Lt(rr(d),function(b){return[b]});return v=zn(v),ph(d,x,function(b,H){return v(b,H[0])})}function Km(d,v,x){v=Us(v,d);var b=-1,H=v.length;for(H||(H=1,d=i);++bv){var b=d;d=v,v=b}if(x||d%1||v%1){var H=y0();return Wn(d+H*(v-d+Ma("1e-"+((H+"").length-1))),v)}return o2(d,v)}var q2=_f(function(d,v,x){return v=v.toLowerCase(),d+(x?Uo(v):v)});function Uo(d){return Rp(ki(d).toLowerCase())}function H2(d){return d=ki(d),d&&d.replace(Xn,Mo).replace(K0,"")}function Qm(d,v,x){d=ki(d),v=il(v);var b=d.length;x=x===i?b:Zu(Cr(x),0,b);var H=x;return x-=v.length,x>=0&&d.slice(x,H)==v}function A1(d){return d=ki(d),d&&ks.test(d)?d.replace(tu,ds):d}function Jm(d){return d=ki(d),d&&Zt.test(d)?d.replace(fi,"\\$&"):d}var Zm=_f(function(d,v,x){return d+(x?"-":"")+v.toLowerCase()}),av=_f(function(d,v,x){return d+(x?" ":"")+v.toLowerCase()}),$m=_h("toLowerCase");function fv(d,v,x){d=ki(d),v=Cr(v);var b=v?Ki(d):0;if(!v||b>=v)return d;var H=(v-b)/2;return da(vs(H),x)+d+da(Ku(H),x)}function ey(d,v,x){d=ki(d),v=Cr(v);var b=v?Ki(d):0;return v&&b>>0,x?(d=ki(d),d&&(typeof v=="string"||v!=null&&!g1(v))&&(v=il(v),!v&&Lo(d))?aa(Yr(d),0,x):d.split(v,x)):[]}var bf=_f(function(d,v,x){return d+(x?" ":"")+Rp(v)});function dv(d,v,x){return d=ki(d),x=x==null?0:Zu(Cr(x),0,d.length),v=il(v),d.slice(x,x+v.length)==v}function pv(d,v,x){var b=Y.templateSettings;x&&io(d,v,x)&&(v=i),d=ki(d),v=Do({},v,b,Df);var H=Do({},v.imports,b.imports,Df),ee=M0(H),de=ko(H,ee),ye,be,gt=0,Dt=v.interpolate||Qo,Rt="__p += '",rn=fu((v.escape||Qo).source+"|"+Dt.source+"|"+(Dt===f0?Wl:Qo).source+"|"+(v.evaluate||Qo).source+"|$","g"),Rn="//# sourceURL="+(ei.call(v,"sourceURL")?(v.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++ic+"]")+` +`;d.replace(rn,function(ir,Zr,ui,bl,Wi,uo){return ui||(ui=bl),Rt+=d.slice(gt,uo).replace(lo,bs),Zr&&(ye=!0,Rt+=`' + +__e(`+Zr+`) + +'`),Wi&&(be=!0,Rt+=`'; +`+Wi+`; +__p += '`),ui&&(Rt+=`' + +((__t = (`+ui+`)) == null ? '' : __t) + +'`),gt=uo+ir.length,ir}),Rt+=`'; +`;var $n=ei.call(v,"variable")&&v.variable;if(!$n)Rt=`with (obj) { +`+Rt+` +} +`;else if(Y0.test($n))throw new Yt(t);Rt=(be?Rt.replace(Hr,""):Rt).replace(To,"$1").replace(Co,"$1;"),Rt="function("+($n||"obj")+`) { +`+($n?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(ye?", __e = _.escape":"")+(be?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Rt+`return __p +}`;var Nr=_v(function(){return sr(ee,Rn+"return "+Rt).apply(i,de)});if(Nr.source=Rt,mp(Nr))throw Nr;return Nr}function hv(d){return ki(d).toLowerCase()}function W2(d){return ki(d).toUpperCase()}function V2(d,v,x){if(d=ki(d),d&&(x||v===i))return xu(d);if(!d||!(v=il(v)))return d;var b=Yr(d),H=Yr(v),ee=sf(b,H),de=gl(b,H)+1;return aa(b,ee,de).join("")}function Ap(d,v,x){if(d=ki(d),d&&(x||v===i))return d.slice(0,fo(d)+1);if(!d||!(v=il(v)))return d;var b=Yr(d),H=gl(b,Yr(v))+1;return aa(b,0,H).join("")}function vv(d,v,x){if(d=ki(d),d&&(x||v===i))return d.replace(Ln,"");if(!d||!(v=il(v)))return d;var b=Yr(d),H=sf(b,Yr(v));return aa(b,H).join("")}function G2(d,v){var x=Ge,b=rt;if(ku(v)){var H="separator"in v?v.separator:H;x="length"in v?Cr(v.length):x,b="omission"in v?il(v.omission):b}d=ki(d);var ee=d.length;if(Lo(d)){var de=Yr(d);ee=de.length}if(x>=ee)return d;var ye=x-Ki(b);if(ye<1)return b;var be=de?aa(de,0,ye).join(""):d.slice(0,ye);if(H===i)return be+b;if(de&&(ye+=be.length-ye),g1(H)){if(d.slice(ye).search(H)){var gt,Dt=be;for(H.global||(H=fu(H.source,ki(xo.exec(H))+"g")),H.lastIndex=0;gt=H.exec(Dt);)var Rt=gt.index;be=be.slice(0,Rt===i?ye:Rt)}}else if(d.indexOf(il(H),ye)!=ye){var rn=be.lastIndexOf(H);rn>-1&&(be=be.slice(0,rn))}return be+b}function mv(d){return d=ki(d),d&&Si.test(d)?d.replace(L0,Oi):d}var yv=_f(function(d,v,x){return d+(x?" ":"")+v.toUpperCase()}),Rp=_h("toUpperCase");function gv(d,v,x){return d=ki(d),v=x?i:v,v===i?ps(d)?cf(d):v0(d):d.match(v)||[]}var _v=Mr(function(d,v){try{return ie(d,i,v)}catch(x){return mp(x)?x:new Yt(x)}}),uy=ol(function(d,v){return tt(v,function(x){x=Rl(x),ju(d,x,y1(d[x],d))}),d});function Ev(d){var v=d==null?0:d.length,x=zn();return d=v?Lt(d,function(b){if(typeof b[1]!="function")throw new Kr(E);return[x(b[0]),b[1]]}):[],Mr(function(b){for(var H=-1;++H$t)return[];var x=ae,b=Wn(d,ae);v=zn(v),d-=ae;for(var H=S0(b,v);++x0||v<0)?new lt(x):(d<0?x=x.takeRight(-d):d&&(x=x.drop(d)),v!==i&&(v=Cr(v),x=v<0?x.dropRight(-v):x.take(v-d)),x)},lt.prototype.takeRightWhile=function(d){return this.reverse().takeWhile(d).reverse()},lt.prototype.toArray=function(){return this.take(ae)},A(lt.prototype,function(d,v){var x=/^(?:filter|find|map|reject)|While$/.test(v),b=/^(?:head|last)$/.test(v),H=Y[b?"take"+(v=="last"?"Right":""):v],ee=b||/^find/.test(v);!H||(Y.prototype[v]=function(){var de=this.__wrapped__,ye=b?[1]:arguments,be=de instanceof lt,gt=ye[0],Dt=be||Jn(de),Rt=function(Zr){var ui=H.apply(Y,gn([Zr],ye));return b&&rn?ui[0]:ui};Dt&&x&&typeof gt=="function"&>.length!=1&&(be=Dt=!1);var rn=this.__chain__,Rn=!!this.__actions__.length,$n=ee&&!rn,Nr=be&&!Rn;if(!ee&&Dt){de=Nr?de:new lt(this);var ir=d.apply(de,ye);return ir.__actions__.push({func:h1,args:[Rt],thisArg:i}),new Ur(ir,rn)}return $n&&Nr?d.apply(this,ye):(ir=this.thru(Rt),$n?b?ir.value()[0]:ir.value():ir)})}),tt(["pop","push","shift","sort","splice","unshift"],function(d){var v=Vr[d],x=/^(?:push|sort|unshift)$/.test(d)?"tap":"thru",b=/^(?:pop|shift)$/.test(d);Y.prototype[d]=function(){var H=arguments;if(b&&!this.__chain__){var ee=this.value();return v.apply(Jn(ee)?ee:[],H)}return this[x](function(de){return v.apply(Jn(de)?de:[],H)})}}),A(lt.prototype,function(d,v){var x=Y[v];if(x){var b=x.name+"";ei.call(xn,b)||(xn[b]=[]),xn[b].push({name:v,func:x})}}),xn[ca(i,we).name]=[{name:"wrapper",func:i}],lt.prototype.clone=hi,lt.prototype.reverse=Qi,lt.prototype.value=g0,Y.prototype.at=Qd,Y.prototype.chain=jh,Y.prototype.commit=Jd,Y.prototype.next=zh,Y.prototype.plant=xm,Y.prototype.reverse=Of,Y.prototype.toJSON=Y.prototype.valueOf=Y.prototype.value=kf,Y.prototype.first=Y.prototype.head,Ru&&(Y.prototype[Ru]=Cm),Y},Z0=J0();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(Ni._=Z0,define(function(){return Z0})):z?((z.exports=Z0)._=Z0,B._=Z0):Ni._=Z0}).call(nm)});var GD=ce((Dne,VD)=>{"use strict";var Ai=VD.exports;VD.exports.default=Ai;var hu="[",ig="]",rm="\x07",$_=";",U5=process.env.TERM_PROGRAM==="Apple_Terminal";Ai.cursorTo=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");return typeof o!="number"?hu+(i+1)+"G":hu+(o+1)+";"+(i+1)+"H"};Ai.cursorMove=(i,o)=>{if(typeof i!="number")throw new TypeError("The `x` argument is required");let f="";return i<0?f+=hu+-i+"D":i>0&&(f+=hu+i+"C"),o<0?f+=hu+-o+"A":o>0&&(f+=hu+o+"B"),f};Ai.cursorUp=(i=1)=>hu+i+"A";Ai.cursorDown=(i=1)=>hu+i+"B";Ai.cursorForward=(i=1)=>hu+i+"C";Ai.cursorBackward=(i=1)=>hu+i+"D";Ai.cursorLeft=hu+"G";Ai.cursorSavePosition=U5?"7":hu+"s";Ai.cursorRestorePosition=U5?"8":hu+"u";Ai.cursorGetPosition=hu+"6n";Ai.cursorNextLine=hu+"E";Ai.cursorPrevLine=hu+"F";Ai.cursorHide=hu+"?25l";Ai.cursorShow=hu+"?25h";Ai.eraseLines=i=>{let o="";for(let f=0;f[ig,"8",$_,$_,o,rm,i,ig,"8",$_,$_,rm].join("");Ai.image=(i,o={})=>{let f=`${ig}1337;File=inline=1`;return o.width&&(f+=`;width=${o.width}`),o.height&&(f+=`;height=${o.height}`),o.preserveAspectRatio===!1&&(f+=";preserveAspectRatio=0"),f+":"+i.toString("base64")+rm};Ai.iTerm={setCwd:(i=process.cwd())=>`${ig}50;CurrentDir=${i}${rm}`,annotation:(i,o={})=>{let f=`${ig}1337;`,p=typeof o.x!="undefined",E=typeof o.y!="undefined";if((p||E)&&!(p&&E&&typeof o.length!="undefined"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return i=i.replace(/\|/g,""),f+=o.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",o.length>0?f+=(p?[i,o.length,o.x,o.y]:[o.length,i]).join("|"):f+=i,f+rm}}});var z5=ce((wne,YD)=>{"use strict";var j5=(i,o)=>{for(let f of Reflect.ownKeys(o))Object.defineProperty(i,f,Object.getOwnPropertyDescriptor(o,f));return i};YD.exports=j5;YD.exports.default=j5});var H5=ce((Sne,e4)=>{"use strict";var UK=z5(),t4=new WeakMap,q5=(i,o={})=>{if(typeof i!="function")throw new TypeError("Expected a function");let f,p=0,E=i.displayName||i.name||"",t=function(...k){if(t4.set(t,++p),p===1)f=i.apply(this,k),i=null;else if(o.throw===!0)throw new Error(`Function \`${E}\` can only be called once`);return f};return UK(t,i),t4.set(t,p),t};e4.exports=q5;e4.exports.default=q5;e4.exports.callCount=i=>{if(!t4.has(i))throw new Error(`The given function \`${i.name}\` is not wrapped by the \`onetime\` package`);return t4.get(i)}});var W5=ce((Tne,n4)=>{n4.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&n4.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&n4.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var JD=ce((Cne,ug)=>{var jK=require("assert"),og=W5(),zK=/^win/i.test(process.platform),r4=require("events");typeof r4!="function"&&(r4=r4.EventEmitter);var zl;process.__signal_exit_emitter__?zl=process.__signal_exit_emitter__:(zl=process.__signal_exit_emitter__=new r4,zl.count=0,zl.emitted={});zl.infinite||(zl.setMaxListeners(Infinity),zl.infinite=!0);ug.exports=function(i,o){jK.equal(typeof i,"function","a callback must be provided for exit handler"),lg===!1&&V5();var f="exit";o&&o.alwaysLast&&(f="afterexit");var p=function(){zl.removeListener(f,i),zl.listeners("exit").length===0&&zl.listeners("afterexit").length===0&&KD()};return zl.on(f,i),p};ug.exports.unload=KD;function KD(){!lg||(lg=!1,og.forEach(function(i){try{process.removeListener(i,XD[i])}catch(o){}}),process.emit=QD,process.reallyExit=G5,zl.count-=1)}function im(i,o,f){zl.emitted[i]||(zl.emitted[i]=!0,zl.emit(i,o,f))}var XD={};og.forEach(function(i){XD[i]=function(){var f=process.listeners(i);f.length===zl.count&&(KD(),im("exit",null,i),im("afterexit",null,i),zK&&i==="SIGHUP"&&(i="SIGINT"),process.kill(process.pid,i))}});ug.exports.signals=function(){return og};ug.exports.load=V5;var lg=!1;function V5(){lg||(lg=!0,zl.count+=1,og=og.filter(function(i){try{return process.on(i,XD[i]),!0}catch(o){return!1}}),process.emit=HK,process.reallyExit=qK)}var G5=process.reallyExit;function qK(i){process.exitCode=i||0,im("exit",process.exitCode,null),im("afterexit",process.exitCode,null),G5.call(process,process.exitCode)}var QD=process.emit;function HK(i,o){if(i==="exit"){o!==void 0&&(process.exitCode=o);var f=QD.apply(this,arguments);return im("exit",process.exitCode,null),im("afterexit",process.exitCode,null),f}else return QD.apply(this,arguments)}});var K5=ce((xne,Y5)=>{"use strict";var WK=H5(),VK=JD();Y5.exports=WK(()=>{VK(()=>{process.stderr.write("[?25h")},{alwaysLast:!0})})});var ZD=ce(um=>{"use strict";var GK=K5(),i4=!1;um.show=(i=process.stderr)=>{!i.isTTY||(i4=!1,i.write("[?25h"))};um.hide=(i=process.stderr)=>{!i.isTTY||(GK(),i4=!0,i.write("[?25l"))};um.toggle=(i,o)=>{i!==void 0&&(i4=i),i4?um.show(o):um.hide(o)}});var Z5=ce(sg=>{"use strict";var X5=sg&&sg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(sg,"__esModule",{value:!0});var Q5=X5(GD()),J5=X5(ZD()),YK=(i,{showCursor:o=!1}={})=>{let f=0,p="",E=!1,t=k=>{!o&&!E&&(J5.default.hide(),E=!0);let L=k+` +`;L!==p&&(p=L,i.write(Q5.default.eraseLines(f)+L),f=L.split(` +`).length)};return t.clear=()=>{i.write(Q5.default.eraseLines(f)),p="",f=0},t.done=()=>{p="",f=0,o||(J5.default.show(),E=!1)},t};sg.default={create:YK}});var e9=ce((One,$5)=>{$5.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var r9=ce(Ra=>{"use strict";var t9=e9(),bc=process.env;Object.defineProperty(Ra,"_vendors",{value:t9.map(function(i){return i.constant})});Ra.name=null;Ra.isPR=null;t9.forEach(function(i){var o=Array.isArray(i.env)?i.env:[i.env],f=o.every(function(p){return n9(p)});if(Ra[i.constant]=f,f)switch(Ra.name=i.name,typeof i.pr){case"string":Ra.isPR=!!bc[i.pr];break;case"object":"env"in i.pr?Ra.isPR=i.pr.env in bc&&bc[i.pr.env]!==i.pr.ne:"any"in i.pr?Ra.isPR=i.pr.any.some(function(p){return!!bc[p]}):Ra.isPR=n9(i.pr);break;default:Ra.isPR=null}});Ra.isCI=!!(bc.CI||bc.CONTINUOUS_INTEGRATION||bc.BUILD_NUMBER||bc.RUN_ID||Ra.name);function n9(i){return typeof i=="string"?!!bc[i]:Object.keys(i).every(function(o){return bc[o]===i[o]})}});var u9=ce((Mne,i9)=>{"use strict";i9.exports=r9().isCI});var l9=ce((Nne,o9)=>{"use strict";var KK=i=>{let o=new Set;do for(let f of Reflect.ownKeys(i))o.add([i,f]);while((i=Reflect.getPrototypeOf(i))&&i!==Object.prototype);return o};o9.exports=(i,{include:o,exclude:f}={})=>{let p=E=>{let t=k=>typeof k=="string"?E===k:k.test(E);return o?o.some(t):f?!f.some(t):!0};for(let[E,t]of KK(i.constructor.prototype)){if(t==="constructor"||!p(t))continue;let k=Reflect.getOwnPropertyDescriptor(E,t);k&&typeof k.value=="function"&&(i[t]=i[t].bind(i))}return i}});var h9=ce($i=>{"use strict";Object.defineProperty($i,"__esModule",{value:!0});var om,ag,u4,o4,$D;typeof window=="undefined"||typeof MessageChannel!="function"?(lm=null,ew=null,tw=function(){if(lm!==null)try{var i=$i.unstable_now();lm(!0,i),lm=null}catch(o){throw setTimeout(tw,0),o}},s9=Date.now(),$i.unstable_now=function(){return Date.now()-s9},om=function(i){lm!==null?setTimeout(om,0,i):(lm=i,setTimeout(tw,0))},ag=function(i,o){ew=setTimeout(i,o)},u4=function(){clearTimeout(ew)},o4=function(){return!1},$D=$i.unstable_forceFrameRate=function(){}):(l4=window.performance,nw=window.Date,a9=window.setTimeout,f9=window.clearTimeout,typeof console!="undefined"&&(c9=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof c9!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof l4=="object"&&typeof l4.now=="function"?$i.unstable_now=function(){return l4.now()}:(d9=nw.now(),$i.unstable_now=function(){return nw.now()-d9}),fg=!1,cg=null,s4=-1,rw=5,iw=0,o4=function(){return $i.unstable_now()>=iw},$D=function(){},$i.unstable_forceFrameRate=function(i){0>i||125f4(k,f))N!==void 0&&0>f4(N,k)?(i[p]=N,i[L]=f,p=L):(i[p]=k,i[t]=f,p=t);else if(N!==void 0&&0>f4(N,f))i[p]=N,i[L]=f,p=L;else break e}}return o}return null}function f4(i,o){var f=i.sortIndex-o.sortIndex;return f!==0?f:i.id-o.id}var Xf=[],dd=[],XK=1,Rs=null,ls=3,d4=!1,$p=!1,dg=!1;function p4(i){for(var o=uf(dd);o!==null;){if(o.callback===null)c4(dd);else if(o.startTime<=i)c4(dd),o.sortIndex=o.expirationTime,ow(Xf,o);else break;o=uf(dd)}}function lw(i){if(dg=!1,p4(i),!$p)if(uf(Xf)!==null)$p=!0,om(sw);else{var o=uf(dd);o!==null&&ag(lw,o.startTime-i)}}function sw(i,o){$p=!1,dg&&(dg=!1,u4()),d4=!0;var f=ls;try{for(p4(o),Rs=uf(Xf);Rs!==null&&(!(Rs.expirationTime>o)||i&&!o4());){var p=Rs.callback;if(p!==null){Rs.callback=null,ls=Rs.priorityLevel;var E=p(Rs.expirationTime<=o);o=$i.unstable_now(),typeof E=="function"?Rs.callback=E:Rs===uf(Xf)&&c4(Xf),p4(o)}else c4(Xf);Rs=uf(Xf)}if(Rs!==null)var t=!0;else{var k=uf(dd);k!==null&&ag(lw,k.startTime-o),t=!1}return t}finally{Rs=null,ls=f,d4=!1}}function p9(i){switch(i){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var QK=$D;$i.unstable_ImmediatePriority=1;$i.unstable_UserBlockingPriority=2;$i.unstable_NormalPriority=3;$i.unstable_IdlePriority=5;$i.unstable_LowPriority=4;$i.unstable_runWithPriority=function(i,o){switch(i){case 1:case 2:case 3:case 4:case 5:break;default:i=3}var f=ls;ls=i;try{return o()}finally{ls=f}};$i.unstable_next=function(i){switch(ls){case 1:case 2:case 3:var o=3;break;default:o=ls}var f=ls;ls=o;try{return i()}finally{ls=f}};$i.unstable_scheduleCallback=function(i,o,f){var p=$i.unstable_now();if(typeof f=="object"&&f!==null){var E=f.delay;E=typeof E=="number"&&0p?(i.sortIndex=E,ow(dd,i),uf(Xf)===null&&i===uf(dd)&&(dg?u4():dg=!0,ag(lw,E-p))):(i.sortIndex=f,ow(Xf,i),$p||d4||($p=!0,om(sw))),i};$i.unstable_cancelCallback=function(i){i.callback=null};$i.unstable_wrapCallback=function(i){var o=ls;return function(){var f=ls;ls=o;try{return i.apply(this,arguments)}finally{ls=f}}};$i.unstable_getCurrentPriorityLevel=function(){return ls};$i.unstable_shouldYield=function(){var i=$i.unstable_now();p4(i);var o=uf(Xf);return o!==Rs&&Rs!==null&&o!==null&&o.callback!==null&&o.startTime<=i&&o.expirationTime{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(Ri,"__esModule",{value:!0});var i=!1,o=!1,f=!0,p,E,t,k,L;if(typeof window=="undefined"||typeof MessageChannel!="function"){var N=null,C=null,U=function(){if(N!==null)try{var Et=Ri.unstable_now(),Pt=!0;N(Pt,Et),N=null}catch(Bn){throw setTimeout(U,0),Bn}},q=Date.now();Ri.unstable_now=function(){return Date.now()-q},p=function(Et){N!==null?setTimeout(p,0,Et):(N=Et,setTimeout(U,0))},E=function(Et,Pt){C=setTimeout(Et,Pt)},t=function(){clearTimeout(C)},k=function(){return!1},L=Ri.unstable_forceFrameRate=function(){}}else{var W=window.performance,ne=window.Date,m=window.setTimeout,we=window.clearTimeout;if(typeof console!="undefined"){var Se=window.requestAnimationFrame,he=window.cancelAnimationFrame;typeof Se!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof he!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")}if(typeof W=="object"&&typeof W.now=="function")Ri.unstable_now=function(){return W.now()};else{var ge=ne.now();Ri.unstable_now=function(){return ne.now()-ge}}var ze=!1,pe=null,Oe=-1,le=5,Ue=0,Ge=300,rt=!1;if(o&&navigator!==void 0&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0){var wt=navigator.scheduling;k=function(){var Et=Ri.unstable_now();return Et>=Ue?rt||wt.isInputPending()?!0:Et>=Ge:!1},L=function(){rt=!0}}else k=function(){return Ri.unstable_now()>=Ue},L=function(){};Ri.unstable_forceFrameRate=function(Et){if(Et<0||Et>125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported");return}Et>0?le=Math.floor(1e3/Et):le=5};var xt=function(){if(pe!==null){var Et=Ri.unstable_now();Ue=Et+le;var Pt=!0;try{var Bn=pe(Pt,Et);Bn?ft.postMessage(null):(ze=!1,pe=null)}catch(Ir){throw ft.postMessage(null),Ir}}else ze=!1;rt=!1},$e=new MessageChannel,ft=$e.port2;$e.port1.onmessage=xt,p=function(Et){pe=Et,ze||(ze=!0,ft.postMessage(null))},E=function(Et,Pt){Oe=m(function(){Et(Ri.unstable_now())},Pt)},t=function(){we(Oe),Oe=-1}}function Ke(Et,Pt){var Bn=Et.length;Et.push(Pt),at(Et,Pt,Bn)}function jt(Et){var Pt=Et[0];return Pt===void 0?null:Pt}function $t(Et){var Pt=Et[0];if(Pt!==void 0){var Bn=Et.pop();return Bn!==Pt&&(Et[0]=Bn,Q(Et,Bn,0)),Pt}else return null}function at(Et,Pt,Bn){for(var Ir=Bn;;){var ji=Math.floor((Ir-1)/2),Wr=Et[ji];if(Wr!==void 0&&ae(Wr,Pt)>0)Et[ji]=Pt,Et[Ir]=Wr,Ir=ji;else return}}function Q(Et,Pt,Bn){for(var Ir=Bn,ji=Et.length;Irur){if(ur*=2,ur>Fr){console.error("Scheduler Profiling: Event log exceeded maximum size. Don't forget to call `stopLoggingProfilingEvents()`."),mr();return}var Bn=new Int32Array(ur*4);Bn.set(Kt),br=Bn.buffer,Kt=Bn}Kt.set(Et,Pt)}}function ai(){ur=fr,br=new ArrayBuffer(ur*4),Kt=new Int32Array(br),vu=0}function mr(){var Et=br;return ur=0,br=null,Kt=null,vu=0,Et}function Xo(Et,Pt){f&&(Wt[Vn]++,Kt!==null&&eu([a0,Pt*1e3,Et.id,Et.priorityLevel]))}function W0(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Vn]--,Kt!==null&&eu([So,Pt*1e3,Et.id]))}function Lu(Et,Pt){f&&(Wt[Vn]--,Kt!==null&&eu([Os,Pt*1e3,Et.id]))}function V0(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Vn]--,Kt!==null&&eu([Go,Pt*1e3,Et.id]))}function Hr(Et,Pt){f&&(ln++,Wt[vr]=Et.priorityLevel,Wt[w]=Et.id,Wt[Ut]=ln,Kt!==null&&eu([Yo,Pt*1e3,Et.id,ln]))}function To(Et,Pt){f&&(Wt[vr]=Ce,Wt[w]=0,Wt[Ut]=0,Kt!==null&&eu([Ko,Pt*1e3,Et.id,ln]))}function Co(Et){f&&(An++,Kt!==null&&eu([qt,Et*1e3,An]))}function L0(Et){f&&Kt!==null&&eu([_i,Et*1e3,An])}var tu=1073741823,Si=-1,ks=250,Hl=5e3,F0=1e4,f0=tu,Pr=[],Ei=[],G0=1,fi=!1,Zt=null,Ln=ct,Di=!1,ci=!1,Ht=!1;function Du(Et){for(var Pt=jt(Ei);Pt!==null;){if(Pt.callback===null)$t(Ei);else if(Pt.startTime<=Et)$t(Ei),Pt.sortIndex=Pt.expirationTime,Ke(Pr,Pt),f&&(Xo(Pt,Et),Pt.isQueued=!0);else return;Pt=jt(Ei)}}function Yi(Et){if(Ht=!1,Du(Et),!ci)if(jt(Pr)!==null)ci=!0,p(Y0);else{var Pt=jt(Ei);Pt!==null&&E(Yi,Pt.startTime-Et)}}function Y0(Et,Pt){f&&L0(Pt),ci=!1,Ht&&(Ht=!1,t()),Di=!0;var Bn=Ln;try{if(f)try{return Ui(Et,Pt)}catch(Wr){if(Zt!==null){var Ir=Ri.unstable_now();V0(Zt,Ir),Zt.isQueued=!1}throw Wr}else return Ui(Et,Pt)}finally{if(Zt=null,Ln=Bn,Di=!1,f){var ji=Ri.unstable_now();Co(ji)}}}function Ui(Et,Pt){var Bn=Pt;for(Du(Bn),Zt=jt(Pr);Zt!==null&&!(i&&fi)&&!(Zt.expirationTime>Bn&&(!Et||k()));){var Ir=Zt.callback;if(Ir!==null){Zt.callback=null,Ln=Zt.priorityLevel;var ji=Zt.expirationTime<=Bn;Hr(Zt,Bn);var Wr=Ir(ji);Bn=Ri.unstable_now(),typeof Wr=="function"?(Zt.callback=Wr,To(Zt,Bn)):(f&&(W0(Zt,Bn),Zt.isQueued=!1),Zt===jt(Pr)&&$t(Pr)),Du(Bn)}else $t(Pr);Zt=jt(Pr)}if(Zt!==null)return!0;var wu=jt(Ei);return wu!==null&&E(Yi,wu.startTime-Bn),!1}function Wl(Et,Pt){switch(Et){case ue:case je:case ct:case At:case en:break;default:Et=ct}var Bn=Ln;Ln=Et;try{return Pt()}finally{Ln=Bn}}function xo(Et){var Pt;switch(Ln){case ue:case je:case ct:Pt=ct;break;default:Pt=Ln;break}var Bn=Ln;Ln=Pt;try{return Et()}finally{Ln=Bn}}function ni(Et){var Pt=Ln;return function(){var Bn=Ln;Ln=Pt;try{return Et.apply(this,arguments)}finally{Ln=Bn}}}function oo(Et){switch(Et){case ue:return Si;case je:return ks;case en:return f0;case At:return F0;case ct:default:return Hl}}function Vl(Et,Pt,Bn){var Ir=Ri.unstable_now(),ji,Wr;if(typeof Bn=="object"&&Bn!==null){var wu=Bn.delay;typeof wu=="number"&&wu>0?ji=Ir+wu:ji=Ir,Wr=typeof Bn.timeout=="number"?Bn.timeout:oo(Et)}else Wr=oo(Et),ji=Ir;var c0=ji+Wr,Ti={id:G0++,callback:Pt,priorityLevel:Et,startTime:ji,expirationTime:c0,sortIndex:-1};return f&&(Ti.isQueued=!1),ji>Ir?(Ti.sortIndex=ji,Ke(Ei,Ti),jt(Pr)===null&&Ti===jt(Ei)&&(Ht?t():Ht=!0,E(Yi,ji-Ir))):(Ti.sortIndex=c0,Ke(Pr,Ti),f&&(Xo(Ti,Ir),Ti.isQueued=!0),!ci&&!Di&&(ci=!0,p(Y0))),Ti}function Ao(){fi=!0}function Ms(){fi=!1,!ci&&!Di&&(ci=!0,p(Y0))}function Xn(){return jt(Pr)}function Qo(Et){if(f&&Et.isQueued){var Pt=Ri.unstable_now();Lu(Et,Pt),Et.isQueued=!1}Et.callback=null}function lo(){return Ln}function b0(){var Et=Ri.unstable_now();Du(Et);var Pt=jt(Pr);return Pt!==Zt&&Zt!==null&&Pt!==null&&Pt.callback!==null&&Pt.startTime<=Et&&Pt.expirationTime{"use strict";process.env.NODE_ENV==="production"?aw.exports=h9():aw.exports=v9()});var m9=ce((Pne,pg)=>{pg.exports=function i(o){"use strict";var f=eg(),p=su(),E=h4();function t(g){for(var y="https://reactjs.org/docs/error-decoder.html?invariant="+g,A=1;AG0||(g.current=Ei[G0],Ei[G0]=null,G0--)}function Zt(g,y){G0++,Ei[G0]=g.current,g.current=y}var Ln={},Di={current:Ln},ci={current:!1},Ht=Ln;function Du(g,y){var A=g.type.contextTypes;if(!A)return Ln;var F=g.stateNode;if(F&&F.__reactInternalMemoizedUnmaskedChildContext===y)return F.__reactInternalMemoizedMaskedChildContext;var I={},J;for(J in A)I[J]=y[J];return F&&(g=g.stateNode,g.__reactInternalMemoizedUnmaskedChildContext=y,g.__reactInternalMemoizedMaskedChildContext=I),I}function Yi(g){return g=g.childContextTypes,g!=null}function Y0(g){fi(ci,g),fi(Di,g)}function Ui(g){fi(ci,g),fi(Di,g)}function Wl(g,y,A){if(Di.current!==Ln)throw Error(t(168));Zt(Di,y,g),Zt(ci,A,g)}function xo(g,y,A){var F=g.stateNode;if(g=y.childContextTypes,typeof F.getChildContext!="function")return A;F=F.getChildContext();for(var I in F)if(!(I in g))throw Error(t(108,Ge(y)||"Unknown",I));return f({},A,{},F)}function ni(g){var y=g.stateNode;return y=y&&y.__reactInternalMemoizedMergedChildContext||Ln,Ht=Di.current,Zt(Di,y,g),Zt(ci,ci.current,g),!0}function oo(g,y,A){var F=g.stateNode;if(!F)throw Error(t(169));A?(y=xo(g,y,Ht),F.__reactInternalMemoizedMergedChildContext=y,fi(ci,g),fi(Di,g),Zt(Di,y,g)):fi(ci,g),Zt(ci,A,g)}var Vl=E.unstable_runWithPriority,Ao=E.unstable_scheduleCallback,Ms=E.unstable_cancelCallback,Xn=E.unstable_shouldYield,Qo=E.unstable_requestPaint,lo=E.unstable_now,b0=E.unstable_getCurrentPriorityLevel,yl=E.unstable_ImmediatePriority,Ro=E.unstable_UserBlockingPriority,Et=E.unstable_NormalPriority,Pt=E.unstable_LowPriority,Bn=E.unstable_IdlePriority,Ir={},ji=Qo!==void 0?Qo:function(){},Wr=null,wu=null,c0=!1,Ti=lo(),d0=1e4>Ti?lo:function(){return lo()-Ti};function as(){switch(b0()){case yl:return 99;case Ro:return 98;case Et:return 97;case Pt:return 96;case Bn:return 95;default:throw Error(t(332))}}function St(g){switch(g){case 99:return yl;case 98:return Ro;case 97:return Et;case 96:return Pt;case 95:return Bn;default:throw Error(t(332))}}function so(g,y){return g=St(g),Vl(g,y)}function Jo(g,y,A){return g=St(g),Ao(g,y,A)}function Gl(g){return Wr===null?(Wr=[g],wu=Ao(yl,fs)):Wr.push(g),Ir}function Fu(){if(wu!==null){var g=wu;wu=null,Ms(g)}fs()}function fs(){if(!c0&&Wr!==null){c0=!0;var g=0;try{var y=Wr;so(99,function(){for(;g=y&&(fo=!0),g.firstContext=null)}function Tu(g,y){if(Su!==g&&y!==!1&&y!==0)if((typeof y!="number"||y===1073741823)&&(Su=g,y=1073741823),y={context:g,observedBits:y,next:null},mi===null){if(or===null)throw Error(t(308));mi=y,or.dependencies={expirationTime:0,firstContext:y,responders:null}}else mi=mi.next=y;return un?g._currentValue:g._currentValue2}var ao=!1;function Iu(g){return{baseState:g,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Oa(g){return{baseState:g.baseState,firstUpdate:g.firstUpdate,lastUpdate:g.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function p0(g,y){return{expirationTime:g,suspenseConfig:y,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Zs(g,y){g.lastUpdate===null?g.firstUpdate=g.lastUpdate=y:(g.lastUpdate.next=y,g.lastUpdate=y)}function K0(g,y){var A=g.alternate;if(A===null){var F=g.updateQueue,I=null;F===null&&(F=g.updateQueue=Iu(g.memoizedState))}else F=g.updateQueue,I=A.updateQueue,F===null?I===null?(F=g.updateQueue=Iu(g.memoizedState),I=A.updateQueue=Iu(A.memoizedState)):F=g.updateQueue=Oa(I):I===null&&(I=A.updateQueue=Oa(F));I===null||F===I?Zs(F,y):F.lastUpdate===null||I.lastUpdate===null?(Zs(F,y),Zs(I,y)):(Zs(F,y),I.lastUpdate=y)}function $s(g,y){var A=g.updateQueue;A=A===null?g.updateQueue=Iu(g.memoizedState):ka(g,A),A.lastCapturedUpdate===null?A.firstCapturedUpdate=A.lastCapturedUpdate=y:(A.lastCapturedUpdate.next=y,A.lastCapturedUpdate=y)}function ka(g,y){var A=g.alternate;return A!==null&&y===A.updateQueue&&(y=g.updateQueue=Oa(y)),y}function cs(g,y,A,F,I,J){switch(A.tag){case 1:return g=A.payload,typeof g=="function"?g.call(J,F,I):g;case 3:g.effectTag=g.effectTag&-4097|64;case 0:if(g=A.payload,I=typeof g=="function"?g.call(J,F,I):g,I==null)break;return f({},F,I);case 2:ao=!0}return F}function w0(g,y,A,F,I){ao=!1,y=ka(g,y);for(var J=y.baseState,fe=null,mt=0,Ct=y.firstUpdate,Mt=J;Ct!==null;){var Er=Ct.expirationTime;Erii?(qi=tr,tr=null):qi=tr.sibling;var jr=iu(He,tr,ut[ii],Jt);if(jr===null){tr===null&&(tr=qi);break}g&&tr&&jr.alternate===null&&y(He,tr),Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr,tr=qi}if(ii===ut.length)return A(He,tr),jn;if(tr===null){for(;iiii?(qi=tr,tr=null):qi=tr.sibling;var gu=iu(He,tr,jr.value,Jt);if(gu===null){tr===null&&(tr=qi);break}g&&tr&&gu.alternate===null&&y(He,tr),Be=J(gu,Be,ii),ti===null?jn=gu:ti.sibling=gu,ti=gu,tr=qi}if(jr.done)return A(He,tr),jn;if(tr===null){for(;!jr.done;ii++,jr=ut.next())jr=$u(He,jr.value,Jt),jr!==null&&(Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr);return jn}for(tr=F(He,tr);!jr.done;ii++,jr=ut.next())jr=j0(tr,He,ii,jr.value,Jt),jr!==null&&(g&&jr.alternate!==null&&tr.delete(jr.key===null?ii:jr.key),Be=J(jr,Be,ii),ti===null?jn=jr:ti.sibling=jr,ti=jr);return g&&tr.forEach(function(Ba){return y(He,Ba)}),jn}return function(He,Be,ut,Jt){var jn=typeof ut=="object"&&ut!==null&&ut.type===U&&ut.key===null;jn&&(ut=ut.props.children);var ti=typeof ut=="object"&&ut!==null;if(ti)switch(ut.$$typeof){case N:e:{for(ti=ut.key,jn=Be;jn!==null;){if(jn.key===ti)if(jn.tag===7?ut.type===U:jn.elementType===ut.type){A(He,jn.sibling),Be=I(jn,ut.type===U?ut.props.children:ut.props,Jt),Be.ref=Fs(He,jn,ut),Be.return=He,He=Be;break e}else{A(He,jn);break}else y(He,jn);jn=jn.sibling}ut.type===U?(Be=Zu(ut.props.children,He.mode,Jt,ut.key),Be.return=He,He=Be):(Jt=Ia(ut.type,ut.key,ut.props,null,He.mode,Jt),Jt.ref=Fs(He,Be,ut),Jt.return=He,He=Jt)}return fe(He);case C:e:{for(jn=ut.key;Be!==null;){if(Be.key===jn)if(Be.tag===4&&Be.stateNode.containerInfo===ut.containerInfo&&Be.stateNode.implementation===ut.implementation){A(He,Be.sibling),Be=I(Be,ut.children||[],Jt),Be.return=He,He=Be;break e}else{A(He,Be);break}else y(He,Be);Be=Be.sibling}Be=vf(ut,He.mode,Jt),Be.return=He,He=Be}return fe(He)}if(typeof ut=="string"||typeof ut=="number")return ut=""+ut,Be!==null&&Be.tag===6?(A(He,Be.sibling),Be=I(Be,ut,Jt),Be.return=He,He=Be):(A(He,Be),Be=U0(ut,He.mode,Jt),Be.return=He,He=Be),fe(He);if(h0(ut))return Tl(He,Be,ut,Jt);if(le(ut))return e0(He,Be,ut,Jt);if(ti&&Ni(He,ut),typeof ut=="undefined"&&!jn)switch(He.tag){case 1:case 0:throw He=He.type,Error(t(152,He.displayName||He.name||"Component"))}return A(He,Be)}}var z=B(!0),G=B(!1),$={},De={current:$},me={current:$},xe={current:$};function Z(g){if(g===$)throw Error(t(174));return g}function ke(g,y){Zt(xe,y,g),Zt(me,g,g),Zt(De,$,g),y=jt(y),fi(De,g),Zt(De,y,g)}function Xe(g){fi(De,g),fi(me,g),fi(xe,g)}function ht(g){var y=Z(xe.current),A=Z(De.current);y=$t(A,g.type,y),A!==y&&(Zt(me,g,g),Zt(De,y,g))}function ie(g){me.current===g&&(fi(De,g),fi(me,g))}var qe={current:0};function tt(g){for(var y=g;y!==null;){if(y.tag===13){var A=y.memoizedState;if(A!==null&&(A=A.dehydrated,A===null||Hr(A)||To(A)))return y}else if(y.tag===19&&y.memoizedProps.revealOrder!==void 0){if((y.effectTag&64)!=0)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===g)break;for(;y.sibling===null;){if(y.return===null||y.return===g)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}function Tt(g,y){return{responder:g,props:y}}var kt=k.ReactCurrentDispatcher,bt=k.ReactCurrentBatchConfig,on=0,tn=null,Lt=null,gn=null,lr=null,Qn=null,_r=null,Cn=0,Ar=null,v0=0,Rr=!1,nt=null,_t=0;function Ze(){throw Error(t(321))}function Ft(g,y){if(y===null)return!1;for(var A=0;ACn&&(Cn=Er,La(Cn))):(oc(Er,Ct.suspenseConfig),J=Ct.eagerReducer===g?Ct.eagerState:g(J,Ct.action)),fe=Ct,Ct=Ct.next}while(Ct!==null&&Ct!==F);Mt||(mt=fe,I=J),Ne(J,y.memoizedState)||(fo=!0),y.memoizedState=J,y.baseUpdate=mt,y.baseState=I,A.lastRenderedState=J}return[y.memoizedState,A.dispatch]}function S0(g){var y=Yn();return typeof g=="function"&&(g=g()),y.memoizedState=y.baseState=g,g=y.queue={last:null,dispatch:null,lastRenderedReducer:nu,lastRenderedState:g},g=g.dispatch=bs.bind(null,tn,g),[y.memoizedState,g]}function X0(g){return Cu(nu,g)}function xu(g,y,A,F){return g={tag:g,create:y,destroy:A,deps:F,next:null},Ar===null?(Ar={lastEffect:null},Ar.lastEffect=g.next=g):(y=Ar.lastEffect,y===null?Ar.lastEffect=g.next=g:(A=y.next,y.next=g,g.next=A,Ar.lastEffect=g)),g}function di(g,y,A,F){var I=Yn();v0|=g,I.memoizedState=xu(y,A,void 0,F===void 0?null:F)}function ko(g,y,A,F){var I=yr();F=F===void 0?null:F;var J=void 0;if(Lt!==null){var fe=Lt.memoizedState;if(J=fe.destroy,F!==null&&Ft(F,fe.deps)){xu(0,A,J,F);return}}v0|=g,I.memoizedState=xu(y,A,J,F)}function Zo(g,y){return di(516,192,g,y)}function sf(g,y){return ko(516,192,g,y)}function gl(g,y){if(typeof y=="function")return g=g(),y(g),function(){y(null)};if(y!=null)return g=g(),y.current=g,function(){y.current=null}}function af(){}function Mo(g,y){return Yn().memoizedState=[g,y===void 0?null:y],g}function ds(g,y){var A=yr();y=y===void 0?null:y;var F=A.memoizedState;return F!==null&&y!==null&&Ft(y,F[1])?F[0]:(A.memoizedState=[g,y],g)}function bs(g,y,A){if(!(25>_t))throw Error(t(301));var F=g.alternate;if(g===tn||F!==null&&F===tn)if(Rr=!0,g={expirationTime:on,suspenseConfig:null,action:A,eagerReducer:null,eagerState:null,next:null},nt===null&&(nt=new Map),A=nt.get(y),A===void 0)nt.set(y,g);else{for(y=A;y.next!==null;)y=y.next;y.next=g}else{var I=g0(),J=ri.suspense;I=bn(I,g,J),J={expirationTime:I,suspenseConfig:J,action:A,eagerReducer:null,eagerState:null,next:null};var fe=y.last;if(fe===null)J.next=J;else{var mt=fe.next;mt!==null&&(J.next=mt),fe.next=J}if(y.last=J,g.expirationTime===0&&(F===null||F.expirationTime===0)&&(F=y.lastRenderedReducer,F!==null))try{var Ct=y.lastRenderedState,Mt=F(Ct,A);if(J.eagerReducer=F,J.eagerState=Mt,Ne(Mt,Ct))return}catch(Er){}finally{}Qu(g,I)}}var No={readContext:Tu,useCallback:Ze,useContext:Ze,useEffect:Ze,useImperativeHandle:Ze,useLayoutEffect:Ze,useMemo:Ze,useReducer:Ze,useRef:Ze,useState:Ze,useDebugValue:Ze,useResponder:Ze,useDeferredValue:Ze,useTransition:Ze},Lo={readContext:Tu,useCallback:Mo,useContext:Tu,useEffect:Zo,useImperativeHandle:function(g,y,A){return A=A!=null?A.concat([g]):null,di(4,36,gl.bind(null,y,g),A)},useLayoutEffect:function(g,y){return di(4,36,g,y)},useMemo:function(g,y){var A=Yn();return y=y===void 0?null:y,g=g(),A.memoizedState=[g,y],g},useReducer:function(g,y,A){var F=Yn();return y=A!==void 0?A(y):y,F.memoizedState=F.baseState=y,g=F.queue={last:null,dispatch:null,lastRenderedReducer:g,lastRenderedState:y},g=g.dispatch=bs.bind(null,tn,g),[F.memoizedState,g]},useRef:function(g){var y=Yn();return g={current:g},y.memoizedState=g},useState:S0,useDebugValue:af,useResponder:Tt,useDeferredValue:function(g,y){var A=S0(g),F=A[0],I=A[1];return Zo(function(){E.unstable_next(function(){var J=bt.suspense;bt.suspense=y===void 0?null:y;try{I(g)}finally{bt.suspense=J}})},[g,y]),F},useTransition:function(g){var y=S0(!1),A=y[0],F=y[1];return[Mo(function(I){F(!0),E.unstable_next(function(){var J=bt.suspense;bt.suspense=g===void 0?null:g;try{F(!1),I()}finally{bt.suspense=J}})},[g,A]),A]}},ps={readContext:Tu,useCallback:ds,useContext:Tu,useEffect:sf,useImperativeHandle:function(g,y,A){return A=A!=null?A.concat([g]):null,ko(4,36,gl.bind(null,y,g),A)},useLayoutEffect:function(g,y){return ko(4,36,g,y)},useMemo:function(g,y){var A=yr();y=y===void 0?null:y;var F=A.memoizedState;return F!==null&&y!==null&&Ft(y,F[1])?F[0]:(g=g(),A.memoizedState=[g,y],g)},useReducer:Cu,useRef:function(){return yr().memoizedState},useState:X0,useDebugValue:af,useResponder:Tt,useDeferredValue:function(g,y){var A=X0(g),F=A[0],I=A[1];return sf(function(){E.unstable_next(function(){var J=bt.suspense;bt.suspense=y===void 0?null:y;try{I(g)}finally{bt.suspense=J}})},[g,y]),F},useTransition:function(g){var y=X0(!1),A=y[0],F=y[1];return[ds(function(I){F(!0),E.unstable_next(function(){var J=bt.suspense;bt.suspense=g===void 0?null:g;try{F(!1),I()}finally{bt.suspense=J}})},[g,A]),A]}},Vu=null,yu=null,pi=!1;function T0(g,y){var A=Io(5,null,null,0);A.elementType="DELETED",A.type="DELETED",A.stateNode=y,A.return=g,A.effectTag=8,g.lastEffect!==null?(g.lastEffect.nextEffect=A,g.lastEffect=A):g.firstEffect=g.lastEffect=A}function Q0(g,y){switch(g.tag){case 5:return y=Lu(y,g.type,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 6:return y=V0(y,g.pendingProps),y!==null?(g.stateNode=y,!0):!1;case 13:return!1;default:return!1}}function Fo(g){if(pi){var y=yu;if(y){var A=y;if(!Q0(g,y)){if(y=Co(A),!y||!Q0(g,y)){g.effectTag=g.effectTag&-1025|2,pi=!1,Vu=g;return}T0(Vu,A)}Vu=g,yu=L0(y)}else g.effectTag=g.effectTag&-1025|2,pi=!1,Vu=g}}function ta(g){for(g=g.return;g!==null&&g.tag!==5&&g.tag!==3&&g.tag!==13;)g=g.return;Vu=g}function Kl(g){if(!w||g!==Vu)return!1;if(!pi)return ta(g),pi=!0,!1;var y=g.type;if(g.tag!==5||y!=="head"&&y!=="body"&&!ct(y,g.memoizedProps))for(y=yu;y;)T0(g,y),y=Co(y);if(ta(g),g.tag===13){if(!w)throw Error(t(316));if(g=g.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(t(317));yu=ks(g)}else yu=Vu?Co(g.stateNode):null;return!0}function Ki(){w&&(yu=Vu=null,pi=!1)}var Yr=k.ReactCurrentOwner,fo=!1;function Oi(g,y,A,F){y.child=g===null?G(y,null,A,F):z(y,g.child,A,F)}function gi(g,y,A,F,I){A=A.render;var J=y.ref;return Oo(y,I),F=nn(g,y,A,F,J,I),g!==null&&!fo?(y.updateQueue=g.updateQueue,y.effectTag&=-517,g.expirationTime<=I&&(g.expirationTime=0),fu(g,y,I)):(y.effectTag|=1,Oi(g,y,F,I),y.child)}function ff(g,y,A,F,I,J){if(g===null){var fe=A.type;return typeof fe=="function"&&!hf(fe)&&fe.defaultProps===void 0&&A.compare===null&&A.defaultProps===void 0?(y.tag=15,y.type=fe,cf(g,y,fe,F,I,J)):(g=Ia(A.type,null,F,null,y.mode,J),g.ref=y.ref,g.return=y,y.child=g)}return fe=g.child,Iy)&&Ur.set(g,y)))}}function eo(g,y){g.expirationTimeg?y:g)}function Ju(g){if(g.lastExpiredTime!==0)g.callbackExpirationTime=1073741823,g.callbackPriority=99,g.callbackNode=Gl(to.bind(null,g));else{var y=po(g),A=g.callbackNode;if(y===0)A!==null&&(g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90);else{var F=g0();if(y===1073741823?F=99:y===1||y===2?F=95:(F=10*(1073741821-y)-10*(1073741821-F),F=0>=F?99:250>=F?98:5250>=F?97:95),A!==null){var I=g.callbackPriority;if(g.callbackExpirationTime===y&&I>=F)return;A!==Ir&&Ms(A)}g.callbackExpirationTime=y,g.callbackPriority=F,y=y===1073741823?Gl(to.bind(null,g)):Jo(F,bo.bind(null,g),{timeout:10*(1073741821-y)-d0()}),g.callbackNode=y}}}function bo(g,y){if(Qi=0,y)return y=g0(),oa(g,y),Ju(g),null;var A=po(g);if(A!==0){if(y=g.callbackNode,(kn&(Xi|ru))!==wr)throw Error(t(327));if(Bs(),g===se&&A===Le||ms(g,A),re!==null){var F=kn;kn|=Xi;var I=B0(g);do try{$1();break}catch(mt){ia(g,mt)}while(1);if(bu(),kn=F,Ku.current=I,Ae===Xr)throw y=ot,ms(g,A),Sl(g,A),Ju(g),y;if(re===null)switch(I=g.finishedWork=g.current.alternate,g.finishedExpirationTime=A,F=Ae,se=null,F){case Ci:case Xr:throw Error(t(345));case Wn:oa(g,2=A){g.lastPingedTime=A,ms(g,A);break}}if(J=po(g),J!==0&&J!==A)break;if(F!==0&&F!==A){g.lastPingedTime=F;break}g.timeoutHandle=ln(Dl.bind(null,g),I);break}Dl(g);break;case m0:if(Sl(g,A),F=g.lastSuspendedTime,A===F&&(g.nextKnownPendingLevel=Uc(I)),yn&&(I=g.lastPingedTime,I===0||I>=A)){g.lastPingedTime=A,ms(g,A);break}if(I=po(g),I!==0&&I!==A)break;if(F!==0&&F!==A){g.lastPingedTime=F;break}if(Xt!==1073741823?F=10*(1073741821-Xt)-d0():vt===1073741823?F=0:(F=10*(1073741821-vt)-5e3,I=d0(),A=10*(1073741821-A)-I,F=I-F,0>F&&(F=0),F=(120>F?120:480>F?480:1080>F?1080:1920>F?1920:3e3>F?3e3:4320>F?4320:1960*df(F/1960))-F,A=F?F=0:(I=fe.busyDelayMs|0,J=d0()-(10*(1073741821-J)-(fe.timeoutMs|0||5e3)),F=J<=I?0:I+F-J),10 component higher in the tree to provide a loading indicator or placeholder to display.`+Pr(I))}Ae!==y0&&(Ae=Wn),J=_l(J,I),Ct=F;do{switch(Ct.tag){case 3:fe=J,Ct.effectTag|=4096,Ct.expirationTime=y;var Be=hs(Ct,fe,y);$s(Ct,Be);break e;case 1:fe=J;var ut=Ct.type,Jt=Ct.stateNode;if((Ct.effectTag&64)==0&&(typeof ut.getDerivedStateFromError=="function"||Jt!==null&&typeof Jt.componentDidCatch=="function"&&(cr===null||!cr.has(Jt)))){Ct.effectTag|=4096,Ct.expirationTime=y;var jn=ra(Ct,fe,y);$s(Ct,jn);break e}}Ct=Ct.return}while(Ct!==null)}re=ho(re)}catch(ti){y=ti;continue}break}while(1)}function B0(){var g=Ku.current;return Ku.current=No,g===null?No:g}function oc(g,y){g_n&&(_n=g)}function gd(){for(;re!==null;)re=e2(re)}function $1(){for(;re!==null&&!Xn();)re=e2(re)}function e2(g){var y=Pa(g.alternate,g,Le);return g.memoizedProps=g.pendingProps,y===null&&(y=ho(g)),vs.current=null,y}function ho(g){re=g;do{var y=re.alternate;if(g=re.return,(re.effectTag&2048)==0){e:{var A=y;y=re;var F=Le,I=y.pendingProps;switch(y.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:Yi(y.type)&&Y0(y);break;case 3:Xe(y),Ui(y),I=y.stateNode,I.pendingContext&&(I.context=I.pendingContext,I.pendingContext=null),(A===null||A.child===null)&&Kl(y)&&Gu(y),Vr(y);break;case 5:ie(y);var J=Z(xe.current);if(F=y.type,A!==null&&y.stateNode!=null)Bu(A,y,F,I,J),A.ref!==y.ref&&(y.effectTag|=128);else if(I){if(A=Z(De.current),Kl(y)){if(I=y,!w)throw Error(t(175));A=tu(I.stateNode,I.type,I.memoizedProps,J,A,I),I.updateQueue=A,A=A!==null,A&&Gu(y)}else{var fe=ae(F,I,J,A,y);Kr(fe,y,!1,!1),y.stateNode=fe,ue(fe,F,I,J,A)&&Gu(y)}y.ref!==null&&(y.effectTag|=128)}else if(y.stateNode===null)throw Error(t(166));break;case 6:if(A&&y.stateNode!=null)Sn(A,y,A.memoizedProps,I);else{if(typeof I!="string"&&y.stateNode===null)throw Error(t(166));if(A=Z(xe.current),J=Z(De.current),Kl(y)){if(A=y,!w)throw Error(t(176));(A=Si(A.stateNode,A.memoizedProps,A))&&Gu(y)}else y.stateNode=en(I,A,J,y)}break;case 11:break;case 13:if(fi(qe,y),I=y.memoizedState,(y.effectTag&64)!=0){y.expirationTime=F;break e}I=I!==null,J=!1,A===null?y.memoizedProps.fallback!==void 0&&Kl(y):(F=A.memoizedState,J=F!==null,I||F===null||(F=A.child.sibling,F!==null&&(fe=y.firstEffect,fe!==null?(y.firstEffect=F,F.nextEffect=fe):(y.firstEffect=y.lastEffect=F,F.nextEffect=null),F.effectTag=8))),I&&!J&&(y.mode&2)!=0&&(A===null&&y.memoizedProps.unstable_avoidThisFallback!==!0||(qe.current&1)!=0?Ae===Ci&&(Ae=Xu):((Ae===Ci||Ae===Xu)&&(Ae=m0),_n!==0&&se!==null&&(Sl(se,Le),_s(se,_n)))),vr&&I&&(y.effectTag|=4),Wt&&(I||J)&&(y.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:Xe(y),Vr(y);break;case 10:mu(y);break;case 9:break;case 14:break;case 17:Yi(y.type)&&Y0(y);break;case 19:if(fi(qe,y),I=y.memoizedState,I===null)break;if(J=(y.effectTag&64)!=0,fe=I.rendering,fe===null){if(J)Au(I,!1);else if(Ae!==Ci||A!==null&&(A.effectTag&64)!=0)for(A=y.child;A!==null;){if(fe=tt(A),fe!==null){for(y.effectTag|=64,Au(I,!1),A=fe.updateQueue,A!==null&&(y.updateQueue=A,y.effectTag|=4),I.lastEffect===null&&(y.firstEffect=null),y.lastEffect=I.lastEffect,A=F,I=y.child;I!==null;)J=I,F=A,J.effectTag&=2,J.nextEffect=null,J.firstEffect=null,J.lastEffect=null,fe=J.alternate,fe===null?(J.childExpirationTime=0,J.expirationTime=F,J.child=null,J.memoizedProps=null,J.memoizedState=null,J.updateQueue=null,J.dependencies=null):(J.childExpirationTime=fe.childExpirationTime,J.expirationTime=fe.expirationTime,J.child=fe.child,J.memoizedProps=fe.memoizedProps,J.memoizedState=fe.memoizedState,J.updateQueue=fe.updateQueue,F=fe.dependencies,J.dependencies=F===null?null:{expirationTime:F.expirationTime,firstContext:F.firstContext,responders:F.responders}),I=I.sibling;Zt(qe,qe.current&1|2,y),y=y.child;break e}A=A.sibling}}else{if(!J)if(A=tt(fe),A!==null){if(y.effectTag|=64,J=!0,A=A.updateQueue,A!==null&&(y.updateQueue=A,y.effectTag|=4),Au(I,!0),I.tail===null&&I.tailMode==="hidden"&&!fe.alternate){y=y.lastEffect=I.lastEffect,y!==null&&(y.nextEffect=null);break}}else d0()>I.tailExpiration&&1I&&(I=F),fe>I&&(I=fe),J=J.sibling;A.childExpirationTime=I}if(y!==null)return y;g!==null&&(g.effectTag&2048)==0&&(g.firstEffect===null&&(g.firstEffect=re.firstEffect),re.lastEffect!==null&&(g.lastEffect!==null&&(g.lastEffect.nextEffect=re.firstEffect),g.lastEffect=re.lastEffect),1g?y:g}function Dl(g){var y=as();return so(99,el.bind(null,g,y)),null}function el(g,y){do Bs();while(Qr!==null);if((kn&(Xi|ru))!==wr)throw Error(t(327));var A=g.finishedWork,F=g.finishedExpirationTime;if(A===null)return null;if(g.finishedWork=null,g.finishedExpirationTime=0,A===g.current)throw Error(t(177));g.callbackNode=null,g.callbackExpirationTime=0,g.callbackPriority=90,g.nextKnownPendingLevel=0;var I=Uc(A);if(g.firstPendingTime=I,F<=g.lastSuspendedTime?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:F<=g.firstSuspendedTime&&(g.firstSuspendedTime=F-1),F<=g.lastPingedTime&&(g.lastPingedTime=0),F<=g.lastExpiredTime&&(g.lastExpiredTime=0),g===se&&(re=se=null,Le=0),1=A?Yt(g,y,A):(Zt(qe,qe.current&1,y),y=fu(g,y,A),y!==null?y.sibling:null);Zt(qe,qe.current&1,y);break;case 19:if(F=y.childExpirationTime>=A,(g.effectTag&64)!=0){if(F)return wn(g,y,A);y.effectTag|=64}if(I=y.memoizedState,I!==null&&(I.rendering=null,I.tail=null),Zt(qe,qe.current,y),!F)return null}return fu(g,y,A)}fo=!1}}else fo=!1;switch(y.expirationTime=0,y.tag){case 2:if(F=y.type,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,I=Du(y,Di.current),Oo(y,A),I=nn(null,y,F,g,I,A),y.effectTag|=1,typeof I=="object"&&I!==null&&typeof I.render=="function"&&I.$$typeof===void 0){if(y.tag=1,sn(),Yi(F)){var J=!0;ni(y)}else J=!1;y.memoizedState=I.state!==null&&I.state!==void 0?I.state:null;var fe=F.getDerivedStateFromProps;typeof fe=="function"&&Yl(y,F,fe,g),I.updater=ea,y.stateNode=I,I._reactInternalFiber=y,Ls(y,F,g,A),y=et(null,y,F,!0,J,A)}else y.tag=0,Oi(null,y,I,A),y=y.child;return y;case 16:if(I=y.elementType,g!==null&&(g.alternate=null,y.alternate=null,y.effectTag|=2),g=y.pendingProps,Ue(I),I._status!==1)throw I._result;switch(I=I._result,y.type=I,J=y.tag=tl(I),g=Hn(I,g),J){case 0:y=Z0(null,y,I,g,A);break;case 1:y=Te(null,y,I,g,A);break;case 11:y=gi(null,y,I,g,A);break;case 14:y=ff(null,y,I,Hn(I.type,g),F,A);break;default:throw Error(t(306,I,""))}return y;case 0:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),Z0(g,y,F,I,A);case 1:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),Te(g,y,F,I,A);case 3:if(Ve(y),F=y.updateQueue,F===null)throw Error(t(282));if(I=y.memoizedState,I=I!==null?I.element:null,w0(y,F,y.pendingProps,null,A),F=y.memoizedState.element,F===I)Ki(),y=fu(g,y,A);else{if((I=y.stateNode.hydrate)&&(w?(yu=L0(y.stateNode.containerInfo),Vu=y,I=pi=!0):I=!1),I)for(A=G(y,null,F,A),y.child=A;A;)A.effectTag=A.effectTag&-3|1024,A=A.sibling;else Oi(g,y,F,A),Ki();y=y.child}return y;case 5:return ht(y),g===null&&Fo(y),F=y.type,I=y.pendingProps,J=g!==null?g.memoizedProps:null,fe=I.children,ct(F,I)?fe=null:J!==null&&ct(F,J)&&(y.effectTag|=16),J0(g,y),y.mode&4&&A!==1&&At(F,I)?(y.expirationTime=y.childExpirationTime=1,y=null):(Oi(g,y,fe,A),y=y.child),y;case 6:return g===null&&Fo(y),null;case 13:return Yt(g,y,A);case 4:return ke(y,y.stateNode.containerInfo),F=y.pendingProps,g===null?y.child=z(y,null,F,A):Oi(g,y,F,A),y.child;case 11:return F=y.type,I=y.pendingProps,I=y.elementType===F?I:Hn(F,I),gi(g,y,F,I,A);case 7:return Oi(g,y,y.pendingProps,A),y.child;case 8:return Oi(g,y,y.pendingProps.children,A),y.child;case 12:return Oi(g,y,y.pendingProps.children,A),y.child;case 10:e:{if(F=y.type._context,I=y.pendingProps,fe=y.memoizedProps,J=I.value,Pu(y,J),fe!==null){var mt=fe.value;if(J=Ne(mt,J)?0:(typeof F._calculateChangedBits=="function"?F._calculateChangedBits(mt,J):1073741823)|0,J===0){if(fe.children===I.children&&!ci.current){y=fu(g,y,A);break e}}else for(mt=y.child,mt!==null&&(mt.return=y);mt!==null;){var Ct=mt.dependencies;if(Ct!==null){fe=mt.child;for(var Mt=Ct.firstContext;Mt!==null;){if(Mt.context===F&&(Mt.observedBits&J)!=0){mt.tag===1&&(Mt=p0(A,null),Mt.tag=2,K0(mt,Mt)),mt.expirationTime=y&&g<=y}function Sl(g,y){var A=g.firstSuspendedTime,F=g.lastSuspendedTime;Ay||A===0)&&(g.lastSuspendedTime=y),y<=g.lastPingedTime&&(g.lastPingedTime=0),y<=g.lastExpiredTime&&(g.lastExpiredTime=0)}function _s(g,y){y>g.firstPendingTime&&(g.firstPendingTime=y);var A=g.firstSuspendedTime;A!==0&&(y>=A?g.firstSuspendedTime=g.lastSuspendedTime=g.nextKnownPendingLevel=0:y>=g.lastSuspendedTime&&(g.lastSuspendedTime=y+1),y>g.nextKnownPendingLevel&&(g.nextKnownPendingLevel=y))}function oa(g,y){var A=g.lastExpiredTime;(A===0||A>y)&&(g.lastExpiredTime=y)}function n2(g){var y=g._reactInternalFiber;if(y===void 0)throw typeof g.render=="function"?Error(t(188)):Error(t(268,Object.keys(g)));return g=$e(y),g===null?null:g.stateNode}function la(g,y){g=g.memoizedState,g!==null&&g.dehydrated!==null&&g.retryTime{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var JK=0;Qf.__interactionsRef=null;Qf.__subscriberRef=null;Qf.unstable_clear=function(i){return i()};Qf.unstable_getCurrent=function(){return null};Qf.unstable_getThreadID=function(){return++JK};Qf.unstable_trace=function(i,o,f){return f()};Qf.unstable_wrap=function(i){return i};Qf.unstable_subscribe=function(){};Qf.unstable_unsubscribe=function(){}});var g9=ce(au=>{"use strict";process.env.NODE_ENV!=="production"&&function(){"use strict";Object.defineProperty(au,"__esModule",{value:!0});var i=!0,o=0,f=0,p=0;au.__interactionsRef=null,au.__subscriberRef=null,i&&(au.__interactionsRef={current:new Set},au.__subscriberRef={current:null});function E(ge){if(!i)return ge();var ze=au.__interactionsRef.current;au.__interactionsRef.current=new Set;try{return ge()}finally{au.__interactionsRef.current=ze}}function t(){return i?au.__interactionsRef.current:null}function k(){return++p}function L(ge,ze,pe){var Oe=arguments.length>3&&arguments[3]!==void 0?arguments[3]:o;if(!i)return pe();var le={__count:1,id:f++,name:ge,timestamp:ze},Ue=au.__interactionsRef.current,Ge=new Set(Ue);Ge.add(le),au.__interactionsRef.current=Ge;var rt=au.__subscriberRef.current,wt;try{rt!==null&&rt.onInteractionTraced(le)}finally{try{rt!==null&&rt.onWorkStarted(Ge,Oe)}finally{try{wt=pe()}finally{au.__interactionsRef.current=Ue;try{rt!==null&&rt.onWorkStopped(Ge,Oe)}finally{le.__count--,rt!==null&&le.__count===0&&rt.onInteractionScheduledWorkCompleted(le)}}}}return wt}function N(ge){var ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:o;if(!i)return ge;var pe=au.__interactionsRef.current,Oe=au.__subscriberRef.current;Oe!==null&&Oe.onWorkScheduled(pe,ze),pe.forEach(function(Ge){Ge.__count++});var le=!1;function Ue(){var Ge=au.__interactionsRef.current;au.__interactionsRef.current=pe,Oe=au.__subscriberRef.current;try{var rt;try{Oe!==null&&Oe.onWorkStarted(pe,ze)}finally{try{rt=ge.apply(void 0,arguments)}finally{au.__interactionsRef.current=Ge,Oe!==null&&Oe.onWorkStopped(pe,ze)}}return rt}finally{le||(le=!0,pe.forEach(function(wt){wt.__count--,Oe!==null&&wt.__count===0&&Oe.onInteractionScheduledWorkCompleted(wt)}))}}return Ue.cancel=function(){Oe=au.__subscriberRef.current;try{Oe!==null&&Oe.onWorkCanceled(pe,ze)}finally{pe.forEach(function(rt){rt.__count--,Oe&&rt.__count===0&&Oe.onInteractionScheduledWorkCompleted(rt)})}},Ue}var C=null;i&&(C=new Set);function U(ge){i&&(C.add(ge),C.size===1&&(au.__subscriberRef.current={onInteractionScheduledWorkCompleted:ne,onInteractionTraced:W,onWorkCanceled:he,onWorkScheduled:m,onWorkStarted:we,onWorkStopped:Se}))}function q(ge){i&&(C.delete(ge),C.size===0&&(au.__subscriberRef.current=null))}function W(ge){var ze=!1,pe=null;if(C.forEach(function(Oe){try{Oe.onInteractionTraced(ge)}catch(le){ze||(ze=!0,pe=le)}}),ze)throw pe}function ne(ge){var ze=!1,pe=null;if(C.forEach(function(Oe){try{Oe.onInteractionScheduledWorkCompleted(ge)}catch(le){ze||(ze=!0,pe=le)}}),ze)throw pe}function m(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkScheduled(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function we(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkStarted(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function Se(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkStopped(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}function he(ge,ze){var pe=!1,Oe=null;if(C.forEach(function(le){try{le.onWorkCanceled(ge,ze)}catch(Ue){pe||(pe=!0,Oe=Ue)}}),pe)throw Oe}au.unstable_clear=E,au.unstable_getCurrent=t,au.unstable_getThreadID=k,au.unstable_trace=L,au.unstable_wrap=N,au.unstable_subscribe=U,au.unstable_unsubscribe=q}()});var _9=ce((Une,fw)=>{"use strict";process.env.NODE_ENV==="production"?fw.exports=y9():fw.exports=g9()});var E9=ce((jne,hg)=>{"use strict";process.env.NODE_ENV!=="production"&&(hg.exports=function i(o){"use strict";var f=eg(),p=su(),E=HD(),t=h4(),k=_9(),L=0,N=1,C=2,U=3,q=4,W=5,ne=6,m=7,we=8,Se=9,he=10,ge=11,ze=12,pe=13,Oe=14,le=15,Ue=16,Ge=17,rt=18,wt=19,xt=20,$e=21,ft=function(){};ft=function(a,c){for(var _=arguments.length,T=new Array(_>2?_-2:0),R=2;R<_;R++)T[R-2]=arguments[R];if(c===void 0)throw new Error("`warningWithoutStack(condition, format, ...args)` requires a warning message argument");if(T.length>8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!a){if(typeof console!="undefined"){var j=T.map(function(oe){return""+oe});j.unshift("Warning: "+c),Function.prototype.apply.call(console.error,console,j)}try{var V=0,te="Warning: "+c.replace(/%s/g,function(){return T[V++]});throw new Error(te)}catch(oe){}}};var Ke=ft;function jt(a){return a._reactInternalFiber}function $t(a,c){a._reactInternalFiber=c}var at=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;at.hasOwnProperty("ReactCurrentDispatcher")||(at.ReactCurrentDispatcher={current:null}),at.hasOwnProperty("ReactCurrentBatchConfig")||(at.ReactCurrentBatchConfig={suspense:null});var Q=typeof Symbol=="function"&&Symbol.for,ae=Q?Symbol.for("react.element"):60103,Ce=Q?Symbol.for("react.portal"):60106,ue=Q?Symbol.for("react.fragment"):60107,je=Q?Symbol.for("react.strict_mode"):60108,ct=Q?Symbol.for("react.profiler"):60114,At=Q?Symbol.for("react.provider"):60109,en=Q?Symbol.for("react.context"):60110,ln=Q?Symbol.for("react.concurrent_mode"):60111,An=Q?Symbol.for("react.forward_ref"):60112,nr=Q?Symbol.for("react.suspense"):60113,un=Q?Symbol.for("react.suspense_list"):60120,Wt=Q?Symbol.for("react.memo"):60115,vr=Q?Symbol.for("react.lazy"):60116,w=Q?Symbol.for("react.fundamental"):60117,Ut=Q?Symbol.for("react.responder"):60118,Vn=Q?Symbol.for("react.scope"):60119,fr=typeof Symbol=="function"&&Symbol.iterator,Fr="@@iterator";function ur(a){if(a===null||typeof a!="object")return null;var c=fr&&a[fr]||a[Fr];return typeof c=="function"?c:null}var br=Ke;br=function(a,c){if(!a){for(var _=at.ReactDebugCurrentFrame,T=_.getStackAddendum(),R=arguments.length,j=new Array(R>2?R-2:0),V=2;V import('./MyComponent'))`,T),a._status=So,a._result=R}},function(T){a._status===a0&&(a._status=Go,a._result=T)})}}function Ko(a,c,_){var T=c.displayName||c.name||"";return a.displayName||(T!==""?_+"("+T+")":_)}function qt(a){if(a==null)return null;if(typeof a.tag=="number"&&Ke(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case ue:return"Fragment";case Ce:return"Portal";case ct:return"Profiler";case je:return"StrictMode";case nr:return"Suspense";case un:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case en:return"Context.Consumer";case At:return"Context.Provider";case An:return Ko(a,a.render,"ForwardRef");case Wt:return qt(a.type);case vr:{var c=a,_=Os(c);if(_)return qt(_);break}}return null}var _i=0,eu=1,ai=2,mr=4,Xo=6,W0=8,Lu=16,V0=32,Hr=64,To=128,Co=256,L0=512,tu=1024,Si=1028,ks=932,Hl=2047,F0=2048,f0=4096,Pr=!0,Ei=!0,G0=!0,fi=!0,Zt=!0,Ln=!0,Di=!1,ci=!1,Ht=!1,Du=!1,Yi=!1,Y0=!0,Ui=!1,Wl=!1,xo=!1,ni=!1,oo=!1,Vl=at.ReactCurrentOwner;function Ao(a){var c=a,_=a;if(a.alternate)for(;c.return;)c=c.return;else{var T=c;do c=T,(c.effectTag&(ai|tu))!==_i&&(_=c.return),T=c.return;while(T)}return c.tag===U?_:null}function Ms(a){return Ao(a)===a}function Xn(a){{var c=Vl.current;if(c!==null&&c.tag===N){var _=c,T=_.stateNode;T._warnedAboutRefsInRender||Ke(!1,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",qt(_.type)||"A component"),T._warnedAboutRefsInRender=!0}}var R=jt(a);return R?Ao(R)===R:!1}function Qo(a){if(Ao(a)!==a)throw Error("Unable to find node on an unmounted component.")}function lo(a){var c=a.alternate;if(!c){var _=Ao(a);if(_===null)throw Error("Unable to find node on an unmounted component.");return _!==a?null:a}for(var T=a,R=c;;){var j=T.return;if(j===null)break;var V=j.alternate;if(V===null){var te=j.return;if(te!==null){T=R=te;continue}break}if(j.child===V.child){for(var oe=j.child;oe;){if(oe===T)return Qo(j),a;if(oe===R)return Qo(j),c;oe=oe.sibling}throw Error("Unable to find node on an unmounted component.")}if(T.return!==R.return)T=j,R=V;else{for(var Ie=!1,Ye=j.child;Ye;){if(Ye===T){Ie=!0,T=j,R=V;break}if(Ye===R){Ie=!0,R=j,T=V;break}Ye=Ye.sibling}if(!Ie){for(Ye=V.child;Ye;){if(Ye===T){Ie=!0,T=V,R=j;break}if(Ye===R){Ie=!0,R=V,T=j;break}Ye=Ye.sibling}if(!Ie)throw Error("Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.")}}if(T.alternate!==R)throw Error("Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.")}if(T.tag!==U)throw Error("Unable to find node on an unmounted component.");return T.stateNode.current===T?a:c}function b0(a){var c=lo(a);if(!c)return null;for(var _=c;;){if(_.tag===W||_.tag===ne)return _;if(_.child){_.child.return=_,_=_.child;continue}if(_===c)return null;for(;!_.sibling;){if(!_.return||_.return===c)return null;_=_.return}_.sibling.return=_.return,_=_.sibling}return null}function yl(a){var c=lo(a);if(!c)return null;for(var _=c;;){if(_.tag===W||_.tag===ne||Ht&&_.tag===xt)return _;if(_.child&&_.tag!==q){_.child.return=_,_=_.child;continue}if(_===c)return null;for(;!_.sibling;){if(!_.return||_.return===c)return null;_=_.return}_.sibling.return=_.return,_=_.sibling}return null}var Ro=o.getPublicInstance,Et=o.getRootHostContext,Pt=o.getChildHostContext,Bn=o.prepareForCommit,Ir=o.resetAfterCommit,ji=o.createInstance,Wr=o.appendInitialChild,wu=o.finalizeInitialChildren,c0=o.prepareUpdate,Ti=o.shouldSetTextContent,d0=o.shouldDeprioritizeSubtree,as=o.createTextInstance,St=o.setTimeout,so=o.clearTimeout,Jo=o.noTimeout,Gl=o.now,Fu=o.isPrimaryRenderer,fs=o.warnsIfNotActing,P0=o.supportsMutation,X=o.supportsPersistence,_e=o.supportsHydration,Ne=o.mountResponderInstance,Me=o.unmountResponderInstance,dt=o.getFundamentalComponentInstance,Hn=o.mountFundamentalComponent,Dn=o.shouldUpdateFundamentalComponent,or=o.getInstanceFromNode,mi=o.appendChild,Su=o.appendChildToContainer,bu=o.commitTextUpdate,Pu=o.commitMount,mu=o.commitUpdate,yi=o.insertBefore,Oo=o.insertInContainerBefore,Tu=o.removeChild,ao=o.removeChildFromContainer,Iu=o.resetTextContent,Oa=o.hideInstance,p0=o.hideTextInstance,Zs=o.unhideInstance,K0=o.unhideTextInstance,$s=o.updateFundamentalComponent,ka=o.unmountFundamentalComponent,cs=o.cloneInstance,w0=o.createContainerChildSet,Gn=o.appendChildToContainerChildSet,ic=o.finalizeContainerChildren,ri=o.replaceContainerChildren,Gr=o.cloneHiddenInstance,Yl=o.cloneHiddenTextInstance,ea=o.cloneInstance,lf=o.canHydrateInstance,Ns=o.canHydrateTextInstance,Ma=o.canHydrateSuspenseInstance,Ls=o.isSuspenseInstancePending,h0=o.isSuspenseInstanceFallback,Fs=o.registerSuspenseInstanceRetry,Ni=o.getNextHydratableSibling,B=o.getFirstHydratableChild,z=o.hydrateInstance,G=o.hydrateTextInstance,$=o.hydrateSuspenseInstance,De=o.getNextHydratableInstanceAfterSuspenseInstance,me=o.commitHydratedContainer,xe=o.commitHydratedSuspenseInstance,Z=o.clearSuspenseBoundary,ke=o.clearSuspenseBoundaryFromContainer,Xe=o.didNotMatchHydratedContainerTextInstance,ht=o.didNotMatchHydratedTextInstance,ie=o.didNotHydrateContainerInstance,qe=o.didNotHydrateInstance,tt=o.didNotFindHydratableContainerInstance,Tt=o.didNotFindHydratableContainerTextInstance,kt=o.didNotFindHydratableContainerSuspenseInstance,bt=o.didNotFindHydratableInstance,on=o.didNotFindHydratableTextInstance,tn=o.didNotFindHydratableSuspenseInstance,Lt=/^(.*)[\\\/]/,gn=function(a,c,_){var T="";if(c){var R=c.fileName,j=R.replace(Lt,"");if(/^index\./.test(j)){var V=R.match(Lt);if(V){var te=V[1];if(te){var oe=te.replace(Lt,"");j=oe+"/"+j}}}T=" (at "+j+":"+c.lineNumber+")"}else _&&(T=" (created by "+_+")");return` + in `+(a||"Unknown")+T},lr=at.ReactDebugCurrentFrame;function Qn(a){switch(a.tag){case U:case q:case ne:case m:case he:case Se:return"";default:var c=a._debugOwner,_=a._debugSource,T=qt(a.type),R=null;return c&&(R=qt(c.type)),gn(T,_,R)}}function _r(a){var c="",_=a;do c+=Qn(_),_=_.return;while(_);return c}var Cn=null,Ar=null;function v0(){{if(Cn===null)return null;var a=Cn._debugOwner;if(a!==null&&typeof a!="undefined")return qt(a.type)}return null}function Rr(){return Cn===null?"":_r(Cn)}function nt(){lr.getCurrentStack=null,Cn=null,Ar=null}function _t(a){lr.getCurrentStack=Rr,Cn=a,Ar=null}function Ze(a){Ar=a}var Ft="\u269B",nn="\u26D4",sn=typeof performance!="undefined"&&typeof performance.mark=="function"&&typeof performance.clearMarks=="function"&&typeof performance.measure=="function"&&typeof performance.clearMeasures=="function",Yn=null,yr=null,nu=null,Cu=!1,S0=!1,X0=!1,xu=0,di=0,ko=new Set,Zo=function(a){return Ft+" "+a},sf=function(a,c){var _=c?nn+" ":Ft+" ",T=c?" Warning: "+c:"";return""+_+a+T},gl=function(a){performance.mark(Zo(a))},af=function(a){performance.clearMarks(Zo(a))},Mo=function(a,c,_){var T=Zo(c),R=sf(a,_);try{performance.measure(R,T)}catch(j){}performance.clearMarks(T),performance.clearMeasures(R)},ds=function(a,c){return a+" (#"+c+")"},bs=function(a,c,_){return _===null?a+" ["+(c?"update":"mount")+"]":a+"."+_},No=function(a,c){var _=qt(a.type)||"Unknown",T=a._debugID,R=a.alternate!==null,j=bs(_,R,c);if(Cu&&ko.has(j))return!1;ko.add(j);var V=ds(j,T);return gl(V),!0},Lo=function(a,c){var _=qt(a.type)||"Unknown",T=a._debugID,R=a.alternate!==null,j=bs(_,R,c),V=ds(j,T);af(V)},ps=function(a,c,_){var T=qt(a.type)||"Unknown",R=a._debugID,j=a.alternate!==null,V=bs(T,j,c),te=ds(V,R);Mo(V,te,_)},Vu=function(a){switch(a.tag){case U:case W:case ne:case q:case m:case he:case Se:case we:return!0;default:return!1}},yu=function(){yr!==null&&nu!==null&&Lo(nu,yr),nu=null,yr=null,X0=!1},pi=function(){for(var a=Yn;a;)a._debugIsCurrentlyTiming&&ps(a,null,null),a=a.return},T0=function(a){a.return!==null&&T0(a.return),a._debugIsCurrentlyTiming&&No(a,null)},Q0=function(){Yn!==null&&T0(Yn)};function Fo(){Pr&&di++}function ta(){Pr&&(Cu&&(S0=!0),yr!==null&&yr!=="componentWillMount"&&yr!=="componentWillReceiveProps"&&(X0=!0))}function Kl(a){if(Pr){if(!sn||Vu(a)||(Yn=a,!No(a,null)))return;a._debugIsCurrentlyTiming=!0}}function Ki(a){if(Pr){if(!sn||Vu(a))return;a._debugIsCurrentlyTiming=!1,Lo(a,null)}}function Yr(a){if(Pr){if(!sn||Vu(a)||(Yn=a.return,!a._debugIsCurrentlyTiming))return;a._debugIsCurrentlyTiming=!1,ps(a,null,null)}}function fo(a){if(Pr){if(!sn||Vu(a)||(Yn=a.return,!a._debugIsCurrentlyTiming))return;a._debugIsCurrentlyTiming=!1;var c=a.tag===pe?"Rendering was suspended":"An error was thrown inside this error boundary";ps(a,null,c)}}function Oi(a,c){if(Pr){if(!sn||(yu(),!No(a,c)))return;nu=a,yr=c}}function gi(){if(Pr){if(!sn)return;if(yr!==null&&nu!==null){var a=X0?"Scheduled a cascading update":null;ps(nu,yr,a)}yr=null,nu=null}}function ff(a){if(Pr){if(Yn=a,!sn)return;xu=0,gl("(React Tree Reconciliation)"),Q0()}}function cf(a,c){if(Pr){if(!sn)return;var _=null;if(a!==null)if(a.tag===U)_="A top-level update interrupted the previous render";else{var T=qt(a.type)||"Unknown";_="An update to "+T+" interrupted the previous render"}else xu>1&&(_="There were cascading updates");xu=0;var R=c?"(React Tree Reconciliation: Completed Root)":"(React Tree Reconciliation: Yielded)";pi(),Mo(R,"(React Tree Reconciliation)",_)}}function J0(){if(Pr){if(!sn)return;Cu=!0,S0=!1,ko.clear(),gl("(Committing Changes)")}}function Z0(){if(Pr){if(!sn)return;var a=null;S0?a="Lifecycle hook scheduled a cascading update":xu>0&&(a="Caused by a cascading update in earlier commit"),S0=!1,xu++,Cu=!1,ko.clear(),Mo("(Committing Changes)","(Committing Changes)",a)}}function Te(){if(Pr){if(!sn)return;di=0,gl("(Committing Snapshot Effects)")}}function et(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Committing Snapshot Effects: "+a+" Total)","(Committing Snapshot Effects)",null)}}function Ve(){if(Pr){if(!sn)return;di=0,gl("(Committing Host Effects)")}}function Gt(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Committing Host Effects: "+a+" Total)","(Committing Host Effects)",null)}}function Yt(){if(Pr){if(!sn)return;di=0,gl("(Calling Lifecycle Methods)")}}function sr(){if(Pr){if(!sn)return;var a=di;di=0,Mo("(Calling Lifecycle Methods: "+a+" Total)","(Calling Lifecycle Methods)",null)}}var Br=[],wn;wn=[];var fu=-1;function Gu(a){return{current:a}}function Kr(a,c){if(fu<0){Ke(!1,"Unexpected pop.");return}c!==wn[fu]&&Ke(!1,"Unexpected Fiber popped."),a.current=Br[fu],Br[fu]=null,wn[fu]=null,fu--}function Vr(a,c,_){fu++,Br[fu]=a.current,wn[fu]=_,a.current=c}var Bu;Bu={};var Sn={};Object.freeze(Sn);var C0=Gu(Sn),Au=Gu(!1),ei=Sn;function _l(a,c,_){return ni?Sn:_&&zi(c)?ei:C0.current}function Ps(a,c,_){if(!ni){var T=a.stateNode;T.__reactInternalMemoizedUnmaskedChildContext=c,T.__reactInternalMemoizedMaskedChildContext=_}}function Uu(a,c){if(ni)return Sn;var _=a.type,T=_.contextTypes;if(!T)return Sn;var R=a.stateNode;if(R&&R.__reactInternalMemoizedUnmaskedChildContext===c)return R.__reactInternalMemoizedMaskedChildContext;var j={};for(var V in T)j[V]=c[V];{var te=qt(_)||"Unknown";E(T,j,"context",te,Rr)}return R&&Ps(a,c,j),j}function na(){return ni?!1:Au.current}function zi(a){if(ni)return!1;var c=a.childContextTypes;return c!=null}function Is(a){ni||(Kr(Au,a),Kr(C0,a))}function x0(a){ni||(Kr(Au,a),Kr(C0,a))}function Li(a,c,_){if(!ni){if(C0.current!==Sn)throw Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Vr(C0,c,a),Vr(Au,_,a)}}function A0(a,c,_){if(ni)return _;var T=a.stateNode,R=c.childContextTypes;if(typeof T.getChildContext!="function"){{var j=qt(c)||"Unknown";Bu[j]||(Bu[j]=!0,Ke(!1,"%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",j,j))}return _}var V;Ze("getChildContext"),Oi(a,"getChildContext"),V=T.getChildContext(),gi(),Ze(null);for(var te in V)if(!(te in R))throw Error((qt(c)||"Unknown")+'.getChildContext(): key "'+te+'" is not defined in childContextTypes.');{var oe=qt(c)||"Unknown";E(R,V,"child context",oe,Rr)}return f({},_,{},V)}function Fi(a){if(ni)return!1;var c=a.stateNode,_=c&&c.__reactInternalMemoizedMergedChildContext||Sn;return ei=C0.current,Vr(C0,_,a),Vr(Au,Au.current,a),!0}function $o(a,c,_){if(!ni){var T=a.stateNode;if(!T)throw Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(_){var R=A0(a,c,ei);T.__reactInternalMemoizedMergedChildContext=R,Kr(Au,a),Kr(C0,a),Vr(C0,R,a),Vr(Au,_,a)}else Kr(Au,a),Vr(Au,_,a)}}function El(a){if(ni)return Sn;if(!(Ms(a)&&a.tag===N))throw Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var c=a;do{switch(c.tag){case U:return c.stateNode.context;case N:{var _=c.type;if(zi(_))return c.stateNode.__reactInternalMemoizedMergedChildContext;break}}c=c.return}while(c!==null);throw Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}var I0=1,R0=2,co=t.unstable_runWithPriority,Ru=t.unstable_scheduleCallback,Yu=t.unstable_cancelCallback,Xl=t.unstable_shouldYield,hs=t.unstable_requestPaint,ra=t.unstable_now,df=t.unstable_getCurrentPriorityLevel,Ku=t.unstable_ImmediatePriority,vs=t.unstable_UserBlockingPriority,wr=t.unstable_NormalPriority,$0=t.unstable_LowPriority,Xi=t.unstable_IdlePriority;if(Ln&&!(k.__interactionsRef!=null&&k.__interactionsRef.current!=null))throw Error("It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling");var ru={},Ci=99,Xr=98,Wn=97,Xu=96,m0=95,y0=90,kn=Xl,se=hs!==void 0?hs:function(){},re=null,Le=null,Ae=!1,ot=ra(),vt=ot<1e4?ra:function(){return ra()-ot};function Xt(){switch(df()){case Ku:return Ci;case vs:return Xr;case wr:return Wn;case $0:return Xu;case Xi:return m0;default:throw Error("Unknown priority level.")}}function xn(a){switch(a){case Ci:return Ku;case Xr:return vs;case Wn:return wr;case Xu:return $0;case m0:return Xi;default:throw Error("Unknown priority level.")}}function _n(a,c){var _=xn(a);return co(_,c)}function yn(a,c,_){var T=xn(a);return Ru(T,c,_)}function En(a){return re===null?(re=[a],Le=Ru(Ku,xi)):re.push(a),ru}function er(a){a!==ru&&Yu(a)}function It(){if(Le!==null){var a=Le;Le=null,Yu(a)}xi()}function xi(){if(!Ae&&re!==null){Ae=!0;var a=0;try{var c=!0,_=re;_n(Ci,function(){for(;a<_.length;a++){var T=_[a];do T=T(c);while(T!==null)}}),re=null}catch(T){throw re!==null&&(re=re.slice(a+1)),Ru(Ku,It),T}finally{Ae=!1}}}var Sr=0,cr=1,Y=2,Qr=4,Jr=8,Ur=1073741823,lt=0,hi=1,Qi=2,g0=3,bn=Ur,Qu=bn-1,eo=10,po=Qu-1;function Ju(a){return po-(a/eo|0)}function bo(a){return(po-a)*eo}function to(a,c){return((a/c|0)+1)*c}function Na(a,c,_){return po-to(po-a+c/eo,_/eo)}var pf=5e3,uc=250;function ms(a){return Na(a,pf,uc)}function ia(a,c){return Na(a,c,uc)}var B0=500,oc=100;function La(a){return Na(a,B0,oc)}function gd(a){return g0++}function $1(a,c){if(c===bn)return Ci;if(c===hi||c===Qi)return m0;var _=bo(c)-bo(a);return _<=0?Ci:_<=B0+oc?Xr:_<=pf+uc?Wn:m0}function e2(a,c){return a===c&&(a!==0||1/a==1/c)||a!==a&&c!==c}var ho=typeof Object.is=="function"?Object.is:e2,Uc=Object.prototype.hasOwnProperty;function Dl(a,c){if(ho(a,c))return!0;if(typeof a!="object"||a===null||typeof c!="object"||c===null)return!1;var _=Object.keys(a),T=Object.keys(c);if(_.length!==T.length)return!1;for(var R=0;R<_.length;R++)if(!Uc.call(c,_[R])||!ho(a[_[R]],c[_[R]]))return!1;return!0}var el=function(){};{var _d=function(a){for(var c=arguments.length,_=new Array(c>1?c-1:0),T=1;T2?_-2:0),R=2;R<_;R++)T[R-2]=arguments[R];_d.apply(void 0,[c].concat(T))}}}var Bs=el,wl={recordUnsafeLifecycleWarnings:function(a,c){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(a,c){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var t2=function(a){for(var c=null,_=a;_!==null;)_.mode&cr&&(c=_),_=_.return;return c},Po=function(a){var c=[];return a.forEach(function(_){c.push(_)}),c.sort().join(", ")},Fa=[],ba=[],Pa=[],ua=[],ys=[],gs=[],Ql=new Set;wl.recordUnsafeLifecycleWarnings=function(a,c){Ql.has(a.type)||(typeof c.componentWillMount=="function"&&c.componentWillMount.__suppressDeprecationWarning!==!0&&Fa.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillMount=="function"&&ba.push(a),typeof c.componentWillReceiveProps=="function"&&c.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&Pa.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillReceiveProps=="function"&&ua.push(a),typeof c.componentWillUpdate=="function"&&c.componentWillUpdate.__suppressDeprecationWarning!==!0&&ys.push(a),a.mode&cr&&typeof c.UNSAFE_componentWillUpdate=="function"&&gs.push(a))},wl.flushPendingUnsafeLifecycleWarnings=function(){var a=new Set;Fa.length>0&&(Fa.forEach(function(Nt){a.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),Fa=[]);var c=new Set;ba.length>0&&(ba.forEach(function(Nt){c.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ba=[]);var _=new Set;Pa.length>0&&(Pa.forEach(function(Nt){_.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),Pa=[]);var T=new Set;ua.length>0&&(ua.forEach(function(Nt){T.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ua=[]);var R=new Set;ys.length>0&&(ys.forEach(function(Nt){R.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),ys=[]);var j=new Set;if(gs.length>0&&(gs.forEach(function(Nt){j.add(qt(Nt.type)||"Component"),Ql.add(Nt.type)}),gs=[]),c.size>0){var V=Po(c);Ke(!1,`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. + +Please update the following components: %s`,V)}if(T.size>0){var te=Po(T);Ke(!1,`Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state + +Please update the following components: %s`,te)}if(j.size>0){var oe=Po(j);Ke(!1,`Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. + +Please update the following components: %s`,oe)}if(a.size>0){var Ie=Po(a);Bs(!1,`componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move code with side effects to componentDidMount, and set initial state in the constructor. +* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Ie)}if(_.size>0){var Ye=Po(_);Bs(!1,`componentWillReceiveProps has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state +* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,Ye)}if(R.size>0){var pt=Po(R);Bs(!1,`componentWillUpdate has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details. + +* Move data fetching code or side effects to componentDidUpdate. +* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run \`npx react-codemod rename-unsafe-lifecycles\` in your project source folder. + +Please update the following components: %s`,pt)}};var Io=new Map,hf=new Set;wl.recordLegacyContextWarning=function(a,c){var _=t2(a);if(_===null){Ke(!1,"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.");return}if(!hf.has(a.type)){var T=Io.get(_);(a.type.contextTypes!=null||a.type.childContextTypes!=null||c!==null&&typeof c.getChildContext=="function")&&(T===void 0&&(T=[],Io.set(_,T)),T.push(a))}},wl.flushLegacyContextWarning=function(){Io.forEach(function(a,c){var _=new Set;a.forEach(function(j){_.add(qt(j.type)||"Component"),hf.add(j.type)});var T=Po(_),R=_r(c);Ke(!1,`Legacy context API has been detected within a strict-mode tree. + +The old API will be supported in all 16.x releases, but applications using it should migrate to the new version. + +Please update the following components: %s + +Learn more about this warning here: https://fb.me/react-legacy-context%s`,T,R)})},wl.discardPendingWarnings=function(){Fa=[],ba=[],Pa=[],ua=[],ys=[],gs=[],Io=new Map}}var tl=null,ju=null,Ia=function(a){tl=a};function Zu(a){{if(tl===null)return a;var c=tl(a);return c===void 0?a:c.current}}function U0(a){return Zu(a)}function vf(a){{if(tl===null)return a;var c=tl(a);if(c===void 0){if(a!=null&&typeof a.render=="function"){var _=Zu(a.render);if(a.render!==_){var T={$$typeof:An,render:_};return a.displayName!==void 0&&(T.displayName=a.displayName),T}}return a}return c.current}}function jc(a,c){{if(tl===null)return!1;var _=a.elementType,T=c.type,R=!1,j=typeof T=="object"&&T!==null?T.$$typeof:null;switch(a.tag){case N:{typeof T=="function"&&(R=!0);break}case L:{(typeof T=="function"||j===vr)&&(R=!0);break}case ge:{(j===An||j===vr)&&(R=!0);break}case Oe:case le:{(j===Wt||j===vr)&&(R=!0);break}default:return!1}if(R){var V=tl(_);if(V!==void 0&&V===tl(T))return!0}return!1}}function lc(a){{if(tl===null||typeof WeakSet!="function")return;ju===null&&(ju=new WeakSet),ju.add(a)}}var Sl=function(a,c){{if(tl===null)return;var _=c.staleFamilies,T=c.updatedFamilies;Xa(),xp(function(){oa(a.current,T,_)})}},_s=function(a,c){{if(a.context!==Sn)return;Xa(),fv(function(){l_(c,a,null,null)})}};function oa(a,c,_){{var T=a.alternate,R=a.child,j=a.sibling,V=a.tag,te=a.type,oe=null;switch(V){case L:case le:case N:oe=te;break;case ge:oe=te.render;break;default:break}if(tl===null)throw new Error("Expected resolveFamily to be set during hot reload.");var Ie=!1,Ye=!1;if(oe!==null){var pt=tl(oe);pt!==void 0&&(_.has(pt)?Ye=!0:c.has(pt)&&(V===N?Ye=!0:Ie=!0))}ju!==null&&(ju.has(a)||T!==null&&ju.has(T))&&(Ye=!0),Ye&&(a._debugNeedsRemount=!0),(Ye||Ie)&&dl(a,bn),R!==null&&!Ye&&oa(R,c,_),j!==null&&oa(j,c,_)}}var n2=function(a,c){{var _=new Set,T=new Set(c.map(function(R){return R.current}));return la(a.current,T,_),_}};function la(a,c,_){{var T=a.child,R=a.sibling,j=a.tag,V=a.type,te=null;switch(j){case L:case le:case N:te=V;break;case ge:te=V.render;break;default:break}var oe=!1;te!==null&&c.has(te)&&(oe=!0),oe?sc(a,_):T!==null&&la(T,c,_),R!==null&&la(R,c,_)}}function sc(a,c){{var _=zc(a,c);if(_)return;for(var T=a;;){switch(T.tag){case W:c.add(T.stateNode);return;case q:c.add(T.stateNode.containerInfo);return;case U:c.add(T.stateNode.containerInfo);return}if(T.return===null)throw new Error("Expected to reach root first.");T=T.return}}}function zc(a,c){for(var _=a,T=!1;;){if(_.tag===W)T=!0,c.add(_.stateNode);else if(_.child!==null){_.child.return=_,_=_.child;continue}if(_===a)return T;for(;_.sibling===null;){if(_.return===null||_.return===a)return T;_=_.return}_.sibling.return=_.return,_=_.sibling}return!1}function bi(a,c){if(a&&a.defaultProps){var _=f({},c),T=a.defaultProps;for(var R in T)_[R]===void 0&&(_[R]=T[R]);return _}return c}function g(a){if(Yo(a),a._status!==So)throw a._result;return a._result}var y=Gu(null),A;A={};var F=null,I=null,J=null,fe=!1;function mt(){F=null,I=null,J=null,fe=!1}function Ct(){fe=!0}function Mt(){fe=!1}function Er(a,c){var _=a.type._context;Fu?(Vr(y,_._currentValue,a),_._currentValue=c,_._currentRenderer===void 0||_._currentRenderer===null||_._currentRenderer===A||Ke(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),_._currentRenderer=A):(Vr(y,_._currentValue2,a),_._currentValue2=c,_._currentRenderer2===void 0||_._currentRenderer2===null||_._currentRenderer2===A||Ke(!1,"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported."),_._currentRenderer2=A)}function $u(a){var c=y.current;Kr(y,a);var _=a.type._context;Fu?_._currentValue=c:_._currentValue2=c}function iu(a,c,_){if(ho(_,c))return 0;var T=typeof a._calculateChangedBits=="function"?a._calculateChangedBits(_,c):Ur;return(T&Ur)!==T&&Kt(!1,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: %s",T),T|0}function j0(a,c){for(var _=a;_!==null;){var T=_.alternate;if(_.childExpirationTime=c&&up(),_.firstContext=null)}}function He(a,c){if(fe&&Kt(!1,"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()."),J!==a){if(!(c===!1||c===0)){var _;typeof c!="number"||c===Ur?(J=a,_=Ur):_=c;var T={context:a,observedBits:_,next:null};if(I===null){if(F===null)throw Error("Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().");I=T,F.dependencies={expirationTime:lt,firstContext:T,responders:null}}else I=I.next=T}}return Fu?a._currentValue:a._currentValue2}var Be=0,ut=1,Jt=2,jn=3,ti=!1,tr,ii;tr=!1,ii=null;function qi(a){var c={baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return c}function jr(a){var c={baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null};return c}function gu(a,c){var _={expirationTime:a,suspenseConfig:c,tag:Be,payload:null,callback:null,next:null,nextEffect:null};return _.priority=Xt(),_}function Ba(a,c){a.lastUpdate===null?a.firstUpdate=a.lastUpdate=c:(a.lastUpdate.next=c,a.lastUpdate=c)}function Ua(a,c){var _=a.alternate,T,R;_===null?(T=a.updateQueue,R=null,T===null&&(T=a.updateQueue=qi(a.memoizedState))):(T=a.updateQueue,R=_.updateQueue,T===null?R===null?(T=a.updateQueue=qi(a.memoizedState),R=_.updateQueue=qi(_.memoizedState)):T=a.updateQueue=jr(R):R===null&&(R=_.updateQueue=jr(T))),R===null||T===R?Ba(T,c):T.lastUpdate===null||R.lastUpdate===null?(Ba(T,c),Ba(R,c)):(Ba(T,c),R.lastUpdate=c),a.tag===N&&(ii===T||R!==null&&ii===R)&&!tr&&(Ke(!1,"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback."),tr=!0)}function r2(a,c){var _=a.updateQueue;_===null?_=a.updateQueue=qi(a.memoizedState):_=Ed(a,_),_.lastCapturedUpdate===null?_.firstCapturedUpdate=_.lastCapturedUpdate=c:(_.lastCapturedUpdate.next=c,_.lastCapturedUpdate=c)}function Ed(a,c){var _=a.alternate;return _!==null&&c===_.updateQueue&&(c=a.updateQueue=jr(c)),c}function Dd(a,c,_,T,R,j){switch(_.tag){case ut:{var V=_.payload;if(typeof V=="function"){Ct(),Ei&&a.mode&cr&&V.call(j,T,R);var te=V.call(j,T,R);return Mt(),te}return V}case jn:a.effectTag=a.effectTag&~f0|Hr;case Be:{var oe=_.payload,Ie;return typeof oe=="function"?(Ct(),Ei&&a.mode&cr&&oe.call(j,T,R),Ie=oe.call(j,T,R),Mt()):Ie=oe,Ie==null?T:f({},T,Ie)}case Jt:return ti=!0,T}return T}function mf(a,c,_,T,R){ti=!1,c=Ed(a,c),ii=c;for(var j=c.baseState,V=null,te=lt,oe=c.firstUpdate,Ie=j;oe!==null;){var Ye=oe.expirationTime;if(Ye from render. Or maybe you meant to call this function rather than return it."))}function yh(a){function c(it,Ot){if(!!a){var Je=it.lastEffect;Je!==null?(Je.nextEffect=Ot,it.lastEffect=Ot):it.firstEffect=it.lastEffect=Ot,Ot.nextEffect=null,Ot.effectTag=W0}}function _(it,Ot){if(!a)return null;for(var Je=Ot;Je!==null;)c(it,Je),Je=Je.sibling;return null}function T(it,Ot){for(var Je=new Map,Bt=Ot;Bt!==null;)Bt.key!==null?Je.set(Bt.key,Bt):Je.set(Bt.index,Bt),Bt=Bt.sibling;return Je}function R(it,Ot,Je){var Bt=wo(it,Ot,Je);return Bt.index=0,Bt.sibling=null,Bt}function j(it,Ot,Je){if(it.index=Je,!a)return Ot;var Bt=it.alternate;if(Bt!==null){var Mn=Bt.index;return Mnqr?(_u=ar,ar=null):_u=ar.sibling;var _0=Nt(it,ar,Je[qr],Bt);if(_0===null){ar===null&&(ar=_u);break}a&&ar&&_0.alternate===null&&c(it,ar),ou=j(_0,ou,qr),qu===null?oi=_0:qu.sibling=_0,qu=_0,ar=_u}if(qr===Je.length)return _(it,ar),oi;if(ar===null){for(;qrH0?(Cs=_u,_u=null):Cs=_u.sibling;var pl=Nt(it,_u,Hu.value,Bt);if(pl===null){_u===null&&(_u=Cs);break}a&&_u&&pl.alternate===null&&c(it,_u),_0=j(pl,_0,H0),qr===null?ou=pl:qr.sibling=pl,qr=pl,_u=Cs}if(Hu.done)return _(it,_u),ou;if(_u===null){for(;!Hu.done;H0++,Hu=ar.next()){var Ja=pt(it,Hu.value,Bt);Ja!==null&&(_0=j(Ja,_0,H0),qr===null?ou=Ja:qr.sibling=Ja,qr=Ja)}return ou}for(var jo=T(it,_u);!Hu.done;H0++,Hu=ar.next()){var xs=Vt(jo,it,H0,Hu.value,Bt);xs!==null&&(a&&xs.alternate!==null&&jo.delete(xs.key===null?H0:xs.key),_0=j(xs,_0,H0),qr===null?ou=xs:qr.sibling=xs,qr=xs)}return a&&jo.forEach(function(X2){return c(it,X2)}),ou}function $r(it,Ot,Je,Bt){if(Ot!==null&&Ot.tag===ne){_(it,Ot.sibling);var Mn=R(Ot,Je,Bt);return Mn.return=it,Mn}_(it,Ot);var pn=Cy(Je,it.mode,Bt);return pn.return=it,pn}function wi(it,Ot,Je,Bt){for(var Mn=Je.key,pn=Ot;pn!==null;){if(pn.key===Mn)if(pn.tag===m?Je.type===ue:pn.elementType===Je.type||jc(pn,Je)){_(it,pn.sibling);var Pi=R(pn,Je.type===ue?Je.props.children:Je.props,Bt);return Pi.ref=fc(it,pn,Je),Pi.return=it,Pi._debugSource=Je._source,Pi._debugOwner=Je._owner,Pi}else{_(it,pn);break}else c(it,pn);pn=pn.sibling}if(Je.type===ue){var oi=Qa(Je.props.children,it.mode,Bt,Je.key);return oi.return=it,oi}else{var qu=Ty(Je,it.mode,Bt);return qu.ref=fc(it,Ot,Je),qu.return=it,qu}}function N0(it,Ot,Je,Bt){for(var Mn=Je.key,pn=Ot;pn!==null;){if(pn.key===Mn)if(pn.tag===q&&pn.stateNode.containerInfo===Je.containerInfo&&pn.stateNode.implementation===Je.implementation){_(it,pn.sibling);var Pi=R(pn,Je.children||[],Bt);return Pi.return=it,Pi}else{_(it,pn);break}else c(it,pn);pn=pn.sibling}var oi=xy(Je,it.mode,Bt);return oi.return=it,oi}function Vi(it,Ot,Je,Bt){var Mn=typeof Je=="object"&&Je!==null&&Je.type===ue&&Je.key===null;Mn&&(Je=Je.props.children);var pn=typeof Je=="object"&&Je!==null;if(pn)switch(Je.$$typeof){case ae:return V(wi(it,Ot,Je,Bt));case Ce:return V(N0(it,Ot,Je,Bt))}if(typeof Je=="string"||typeof Je=="number")return V($r(it,Ot,""+Je,Bt));if(Kc(Je))return vn(it,Ot,Je,Bt);if(ur(Je))return xr(it,Ot,Je,Bt);if(pn&&cc(it,Je),typeof Je=="function"&&f2(),typeof Je=="undefined"&&!Mn)switch(it.tag){case N:{var Pi=it.stateNode;if(Pi.render._isMockFunction)break}case L:{var oi=it.type;throw Error((oi.displayName||oi.name||"Component")+"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.")}}return _(it,Ot)}return Vi}var gf=yh(!0),Xc=yh(!1);function gh(a,c){if(!(a===null||c.child===a.child))throw Error("Resuming work not yet implemented.");if(c.child!==null){var _=c.child,T=wo(_,_.pendingProps,_.expirationTime);for(c.child=T,T.return=c;_.sibling!==null;)_=_.sibling,T=T.sibling=wo(_,_.pendingProps,_.expirationTime),T.return=c;T.sibling=null}}function vm(a,c){for(var _=a.child;_!==null;)Rv(_,c),_=_.sibling}var js={},fa=Gu(js),Ji=Gu(js),O0=Gu(js);function t0(a){if(a===js)throw Error("Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.");return a}function Jl(){var a=t0(O0.current);return a}function za(a,c){Vr(O0,c,a),Vr(Ji,a,a),Vr(fa,js,a);var _=Et(c);Kr(fa,a),Vr(fa,_,a)}function no(a){Kr(fa,a),Kr(Ji,a),Kr(O0,a)}function ul(){var a=t0(fa.current);return a}function dc(a){var c=t0(O0.current),_=t0(fa.current),T=Pt(_,a.type,c);_!==T&&(Vr(Ji,a,a),Vr(fa,T,a))}function Od(a){Ji.current===a&&(Kr(fa,a),Kr(Ji,a))}var _h=0,_f=1,Ef=1,Qc=2,xl=Gu(_h);function Jc(a,c){return(a&c)!=0}function ca(a){return a&_f}function c2(a,c){return a&_f|c}function d2(a,c){return a|c}function Or(a,c){Vr(xl,c,a)}function da(a){Kr(xl,a)}function kd(a,c){var _=a.memoizedState;if(_!==null)return _.dehydrated!==null;var T=a.memoizedProps;return T.fallback===void 0?!1:T.unstable_avoidThisFallback!==!0?!0:!c}function Zc(a){for(var c=a;c!==null;){if(c.tag===pe){var _=c.memoizedState;if(_!==null){var T=_.dehydrated;if(T===null||Ls(T)||h0(T))return c}}else if(c.tag===wt&&c.memoizedProps.revealOrder!==void 0){var R=(c.effectTag&Hr)!==_i;if(R)return c}else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===a)return null;for(;c.sibling===null;){if(c.return===null||c.return===a)return null;c=c.return}c.sibling.return=c.return,c=c.sibling}return null}var p2={},vi=Array.isArray;function Md(a,c,_,T){return{fiber:T,props:c,responder:a,rootEventTypes:null,state:_}}function mm(a,c,_,T,R){var j=p2,V=a.getInitialState;V!==null&&(j=V(c));var te=Md(a,c,j,_);if(!R)for(var oe=_;oe!==null;){var Ie=oe.tag;if(Ie===W){R=oe.stateNode;break}else if(Ie===U){R=oe.stateNode.containerInfo;break}oe=oe.return}Ne(a,te,c,j,R),T.set(a,te)}function h2(a,c,_,T,R){var j,V;if(a&&(j=a.responder,V=a.props),!(j&&j.$$typeof===Ut))throw Error("An invalid value was used as an event listener. Expect one or many event listeners created via React.unstable_useResponder().");var te=V;if(_.has(j)){Kt(!1,'Duplicate event responder "%s" found in event listeners. Event listeners passed to elements cannot use the same event responder more than once.',j.displayName);return}_.add(j);var oe=T.get(j);oe===void 0?mm(j,te,c,T,R):(oe.props=te,oe.fiber=c)}function dn(a,c,_){var T=new Set,R=c.dependencies;if(a!=null){R===null&&(R=c.dependencies={expirationTime:lt,firstContext:null,responders:new Map});var j=R.responders;if(j===null&&(j=new Map),vi(a))for(var V=0,te=a.length;V0){var j=R.dispatch;if(Es!==null){var V=Es.get(R);if(V!==void 0){Es.delete(R);var te=T.memoizedState,oe=V;do{var Ie=oe.action;te=a(te,Ie),oe=oe.next}while(oe!==null);return ho(te,T.memoizedState)||up(),T.memoizedState=te,T.baseUpdate===R.last&&(T.baseState=te),R.lastRenderedState=te,[te,j]}}return[T.memoizedState,j]}var Ye=R.last,pt=T.baseUpdate,Nt=T.baseState,Vt;if(pt!==null?(Ye!==null&&(Ye.next=null),Vt=pt.next):Vt=Ye!==null?Ye.next:null,Vt!==null){var zt=Nt,vn=null,xr=null,$r=pt,wi=Vt,N0=!1;do{var Vi=wi.expirationTime;if(ViOu&&(Ou=Vi,G2(Ou));else if(vv(Vi,wi.suspenseConfig),wi.eagerReducer===a)zt=wi.eagerState;else{var it=wi.action;zt=a(zt,it)}$r=wi,wi=wi.next}while(wi!==null&&wi!==Vt);N0||(xr=$r,vn=zt),ho(zt,T.memoizedState)||up(),T.memoizedState=zt,T.baseUpdate=xr,T.baseState=vn,R.lastRenderedState=zt}var Ot=R.dispatch;return[T.memoizedState,Ot]}function Rf(a){var c=mc();typeof a=="function"&&(a=a()),c.memoizedState=c.baseState=a;var _=c.queue={last:null,dispatch:null,lastRenderedReducer:Nd,lastRenderedState:a},T=_.dispatch=u1.bind(null,ll,_);return[c.memoizedState,T]}function n1(a){return t1(Nd,a)}function Wa(a,c,_,T){var R={tag:a,create:c,destroy:_,deps:T,next:null};if(Zl===null)Zl=Ha(),Zl.lastEffect=R.next=R;else{var j=Zl.lastEffect;if(j===null)Zl.lastEffect=R.next=R;else{var V=j.next;j.next=R,R.next=V,Zl.lastEffect=R}}return R}function r1(a){var c=mc(),_={current:a};return Object.seal(_),c.memoizedState=_,_}function Ld(a){var c=e1();return c.memoizedState}function g2(a,c,_,T){var R=mc(),j=T===void 0?null:T;Tf|=a,R.memoizedState=Wa(c,_,void 0,j)}function yc(a,c,_,T){var R=e1(),j=T===void 0?null:T,V=void 0;if(Pn!==null){var te=Pn.memoizedState;if(V=te.destroy,j!==null){var oe=te.deps;if(xf(j,oe)){Wa(wf,_,V,j);return}}}Tf|=a,R.memoizedState=Wa(c,_,V,j)}function i1(a,c){return typeof jest!="undefined"&&Av(ll),g2(mr|L0,rr|$c,a,c)}function Rl(a,c){return typeof jest!="undefined"&&Av(ll),yc(mr|L0,rr|$c,a,c)}function pa(a,c){return g2(mr,Sf|ol,a,c)}function wh(a,c){return yc(mr,Sf|ol,a,c)}function Fd(a,c){if(typeof c=="function"){var _=c,T=a();return _(T),function(){_(null)}}else if(c!=null){var R=c;R.hasOwnProperty("current")||Kt(!1,"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.","an object with keys {"+Object.keys(R).join(", ")+"}");var j=a();return R.current=j,function(){R.current=null}}}function bd(a,c,_){typeof c!="function"&&Kt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=_!=null?_.concat([a]):null;return g2(mr,Sf|ol,Fd.bind(null,c,a),T)}function Sh(a,c,_){typeof c!="function"&&Kt(!1,"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.",c!==null?typeof c:"null");var T=_!=null?_.concat([a]):null;return yc(mr,Sf|ol,Fd.bind(null,c,a),T)}function _2(a,c){}var Th=_2;function Ol(a,c){var _=mc(),T=c===void 0?null:c;return _.memoizedState=[a,T],a}function es(a,c){var _=e1(),T=c===void 0?null:c,R=_.memoizedState;if(R!==null&&T!==null){var j=R[1];if(xf(T,j))return R[0]}return _.memoizedState=[a,T],a}function Ds(a,c){var _=mc(),T=c===void 0?null:c,R=a();return _.memoizedState=[R,T],R}function zs(a,c){var _=e1(),T=c===void 0?null:c,R=_.memoizedState;if(R!==null&&T!==null){var j=R[1];if(xf(T,j))return R[0]}var V=a();return _.memoizedState=[V,T],V}function Pd(a,c){var _=Rf(a),T=_[0],R=_[1];return i1(function(){t.unstable_next(function(){var j=Bo.suspense;Bo.suspense=c===void 0?null:c;try{R(a)}finally{Bo.suspense=j}})},[a,c]),T}function Ch(a,c){var _=n1(a),T=_[0],R=_[1];return Rl(function(){t.unstable_next(function(){var j=Bo.suspense;Bo.suspense=c===void 0?null:c;try{R(a)}finally{Bo.suspense=j}})},[a,c]),T}function Id(a){var c=Rf(!1),_=c[0],T=c[1],R=Ol(function(j){T(!0),t.unstable_next(function(){var V=Bo.suspense;Bo.suspense=a===void 0?null:a;try{T(!1),j()}finally{Bo.suspense=V}})},[a,_]);return[R,_]}function Bd(a){var c=n1(!1),_=c[0],T=c[1],R=es(function(j){T(!0),t.unstable_next(function(){var V=Bo.suspense;Bo.suspense=a===void 0?null:a;try{T(!1),j()}finally{Bo.suspense=V}})},[a,_]);return[R,_]}function u1(a,c,_){if(!(vc=0){var _=l1()-s1;a.actualDuration+=_,c&&(a.selfBaseDuration=_),s1=-1}}var Ml=null,Ga=null,ha=!1;function qd(){ha&&Kt(!1,"We should not be hydrating here. This is a bug in React. Please file a bug.")}function Hd(a){if(!_e)return!1;var c=a.stateNode.containerInfo;return Ga=B(c),Ml=a,ha=!0,!0}function Em(a,c){return _e?(Ga=Ni(c),Gd(a),ha=!0,!0):!1}function Wd(a,c){switch(a.tag){case U:ie(a.stateNode.containerInfo,c);break;case W:qe(a.type,a.memoizedProps,a.stateNode,c);break}var _=eE();_.stateNode=c,_.return=a,_.effectTag=W0,a.lastEffect!==null?(a.lastEffect.nextEffect=_,a.lastEffect=_):a.firstEffect=a.lastEffect=_}function Mh(a,c){switch(c.effectTag=c.effectTag&~tu|ai,a.tag){case U:{var _=a.stateNode.containerInfo;switch(c.tag){case W:var T=c.type,R=c.pendingProps;tt(_,T,R);break;case ne:var j=c.pendingProps;Tt(_,j);break;case pe:kt(_);break}break}case W:{var V=a.type,te=a.memoizedProps,oe=a.stateNode;switch(c.tag){case W:var Ie=c.type,Ye=c.pendingProps;bt(V,te,oe,Ie,Ye);break;case ne:var pt=c.pendingProps;on(V,te,oe,pt);break;case pe:tn(V,te,oe);break}break}default:return}}function Nh(a,c){switch(a.tag){case W:{var _=a.type,T=a.pendingProps,R=lf(c,_,T);return R!==null?(a.stateNode=R,!0):!1}case ne:{var j=a.pendingProps,V=Ns(c,j);return V!==null?(a.stateNode=V,!0):!1}case pe:{if(Di){var te=Ma(c);if(te!==null){var oe={dehydrated:te,retryTime:hi};a.memoizedState=oe;var Ie=tE(te);return Ie.return=a,a.child=Ie,!0}}return!1}default:return!1}}function Vd(a){if(!!ha){var c=Ga;if(!c){Mh(Ml,a),ha=!1,Ml=a;return}var _=c;if(!Nh(a,c)){if(c=Ni(_),!c||!Nh(a,c)){Mh(Ml,a),ha=!1,Ml=a;return}Wd(Ml,_)}Ml=a,Ga=B(c)}}function Dm(a,c,_){if(!_e)throw Error("Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var T=a.stateNode,R=z(T,a.type,a.memoizedProps,c,_,a);return a.updateQueue=R,R!==null}function wm(a){if(!_e)throw Error("Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.stateNode,_=a.memoizedProps,T=G(c,_,a);if(T){var R=Ml;if(R!==null)switch(R.tag){case U:{var j=R.stateNode.containerInfo;Xe(j,c,_);break}case W:{var V=R.type,te=R.memoizedProps,oe=R.stateNode;ht(V,te,oe,c,_);break}}}return T}function Lh(a){if(!_e)throw Error("Expected prepareToHydrateHostSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.memoizedState,_=c!==null?c.dehydrated:null;if(!_)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");$(_,a)}function Sm(a){if(!_e)throw Error("Expected skipPastDehydratedSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.");var c=a.memoizedState,_=c!==null?c.dehydrated:null;if(!_)throw Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return De(_)}function Gd(a){for(var c=a.return;c!==null&&c.tag!==W&&c.tag!==U&&c.tag!==pe;)c=c.return;Ml=c}function f1(a){if(!_e||a!==Ml)return!1;if(!ha)return Gd(a),ha=!0,!1;var c=a.type;if(a.tag!==W||c!=="head"&&c!=="body"&&!Ti(c,a.memoizedProps))for(var _=Ga;_;)Wd(a,_),_=Ni(_);return Gd(a),a.tag===pe?Ga=Sm(a):Ga=Ml?Ni(a.stateNode):null,!0}function c1(){!_e||(Ml=null,Ga=null,ha=!1)}var d1=at.ReactCurrentOwner,va=!1,Yd,qs,Hs,Ws,Kd,ma,p1,E2,gc,Xd;Yd={},qs={},Hs={},Ws={},Kd={},ma=!1,p1=!1,E2={},gc={},Xd={};function _o(a,c,_,T){a===null?c.child=Xc(c,null,_,T):c.child=gf(c,a.child,_,T)}function Fh(a,c,_,T){c.child=gf(c,a.child,null,T),c.child=gf(c,null,_,T)}function bh(a,c,_,T,R){if(c.type!==c.elementType){var j=_.propTypes;j&&E(j,T,"prop",qt(_),Rr)}var V=_.render,te=c.ref,oe;return e0(c,R),d1.current=c,Ze("render"),oe=Af(a,c,V,T,te,R),Ei&&c.mode&cr&&c.memoizedState!==null&&(oe=Af(a,c,V,T,te,R)),Ze(null),a!==null&&!va?(v2(a,c,R),ya(a,c,R)):(c.effectTag|=eu,_o(a,c,oe,R),c.child)}function Ph(a,c,_,T,R,j){if(a===null){var V=_.type;if(i0(V)&&_.compare===null&&_.defaultProps===void 0){var te=V;return te=Zu(V),c.tag=le,c.type=te,Zd(c,V),Ih(a,c,te,T,R,j)}{var oe=V.propTypes;oe&&E(oe,T,"prop",qt(V),Rr)}var Ie=Sy(_.type,null,T,null,c.mode,j);return Ie.ref=c.ref,Ie.return=c,c.child=Ie,Ie}{var Ye=_.type,pt=Ye.propTypes;pt&&E(pt,T,"prop",qt(Ye),Rr)}var Nt=a.child;if(R component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.",oe,oe),Yd[oe]=!0)}c.mode&cr&&wl.recordLegacyContextWarning(c,null),d1.current=c,te=Af(null,c,_,R,j,T)}if(c.effectTag|=eu,typeof te=="object"&&te!==null&&typeof te.render=="function"&&te.$$typeof===void 0){{var Ie=qt(_)||"Unknown";qs[Ie]||(Ke(!1,"The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.",Ie,Ie,Ie),qs[Ie]=!0)}c.tag=N,m2();var Ye=!1;zi(_)?(Ye=!0,Fi(c)):Ye=!1,c.memoizedState=te.state!==null&&te.state!==void 0?te.state:null;var pt=_.getDerivedStateFromProps;return typeof pt=="function"&&yf(c,_,pt,R),il(c,te),ac(c,_,R,T),Jd(null,c,_,!0,Ye,T)}else return c.tag=L,ni&&_.contextTypes&&Ke(!1,"%s uses the legacy contextTypes API which is no longer supported. Use React.createContext() with React.useContext() instead.",qt(_)||"Unknown"),Ei&&c.mode&cr&&c.memoizedState!==null&&(te=Af(null,c,_,R,j,T)),_o(null,c,te,T),Zd(c,_),c.child}function Zd(a,c){if(c&&c.childContextTypes&&Ke(!1,"%s(...): childContextTypes cannot be defined on a function component.",c.displayName||c.name||"Component"),a.ref!==null){var _="",T=v0();T&&(_+=` + +Check the render method of \``+T+"`.");var R=T||a._debugID||"",j=a._debugSource;j&&(R=j.fileName+":"+j.lineNumber),Kd[R]||(Kd[R]=!0,Kt(!1,"Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s",_))}if(Wl&&c.defaultProps!==void 0){var V=qt(c)||"Unknown";Xd[V]||(Ke(!1,"%s: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.",V),Xd[V]=!0)}if(typeof c.getDerivedStateFromProps=="function"){var te=qt(c)||"Unknown";Ws[te]||(Ke(!1,"%s: Function components do not support getDerivedStateFromProps.",te),Ws[te]=!0)}if(typeof c.contextType=="object"&&c.contextType!==null){var oe=qt(c)||"Unknown";Hs[oe]||(Ke(!1,"%s: Function components do not support contextType.",oe),Hs[oe]=!0)}}var w2={dehydrated:null,retryTime:lt};function $d(a,c,_){return Jc(a,Qc)&&(c===null||c.memoizedState!==null)}function qh(a,c,_){var T=c.mode,R=c.pendingProps;a_(c)&&(c.effectTag|=Hr);var j=xl.current,V=!1,te=(c.effectTag&Hr)!==_i;if(te||$d(j,a,c)?(V=!0,c.effectTag&=~Hr):(a===null||a.memoizedState!==null)&&R.fallback!==void 0&&R.unstable_avoidThisFallback!==!0&&(j=d2(j,Ef)),j=ca(j),Or(c,j),"maxDuration"in R&&(p1||(p1=!0,Kt(!1,"maxDuration has been removed from React. Remove the maxDuration prop."))),a===null){if(R.fallback!==void 0&&(Vd(c),Di)){var oe=c.memoizedState;if(oe!==null){var Ie=oe.dehydrated;if(Ie!==null)return Hh(c,Ie,_)}}if(V){var Ye=R.fallback,pt=Qa(null,T,lt,null);if(pt.return=c,(c.mode&Y)===Sr){var Nt=c.memoizedState,Vt=Nt!==null?c.child.child:c.child;pt.child=Vt;for(var zt=Vt;zt!==null;)zt.return=pt,zt=zt.sibling}var vn=Qa(Ye,T,_,null);return vn.return=c,pt.sibling=vn,c.memoizedState=w2,c.child=pt,vn}else{var xr=R.children;return c.memoizedState=null,c.child=Xc(c,null,xr,_)}}else{var $r=a.memoizedState;if($r!==null){if(Di){var wi=$r.dehydrated;if(wi!==null)if(te){if(c.memoizedState!==null)return c.child=a.child,c.effectTag|=Hr,null;var N0=R.fallback,Vi=Qa(null,T,lt,null);if(Vi.return=c,Vi.child=null,(c.mode&Y)===Sr)for(var it=Vi.child=c.child;it!==null;)it.return=Vi,it=it.sibling;else gf(c,a.child,null,_);if(Zt&&c.mode&Jr){for(var Ot=0,Je=Vi.child;Je!==null;)Ot+=Je.treeBaseDuration,Je=Je.sibling;Vi.treeBaseDuration=Ot}var Bt=Qa(N0,T,_,null);return Bt.return=c,Vi.sibling=Bt,Bt.effectTag|=ai,Vi.childExpirationTime=lt,c.memoizedState=w2,c.child=Vi,Bt}else return Wh(a,c,wi,$r,_)}var Mn=a.child,pn=Mn.sibling;if(V){var Pi=R.fallback,oi=wo(Mn,Mn.pendingProps,lt);if(oi.return=c,(c.mode&Y)===Sr){var qu=c.memoizedState,ar=qu!==null?c.child.child:c.child;if(ar!==Mn.child){oi.child=ar;for(var ou=ar;ou!==null;)ou.return=oi,ou=ou.sibling}}if(Zt&&c.mode&Jr){for(var qr=0,_u=oi.child;_u!==null;)qr+=_u.treeBaseDuration,_u=_u.sibling;oi.treeBaseDuration=qr}var _0=wo(pn,Pi,pn.expirationTime);return _0.return=c,oi.sibling=_0,oi.childExpirationTime=lt,c.memoizedState=w2,c.child=oi,_0}else{var H0=R.children,Cs=Mn.child,Hu=gf(c,Cs,H0,_);return c.memoizedState=null,c.child=Hu}}else{var pl=a.child;if(V){var Ja=R.fallback,jo=Qa(null,T,lt,null);if(jo.return=c,jo.child=pl,pl!==null&&(pl.return=jo),(c.mode&Y)===Sr){var xs=c.memoizedState,X2=xs!==null?c.child.child:c.child;jo.child=X2;for(var Uf=X2;Uf!==null;)Uf.return=jo,Uf=Uf.sibling}if(Zt&&c.mode&Jr){for(var Rc=0,Pl=jo.child;Pl!==null;)Rc+=Pl.treeBaseDuration,Pl=Pl.sibling;jo.treeBaseDuration=Rc}var zo=Qa(Ja,T,_,null);return zo.return=c,jo.sibling=zo,zo.effectTag|=ai,jo.childExpirationTime=lt,c.memoizedState=w2,c.child=jo,zo}else{c.memoizedState=null;var O1=R.children;return c.child=gf(c,pl,O1,_)}}}}function ep(a,c,_){c.memoizedState=null;var T=c.pendingProps,R=T.children;return _o(a,c,R,_),c.child}function Hh(a,c,_){if((a.mode&Y)===Sr)Kt(!1,"Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOM.createBlockingRoot(container, { hydrate: true }).render(element) or remove the Suspense components from the server rendered components."),a.expirationTime=bn;else if(h0(c)){var T=Fl(),R=ms(T);Ln&&x(R),a.expirationTime=R}else a.expirationTime=hi,Ln&&x(hi);return null}function Wh(a,c,_,T,R){if(qd(),(c.mode&Y)===Sr||h0(_))return ep(a,c,R);var j=a.childExpirationTime>=R;if(va||j){if(R. Use lowercase "%s" instead.',a,a.toLowerCase());break}case"forward":case"backward":{Kt(!1,'"%s" is not a valid value for revealOrder on . React uses the -s suffix in the spelling. Use "%ss" instead.',a,a.toLowerCase());break}default:Kt(!1,'"%s" is not a supported revealOrder on . Did you mean "together", "forwards" or "backwards"?',a);break}else Kt(!1,'%s is not a supported value for revealOrder on . Did you mean "together", "forwards" or "backwards"?',a)}function Vh(a,c){a!==void 0&&!gc[a]&&(a!=="collapsed"&&a!=="hidden"?(gc[a]=!0,Kt(!1,'"%s" is not a supported value for tail on . Did you mean "collapsed" or "hidden"?',a)):c!=="forwards"&&c!=="backwards"&&(gc[a]=!0,Kt(!1,' is only valid if revealOrder is "forwards" or "backwards". Did you mean to specify revealOrder="forwards"?',a)))}function v1(a,c){{var _=Array.isArray(a),T=!_&&typeof ur(a)=="function";if(_||T){var R=_?"array":"iterable";return Kt(!1,"A nested %s was passed to row #%s in . Wrap it in an additional SuspenseList to configure its revealOrder: ... {%s} ... ",R,c,R),!1}}return!0}function Mm(a,c){if((c==="forwards"||c==="backwards")&&a!==void 0&&a!==null&&a!==!1)if(Array.isArray(a)){for(var _=0;_. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',c)}}function np(a,c,_,T,R,j){var V=a.memoizedState;V===null?a.memoizedState={isBackwards:c,rendering:null,last:T,tail:_,tailExpiration:0,tailMode:R,lastEffect:j}:(V.isBackwards=c,V.rendering=null,V.last=T,V.tail=_,V.tailExpiration=0,V.tailMode=R,V.lastEffect=j)}function rp(a,c,_){var T=c.pendingProps,R=T.revealOrder,j=T.tail,V=T.children;km(R),Vh(j,R),Mm(V,R),_o(a,c,V,_);var te=xl.current,oe=Jc(te,Qc);if(oe)te=c2(te,Qc),c.effectTag|=Hr;else{var Ie=a!==null&&(a.effectTag&Hr)!==_i;Ie&&Rm(c,c.child,_),te=ca(te)}if(Or(c,te),(c.mode&Y)===Sr)c.memoizedState=null;else switch(R){case"forwards":{var Ye=Om(c.child),pt;Ye===null?(pt=c.child,c.child=null):(pt=Ye.sibling,Ye.sibling=null),np(c,!1,pt,Ye,j,c.lastEffect);break}case"backwards":{var Nt=null,Vt=c.child;for(c.child=null;Vt!==null;){var zt=Vt.alternate;if(zt!==null&&Zc(zt)===null){c.child=Vt;break}var vn=Vt.sibling;Vt.sibling=Nt,Nt=Vt,Vt=vn}np(c,!0,Nt,null,j,c.lastEffect);break}case"together":{np(c,!1,null,null,void 0,c.lastEffect);break}default:c.memoizedState=null}return c.child}function Nm(a,c,_){za(c,c.stateNode.containerInfo);var T=c.pendingProps;return a===null?c.child=gf(c,null,T,_):_o(a,c,T,_),c.child}function Lm(a,c,_){var T=c.type,R=T._context,j=c.pendingProps,V=c.memoizedProps,te=j.value;{var oe=c.type.propTypes;oe&&E(oe,j,"prop","Context.Provider",Rr)}if(Er(c,te),V!==null){var Ie=V.value,Ye=iu(R,te,Ie);if(Ye===0){if(V.children===j.children&&!na())return ya(a,c,_)}else Tl(c,R,Ye,_)}var pt=j.children;return _o(a,c,pt,_),c.child}var Gh=!1;function Fm(a,c,_){var T=c.type;T._context===void 0?T!==T.Consumer&&(Gh||(Gh=!0,Kt(!1,"Rendering directly is not supported and will be removed in a future major release. Did you mean to render instead?"))):T=T._context;var R=c.pendingProps,j=R.children;typeof j!="function"&&Ke(!1,"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."),e0(c,_);var V=He(T,R.unstable_observedBits),te;return d1.current=c,Ze("render"),te=j(V),Ze(null),c.effectTag|=eu,_o(a,c,te,_),c.child}function bm(a,c,_){var T=c.type.impl;if(T.reconcileChildren===!1)return null;var R=c.pendingProps,j=R.children;return _o(a,c,j,_),c.child}function ip(a,c,_){var T=c.pendingProps,R=T.children;return _o(a,c,R,_),c.child}function up(){va=!0}function ya(a,c,_){Ki(c),a!==null&&(c.dependencies=a.dependencies),Zt&&kh(c);var T=c.expirationTime;T!==lt&&G2(T);var R=c.childExpirationTime;return R<_?null:(gh(a,c),c.child)}function m1(a,c,_){{var T=c.return;if(T===null)throw new Error("Cannot swap the root fiber.");if(a.alternate=null,c.alternate=null,_.index=c.index,_.sibling=c.sibling,_.return=c.return,_.ref=c.ref,c===T.child)T.child=_;else{var R=T.child;if(R===null)throw new Error("Expected parent to have a child.");for(;R.sibling!==c;)if(R=R.sibling,R===null)throw new Error("Expected to find the previous sibling.");R.sibling=_}var j=T.lastEffect;return j!==null?(j.nextEffect=a,T.lastEffect=a):T.firstEffect=T.lastEffect=a,a.nextEffect=null,a.effectTag=W0,_.effectTag|=ai,_}}function op(a,c,_){var T=c.expirationTime;if(c._debugNeedsRemount&&a!==null)return m1(a,c,Sy(c.type,c.key,c.pendingProps,c._debugOwner||null,c.mode,c.expirationTime));if(a!==null){var R=a.memoizedProps,j=c.pendingProps;if(R!==j||na()||c.type!==a.type)va=!0;else if(T<_){switch(va=!1,c.tag){case U:zh(c),c1();break;case W:if(dc(c),c.mode&Qr&&_!==hi&&d0(c.type,j))return Ln&&x(hi),c.expirationTime=c.childExpirationTime=hi,null;break;case N:{var V=c.type;zi(V)&&Fi(c);break}case q:za(c,c.stateNode.containerInfo);break;case he:{var te=c.memoizedProps.value;Er(c,te);break}case ze:if(Zt){var oe=c.childExpirationTime>=_;oe&&(c.effectTag|=mr)}break;case pe:{var Ie=c.memoizedState;if(Ie!==null){if(Di&&Ie.dehydrated!==null){Or(c,ca(xl.current)),c.effectTag|=Hr;break}var Ye=c.child,pt=Ye.childExpirationTime;if(pt!==lt&&pt>=_)return qh(a,c,_);Or(c,ca(xl.current));var Nt=ya(a,c,_);return Nt!==null?Nt.sibling:null}else Or(c,ca(xl.current));break}case wt:{var Vt=(a.effectTag&Hr)!==_i,zt=c.childExpirationTime>=_;if(Vt){if(zt)return rp(a,c,_);c.effectTag|=Hr}var vn=c.memoizedState;if(vn!==null&&(vn.rendering=null,vn.tail=null),Or(c,xl.current),zt)break;return null}}return ya(a,c,_)}else va=!1}else va=!1;switch(c.expirationTime=lt,c.tag){case C:return Am(a,c,c.type,_);case Ue:{var xr=c.elementType;return kf(a,c,xr,T,_)}case L:{var $r=c.type,wi=c.pendingProps,N0=c.elementType===$r?wi:bi($r,wi);return Qd(a,c,$r,N0,_)}case N:{var Vi=c.type,it=c.pendingProps,Ot=c.elementType===Vi?it:bi(Vi,it);return jh(a,c,Vi,Ot,_)}case U:return Cm(a,c,_);case W:return xm(a,c,_);case ne:return Of(a,c);case pe:return qh(a,c,_);case q:return Nm(a,c,_);case ge:{var Je=c.type,Bt=c.pendingProps,Mn=c.elementType===Je?Bt:bi(Je,Bt);return bh(a,c,Je,Mn,_)}case m:return Tm(a,c,_);case we:return Bh(a,c,_);case ze:return Uh(a,c,_);case he:return Lm(a,c,_);case Se:return Fm(a,c,_);case Oe:{var pn=c.type,Pi=c.pendingProps,oi=bi(pn,Pi);if(c.type!==c.elementType){var qu=pn.propTypes;qu&&E(qu,oi,"prop",qt(pn),Rr)}return oi=bi(pn.type,oi),Ph(a,c,pn,oi,T,_)}case le:return Ih(a,c,c.type,c.pendingProps,T,_);case Ge:{var ar=c.type,ou=c.pendingProps,qr=c.elementType===ar?ou:bi(ar,ou);return D2(a,c,ar,qr,_)}case wt:return rp(a,c,_);case xt:{if(Ht)return bm(a,c,_);break}case $e:{if(Du)return ip(a,c,_);break}}throw Error("Unknown unit of work tag ("+c.tag+"). This error is likely caused by a bug in React. Please file an issue.")}function Yh(a,c,_,T){return{currentFiber:a,impl:_,instance:null,prevProps:null,props:c,state:T}}function S2(a){return a.tag===pe&&a.memoizedState!==null}function y1(a){return a.child.sibling.child}var Kh={};function lp(a,c,_){if(Du){if(a.tag===W){var T=a.type,R=a.memoizedProps,j=a.stateNode,V=Ro(j);V!==null&&c(T,R||Kh,V)===!0&&_.push(V)}var te=a.child;S2(a)&&(te=y1(a)),te!==null&&sp(te,c,_)}}function Xh(a,c){if(Du){if(a.tag===W){var _=a.type,T=a.memoizedProps,R=a.stateNode,j=Ro(R);if(j!==null&&c(_,T,j)===!0)return j}var V=a.child;if(S2(a)&&(V=y1(a)),V!==null)return Qh(V,c)}return null}function sp(a,c,_){for(var T=a;T!==null;)lp(T,c,_),T=T.sibling}function Qh(a,c){for(var _=a;_!==null;){var T=Xh(_,c);if(T!==null)return T;_=_.sibling}return null}function Jh(a,c,_){if(T2(a,c))_.push(a.stateNode.methods);else{var T=a.child;S2(a)&&(T=y1(a)),T!==null&&ap(T,c,_)}}function ap(a,c,_){for(var T=a;T!==null;)Jh(T,c,_),T=T.sibling}function T2(a,c){return a.tag===$e&&a.type===c&&a.stateNode!==null}function C2(a,c){return{getChildren:function(){var _=c.fiber,T=_.child,R=[];return T!==null&&ap(T,a,R),R.length===0?null:R},getChildrenFromRoot:function(){for(var _=c.fiber,T=_;T!==null;){var R=T.return;if(R===null||(T=R,T.tag===$e&&T.type===a))break}var j=[];return ap(T.child,a,j),j.length===0?null:j},getParent:function(){for(var _=c.fiber.return;_!==null;){if(_.tag===$e&&_.type===a)return _.stateNode.methods;_=_.return}return null},getProps:function(){var _=c.fiber;return _.memoizedProps},queryAllNodes:function(_){var T=c.fiber,R=T.child,j=[];return R!==null&&sp(R,_,j),j.length===0?null:j},queryFirstNode:function(_){var T=c.fiber,R=T.child;return R!==null?Qh(R,_):null},containsNode:function(_){for(var T=or(_);T!==null;){if(T.tag===$e&&T.type===a&&T.stateNode===c)return!0;T=T.return}return!1}}}function z0(a){a.effectTag|=mr}function x2(a){a.effectTag|=To}var ga,Ya,A2,R2;if(P0)ga=function(a,c,_,T){for(var R=c.child;R!==null;){if(R.tag===W||R.tag===ne)Wr(a,R.stateNode);else if(Ht&&R.tag===xt)Wr(a,R.stateNode.instance);else if(R.tag!==q){if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}},Ya=function(a){},A2=function(a,c,_,T,R){var j=a.memoizedProps;if(j!==T){var V=c.stateNode,te=ul(),oe=c0(V,_,j,T,R,te);c.updateQueue=oe,oe&&z0(c)}},R2=function(a,c,_,T){_!==T&&z0(c)};else if(X){ga=function(a,c,_,T){for(var R=c.child;R!==null;){e:if(R.tag===W){var j=R.stateNode;if(_&&T){var V=R.memoizedProps,te=R.type;j=Gr(j,te,V,R)}Wr(a,j)}else if(R.tag===ne){var oe=R.stateNode;if(_&&T){var Ie=R.memoizedProps;oe=Yl(oe,Ie,R)}Wr(a,oe)}else if(Ht&&R.tag===xt){var Ye=R.stateNode.instance;if(_&&T){var pt=R.memoizedProps,Nt=R.type;Ye=Gr(Ye,Nt,pt,R)}Wr(a,Ye)}else if(R.tag!==q){if(R.tag===pe){if((R.effectTag&mr)!==_i){var Vt=R.memoizedState!==null;if(Vt){var zt=R.child;if(zt!==null){zt.child!==null&&(zt.child.return=zt,ga(a,zt,!0,Vt));var vn=zt.sibling;if(vn!==null){vn.return=R,R=vn;continue}}}}if(R.child!==null){R.child.return=R,R=R.child;continue}}else if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R=R,R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}};var fp=function(a,c,_,T){for(var R=c.child;R!==null;){e:if(R.tag===W){var j=R.stateNode;if(_&&T){var V=R.memoizedProps,te=R.type;j=Gr(j,te,V,R)}Gn(a,j)}else if(R.tag===ne){var oe=R.stateNode;if(_&&T){var Ie=R.memoizedProps;oe=Yl(oe,Ie,R)}Gn(a,oe)}else if(Ht&&R.tag===xt){var Ye=R.stateNode.instance;if(_&&T){var pt=R.memoizedProps,Nt=R.type;Ye=Gr(Ye,Nt,pt,R)}Gn(a,Ye)}else if(R.tag!==q){if(R.tag===pe){if((R.effectTag&mr)!==_i){var Vt=R.memoizedState!==null;if(Vt){var zt=R.child;if(zt!==null){zt.child!==null&&(zt.child.return=zt,fp(a,zt,!0,Vt));var vn=zt.sibling;if(vn!==null){vn.return=R,R=vn;continue}}}}if(R.child!==null){R.child.return=R,R=R.child;continue}}else if(R.child!==null){R.child.return=R,R=R.child;continue}}if(R=R,R===c)return;for(;R.sibling===null;){if(R.return===null||R.return===c)return;R=R.return}R.sibling.return=R.return,R=R.sibling}};Ya=function(a){var c=a.stateNode,_=a.firstEffect===null;if(!_){var T=c.containerInfo,R=w0(T);fp(R,a,!1,!1),c.pendingChildren=R,z0(a),ic(T,R)}},A2=function(a,c,_,T,R){var j=a.stateNode,V=a.memoizedProps,te=c.firstEffect===null;if(te&&V===T){c.stateNode=j;return}var oe=c.stateNode,Ie=ul(),Ye=null;if(V!==T&&(Ye=c0(oe,_,V,T,R,Ie)),te&&Ye===null){c.stateNode=j;return}var pt=cs(j,Ye,_,V,T,c,te,oe);wu(pt,_,T,R,Ie)&&z0(c),c.stateNode=pt,te?z0(c):ga(pt,c,!1,!1)},R2=function(a,c,_,T){if(_!==T){var R=Jl(),j=ul();c.stateNode=as(T,R,j,c),z0(c)}}}else Ya=function(a){},A2=function(a,c,_,T,R){},R2=function(a,c,_,T){};function O2(a,c){switch(a.tailMode){case"hidden":{for(var _=a.tail,T=null;_!==null;)_.alternate!==null&&(T=_),_=_.sibling;T===null?a.tail=null:T.sibling=null;break}case"collapsed":{for(var R=a.tail,j=null;R!==null;)R.alternate!==null&&(j=R),R=R.sibling;j===null?!c&&a.tail!==null?a.tail.sibling=null:a.tail=null:j.sibling=null;break}}}function Zh(a,c,_){var T=c.pendingProps;switch(c.tag){case C:break;case Ue:break;case le:case L:break;case N:{var R=c.type;zi(R)&&Is(c);break}case U:{no(c),x0(c);var j=c.stateNode;if(j.pendingContext&&(j.context=j.pendingContext,j.pendingContext=null),a===null||a.child===null){var V=f1(c);V&&z0(c)}Ya(c);break}case W:{Od(c);var te=Jl(),oe=c.type;if(a!==null&&c.stateNode!=null){if(A2(a,c,oe,T,te),ci){var Ie=a.memoizedProps.listeners,Ye=T.listeners;Ie!==Ye&&z0(c)}a.ref!==c.ref&&x2(c)}else{if(!T){if(c.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");break}var pt=ul(),Nt=f1(c);if(Nt){if(Dm(c,te,pt)&&z0(c),ci){var Vt=T.listeners;Vt!=null&&dn(Vt,c,te)}}else{var zt=ji(oe,T,te,pt,c);if(ga(zt,c,!1,!1),c.stateNode=zt,ci){var vn=T.listeners;vn!=null&&dn(vn,c,te)}wu(zt,oe,T,te,pt)&&z0(c)}c.ref!==null&&x2(c)}break}case ne:{var xr=T;if(a&&c.stateNode!=null){var $r=a.memoizedProps;R2(a,c,$r,xr)}else{if(typeof xr!="string"&&c.stateNode===null)throw Error("We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.");var wi=Jl(),N0=ul(),Vi=f1(c);Vi?wm(c)&&z0(c):c.stateNode=as(xr,wi,N0,c)}break}case ge:break;case pe:{da(c);var it=c.memoizedState;if(Di&&it!==null&&it.dehydrated!==null)if(a===null){var Ot=f1(c);if(!Ot)throw Error("A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.");return Lh(c),Ln&&x(hi),null}else return c1(),(c.effectTag&Hr)===_i&&(c.memoizedState=null),c.effectTag|=mr,null;if((c.effectTag&Hr)!==_i)return c.expirationTime=_,c;var Je=it!==null,Bt=!1;if(a===null)c.memoizedProps.fallback!==void 0&&f1(c);else{var Mn=a.memoizedState;if(Bt=Mn!==null,!Je&&Mn!==null){var pn=a.child.sibling;if(pn!==null){var Pi=c.firstEffect;Pi!==null?(c.firstEffect=pn,pn.nextEffect=Pi):(c.firstEffect=c.lastEffect=pn,pn.nextEffect=null),pn.effectTag=W0}}}if(Je&&!Bt&&(c.mode&Y)!==Sr){var oi=a===null&&c.memoizedProps.unstable_avoidThisFallback!==!0;oi||Jc(xl.current,Ef)?mv():yv()}X&&Je&&(c.effectTag|=mr),P0&&(Je||Bt)&&(c.effectTag|=mr),Ui&&c.updateQueue!==null&&c.memoizedProps.suspenseCallback!=null&&(c.effectTag|=mr);break}case m:break;case we:break;case ze:break;case q:no(c),Ya(c);break;case he:$u(c);break;case Se:break;case Oe:break;case Ge:{var qu=c.type;zi(qu)&&Is(c);break}case wt:{da(c);var ar=c.memoizedState;if(ar===null)break;var ou=(c.effectTag&Hr)!==_i,qr=ar.rendering;if(qr===null)if(ou)O2(ar,!1);else{var _u=gv()&&(a===null||(a.effectTag&Hr)===_i);if(!_u)for(var _0=c.child;_0!==null;){var H0=Zc(_0);if(H0!==null){ou=!0,c.effectTag|=Hr,O2(ar,!1);var Cs=H0.updateQueue;return Cs!==null&&(c.updateQueue=Cs,c.effectTag|=mr),ar.lastEffect===null&&(c.firstEffect=null),c.lastEffect=ar.lastEffect,vm(c,_),Or(c,c2(xl.current,Qc)),c.child}_0=_0.sibling}}else{if(!ou){var Hu=Zc(qr);if(Hu!==null){c.effectTag|=Hr,ou=!0;var pl=Hu.updateQueue;if(pl!==null&&(c.updateQueue=pl,c.effectTag|=mr),O2(ar,!0),ar.tail===null&&ar.tailMode==="hidden"&&!qr.alternate){var Ja=c.lastEffect=ar.lastEffect;return Ja!==null&&(Ja.nextEffect=null),null}}else if(vt()>ar.tailExpiration&&_>hi){c.effectTag|=Hr,ou=!0,O2(ar,!1);var jo=_-1;c.expirationTime=c.childExpirationTime=jo,Ln&&x(jo)}}if(ar.isBackwards)qr.sibling=c.child,c.child=qr;else{var xs=ar.last;xs!==null?xs.sibling=qr:c.child=qr,ar.last=qr}}if(ar.tail!==null){if(ar.tailExpiration===0){var X2=500;ar.tailExpiration=vt()+X2}var Uf=ar.tail;ar.rendering=Uf,ar.tail=Uf.sibling,ar.lastEffect=c.lastEffect,Uf.sibling=null;var Rc=xl.current;return ou?Rc=c2(Rc,Qc):Rc=ca(Rc),Or(c,Rc),Uf}break}case xt:{if(Ht){var Pl=c.type.impl,zo=c.stateNode;if(zo===null){var O1=Pl.getInitialState,m_;O1!==void 0&&(m_=O1(T)),zo=c.stateNode=Yh(c,T,Pl,m_||{});var y_=dt(zo);if(zo.instance=y_,Pl.reconcileChildren===!1)return null;ga(y_,c,!1,!1),Hn(zo)}else{var yE=zo.props;if(zo.prevProps=yE,zo.props=T,zo.currentFiber=c,X){var g_=ea(zo);zo.instance=g_,ga(g_,c,!1,!1)}var gE=Dn(zo);gE&&z0(c)}}break}case $e:{if(Du)if(a===null){var _E=c.type,Ly={fiber:c,methods:null};if(c.stateNode=Ly,Ly.methods=C2(_E,Ly),ci){var __=T.listeners;if(__!=null){var EE=Jl();dn(__,c,EE)}}c.ref!==null&&(x2(c),z0(c))}else{if(ci){var DE=a.memoizedProps.listeners,wE=T.listeners;(DE!==wE||c.ref!==null)&&z0(c)}else c.ref!==null&&z0(c);a.ref!==c.ref&&x2(c)}break}default:throw Error("Unknown unit of work tag ("+c.tag+"). This error is likely caused by a bug in React. Please file an issue.")}return null}function Pm(a,c){switch(a.tag){case N:{var _=a.type;zi(_)&&Is(a);var T=a.effectTag;return T&f0?(a.effectTag=T&~f0|Hr,a):null}case U:{no(a),x0(a);var R=a.effectTag;if((R&Hr)!==_i)throw Error("The root failed to unmount after an error. This is likely a bug in React. Please file an issue.");return a.effectTag=R&~f0|Hr,a}case W:return Od(a),null;case pe:{if(da(a),Di){var j=a.memoizedState;if(j!==null&&j.dehydrated!==null){if(a.alternate===null)throw Error("Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.");c1()}}var V=a.effectTag;return V&f0?(a.effectTag=V&~f0|Hr,a):null}case wt:return da(a),null;case q:return no(a),null;case he:return $u(a),null;default:return null}}function $h(a){switch(a.tag){case N:{var c=a.type.childContextTypes;c!=null&&Is(a);break}case U:{no(a),x0(a);break}case W:{Od(a);break}case q:no(a);break;case pe:da(a);break;case wt:da(a);break;case he:$u(a);break;default:break}}function cp(a,c){return{value:a,source:c,stack:_r(c)}}var dp=function(a,c,_,T,R,j,V,te,oe){var Ie=Array.prototype.slice.call(arguments,3);try{c.apply(_,Ie)}catch(Ye){this.onError(Ye)}};if(typeof window!="undefined"&&typeof window.dispatchEvent=="function"&&typeof document!="undefined"&&typeof document.createEvent=="function"){var pp=document.createElement("react"),Im=function(a,c,_,T,R,j,V,te,oe){if(typeof document=="undefined")throw Error("The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.");var Ie=document.createEvent("Event"),Ye=!0,pt=window.event,Nt=Object.getOwnPropertyDescriptor(window,"event"),Vt=Array.prototype.slice.call(arguments,3);function zt(){pp.removeEventListener(N0,zt,!1),typeof window.event!="undefined"&&window.hasOwnProperty("event")&&(window.event=pt),c.apply(_,Vt),Ye=!1}var vn,xr=!1,$r=!1;function wi(Vi){if(vn=Vi.error,xr=!0,vn===null&&Vi.colno===0&&Vi.lineno===0&&($r=!0),Vi.defaultPrevented&&vn!=null&&typeof vn=="object")try{vn._suppressLogging=!0}catch(it){}}var N0="react-"+(a||"invokeguardedcallback");window.addEventListener("error",wi),pp.addEventListener(N0,zt,!1),Ie.initEvent(N0,!1,!1),pp.dispatchEvent(Ie),Nt&&Object.defineProperty(window,"event",Nt),Ye&&(xr?$r&&(vn=new Error("A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://fb.me/react-crossorigin-error for more information.")):vn=new Error(`An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the "Pause on exceptions" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.`),this.onError(vn)),window.removeEventListener("error",wi)};dp=Im}var Bm=dp,Eo=!1,k2=null,Um={onError:function(a){Eo=!0,k2=a}};function sl(a,c,_,T,R,j,V,te,oe){Eo=!1,k2=null,Bm.apply(Um,arguments)}function Jn(){return Eo}function Vs(){if(Eo){var a=k2;return Eo=!1,k2=null,a}else throw Error("clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.")}function al(a){return!0}function n0(a){var c=al(a);if(c!==!1){var _=a.error;{var T=a.componentName,R=a.componentStack,j=a.errorBoundaryName,V=a.errorBoundaryFound,te=a.willRetry;if(_!=null&&_._suppressLogging){if(V&&te)return;console.error(_)}var oe=T?"The above error occurred in the <"+T+"> component:":"The above error occurred in one of your React components:",Ie;V&&j?te?Ie="React will try to recreate this component tree from scratch "+("using the error boundary you provided, "+j+"."):Ie="This error was initially handled by the error boundary "+j+`. +Recreating the tree from scratch failed so React will unmount the tree.`:Ie=`Consider adding an error boundary to your tree to customize error handling behavior. +Visit https://fb.me/react-error-boundaries to learn more about error boundaries.`;var Ye=""+oe+R+` + +`+(""+Ie);console.error(Ye)}}}var ev=null;ev=new Set;var Gs=typeof WeakSet=="function"?WeakSet:Set;function hp(a,c){var _=c.source,T=c.stack;T===null&&_!==null&&(T=_r(_));var R={componentName:_!==null?qt(_.type):null,componentStack:T!==null?T:"",error:c.value,errorBoundary:null,errorBoundaryName:null,errorBoundaryFound:!1,willRetry:!1};a!==null&&a.tag===N&&(R.errorBoundary=a.stateNode,R.errorBoundaryName=qt(a.type),R.errorBoundaryFound=!0,R.willRetry=!0);try{n0(R)}catch(j){setTimeout(function(){throw j})}}var jm=function(a,c){Oi(a,"componentWillUnmount"),c.props=a.memoizedProps,c.state=a.memoizedState,c.componentWillUnmount(),gi()};function tv(a,c){if(sl(null,jm,null,a,c),Jn()){var _=Vs();Pf(a,_)}}function vp(a){var c=a.ref;if(c!==null)if(typeof c=="function"){if(sl(null,c,null,null),Jn()){var _=Vs();Pf(a,_)}}else c.current=null}function zm(a,c){if(sl(null,c,null),Jn()){var _=Vs();Pf(a,_)}}function mp(a,c){switch(c.tag){case L:case ge:case le:{_c(ym,wf,c);return}case N:{if(c.effectTag&Co&&a!==null){var _=a.memoizedProps,T=a.memoizedState;Oi(c,"getSnapshotBeforeUpdate");var R=c.stateNode;c.type===c.elementType&&!ma&&(R.props!==c.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"),R.state!==c.memoizedState&&Kt(!1,"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(c.type)||"instance"));var j=R.getSnapshotBeforeUpdate(c.elementType===c.type?_:bi(c.type,_),T);{var V=ev;j===void 0&&!V.has(c.type)&&(V.add(c.type),Ke(!1,"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.",qt(c.type)))}R.__reactInternalSnapshotBeforeUpdate=j,gi()}return}case U:case W:case ne:case q:case Ge:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function _c(a,c,_){var T=_.updateQueue,R=T!==null?T.lastEffect:null;if(R!==null){var j=R.next,V=j;do{if((V.tag&a)!==wf){var te=V.destroy;V.destroy=void 0,te!==void 0&&te()}if((V.tag&c)!==wf){var oe=V.create;V.destroy=oe();{var Ie=V.destroy;if(Ie!==void 0&&typeof Ie!="function"){var Ye=void 0;Ie===null?Ye=" You returned null. If your effect does not require clean up, return undefined (or nothing).":typeof Ie.then=="function"?Ye=` + +It looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately: + +useEffect(() => { + async function fetchData() { + // You can await here + const response = await MyAPI.getData(someId); + // ... + } + fetchData(); +}, [someId]); // Or [] if effect doesn't need props or state + +Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching`:Ye=" You returned: "+Ie,Ke(!1,"An effect function must not return anything besides a function, which is used for clean-up.%s%s",Ye,_r(_))}}}V=V.next}while(V!==j)}}function Ea(a){if((a.effectTag&L0)!==_i)switch(a.tag){case L:case ge:case le:{_c(rr,wf,a),_c(wf,$c,a);break}default:break}}function yp(a,c,_,T){switch(_.tag){case L:case ge:case le:{_c(gm,ol,_);break}case N:{var R=_.stateNode;if(_.effectTag&mr)if(c===null)Oi(_,"componentDidMount"),_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),R.componentDidMount(),gi();else{var j=_.elementType===_.type?c.memoizedProps:bi(_.type,c.memoizedProps),V=c.memoizedState;Oi(_,"componentDidUpdate"),_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),R.componentDidUpdate(j,V,R.__reactInternalSnapshotBeforeUpdate),gi()}var te=_.updateQueue;te!==null&&(_.type===_.elementType&&!ma&&(R.props!==_.memoizedProps&&Kt(!1,"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance"),R.state!==_.memoizedState&&Kt(!1,"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.",qt(_.type)||"instance")),vo(_,te,R,T));return}case U:{var oe=_.updateQueue;if(oe!==null){var Ie=null;if(_.child!==null)switch(_.child.tag){case W:Ie=Ro(_.child.stateNode);break;case N:Ie=_.child.stateNode;break}vo(_,oe,Ie,T)}return}case W:{var Ye=_.stateNode;if(c===null&&_.effectTag&mr){var pt=_.type,Nt=_.memoizedProps;Pu(Ye,pt,Nt,_)}return}case ne:return;case q:return;case ze:{if(Zt){var Vt=_.memoizedProps.onRender;typeof Vt=="function"&&(Ln?Vt(_.memoizedProps.id,c===null?"mount":"update",_.actualDuration,_.treeBaseDuration,_.actualStartTime,kl(),a.memoizedInteractions):Vt(_.memoizedProps.id,c===null?"mount":"update",_.actualDuration,_.treeBaseDuration,_.actualStartTime,kl()))}return}case pe:{Nl(a,_);return}case wt:case Ge:case xt:case $e:return;default:throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.")}}function M2(a,c){if(P0)for(var _=a;;){if(_.tag===W){var T=_.stateNode;c?Oa(T):Zs(_.stateNode,_.memoizedProps)}else if(_.tag===ne){var R=_.stateNode;c?p0(R):K0(R,_.memoizedProps)}else if(_.tag===pe&&_.memoizedState!==null&&_.memoizedState.dehydrated===null){var j=_.child.sibling;j.return=_,_=j;continue}else if(_.child!==null){_.child.return=_,_=_.child;continue}if(_===a)return;for(;_.sibling===null;){if(_.return===null||_.return===a)return;_=_.return}_.sibling.return=_.return,_=_.sibling}}function ku(a){var c=a.ref;if(c!==null){var _=a.stateNode,T;switch(a.tag){case W:T=Ro(_);break;default:T=_}Du&&a.tag===$e&&(T=_.methods),typeof c=="function"?c(T):(c.hasOwnProperty("current")||Ke(!1,"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().%s",qt(a.type),_r(a)),c.current=T)}}function zu(a){var c=a.ref;c!==null&&(typeof c=="function"?c(null):c.current=null)}function gp(a,c,_){switch(Rn(c),c.tag){case L:case ge:case Oe:case le:{var T=c.updateQueue;if(T!==null){var R=T.lastEffect;if(R!==null){var j=R.next,V=_>Wn?Wn:_;_n(V,function(){var $r=j;do{var wi=$r.destroy;wi!==void 0&&zm(c,wi),$r=$r.next}while($r!==j)})}}break}case N:{vp(c);var te=c.stateNode;typeof te.componentWillUnmount=="function"&&tv(c,te);return}case W:{if(ci){var oe=c.dependencies;if(oe!==null){var Ie=oe.responders;if(Ie!==null){for(var Ye=Array.from(Ie.values()),pt=0,Nt=Ye.length;pt component higher in the tree to provide a loading indicator or placeholder to display.`+_r(_))}Rp(),T=cp(T,_);var Nt=c;do{switch(Nt.tag){case U:{var Vt=T;Nt.effectTag|=f0,Nt.expirationTime=R;var zt=uv(Nt,Vt,R);r2(Nt,zt);return}case N:var vn=T,xr=Nt.type,$r=Nt.stateNode;if((Nt.effectTag&Hr)===_i&&(typeof xr.getDerivedStateFromError=="function"||$r!==null&&typeof $r.componentDidCatch=="function"&&!Lp($r))){Nt.effectTag|=f0,Nt.expirationTime=R;var wi=ov(Nt,vn,R);r2(Nt,wi);return}break;default:break}Nt=Nt.return}while(Nt!==null)}var wa=Math.ceil,Cr=at.ReactCurrentDispatcher,Ep=at.ReactCurrentOwner,fl=at.IsSomeRendererActing,cu=0,E1=1,ki=2,Dp=4,F2=8,Do=16,Ss=32,Mf=0,b2=1,wp=2,D1=3,w1=4,Sp=5,Zn=cu,cl=null,qn=null,q0=lt,k0=Mf,P2=null,Ll=bn,S1=bn,Dc=null,wc=lt,I2=!1,Tp=0,M0=500,fn=null,B2=!1,U2=null,Sc=null,Tc=!1,Cc=null,T1=y0,Cp=lt,Ka=null,Km=50,xc=0,j2=null,sv=50,C1=0,Nf=null,Lf=null,x1=lt;function Fl(){return(Zn&(Do|Ss))!==cu?Ju(vt()):(x1!==lt||(x1=Ju(vt())),x1)}function Ac(){return Ju(vt())}function Ff(a,c,_){var T=c.mode;if((T&Y)===Sr)return bn;var R=Xt();if((T&Qr)===Sr)return R===Ci?bn:Qu;if((Zn&Do)!==cu)return q0;var j;if(_!==null)j=ia(a,_.timeoutMs|0||pf);else switch(R){case Ci:j=bn;break;case Xr:j=La(a);break;case Wn:case Xu:j=ms(a);break;case m0:j=Qi;break;default:throw Error("Expected a valid priority level")}return cl!==null&&j===q0&&(j-=1),j}function Xm(a,c){hy(),gy(a);var _=z2(a,c);if(_===null){my(a);return}Up(a,c),ta();var T=Xt();if(c===bn?(Zn&F2)!==cu&&(Zn&(Do|Ss))===cu?(H(_,c),A1(_)):(Uo(_),H(_,c),Zn===cu&&It()):(Uo(_),H(_,c)),(Zn&Dp)!==cu&&(T===Xr||T===Ci))if(Ka===null)Ka=new Map([[_,c]]);else{var R=Ka.get(_);(R===void 0||R>c)&&Ka.set(_,c)}}var dl=Xm;function z2(a,c){a.expirationTimeR?T:R}function Uo(a){var c=a.lastExpiredTime;if(c!==lt){a.callbackExpirationTime=bn,a.callbackPriority=Ci,a.callbackNode=En(A1.bind(null,a));return}var _=q2(a),T=a.callbackNode;if(_===lt){T!==null&&(a.callbackNode=null,a.callbackExpirationTime=lt,a.callbackPriority=y0);return}var R=Fl(),j=$1(R,_);if(T!==null){var V=a.callbackPriority,te=a.callbackExpirationTime;if(te===_&&V>=j)return;er(T)}a.callbackExpirationTime=_,a.callbackPriority=j;var oe;_===bn?oe=En(A1.bind(null,a)):oo?oe=yn(j,H2.bind(null,a)):oe=yn(j,H2.bind(null,a),{timeout:bo(_)-vt()}),a.callbackNode=oe}function H2(a,c){if(x1=lt,c){var _=Fl();return qp(a,_),Uo(a),null}var T=q2(a);if(T!==lt){var R=a.callbackNode;if((Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");if(Xa(),(a!==cl||T!==q0)&&(bf(a,T),ee(a,T)),qn!==null){var j=Zn;Zn|=Do;var V=pv(a),te=W2(a);ff(qn);do try{oy();break}catch(Ye){dv(a,Ye)}while(!0);if(mt(),Zn=j,hv(V),Ln&&V2(te),k0===b2){var oe=P2;throw Bp(),bf(a,T),Bf(a,T),Uo(a),oe}if(qn!==null)Bp();else{Tv();var Ie=a.finishedWork=a.current.alternate;a.finishedExpirationTime=T,Qm(a,Ie,k0,T)}if(Uo(a),a.callbackNode===R)return H2.bind(null,a)}}return null}function Qm(a,c,_,T){switch(cl=null,_){case Mf:case b2:throw Error("Root did not complete. This is a bug in React.");case wp:{qp(a,T>Qi?Qi:T);break}case D1:{Bf(a,T);var R=a.lastSuspendedTime;T===R&&(a.nextKnownPendingLevel=Op(c)),d();var j=Ll===bn;if(j&&!(Y0&&If.current)){var V=Tp+M0-vt();if(V>10){if(I2){var te=a.lastPingedTime;if(te===lt||te>=T){a.lastPingedTime=T,bf(a,T);break}}var oe=q2(a);if(oe!==lt&&oe!==T)break;if(R!==lt&&R!==T){a.lastPingedTime=R;break}a.timeoutHandle=St(r0.bind(null,a),V);break}}r0(a);break}case w1:{Bf(a,T);var Ie=a.lastSuspendedTime;if(T===Ie&&(a.nextKnownPendingLevel=Op(c)),d(),!(Y0&&If.current)){if(I2){var Ye=a.lastPingedTime;if(Ye===lt||Ye>=T){a.lastPingedTime=T,bf(a,T);break}}var pt=q2(a);if(pt!==lt&&pt!==T)break;if(Ie!==lt&&Ie!==T){a.lastPingedTime=Ie;break}var Nt;if(S1!==bn)Nt=bo(S1)-vt();else if(Ll===bn)Nt=0;else{var Vt=_v(Ll),zt=vt(),vn=bo(T)-zt,xr=zt-Vt;xr<0&&(xr=0),Nt=Pp(xr)-xr,vn10){a.timeoutHandle=St(r0.bind(null,a),Nt);break}}r0(a);break}case Sp:{if(!(Y0&&If.current)&&Ll!==bn&&Dc!==null){var $r=Ip(Ll,T,Dc);if($r>10){Bf(a,T),a.timeoutHandle=St(r0.bind(null,a),$r);break}}r0(a);break}default:throw Error("Unknown root exit status.")}}function A1(a){var c=a.lastExpiredTime,_=c!==lt?c:bn;if(a.finishedExpirationTime===_)r0(a);else{if((Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");if(Xa(),(a!==cl||_!==q0)&&(bf(a,_),ee(a,_)),qn!==null){var T=Zn;Zn|=Do;var R=pv(a),j=W2(a);ff(qn);do try{Ev();break}catch(te){dv(a,te)}while(!0);if(mt(),Zn=T,hv(R),Ln&&V2(j),k0===b2){var V=P2;throw Bp(),bf(a,_),Bf(a,_),Uo(a),V}if(qn!==null)throw Error("Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.");Tv(),a.finishedWork=a.current.alternate,a.finishedExpirationTime=_,Jm(a,k0,_),Uo(a)}}return null}function Jm(a,c,_){cl=null,(c===D1||c===w1)&&d(),r0(a)}function Zm(a,c){qp(a,c),Uo(a),(Zn&(Do|Ss))===cu&&It()}function av(){if((Zn&(E1|Do|Ss))!==cu){(Zn&Do)!==cu&&Kt(!1,"unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering.");return}ey(),Xa()}function $m(a){return _n(Wn,a)}function fv(a,c,_,T){return _n(Ci,a.bind(null,c,_,T))}function ey(){if(Ka!==null){var a=Ka;Ka=null,a.forEach(function(c,_){qp(_,c),Uo(_)}),It()}}function ty(a,c){var _=Zn;Zn|=E1;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function ny(a,c){var _=Zn;Zn|=ki;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function cv(a,c,_,T){var R=Zn;Zn|=Dp;try{return _n(Xr,a.bind(null,c,_,T))}finally{Zn=R,Zn===cu&&It()}}function ry(a,c){var _=Zn;Zn&=~E1,Zn|=F2;try{return a(c)}finally{Zn=_,Zn===cu&&It()}}function xp(a,c){if((Zn&(Do|Ss))!==cu)throw Error("flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.");var _=Zn;Zn|=E1;try{return _n(Ci,a.bind(null,c))}finally{Zn=_,It()}}function iy(a){var c=Zn;Zn|=E1;try{_n(Ci,a)}finally{Zn=c,Zn===cu&&It()}}function bf(a,c){a.finishedWork=null,a.finishedExpirationTime=lt;var _=a.timeoutHandle;if(_!==Jo&&(a.timeoutHandle=Jo,so(_)),qn!==null)for(var T=qn.return;T!==null;)$h(T),T=T.return;cl=a,qn=wo(a.current,null,c),q0=c,k0=Mf,P2=null,Ll=bn,S1=bn,Dc=null,wc=lt,I2=!1,Ln&&(Lf=null),wl.discardPendingWarnings(),Ys=null}function dv(a,c){do{try{if(mt(),m2(),nt(),qn===null||qn.return===null)return k0=b2,P2=c,null;Zt&&qn.mode&Jr&&a1(qn,!0),lv(a,qn.return,qn,c,q0),qn=Dv(qn)}catch(_){c=_;continue}return}while(!0)}function pv(a){var c=Cr.current;return Cr.current=o1,c===null?o1:c}function hv(a){Cr.current=a}function W2(a){if(Ln){var c=k.__interactionsRef.current;return k.__interactionsRef.current=a.memoizedInteractions,c}return null}function V2(a){Ln&&(k.__interactionsRef.current=a)}function Ap(){Tp=vt()}function vv(a,c){aQi&&(Ll=a),c!==null&&aQi&&(S1=a,Dc=c)}function G2(a){a>wc&&(wc=a)}function mv(){k0===Mf&&(k0=D1)}function yv(){(k0===Mf||k0===D1)&&(k0=w1),wc!==lt&&cl!==null&&(Bf(cl,q0),o_(cl,wc))}function Rp(){k0!==Sp&&(k0=wp)}function gv(){return k0===Mf}function _v(a){var c=bo(a);return c-pf}function uy(a,c){var _=bo(a);return _-(c.timeoutMs|0||pf)}function Ev(){for(;qn!==null;)qn=Y2(qn)}function oy(){for(;qn!==null&&!kn();)qn=Y2(qn)}function Y2(a){var c=a.alternate;Kl(a),_t(a);var _;return Zt&&(a.mode&Jr)!==Sr?(zd(a),_=R1(c,a,q0),a1(a,!0)):_=R1(c,a,q0),nt(),a.memoizedProps=a.pendingProps,_===null&&(_=Dv(a)),Ep.current=null,_}function Dv(a){qn=a;do{var c=qn.alternate,_=qn.return;if((qn.effectTag&F0)===_i){_t(qn);var T=void 0;if(!Zt||(qn.mode&Jr)===Sr?T=Zh(c,qn,q0):(zd(qn),T=Zh(c,qn,q0),a1(qn,!1)),Yr(qn),nt(),ly(qn),T!==null)return T;if(_!==null&&(_.effectTag&F0)===_i){_.firstEffect===null&&(_.firstEffect=qn.firstEffect),qn.lastEffect!==null&&(_.lastEffect!==null&&(_.lastEffect.nextEffect=qn.firstEffect),_.lastEffect=qn.lastEffect);var R=qn.effectTag;R>eu&&(_.lastEffect!==null?_.lastEffect.nextEffect=qn:_.firstEffect=qn,_.lastEffect=qn)}}else{var j=Pm(qn,q0);if(Zt&&(qn.mode&Jr)!==Sr){a1(qn,!1);for(var V=qn.actualDuration,te=qn.child;te!==null;)V+=te.actualDuration,te=te.sibling;qn.actualDuration=V}if(j!==null)return fo(qn),j.effectTag&=Hl,j;Yr(qn),_!==null&&(_.firstEffect=_.lastEffect=null,_.effectTag|=F0)}var oe=qn.sibling;if(oe!==null)return oe;qn=_}while(qn!==null);return k0===Mf&&(k0=Sp),null}function Op(a){var c=a.expirationTime,_=a.childExpirationTime;return c>_?c:_}function ly(a){if(!(q0!==hi&&a.childExpirationTime===hi)){var c=lt;if(Zt&&(a.mode&Jr)!==Sr){for(var _=a.actualDuration,T=a.selfBaseDuration,R=a.alternate===null||a.child!==a.alternate.child,j=a.child;j!==null;){var V=j.expirationTime,te=j.childExpirationTime;V>c&&(c=V),te>c&&(c=te),R&&(_+=j.actualDuration),T+=j.treeBaseDuration,j=j.sibling}a.actualDuration=_,a.treeBaseDuration=T}else for(var oe=a.child;oe!==null;){var Ie=oe.expirationTime,Ye=oe.childExpirationTime;Ie>c&&(c=Ie),Ye>c&&(c=Ye),oe=oe.sibling}a.childExpirationTime=c}}function r0(a){var c=Xt();return _n(Ci,kp.bind(null,a,c)),null}function kp(a,c){do Xa();while(Cc!==null);if(vy(),(Zn&(Do|Ss))!==cu)throw Error("Should not already be working.");var _=a.finishedWork,T=a.finishedExpirationTime;if(_===null)return null;if(a.finishedWork=null,a.finishedExpirationTime=lt,_===a.current)throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.");a.callbackNode=null,a.callbackExpirationTime=lt,a.callbackPriority=y0,a.nextKnownPendingLevel=lt,J0();var R=Op(_);iE(a,T,R),a===cl&&(cl=null,qn=null,q0=lt);var j;if(_.effectTag>eu?_.lastEffect!==null?(_.lastEffect.nextEffect=_,j=_.firstEffect):j=_:j=_.firstEffect,j!==null){var V=Zn;Zn|=Ss;var te=W2(a);Ep.current=null,Te(),Bn(a.containerInfo),fn=j;do if(sl(null,sy,null),Jn()){if(fn===null)throw Error("Should be working on an effect.");var oe=Vs();Pf(fn,oe),fn=fn.nextEffect}while(fn!==null);et(),Zt&&Oh(),Ve(),fn=j;do if(sl(null,ay,null,a,c),Jn()){if(fn===null)throw Error("Should be working on an effect.");var Ie=Vs();Pf(fn,Ie),fn=fn.nextEffect}while(fn!==null);Gt(),Ir(a.containerInfo),a.current=_,Yt(),fn=j;do if(sl(null,Mp,null,a,T),Jn()){if(fn===null)throw Error("Should be working on an effect.");var Ye=Vs();Pf(fn,Ye),fn=fn.nextEffect}while(fn!==null);sr(),fn=null,se(),Ln&&V2(te),Zn=V}else a.current=_,Te(),et(),Zt&&Oh(),Ve(),Gt(),Yt(),sr();Z0();var pt=Tc;if(Tc)Tc=!1,Cc=a,Cp=T,T1=c;else for(fn=j;fn!==null;){var Nt=fn.nextEffect;fn.nextEffect=null,fn=Nt}var Vt=a.firstPendingTime;if(Vt!==lt){if(Ln){if(Lf!==null){var zt=Lf;Lf=null;for(var vn=0;vnWn?Wn:T1;return T1=y0,_n(a,Np)}}function Np(){if(Cc===null)return!1;var a=Cc,c=Cp;if(Cc=null,Cp=lt,(Zn&(Do|Ss))!==cu)throw Error("Cannot flush passive effects while already rendering.");var _=Zn;Zn|=Ss;for(var T=W2(a),R=a.current.firstEffect;R!==null;){{if(_t(R),sl(null,Ea,null,R),Jn()){if(R===null)throw Error("Should be working on an effect.");var j=Vs();Pf(R,j)}nt()}var V=R.nextEffect;R.nextEffect=null,R=V}return Ln&&(V2(T),de(a,c)),Zn=_,It(),C1=Cc===null?0:C1+1,!0}function Lp(a){return Sc!==null&&Sc.has(a)}function Fp(a){Sc===null?Sc=new Set([a]):Sc.add(a)}function fy(a){B2||(B2=!0,U2=a)}var cy=fy;function wv(a,c,_){var T=cp(_,c),R=uv(a,T,bn);Ua(a,R);var j=z2(a,bn);j!==null&&(Uo(j),H(j,bn))}function Pf(a,c){if(a.tag===U){wv(a,a,c);return}for(var _=a.return;_!==null;){if(_.tag===U){wv(_,a,c);return}else if(_.tag===N){var T=_.type,R=_.stateNode;if(typeof T.getDerivedStateFromError=="function"||typeof R.componentDidCatch=="function"&&!Lp(R)){var j=cp(c,a),V=ov(_,j,bn);Ua(_,V);var te=z2(_,bn);te!==null&&(Uo(te),H(te,bn));return}}_=_.return}}function bp(a,c,_){var T=a.pingCache;if(T!==null&&T.delete(c),cl===a&&q0===_){k0===w1||k0===D1&&Ll===bn&&vt()-TpKm)throw xc=0,j2=null,Error("Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.");C1>sv&&(C1=0,Kt(!1,"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render."))}function vy(){wl.flushLegacyContextWarning(),fi&&wl.flushPendingUnsafeLifecycleWarnings()}function Tv(){var a=!0;cf(Nf,a),Nf=null}function Bp(){var a=!1;cf(Nf,a),Nf=null}function Up(a,c){Pr&&cl!==null&&c>q0&&(Nf=a)}var K2=null;function my(a){{var c=a.tag;if(c!==U&&c!==N&&c!==L&&c!==ge&&c!==Oe&&c!==le)return;var _=qt(a.type)||"ReactComponent";if(K2!==null){if(K2.has(_))return;K2.add(_)}else K2=new Set([_]);Ke(!1,"Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.%s",c===N?"the componentWillUnmount method":"a useEffect cleanup function",_r(a))}}var R1;if(G0){var yy=null;R1=function(a,c,_){var T=i_(yy,c);try{return op(a,c,_)}catch(j){if(j!==null&&typeof j=="object"&&typeof j.then=="function")throw j;if(mt(),m2(),$h(c),i_(c,T),Zt&&c.mode&Jr&&zd(c),sl(null,op,null,a,c,_),Jn()){var R=Vs();throw R}else throw j}}}else R1=op;var Cv=!1,xv=!1;function gy(a){if(a.tag===N)switch(Ar){case"getChildContext":if(xv)return;Ke(!1,"setState(...): Cannot call setState() inside getChildContext()"),xv=!0;break;case"render":if(Cv)return;Ke(!1,"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state."),Cv=!0;break}}var If={current:!1};function jp(a){fs===!0&&fl.current===!0&&If.current!==!0&&Ke(!1,`It looks like you're using the wrong act() around your test interactions. +Be sure to use the matching version of act() corresponding to your renderer: + +// for react-dom: +import {act} from 'react-dom/test-utils'; +// ... +act(() => ...); + +// for react-test-renderer: +import TestRenderer from 'react-test-renderer'; +const {act} = TestRenderer; +// ... +act(() => ...);%s`,_r(a))}function Av(a){fs===!0&&(a.mode&cr)!==Sr&&fl.current===!1&&If.current===!1&&Ke(!1,`An update to %s ran an effect, but was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(a.type),_r(a))}function _y(a){fs===!0&&Zn===cu&&fl.current===!1&&If.current===!1&&Ke(!1,`An update to %s inside a test was not wrapped in act(...). + +When testing, code that causes React state updates should be wrapped into act(...): + +act(() => { + /* fire events that update state */ +}); +/* assert on the output */ + +This ensures that you're testing the behavior the user would see in the browser. Learn more at https://fb.me/react-wrap-tests-with-act%s`,qt(a.type),_r(a))}var Ey=_y,zp=!1;function Dy(a){zp===!1&&t.unstable_flushAllWithoutAsserting===void 0&&(a.mode&Y||a.mode&Qr?(zp=!0,Ke(!1,`In Concurrent or Sync modes, the "scheduler" module needs to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)):Yi===!0&&(zp=!0,Ke(!1,`Starting from React v17, the "scheduler" module will need to be mocked to guarantee consistent behaviour across tests and browsers. For example, with jest: +jest.mock('scheduler', () => require('scheduler/unstable_mock')); + +For more info, visit https://fb.me/react-mock-scheduler`)))}var Ys=null;function wy(a){{var c=Xt();if((a.mode&Qr)!==_i&&(c===Xr||c===Ci))for(var _=a;_!==null;){var T=_.alternate;if(T!==null)switch(_.tag){case N:var R=T.updateQueue;if(R!==null)for(var j=R.firstUpdate;j!==null;){var V=j.priority;if(V===Xr||V===Ci){Ys===null?Ys=new Set([qt(_.type)]):Ys.add(qt(_.type));break}j=j.next}break;case L:case ge:case le:if(_.memoizedState!==null&&_.memoizedState.baseUpdate!==null)for(var te=_.memoizedState.baseUpdate;te!==null;){var oe=te.priority;if(oe===Xr||oe===Ci){Ys===null?Ys=new Set([qt(_.type)]):Ys.add(qt(_.type));break}if(te.next===_.memoizedState.baseUpdate)break;te=te.next}break;default:break}_=_.return}}}function d(){if(Ys!==null){var a=[];Ys.forEach(function(c){return a.push(c)}),Ys=null,a.length>0&&Ke(!1,`%s triggered a user-blocking update that suspended. + +The fix is to split the update into multiple parts: a user-blocking update to provide immediate feedback, and another update that triggers the bulk of the changes. + +Refer to the documentation for useTransition to learn how to implement this pattern.`,a.sort().join(", "))}}function v(a,c){return c*1e3+a.interactionThreadID}function x(a){!Ln||(Lf===null?Lf=[a]:Lf.push(a))}function b(a,c,_){if(!!Ln&&_.size>0){var T=a.pendingInteractionMap,R=T.get(c);R!=null?_.forEach(function(te){R.has(te)||te.__count++,R.add(te)}):(T.set(c,new Set(_)),_.forEach(function(te){te.__count++}));var j=k.__subscriberRef.current;if(j!==null){var V=v(a,c);j.onWorkScheduled(_,V)}}}function H(a,c){!Ln||b(a,c,k.__interactionsRef.current)}function ee(a,c){if(!!Ln){var _=new Set;if(a.pendingInteractionMap.forEach(function(j,V){V>=c&&j.forEach(function(te){return _.add(te)})}),a.memoizedInteractions=_,_.size>0){var T=k.__subscriberRef.current;if(T!==null){var R=v(a,c);try{T.onWorkStarted(_,R)}catch(j){yn(Ci,function(){throw j})}}}}}function de(a,c){if(!!Ln){var _=a.firstPendingTime,T;try{if(T=k.__subscriberRef.current,T!==null&&a.memoizedInteractions.size>0){var R=v(a,c);T.onWorkStopped(a.memoizedInteractions,R)}}catch(V){yn(Ci,function(){throw V})}finally{var j=a.pendingInteractionMap;j.forEach(function(V,te){te>_&&(j.delete(te),V.forEach(function(oe){if(oe.__count--,T!==null&&oe.__count===0)try{T.onInteractionScheduledWorkCompleted(oe)}catch(Ie){yn(Ci,function(){throw Ie})}}))})}}}var ye=null,be=null,gt=!1,Dt=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined";function Rt(a){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined")return!1;var c=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(c.isDisabled)return!0;if(!c.supportsFiber)return Ke(!1,"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://fb.me/react-devtools"),!0;try{var _=c.inject(a);ye=function(T,R){try{var j=(T.current.effectTag&Hr)===Hr;if(Zt){var V=Ac(),te=$1(V,R);c.onCommitFiberRoot(_,T,te,j)}else c.onCommitFiberRoot(_,T,void 0,j)}catch(oe){gt||(gt=!0,Ke(!1,"React DevTools encountered an error: %s",oe))}},be=function(T){try{c.onCommitFiberUnmount(_,T)}catch(R){gt||(gt=!0,Ke(!1,"React DevTools encountered an error: %s",R))}}}catch(T){Ke(!1,"React DevTools encountered an error: %s.",T)}return!0}function rn(a,c){typeof ye=="function"&&ye(a,c)}function Rn(a){typeof be=="function"&&be(a)}var $n;{$n=!1;try{var Nr=Object.preventExtensions({}),ir=new Map([[Nr,null]]),Zr=new Set([Nr]);ir.set(0,0),Zr.add(0)}catch(a){$n=!0}}var ui=1;function bl(a,c,_,T){this.tag=a,this.key=_,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=c,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=T,this.effectTag=_i,this.nextEffect=null,this.firstEffect=null,this.lastEffect=null,this.expirationTime=lt,this.childExpirationTime=lt,this.alternate=null,Zt&&(this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0),Pr&&(this._debugID=ui++,this._debugIsCurrentlyTiming=!1),this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,!$n&&typeof Object.preventExtensions=="function"&&Object.preventExtensions(this)}var Wi=function(a,c,_,T){return new bl(a,c,_,T)};function uo(a){var c=a.prototype;return!!(c&&c.isReactComponent)}function i0(a){return typeof a=="function"&&!uo(a)&&a.defaultProps===void 0}function Ts(a){if(typeof a=="function")return uo(a)?N:L;if(a!=null){var c=a.$$typeof;if(c===An)return ge;if(c===Wt)return Oe}return C}function wo(a,c,_){var T=a.alternate;T===null?(T=Wi(a.tag,c,a.key,a.mode),T.elementType=a.elementType,T.type=a.type,T.stateNode=a.stateNode,T._debugID=a._debugID,T._debugSource=a._debugSource,T._debugOwner=a._debugOwner,T._debugHookTypes=a._debugHookTypes,T.alternate=a,a.alternate=T):(T.pendingProps=c,T.effectTag=_i,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null,Zt&&(T.actualDuration=0,T.actualStartTime=-1)),T.childExpirationTime=a.childExpirationTime,T.expirationTime=a.expirationTime,T.child=a.child,T.memoizedProps=a.memoizedProps,T.memoizedState=a.memoizedState,T.updateQueue=a.updateQueue;var R=a.dependencies;switch(T.dependencies=R===null?null:{expirationTime:R.expirationTime,firstContext:R.firstContext,responders:R.responders},T.sibling=a.sibling,T.index=a.index,T.ref=a.ref,Zt&&(T.selfBaseDuration=a.selfBaseDuration,T.treeBaseDuration=a.treeBaseDuration),T._debugNeedsRemount=a._debugNeedsRemount,T.tag){case C:case L:case le:T.type=Zu(a.type);break;case N:T.type=U0(a.type);break;case ge:T.type=vf(a.type);break;default:break}return T}function Rv(a,c){a.effectTag&=ai,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null;var _=a.alternate;if(_===null)a.childExpirationTime=lt,a.expirationTime=c,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,Zt&&(a.selfBaseDuration=0,a.treeBaseDuration=0);else{a.childExpirationTime=_.childExpirationTime,a.expirationTime=_.expirationTime,a.child=_.child,a.memoizedProps=_.memoizedProps,a.memoizedState=_.memoizedState,a.updateQueue=_.updateQueue;var T=_.dependencies;a.dependencies=T===null?null:{expirationTime:T.expirationTime,firstContext:T.firstContext,responders:T.responders},Zt&&(a.selfBaseDuration=_.selfBaseDuration,a.treeBaseDuration=_.treeBaseDuration)}return a}function X4(a){var c;return a===R0?c=Qr|Y|cr:a===I0?c=Y|cr:c=Sr,Zt&&Dt&&(c|=Jr),Wi(U,null,null,c)}function Sy(a,c,_,T,R,j){var V,te=C,oe=a;if(typeof a=="function")uo(a)?(te=N,oe=U0(oe)):oe=Zu(oe);else if(typeof a=="string")te=W;else{e:switch(a){case ue:return Qa(_.children,R,j,c);case ln:te=we,R|=Qr|Y|cr;break;case je:te=we,R|=cr;break;case ct:return J4(_,R,j,c);case nr:return Z4(_,R,j,c);case un:return $4(_,R,j,c);default:{if(typeof a=="object"&&a!==null)switch(a.$$typeof){case At:te=he;break e;case en:te=Se;break e;case An:te=ge,oe=vf(oe);break e;case Wt:te=Oe;break e;case vr:te=Ue,oe=null;break e;case w:if(Ht)return r_(a,_,R,j,c);break;case Vn:if(Du)return Q4(a,_,R,j,c)}var Ie="";{(a===void 0||typeof a=="object"&&a!==null&&Object.keys(a).length===0)&&(Ie+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Ye=T?qt(T.type):null;Ye&&(Ie+=` + +Check the render method of \``+Ye+"`.")}throw Error("Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: "+(a==null?a:typeof a)+"."+Ie)}}}return V=Wi(te,_,c,R),V.elementType=a,V.type=oe,V.expirationTime=j,V}function Ty(a,c,_){var T=null;T=a._owner;var R=a.type,j=a.key,V=a.props,te=Sy(R,j,V,T,c,_);return te._debugSource=a._source,te._debugOwner=a._owner,te}function Qa(a,c,_,T){var R=Wi(m,a,T,c);return R.expirationTime=_,R}function r_(a,c,_,T,R){var j=Wi(xt,c,R,_);return j.elementType=a,j.type=a,j.expirationTime=T,j}function Q4(a,c,_,T,R){var j=Wi($e,c,R,_);return j.type=a,j.elementType=a,j.expirationTime=T,j}function J4(a,c,_,T){(typeof a.id!="string"||typeof a.onRender!="function")&&Ke(!1,'Profiler must specify an "id" string and "onRender" function as props');var R=Wi(ze,a,T,c|Jr);return R.elementType=ct,R.type=ct,R.expirationTime=_,R}function Z4(a,c,_,T){var R=Wi(pe,a,T,c);return R.type=nr,R.elementType=nr,R.expirationTime=_,R}function $4(a,c,_,T){var R=Wi(wt,a,T,c);return R.type=un,R.elementType=un,R.expirationTime=_,R}function Cy(a,c,_){var T=Wi(ne,a,null,c);return T.expirationTime=_,T}function eE(){var a=Wi(W,null,null,Sr);return a.elementType="DELETED",a.type="DELETED",a}function tE(a){var c=Wi(rt,null,null,Sr);return c.stateNode=a,c}function xy(a,c,_){var T=a.children!==null?a.children:[],R=Wi(q,T,a.key,c);return R.expirationTime=_,R.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},R}function i_(a,c){return a===null&&(a=Wi(C,null,null,Sr)),a.tag=c.tag,a.key=c.key,a.elementType=c.elementType,a.type=c.type,a.stateNode=c.stateNode,a.return=c.return,a.child=c.child,a.sibling=c.sibling,a.index=c.index,a.ref=c.ref,a.pendingProps=c.pendingProps,a.memoizedProps=c.memoizedProps,a.updateQueue=c.updateQueue,a.memoizedState=c.memoizedState,a.dependencies=c.dependencies,a.mode=c.mode,a.effectTag=c.effectTag,a.nextEffect=c.nextEffect,a.firstEffect=c.firstEffect,a.lastEffect=c.lastEffect,a.expirationTime=c.expirationTime,a.childExpirationTime=c.childExpirationTime,a.alternate=c.alternate,Zt&&(a.actualDuration=c.actualDuration,a.actualStartTime=c.actualStartTime,a.selfBaseDuration=c.selfBaseDuration,a.treeBaseDuration=c.treeBaseDuration),a._debugID=c._debugID,a._debugSource=c._debugSource,a._debugOwner=c._debugOwner,a._debugIsCurrentlyTiming=c._debugIsCurrentlyTiming,a._debugNeedsRemount=c._debugNeedsRemount,a._debugHookTypes=c._debugHookTypes,a}function nE(a,c,_){this.tag=c,this.current=null,this.containerInfo=a,this.pendingChildren=null,this.pingCache=null,this.finishedExpirationTime=lt,this.finishedWork=null,this.timeoutHandle=Jo,this.context=null,this.pendingContext=null,this.hydrate=_,this.callbackNode=null,this.callbackPriority=y0,this.firstPendingTime=lt,this.firstSuspendedTime=lt,this.lastSuspendedTime=lt,this.nextKnownPendingLevel=lt,this.lastPingedTime=lt,this.lastExpiredTime=lt,Ln&&(this.interactionThreadID=k.unstable_getThreadID(),this.memoizedInteractions=new Set,this.pendingInteractionMap=new Map),Ui&&(this.hydrationCallbacks=null)}function rE(a,c,_,T){var R=new nE(a,c,_);Ui&&(R.hydrationCallbacks=T);var j=X4(c);return R.current=j,j.stateNode=R,R}function u_(a,c){var _=a.firstSuspendedTime,T=a.lastSuspendedTime;return _!==lt&&_>=c&&T<=c}function Bf(a,c){var _=a.firstSuspendedTime,T=a.lastSuspendedTime;_c||_===lt)&&(a.lastSuspendedTime=c),c<=a.lastPingedTime&&(a.lastPingedTime=lt),c<=a.lastExpiredTime&&(a.lastExpiredTime=lt)}function o_(a,c){var _=a.firstPendingTime;c>_&&(a.firstPendingTime=c);var T=a.firstSuspendedTime;T!==lt&&(c>=T?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=lt:c>=a.lastSuspendedTime&&(a.lastSuspendedTime=c+1),c>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=c))}function iE(a,c,_){a.firstPendingTime=_,c<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=lt:c<=a.firstSuspendedTime&&(a.firstSuspendedTime=c-1),c<=a.lastPingedTime&&(a.lastPingedTime=lt),c<=a.lastExpiredTime&&(a.lastExpiredTime=lt)}function qp(a,c){var _=a.lastExpiredTime;(_===lt||_>c)&&(a.lastExpiredTime=c)}var uE={debugTool:null},Ov=uE,Ay,Ry;Ay=!1,Ry={};function oE(a){if(!a)return Sn;var c=jt(a),_=El(c);if(c.tag===N){var T=c.type;if(zi(T))return A0(c,T,_)}return _}function Oy(a){var c=jt(a);if(c===void 0)throw typeof a.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(a));var _=b0(c);return _===null?null:_.stateNode}function lE(a,c){{var _=jt(a);if(_===void 0)throw typeof a.render=="function"?Error("Unable to find node on an unmounted component."):Error("Argument appears to not be a ReactComponent. Keys: "+Object.keys(a));var T=b0(_);if(T===null)return null;if(T.mode&cr){var R=qt(_.type)||"Component";Ry[R]||(Ry[R]=!0,_.mode&cr?Ke(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",c,c,R,_r(T)):Ke(!1,"%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://fb.me/react-strict-mode-find-node%s",c,c,R,_r(T)))}return T.stateNode}return Oy(a)}function sE(a,c,_,T){return rE(a,c,_,T)}function l_(a,c,_,T){var R=c.current,j=Fl();typeof jest!="undefined"&&(Dy(R),jp(R));var V=mo(),te=Ff(j,R,V);Ov.debugTool&&(R.alternate===null?Ov.debugTool.onMountContainer(c):a===null?Ov.debugTool.onUnmountContainer(c):Ov.debugTool.onUpdateContainer(c));var oe=oE(_);c.context===null?c.context=oe:c.pendingContext=oe,Ar==="render"&&Cn!==null&&!Ay&&(Ay=!0,Ke(!1,`Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. + +Check the render method of %s.`,qt(Cn.type)||"Unknown"));var Ie=gu(te,V);return Ie.payload={element:a},T=T===void 0?null:T,T!==null&&(typeof T!="function"&&Ke(!1,"render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.",T),Ie.callback=T),Ua(R,Ie),dl(R,te),te}function aE(a){var c=a.current;if(!c.child)return null;switch(c.child.tag){case W:return Ro(c.child.stateNode);default:return c.child.stateNode}}function fE(a){switch(a.tag){case U:var c=a.stateNode;c.hydrate&&Zm(c,c.firstPendingTime);break;case pe:xp(function(){return dl(a,bn)});var _=La(Fl());kv(a,_);break}}function s_(a,c){var _=a.memoizedState;_!==null&&_.dehydrated!==null&&_.retryTime=c.length)return T;var R=c[_],j=Array.isArray(a)?a.slice():f({},a);return j[R]=Ny(a[R],c,_+1,T),j},h_=function(a,c,_){return Ny(a,c,0,_)};f_=function(a,c,_,T){for(var R=a.memoizedState;R!==null&&c>0;)R=R.next,c--;if(R!==null){var j=h_(R.memoizedState,_,T);R.memoizedState=j,R.baseState=j,a.memoizedProps=f({},a.memoizedProps),dl(a,bn)}},c_=function(a,c,_){a.pendingProps=h_(a.memoizedProps,c,_),a.alternate&&(a.alternate.pendingProps=a.pendingProps),dl(a,bn)},d_=function(a){dl(a,bn)},p_=function(a){My=a}}function hE(a){var c=a.findFiberByHostInstance,_=at.ReactCurrentDispatcher;return Rt(f({},a,{overrideHookState:f_,overrideProps:c_,setSuspenseHandler:p_,scheduleUpdate:d_,currentDispatcherRef:_,findHostInstanceByFiber:function(T){var R=b0(T);return R===null?null:R.stateNode},findFiberByHostInstance:function(T){return c?c(T):null},findHostInstancesForRefresh:n2,scheduleRefresh:Sl,scheduleRoot:_s,setRefreshHandler:Ia,getCurrentFiber:function(){return Cn}}))}var v_=Object.freeze({createContainer:sE,updateContainer:l_,batchedEventUpdates:ny,batchedUpdates:ty,unbatchedUpdates:ry,deferredUpdates:$m,syncUpdates:fv,discreteUpdates:cv,flushDiscreteUpdates:av,flushControlled:iy,flushSync:xp,flushPassiveEffects:Xa,IsThisRendererActing:If,getPublicRootInstance:aE,attemptSynchronousHydration:fE,attemptUserBlockingHydration:cE,attemptContinuousHydration:ky,attemptHydrationAtCurrentPriority:dE,findHostInstance:Oy,findHostInstanceWithWarning:lE,findHostInstanceWithNoPortals:pE,shouldSuspend:a_,injectIntoDevTools:hE}),vE=v_.default||v_;hg.exports=vE;var mE=hg.exports;return hg.exports=i,mE})});var D9=ce((zne,cw)=>{"use strict";process.env.NODE_ENV==="production"?cw.exports=m9():cw.exports=E9()});var S9=ce((qne,w9)=>{"use strict";var ZK={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};w9.exports=ZK});var A9=ce((Hne,T9)=>{"use strict";var $K=Object.assign||function(i){for(var o=1;o"}}]),i}(),C9=function(){v4(i,null,[{key:"fromJS",value:function(f){var p=f.width,E=f.height;return new i(p,E)}}]);function i(o,f){pw(this,i),this.width=o,this.height=f}return v4(i,[{key:"fromJS",value:function(f){f(this.width,this.height)}},{key:"toString",value:function(){return""}}]),i}(),x9=function(){function i(o,f){pw(this,i),this.unit=o,this.value=f}return v4(i,[{key:"fromJS",value:function(f){f(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case Jf.UNIT_POINT:return String(this.value);case Jf.UNIT_PERCENT:return this.value+"%";case Jf.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),i}();T9.exports=function(i,o){function f(k,L,N){var C=k[L];k[L]=function(){for(var U=arguments.length,q=Array(U),W=0;W1?q-1:0),ne=1;ne1&&arguments[1]!==void 0?arguments[1]:NaN,N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,C=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Jf.DIRECTION_LTR;return k.call(this,L,N,C)}),$K({Config:o.Config,Node:o.Node,Layout:i("Layout",eX),Size:i("Size",C9),Value:i("Value",x9),getInstanceCount:function(){return o.getInstanceCount.apply(o,arguments)}},Jf)}});var R9=ce((exports,module)=>{(function(i,o){typeof define=="function"&&define.amd?define([],function(){return o}):typeof module=="object"&&module.exports?module.exports=o:(i.nbind=i.nbind||{}).init=o})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(i,o){return function(){i&&i.apply(this,arguments);try{Module.ccall("nbind_init")}catch(f){o(f);return}o(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module!="undefined"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof require=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(o,f){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),o=nodePath.normalize(o);var p=nodeFS.readFileSync(o);return f?p:p.toString()},Module.readBinary=function(o){var f=Module.read(o,!0);return f.buffer||(f=new Uint8Array(f)),assert(f.buffer),f},Module.load=function(o){globalEval(read(o))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module!="undefined"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr!="undefined"&&(Module.printErr=printErr),typeof read!="undefined"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(o){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(o));var f=read(o,"binary");return assert(typeof f=="object"),f},typeof scriptArgs!="undefined"?Module.arguments=scriptArgs:typeof arguments!="undefined"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(i,o){quit(i)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(o){var f=new XMLHttpRequest;return f.open("GET",o,!1),f.send(null),f.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(o){var f=new XMLHttpRequest;return f.open("GET",o,!1),f.responseType="arraybuffer",f.send(null),new Uint8Array(f.response)}),Module.readAsync=function(o,f,p){var E=new XMLHttpRequest;E.open("GET",o,!0),E.responseType="arraybuffer",E.onload=function(){E.status==200||E.status==0&&E.response?f(E.response):p()},E.onerror=p,E.send(null)},typeof arguments!="undefined"&&(Module.arguments=arguments),typeof console!="undefined")Module.print||(Module.print=function(o){console.log(o)}),Module.printErr||(Module.printErr=function(o){console.warn(o)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump!="undefined"?function(i){dump(i)}:function(i){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle=="undefined"&&(Module.setWindowTitle=function(i){document.title=i})}else throw"Unknown runtime environment. Where are we?";function globalEval(i){eval.call(null,i)}!Module.load&&Module.read&&(Module.load=function(o){globalEval(Module.read(o))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(i,o){throw o}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(i){return tempRet0=i,i},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(i){STACKTOP=i},getNativeTypeSize:function(i){switch(i){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(i[i.length-1]==="*")return Runtime.QUANTUM_SIZE;if(i[0]==="i"){var o=parseInt(i.substr(1));return assert(o%8==0),o/8}else return 0}}},getNativeFieldSize:function(i){return Math.max(Runtime.getNativeTypeSize(i),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(i,o){return o==="double"||o==="i64"?i&7&&(assert((i&7)==4),i+=4):assert((i&3)==0),i},getAlignSize:function(i,o,f){return!f&&(i=="i64"||i=="double")?8:i?Math.min(o||(i?Runtime.getNativeFieldSize(i):0),Runtime.QUANTUM_SIZE):Math.min(o,8)},dynCall:function(i,o,f){return f&&f.length?Module["dynCall_"+i].apply(null,[o].concat(f)):Module["dynCall_"+i].call(null,o)},functionPointers:[],addFunction:function(i){for(var o=0;o>2],f=(o+i+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=f,f>=TOTAL_MEMORY){var p=enlargeMemory();if(!p)return HEAP32[DYNAMICTOP_PTR>>2]=o,0}return o},alignMemory:function(i,o){var f=i=Math.ceil(i/(o||16))*(o||16);return f},makeBigInt:function(i,o,f){var p=f?+(i>>>0)+ +(o>>>0)*4294967296:+(i>>>0)+ +(o|0)*4294967296;return p},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(i,o){i||abort("Assertion failed: "+o)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(i){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(i){var o=Runtime.stackAlloc(i.length);return writeArrayToMemory(i,o),o},stringToC:function(i){var o=0;if(i!=null&&i!==0){var f=(i.length<<2)+1;o=Runtime.stackAlloc(f),stringToUTF8(i,o,f)}return o}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(o,f,p,E,t){var k=getCFunc(o),L=[],N=0;if(E)for(var C=0;C>0]=o;break;case"i8":HEAP8[i>>0]=o;break;case"i16":HEAP16[i>>1]=o;break;case"i32":HEAP32[i>>2]=o;break;case"i64":tempI64=[o>>>0,(tempDouble=o,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[i>>2]=tempI64[0],HEAP32[i+4>>2]=tempI64[1];break;case"float":HEAPF32[i>>2]=o;break;case"double":HEAPF64[i>>3]=o;break;default:abort("invalid type for setValue: "+f)}}Module.setValue=setValue;function getValue(i,o,f){switch(o=o||"i8",o.charAt(o.length-1)==="*"&&(o="i32"),o){case"i1":return HEAP8[i>>0];case"i8":return HEAP8[i>>0];case"i16":return HEAP16[i>>1];case"i32":return HEAP32[i>>2];case"i64":return HEAP32[i>>2];case"float":return HEAPF32[i>>2];case"double":return HEAPF64[i>>3];default:abort("invalid type for setValue: "+o)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(i,o,f,p){var E,t;typeof i=="number"?(E=!0,t=i):(E=!1,t=i.length);var k=typeof o=="string"?o:null,L;if(f==ALLOC_NONE?L=p:L=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][f===void 0?ALLOC_STATIC:f](Math.max(t,k?1:o.length)),E){var p=L,N;for(assert((L&3)==0),N=L+(t&~3);p>2]=0;for(N=L+t;p>0]=0;return L}if(k==="i8")return i.subarray||i.slice?HEAPU8.set(i,L):HEAPU8.set(new Uint8Array(i),L),L;for(var C=0,U,q,W;C>0],f|=p,!(p==0&&!o||(E++,o&&E==o)););o||(o=E);var t="";if(f<128){for(var k=1024,L;o>0;)L=String.fromCharCode.apply(String,HEAPU8.subarray(i,i+Math.min(o,k))),t=t?t+L:L,i+=k,o-=k;return t}return Module.UTF8ToString(i)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(i){for(var o="";;){var f=HEAP8[i++>>0];if(!f)return o;o+=String.fromCharCode(f)}}Module.AsciiToString=AsciiToString;function stringToAscii(i,o){return writeAsciiToMemory(i,o,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(i,o){for(var f=o;i[f];)++f;if(f-o>16&&i.subarray&&UTF8Decoder)return UTF8Decoder.decode(i.subarray(o,f));for(var p,E,t,k,L,N,C="";;){if(p=i[o++],!p)return C;if(!(p&128)){C+=String.fromCharCode(p);continue}if(E=i[o++]&63,(p&224)==192){C+=String.fromCharCode((p&31)<<6|E);continue}if(t=i[o++]&63,(p&240)==224?p=(p&15)<<12|E<<6|t:(k=i[o++]&63,(p&248)==240?p=(p&7)<<18|E<<12|t<<6|k:(L=i[o++]&63,(p&252)==248?p=(p&3)<<24|E<<18|t<<12|k<<6|L:(N=i[o++]&63,p=(p&1)<<30|E<<24|t<<18|k<<12|L<<6|N))),p<65536)C+=String.fromCharCode(p);else{var U=p-65536;C+=String.fromCharCode(55296|U>>10,56320|U&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(i){return UTF8ArrayToString(HEAPU8,i)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(i,o,f,p){if(!(p>0))return 0;for(var E=f,t=f+p-1,k=0;k=55296&&L<=57343&&(L=65536+((L&1023)<<10)|i.charCodeAt(++k)&1023),L<=127){if(f>=t)break;o[f++]=L}else if(L<=2047){if(f+1>=t)break;o[f++]=192|L>>6,o[f++]=128|L&63}else if(L<=65535){if(f+2>=t)break;o[f++]=224|L>>12,o[f++]=128|L>>6&63,o[f++]=128|L&63}else if(L<=2097151){if(f+3>=t)break;o[f++]=240|L>>18,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}else if(L<=67108863){if(f+4>=t)break;o[f++]=248|L>>24,o[f++]=128|L>>18&63,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}else{if(f+5>=t)break;o[f++]=252|L>>30,o[f++]=128|L>>24&63,o[f++]=128|L>>18&63,o[f++]=128|L>>12&63,o[f++]=128|L>>6&63,o[f++]=128|L&63}}return o[f]=0,f-E}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(i,o,f){return stringToUTF8Array(i,HEAPU8,o,f)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(i){for(var o=0,f=0;f=55296&&p<=57343&&(p=65536+((p&1023)<<10)|i.charCodeAt(++f)&1023),p<=127?++o:p<=2047?o+=2:p<=65535?o+=3:p<=2097151?o+=4:p<=67108863?o+=5:o+=6}return o}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;function demangle(i){var o=Module.___cxa_demangle||Module.__cxa_demangle;if(o){try{var f=i.substr(1),p=lengthBytesUTF8(f)+1,E=_malloc(p);stringToUTF8(f,E,p);var t=_malloc(4),k=o(E,0,0,t);if(getValue(t,"i32")===0&&k)return Pointer_stringify(k)}catch(L){}finally{E&&_free(E),t&&_free(t),k&&_free(k)}return i}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),i}function demangleAll(i){var o=/__Z[\w\d_]+/g;return i.replace(o,function(f){var p=demangle(f);return f===p?f:f+" ["+p+"]"})}function jsStackTrace(){var i=new Error;if(!i.stack){try{throw new Error(0)}catch(o){i=o}if(!i.stack)return"(no stack trace available)"}return i.stack.toString()}function stackTrace(){var i=jsStackTrace();return Module.extraStackTrace&&(i+=` +`+Module.extraStackTrace()),demangleAll(i)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var o=i.shift();if(typeof o=="function"){o();continue}var f=o.func;typeof f=="number"?o.arg===void 0?Module.dynCall_v(f):Module.dynCall_vi(f,o.arg):f(o.arg===void 0?null:o.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(i){__ATPRERUN__.unshift(i)}Module.addOnPreRun=addOnPreRun;function addOnInit(i){__ATINIT__.unshift(i)}Module.addOnInit=addOnInit;function addOnPreMain(i){__ATMAIN__.unshift(i)}Module.addOnPreMain=addOnPreMain;function addOnExit(i){__ATEXIT__.unshift(i)}Module.addOnExit=addOnExit;function addOnPostRun(i){__ATPOSTRUN__.unshift(i)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(i,o,f){var p=f>0?f:lengthBytesUTF8(i)+1,E=new Array(p),t=stringToUTF8Array(i,E,0,E.length);return o&&(E.length=t),E}Module.intArrayFromString=intArrayFromString;function intArrayToString(i){for(var o=[],f=0;f255&&(p&=255),o.push(String.fromCharCode(p))}return o.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(i,o,f){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var p,E;f&&(E=o+lengthBytesUTF8(i),p=HEAP8[E]),stringToUTF8(i,o,Infinity),f&&(HEAP8[E]=p)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(i,o){HEAP8.set(i,o)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(i,o,f){for(var p=0;p>0]=i.charCodeAt(p);f||(HEAP8[o>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function(o,f){var p=o>>>16,E=o&65535,t=f>>>16,k=f&65535;return E*k+(p*k+E*t<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(i){return froundBuffer[0]=i,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(i){i=i>>>0;for(var o=0;o<32;o++)if(i&1<<31-o)return o;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(i){return i<0?Math.ceil(i):Math.floor(i)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(i){return i}function addRunDependency(i){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(i){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var o=dependenciesFulfilled;dependenciesFulfilled=null,o()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(i,o,f,p,E,t,k,L){return _nbind.callbackSignatureList[i].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(i,o,f,p,E,t,k,L){return ASM_CONSTS[i](o,f,p,E,t,k,L)}function _emscripten_asm_const_iiiii(i,o,f,p,E){return ASM_CONSTS[i](o,f,p,E)}function _emscripten_asm_const_iiidddddd(i,o,f,p,E,t,k,L,N){return ASM_CONSTS[i](o,f,p,E,t,k,L,N)}function _emscripten_asm_const_iiididi(i,o,f,p,E,t,k){return ASM_CONSTS[i](o,f,p,E,t,k)}function _emscripten_asm_const_iiii(i,o,f,p){return ASM_CONSTS[i](o,f,p)}function _emscripten_asm_const_iiiid(i,o,f,p,E){return ASM_CONSTS[i](o,f,p,E)}function _emscripten_asm_const_iiiiii(i,o,f,p,E,t){return ASM_CONSTS[i](o,f,p,E,t)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(i,o){__ATEXIT__.unshift({func:i,arg:o})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(i,o,f,p){var E=arguments.length,t=E<3?o:p===null?p=Object.getOwnPropertyDescriptor(o,f):p,k;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")t=Reflect.decorate(i,o,f,p);else for(var L=i.length-1;L>=0;L--)(k=i[L])&&(t=(E<3?k(t):E>3?k(o,f,t):k(o,f))||t);return E>3&&t&&Object.defineProperty(o,f,t),t}function _defineHidden(i){return function(o,f){Object.defineProperty(o,f,{configurable:!1,enumerable:!1,value:i,writable:!0})}}var _nbind={};function __nbind_free_external(i){_nbind.externalList[i].dereference(i)}function __nbind_reference_external(i){_nbind.externalList[i].reference()}function _llvm_stackrestore(i){var o=_llvm_stacksave,f=o.LLVM_SAVEDSTACKS[i];o.LLVM_SAVEDSTACKS.splice(i,1),Runtime.stackRestore(f)}function __nbind_register_pool(i,o,f,p){_nbind.Pool.pageSize=i,_nbind.Pool.usedPtr=o/4,_nbind.Pool.rootPtr=f,_nbind.Pool.pagePtr=p/4,HEAP32[o/4]=16909060,HEAP8[o]==1&&(_nbind.bigEndian=!0),HEAP32[o/4]=0,_nbind.makeTypeKindTbl=(t={},t[1024]=_nbind.PrimitiveType,t[64]=_nbind.Int64Type,t[2048]=_nbind.BindClass,t[3072]=_nbind.BindClassPtr,t[4096]=_nbind.SharedClassPtr,t[5120]=_nbind.ArrayType,t[6144]=_nbind.ArrayType,t[7168]=_nbind.CStringType,t[9216]=_nbind.CallbackType,t[10240]=_nbind.BindType,t),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var E=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});E.proto=Module,_nbind.BindClass.list.push(E);var t}function _emscripten_set_main_loop_timing(i,o){if(Browser.mainLoop.timingMode=i,Browser.mainLoop.timingValue=o,!Browser.mainLoop.func)return 1;if(i==0)Browser.mainLoop.scheduler=function(){var k=Math.max(0,Browser.mainLoop.tickStartTime+o-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,k)},Browser.mainLoop.method="timeout";else if(i==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(i==2){if(!window.setImmediate){let t=function(k){k.source===window&&k.data===p&&(k.stopPropagation(),f.shift()())};var E=t,f=[],p="setimmediate";window.addEventListener("message",t,!0),window.setImmediate=function(L){f.push(L),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(L),window.postMessage({target:p})):window.postMessage(p,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(i,o,f,p,E){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=i,Browser.mainLoop.arg=p;var t;typeof p!="undefined"?t=function(){Module.dynCall_vi(i,p)}:t=function(){Module.dynCall_v(i)};var k=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var N=Date.now(),C=Browser.mainLoop.queue.shift();if(C.func(C.arg),Browser.mainLoop.remainingBlockers){var U=Browser.mainLoop.remainingBlockers,q=U%1==0?U-1:Math.floor(U);C.counted?Browser.mainLoop.remainingBlockers=q:(q=q+.5,Browser.mainLoop.remainingBlockers=(8*U+q)/9)}if(console.log('main loop blocker "'+C.name+'" took '+(Date.now()-N)+" ms"),Browser.mainLoop.updateStatus(),k1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(t),!(k0?_emscripten_set_main_loop_timing(0,1e3/o):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),f)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var i=Browser.mainLoop.timingMode,o=Browser.mainLoop.timingValue,f=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(f,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(i,o),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var i=Module.statusMessage||"Please wait...",o=Browser.mainLoop.remainingBlockers,f=Browser.mainLoop.expectedBlockers;o?o=6;){var rt=le>>Ue-6&63;Ue-=6,Oe+=ze[rt]}return Ue==2?(Oe+=ze[(le&3)<<4],Oe+=pe+pe):Ue==4&&(Oe+=ze[(le&15)<<2],Oe+=pe),Oe}m.src="data:audio/x-"+k.substr(-3)+";base64,"+he(t),U(m)},m.src=ne,Browser.safeSetTimeout(function(){U(m)},1e4)}else return q()},Module.preloadPlugins.push(o);function f(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var p=Module.canvas;p&&(p.requestPointerLock=p.requestPointerLock||p.mozRequestPointerLock||p.webkitRequestPointerLock||p.msRequestPointerLock||function(){},p.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},p.exitPointerLock=p.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",f,!1),document.addEventListener("mozpointerlockchange",f,!1),document.addEventListener("webkitpointerlockchange",f,!1),document.addEventListener("mspointerlockchange",f,!1),Module.elementPointerLock&&p.addEventListener("click",function(E){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),E.preventDefault())},!1))},createContext:function(i,o,f,p){if(o&&Module.ctx&&i==Module.canvas)return Module.ctx;var E,t;if(o){var k={antialias:!1,alpha:!1};if(p)for(var L in p)k[L]=p[L];t=GL.createContext(i,k),t&&(E=GL.getContext(t).GLctx)}else E=i.getContext("2d");return E?(f&&(o||assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=E,o&&GL.makeContextCurrent(t),Module.useWebGL=o,Browser.moduleContextCreatedCallbacks.forEach(function(N){N()}),Browser.init()),E):null},destroyContext:function(i,o,f){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(i,o,f){Browser.lockPointer=i,Browser.resizeCanvas=o,Browser.vrDevice=f,typeof Browser.lockPointer=="undefined"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas=="undefined"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice=="undefined"&&(Browser.vrDevice=null);var p=Module.canvas;function E(){Browser.isFullscreen=!1;var k=p.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===k?(p.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},p.exitFullscreen=p.exitFullscreen.bind(document),Browser.lockPointer&&p.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(k.parentNode.insertBefore(p,k),k.parentNode.removeChild(k),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(p)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",E,!1),document.addEventListener("mozfullscreenchange",E,!1),document.addEventListener("webkitfullscreenchange",E,!1),document.addEventListener("MSFullscreenChange",E,!1));var t=document.createElement("div");p.parentNode.insertBefore(t,p),t.appendChild(p),t.requestFullscreen=t.requestFullscreen||t.mozRequestFullScreen||t.msRequestFullscreen||(t.webkitRequestFullscreen?function(){t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(t.webkitRequestFullScreen?function(){t.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),f?t.requestFullscreen({vrDisplay:f}):t.requestFullscreen()},requestFullScreen:function(i,o,f){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(p,E,t){return Browser.requestFullscreen(p,E,t)},Browser.requestFullscreen(i,o,f)},nextRAF:0,fakeRequestAnimationFrame:function(i){var o=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=o+1e3/60;else for(;o+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var f=Math.max(Browser.nextRAF-o,0);setTimeout(i,f)},requestAnimationFrame:function(o){typeof window=="undefined"?Browser.fakeRequestAnimationFrame(o):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(o))},safeCallback:function(i){return function(){if(!ABORT)return i.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var i=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],i.forEach(function(o){o()})}},safeRequestAnimationFrame:function(i){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))})},safeSetTimeout:function(i,o){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?i():Browser.queuedAsyncCallbacks.push(i))},o)},safeSetInterval:function(i,o){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&i()},o)},getMimetype:function(i){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[i.substr(i.lastIndexOf(".")+1)]},getUserMedia:function(i){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(i)},getMovementX:function(i){return i.movementX||i.mozMovementX||i.webkitMovementX||0},getMovementY:function(i){return i.movementY||i.mozMovementY||i.webkitMovementY||0},getMouseWheelDelta:function(i){var o=0;switch(i.type){case"DOMMouseScroll":o=i.detail;break;case"mousewheel":o=i.wheelDelta;break;case"wheel":o=i.deltaY;break;default:throw"unrecognized mouse wheel event: "+i.type}return o},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(i){if(Browser.pointerLock)i.type!="mousemove"&&"mozMovementX"in i?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(i),Browser.mouseMovementY=Browser.getMovementY(i)),typeof SDL!="undefined"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var o=Module.canvas.getBoundingClientRect(),f=Module.canvas.width,p=Module.canvas.height,E=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset,t=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(i.type==="touchstart"||i.type==="touchend"||i.type==="touchmove"){var k=i.touch;if(k===void 0)return;var L=k.pageX-(E+o.left),N=k.pageY-(t+o.top);L=L*(f/o.width),N=N*(p/o.height);var C={x:L,y:N};if(i.type==="touchstart")Browser.lastTouches[k.identifier]=C,Browser.touches[k.identifier]=C;else if(i.type==="touchend"||i.type==="touchmove"){var U=Browser.touches[k.identifier];U||(U=C),Browser.lastTouches[k.identifier]=U,Browser.touches[k.identifier]=C}return}var q=i.pageX-(E+o.left),W=i.pageY-(t+o.top);q=q*(f/o.width),W=W*(p/o.height),Browser.mouseMovementX=q-Browser.mouseX,Browser.mouseMovementY=W-Browser.mouseY,Browser.mouseX=q,Browser.mouseY=W}},asyncLoad:function(i,o,f,p){var E=p?"":getUniqueRunDependency("al "+i);Module.readAsync(i,function(t){assert(t,'Loading data file "'+i+'" failed (no arrayBuffer).'),o(new Uint8Array(t)),E&&removeRunDependency(E)},function(t){if(f)f();else throw'Loading data file "'+i+'" failed.'}),E&&addRunDependency(E)},resizeListeners:[],updateResizeListeners:function(){var i=Module.canvas;Browser.resizeListeners.forEach(function(o){o(i.width,i.height)})},setCanvasSize:function(i,o,f){var p=Module.canvas;Browser.updateCanvasDimensions(p,i,o),f||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var i=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];i=i&~8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=i}Browser.updateResizeListeners()},updateCanvasDimensions:function(i,o,f){o&&f?(i.widthNative=o,i.heightNative=f):(o=i.widthNative,f=i.heightNative);var p=o,E=f;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(p/E>2];return o},getStr:function(){var i=Pointer_stringify(SYSCALLS.get());return i},get64:function(){var i=SYSCALLS.get(),o=SYSCALLS.get();return i>=0?assert(o===0):assert(o===-1),i},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.getStreamFromFD();return FS.close(f),0}catch(p){return(typeof FS=="undefined"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall54(i,o){SYSCALLS.varargs=o;try{return 0}catch(f){return(typeof FS=="undefined"||!(f instanceof FS.ErrnoError))&&abort(f),-f.errno}}function _typeModule(i){var o=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function f(N,C,U,q,W,ne){if(C==1){var m=q&896;(m==128||m==256||m==384)&&(N="X const")}var we;return ne?we=U.replace("X",N).replace("Y",W):we=N.replace("X",U).replace("Y",W),we.replace(/([*&]) (?=[*&])/g,"$1")}function p(N,C,U,q,W){throw new Error(N+" type "+U.replace("X",C+"?")+(q?" with flag "+q:"")+" in "+W)}function E(N,C,U,q,W,ne,m,we){ne===void 0&&(ne="X"),we===void 0&&(we=1);var Se=U(N);if(Se)return Se;var he=q(N),ge=he.placeholderFlag,ze=o[ge];m&&ze&&(ne=f(m[2],m[0],ne,ze[0],"?",!0));var pe;ge==0&&(pe="Unbound"),ge>=10&&(pe="Corrupt"),we>20&&(pe="Deeply nested"),pe&&p(pe,N,ne,ge,W||"?");var Oe=he.paramList[0],le=E(Oe,C,U,q,W,ne,ze,we+1),Ue,Ge={flags:ze[0],id:N,name:"",paramList:[le]},rt=[],wt="?";switch(he.placeholderFlag){case 1:Ue=le.spec;break;case 2:if((le.flags&15360)==1024&&le.spec.ptrSize==1){Ge.flags=7168;break}case 3:case 6:case 5:Ue=le.spec,(le.flags&15360)!=2048;break;case 8:wt=""+he.paramList[1],Ge.paramList.push(he.paramList[1]);break;case 9:for(var xt=0,$e=he.paramList[1];xt<$e.length;xt++){var ft=$e[xt],Ke=E(ft,C,U,q,W,ne,ze,we+1);rt.push(Ke.name),Ge.paramList.push(Ke)}wt=rt.join(", ");break;default:break}if(Ge.name=f(ze[2],ze[0],le.name,le.flags,wt),Ue){for(var jt=0,$t=Object.keys(Ue);jt<$t.length;jt++){var at=$t[jt];Ge[at]=Ge[at]||Ue[at]}Ge.flags|=Ue.flags}return t(C,Ge)}function t(N,C){var U=C.flags,q=U&896,W=U&15360;return!C.name&&W==1024&&(C.ptrSize==1?C.name=(U&16?"":(U&8?"un":"")+"signed ")+"char":C.name=(U&8?"u":"")+(U&32?"float":"int")+(C.ptrSize*8+"_t")),C.ptrSize==8&&!(U&32)&&(W=64),W==2048&&(q==512||q==640?W=4096:q&&(W=3072)),N(W,C)}var k=function(){function N(C){this.id=C.id,this.name=C.name,this.flags=C.flags,this.spec=C}return N.prototype.toString=function(){return this.name},N}(),L={Type:k,getComplexType:E,makeType:t,structureList:o};return i.output=L,i.output||L}function __nbind_register_type(i,o){var f=_nbind.readAsciiString(o),p={flags:10240,id:i,name:f};_nbind.makeType(_nbind.constructType,p)}function __nbind_register_callback_signature(i,o){var f=_nbind.readTypeIdList(i,o),p=_nbind.callbackSignatureList.length;return _nbind.callbackSignatureList[p]=_nbind.makeJSCaller(f),p}function __extends(i,o){for(var f in o)o.hasOwnProperty(f)&&(i[f]=o[f]);function p(){this.constructor=i}p.prototype=o.prototype,i.prototype=new p}function __nbind_register_class(i,o,f,p,E,t,k){var L=_nbind.readAsciiString(k),N=_nbind.readPolicyList(o),C=HEAPU32.subarray(i/4,i/4+2),U={flags:2048|(N.Value?2:0),id:C[0],name:L},q=_nbind.makeType(_nbind.constructType,U);q.ptrType=_nbind.getComplexType(C[1],_nbind.constructType,_nbind.getType,_nbind.queryType),q.destroy=_nbind.makeMethodCaller(q.ptrType,{boundID:U.id,flags:0,name:"destroy",num:0,ptr:t,title:q.name+".free",typeList:["void","uint32_t","uint32_t"]}),E&&(q.superIdList=Array.prototype.slice.call(HEAPU32.subarray(f/4,f/4+E)),q.upcastList=Array.prototype.slice.call(HEAPU32.subarray(p/4,p/4+E))),Module[q.name]=q.makeBound(N),_nbind.BindClass.list.push(q)}function _removeAccessorPrefix(i){var o=/^[Gg]et_?([A-Z]?([A-Z]?))/;return i.replace(o,function(f,p,E){return E?p:p.toLowerCase()})}function __nbind_register_function(i,o,f,p,E,t,k,L,N,C){var U=_nbind.getType(i),q=_nbind.readPolicyList(o),W=_nbind.readTypeIdList(f,p),ne;if(k==5)ne=[{direct:E,name:"__nbindConstructor",ptr:0,title:U.name+" constructor",typeList:["uint32_t"].concat(W.slice(1))},{direct:t,name:"__nbindValueConstructor",ptr:0,title:U.name+" value constructor",typeList:["void","uint32_t"].concat(W.slice(1))}];else{var m=_nbind.readAsciiString(L),we=(U.name&&U.name+".")+m;(k==3||k==4)&&(m=_removeAccessorPrefix(m)),ne=[{boundID:i,direct:t,name:m,ptr:E,title:we,typeList:W}]}for(var Se=0,he=ne;Se>2]=i),i}function _llvm_stacksave(){var i=_llvm_stacksave;return i.LLVM_SAVEDSTACKS||(i.LLVM_SAVEDSTACKS=[]),i.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),i.LLVM_SAVEDSTACKS.length-1}function ___syscall140(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.getStreamFromFD(),p=SYSCALLS.get(),E=SYSCALLS.get(),t=SYSCALLS.get(),k=SYSCALLS.get(),L=E;return FS.llseek(f,L,k),HEAP32[t>>2]=f.position,f.getdents&&L===0&&k===0&&(f.getdents=null),0}catch(N){return(typeof FS=="undefined"||!(N instanceof FS.ErrnoError))&&abort(N),-N.errno}}function ___syscall146(i,o){SYSCALLS.varargs=o;try{var f=SYSCALLS.get(),p=SYSCALLS.get(),E=SYSCALLS.get(),t=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(U,q){var W=___syscall146.buffers[U];assert(W),q===0||q===10?((U===1?Module.print:Module.printErr)(UTF8ArrayToString(W,0)),W.length=0):W.push(q)});for(var k=0;k>2],N=HEAP32[p+(k*8+4)>>2],C=0;Ci.pageSize/2||o>i.pageSize-f){var p=_nbind.typeNameTbl.NBind.proto;return p.lalloc(o)}else return HEAPU32[i.usedPtr]=f+o,i.rootPtr+f},i.lreset=function(o,f){var p=HEAPU32[i.pagePtr];if(p){var E=_nbind.typeNameTbl.NBind.proto;E.lreset(o,f)}else HEAPU32[i.usedPtr]=o},i}();_nbind.Pool=Pool;function constructType(i,o){var f=i==10240?_nbind.makeTypeNameTbl[o.name]||_nbind.BindType:_nbind.makeTypeKindTbl[i],p=new f(o);return typeIdTbl[o.id]=p,_nbind.typeNameTbl[o.name]=p,p}_nbind.constructType=constructType;function getType(i){return typeIdTbl[i]}_nbind.getType=getType;function queryType(i){var o=HEAPU8[i],f=_nbind.structureList[o][1];i/=4,f<0&&(++i,f=HEAPU32[i]+1);var p=Array.prototype.slice.call(HEAPU32.subarray(i+1,i+1+f));return o==9&&(p=[p[0],p.slice(1)]),{paramList:p,placeholderFlag:o}}_nbind.queryType=queryType;function getTypes(i,o){return i.map(function(f){return typeof f=="number"?_nbind.getComplexType(f,constructType,getType,queryType,o):_nbind.typeNameTbl[f]})}_nbind.getTypes=getTypes;function readTypeIdList(i,o){return Array.prototype.slice.call(HEAPU32,i/4,i/4+o)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(i){for(var o=i;HEAPU8[o++];);return String.fromCharCode.apply("",HEAPU8.subarray(i,o-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(i){var o={};if(i)for(;;){var f=HEAPU32[i/4];if(!f)break;o[readAsciiString(f)]=!0,i+=4}return o}_nbind.readPolicyList=readPolicyList;function getDynCall(i,o){var f={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},p=i.map(function(t){return f[t.name]||"i"}).join(""),E=Module["dynCall_"+p];if(!E)throw new Error("dynCall_"+p+" not found for "+o+"("+i.map(function(t){return t.name}).join(", ")+")");return E}_nbind.getDynCall=getDynCall;function addMethod(i,o,f,p){var E=i[o];i.hasOwnProperty(o)&&E?((E.arity||E.arity===0)&&(E=_nbind.makeOverloader(E,E.arity),i[o]=E),E.addMethod(f,p)):(f.arity=p,i[o]=f)}_nbind.addMethod=addMethod;function throwError(i){throw new Error(i)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.heap=HEAPU32,f.ptrSize=4,f}return o.prototype.needsWireRead=function(f){return!!this.wireRead||!!this.makeWireRead},o.prototype.needsWireWrite=function(f){return!!this.wireWrite||!!this.makeWireWrite},o}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(i){__extends(o,i);function o(f){var p=i.call(this,f)||this,E=f.flags&32?{32:HEAPF32,64:HEAPF64}:f.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return p.heap=E[f.ptrSize*8],p.ptrSize=f.ptrSize,p}return o.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},o.prototype.makeWireWrite=function(f,p){return p&&p.Strict&&function(E){if(typeof E=="number")return E;throw new Error("Type mismatch")}},o}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(i,o){if(i==null){if(o&&o.Nullable)return 0;throw new Error("Type mismatch")}if(o&&o.Strict){if(typeof i!="string")throw new Error("Type mismatch")}else i=i.toString();var f=Module.lengthBytesUTF8(i)+1,p=_nbind.Pool.lalloc(f);return Module.stringToUTF8Array(i,HEAPU8,p,f),p}_nbind.pushCString=pushCString;function popCString(i){return i===0?null:Module.Pointer_stringify(i)}_nbind.popCString=popCString;var CStringType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=popCString,f.wireWrite=pushCString,f.readResources=[_nbind.resources.pool],f.writeResources=[_nbind.resources.pool],f}return o.prototype.makeWireWrite=function(f,p){return function(E){return pushCString(E,p)}},o}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(i){__extends(o,i);function o(){var f=i!==null&&i.apply(this,arguments)||this;return f.wireRead=function(p){return!!p},f}return o.prototype.needsWireWrite=function(f){return!!f&&!!f.Strict},o.prototype.makeWireRead=function(f){return"!!("+f+")"},o.prototype.makeWireWrite=function(f,p){return p&&p.Strict&&function(E){if(typeof E=="boolean")return E;throw new Error("Type mismatch")}||f},o}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function i(){}return i.prototype.persist=function(){this.__nbindState|=1},i}();_nbind.Wrapper=Wrapper;function makeBound(i,o){var f=function(p){__extends(E,p);function E(t,k,L,N){var C=p.call(this)||this;if(!(C instanceof E))return new(Function.prototype.bind.apply(E,Array.prototype.concat.apply([null],arguments)));var U=k,q=L,W=N;if(t!==_nbind.ptrMarker){var ne=C.__nbindConstructor.apply(C,arguments);U=4096|512,W=HEAPU32[ne/4],q=HEAPU32[ne/4+1]}var m={configurable:!0,enumerable:!1,value:null,writable:!1},we={__nbindFlags:U,__nbindPtr:q};W&&(we.__nbindShared=W,_nbind.mark(C));for(var Se=0,he=Object.keys(we);Se>=1;var f=_nbind.valueList[i];return _nbind.valueList[i]=firstFreeValue,firstFreeValue=i,f}else{if(o)return _nbind.popShared(i,o);throw new Error("Invalid value slot "+i)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(i){return typeof i=="number"?i:pushValue(i)*4096+valueBase}function pop64(i){return i=3?k=Buffer.from(t):k=new Buffer(t),k.copy(p)}else getBuffer(p).set(t)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var i=0,o=dirtyList;i>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(i,o,f,p,E,t){try{Module.dynCall_viiiii(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_vif(i,o,f){try{Module.dynCall_vif(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_vid(i,o,f){try{Module.dynCall_vid(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_fiff(i,o,f,p){try{return Module.dynCall_fiff(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_vi(i,o){try{Module.dynCall_vi(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_vii(i,o,f){try{Module.dynCall_vii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_ii(i,o){try{return Module.dynCall_ii(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_viddi(i,o,f,p,E){try{Module.dynCall_viddi(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_vidd(i,o,f,p){try{Module.dynCall_vidd(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_iiii(i,o,f,p){try{return Module.dynCall_iiii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_diii(i,o,f,p){try{return Module.dynCall_diii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_di(i,o){try{return Module.dynCall_di(i,o)}catch(f){if(typeof f!="number"&&f!=="longjmp")throw f;Module.setThrew(1,0)}}function invoke_iid(i,o,f){try{return Module.dynCall_iid(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_iii(i,o,f){try{return Module.dynCall_iii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_viiddi(i,o,f,p,E,t){try{Module.dynCall_viiddi(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_viiiiii(i,o,f,p,E,t,k){try{Module.dynCall_viiiiii(i,o,f,p,E,t,k)}catch(L){if(typeof L!="number"&&L!=="longjmp")throw L;Module.setThrew(1,0)}}function invoke_dii(i,o,f){try{return Module.dynCall_dii(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_i(i){try{return Module.dynCall_i(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iiiiii(i,o,f,p,E,t){try{return Module.dynCall_iiiiii(i,o,f,p,E,t)}catch(k){if(typeof k!="number"&&k!=="longjmp")throw k;Module.setThrew(1,0)}}function invoke_viiid(i,o,f,p,E){try{Module.dynCall_viiid(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viififi(i,o,f,p,E,t,k){try{Module.dynCall_viififi(i,o,f,p,E,t,k)}catch(L){if(typeof L!="number"&&L!=="longjmp")throw L;Module.setThrew(1,0)}}function invoke_viii(i,o,f,p){try{Module.dynCall_viii(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_v(i){try{Module.dynCall_v(i)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viid(i,o,f,p){try{Module.dynCall_viid(i,o,f,p)}catch(E){if(typeof E!="number"&&E!=="longjmp")throw E;Module.setThrew(1,0)}}function invoke_idd(i,o,f){try{return Module.dynCall_idd(i,o,f)}catch(p){if(typeof p!="number"&&p!=="longjmp")throw p;Module.setThrew(1,0)}}function invoke_viiii(i,o,f,p,E){try{Module.dynCall_viiii(i,o,f,p,E)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:Infinity},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(i,o,f){var p=new i.Int8Array(f),E=new i.Int16Array(f),t=new i.Int32Array(f),k=new i.Uint8Array(f),L=new i.Uint16Array(f),N=new i.Uint32Array(f),C=new i.Float32Array(f),U=new i.Float64Array(f),q=o.DYNAMICTOP_PTR|0,W=o.tempDoublePtr|0,ne=o.ABORT|0,m=o.STACKTOP|0,we=o.STACK_MAX|0,Se=o.cttz_i8|0,he=o.___dso_handle|0,ge=0,ze=0,pe=0,Oe=0,le=i.NaN,Ue=i.Infinity,Ge=0,rt=0,wt=0,xt=0,$e=0,ft=0,Ke=i.Math.floor,jt=i.Math.abs,$t=i.Math.sqrt,at=i.Math.pow,Q=i.Math.cos,ae=i.Math.sin,Ce=i.Math.tan,ue=i.Math.acos,je=i.Math.asin,ct=i.Math.atan,At=i.Math.atan2,en=i.Math.exp,ln=i.Math.log,An=i.Math.ceil,nr=i.Math.imul,un=i.Math.min,Wt=i.Math.max,vr=i.Math.clz32,w=i.Math.fround,Ut=o.abort,Vn=o.assert,fr=o.enlargeMemory,Fr=o.getTotalMemory,ur=o.abortOnCannotGrowMemory,br=o.invoke_viiiii,Kt=o.invoke_vif,vu=o.invoke_vid,a0=o.invoke_fiff,So=o.invoke_vi,Go=o.invoke_vii,Os=o.invoke_ii,Yo=o.invoke_viddi,Ko=o.invoke_vidd,qt=o.invoke_iiii,_i=o.invoke_diii,eu=o.invoke_di,ai=o.invoke_iid,mr=o.invoke_iii,Xo=o.invoke_viiddi,W0=o.invoke_viiiiii,Lu=o.invoke_dii,V0=o.invoke_i,Hr=o.invoke_iiiiii,To=o.invoke_viiid,Co=o.invoke_viififi,L0=o.invoke_viii,tu=o.invoke_v,Si=o.invoke_viid,ks=o.invoke_idd,Hl=o.invoke_viiii,F0=o._emscripten_asm_const_iiiii,f0=o._emscripten_asm_const_iiidddddd,Pr=o._emscripten_asm_const_iiiid,Ei=o.__nbind_reference_external,G0=o._emscripten_asm_const_iiiiiiii,fi=o._removeAccessorPrefix,Zt=o._typeModule,Ln=o.__nbind_register_pool,Di=o.__decorate,ci=o._llvm_stackrestore,Ht=o.___cxa_atexit,Du=o.__extends,Yi=o.__nbind_get_value_object,Y0=o.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Ui=o._emscripten_set_main_loop_timing,Wl=o.__nbind_register_primitive,xo=o.__nbind_register_type,ni=o._emscripten_memcpy_big,oo=o.__nbind_register_function,Vl=o.___setErrNo,Ao=o.__nbind_register_class,Ms=o.__nbind_finish,Xn=o._abort,Qo=o._nbind_value,lo=o._llvm_stacksave,b0=o.___syscall54,yl=o._defineHidden,Ro=o._emscripten_set_main_loop,Et=o._emscripten_get_now,Pt=o.__nbind_register_callback_signature,Bn=o._emscripten_asm_const_iiiiii,Ir=o.__nbind_free_external,ji=o._emscripten_asm_const_iiii,Wr=o._emscripten_asm_const_iiididi,wu=o.___syscall6,c0=o._atexit,Ti=o.___syscall140,d0=o.___syscall146,as=w(0);let St=w(0);function so(e){e=e|0;var n=0;return n=m,m=m+e|0,m=m+15&-16,n|0}function Jo(){return m|0}function Gl(e){e=e|0,m=e}function Fu(e,n){e=e|0,n=n|0,m=e,we=n}function fs(e,n){e=e|0,n=n|0,ge||(ge=e,ze=n)}function P0(e){e=e|0,ft=e}function X(){return ft|0}function _e(){var e=0,n=0;pr(8104,8,400)|0,pr(8504,408,540)|0,e=9044,n=e+44|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));p[9088]=0,p[9089]=1,t[2273]=0,t[2274]=948,t[2275]=948,Ht(17,8104,he|0)|0}function Ne(e){e=e|0,ic(e+948|0)}function Me(e){return e=w(e),((cr(e)|0)&2147483647)>>>0>2139095040|0}function dt(e,n,r){e=e|0,n=n|0,r=r|0;e:do if(t[e+(n<<3)+4>>2]|0)e=e+(n<<3)|0;else{if((n|2|0)==3?t[e+60>>2]|0:0){e=e+56|0;break}switch(n|0){case 0:case 2:case 4:case 5:{if(t[e+52>>2]|0){e=e+48|0;break e}break}default:}if(t[e+68>>2]|0){e=e+64|0;break}else{e=(n|1|0)==5?948:r;break}}while(0);return e|0}function Hn(e){e=e|0;var n=0;return n=C_(1e3)|0,Dn(e,(n|0)!=0,2456),t[2276]=(t[2276]|0)+1,pr(n|0,8104,1e3)|0,p[e+2>>0]|0&&(t[n+4>>2]=2,t[n+12>>2]=4),t[n+976>>2]=e,n|0}function Dn(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,_l(e,5,3197,u)),m=l}function or(){return Hn(956)|0}function mi(e){e=e|0;var n=0;return n=cn(1e3)|0,Su(n,e),Dn(t[e+976>>2]|0,1,2456),t[2276]=(t[2276]|0)+1,t[n+944>>2]=0,n|0}function Su(e,n){e=e|0,n=n|0;var r=0;pr(e|0,n|0,948)|0,na(e+948|0,n+948|0),r=e+960|0,e=n+960|0,n=r+40|0;do t[r>>2]=t[e>>2],r=r+4|0,e=e+4|0;while((r|0)<(n|0))}function bu(e){e=e|0;var n=0,r=0,u=0,l=0;if(n=e+944|0,r=t[n>>2]|0,r|0&&(Pu(r+948|0,e)|0,t[n>>2]=0),r=mu(e)|0,r|0){n=0;do t[(yi(e,n)|0)+944>>2]=0,n=n+1|0;while((n|0)!=(r|0))}r=e+948|0,u=t[r>>2]|0,l=e+952|0,n=t[l>>2]|0,(n|0)!=(u|0)&&(t[l>>2]=n+(~((n+-4-u|0)>>>2)<<2)),Oo(r),x_(e),t[2276]=(t[2276]|0)+-1}function Pu(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0;u=t[e>>2]|0,D=e+4|0,r=t[D>>2]|0,s=r;e:do if((u|0)==(r|0))l=u,h=4;else for(e=u;;){if((t[e>>2]|0)==(n|0)){l=e,h=4;break e}if(e=e+4|0,(e|0)==(r|0)){e=0;break}}while(0);return(h|0)==4&&((l|0)!=(r|0)?(u=l+4|0,e=s-u|0,n=e>>2,n&&(Iy(l|0,u|0,e|0)|0,r=t[D>>2]|0),e=l+(n<<2)|0,(r|0)==(e|0)||(t[D>>2]=r+(~((r+-4-e|0)>>>2)<<2)),e=1):e=0),e|0}function mu(e){return e=e|0,(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2|0}function yi(e,n){e=e|0,n=n|0;var r=0;return r=t[e+948>>2]|0,(t[e+952>>2]|0)-r>>2>>>0>n>>>0?e=t[r+(n<<2)>>2]|0:e=0,e|0}function Oo(e){e=e|0;var n=0,r=0,u=0,l=0;u=m,m=m+32|0,n=u,l=t[e>>2]|0,r=(t[e+4>>2]|0)-l|0,((t[e+8>>2]|0)-l|0)>>>0>r>>>0&&(l=r>>2,Y(n,l,l,e+8|0),Qr(e,n),Jr(n)),m=u}function Tu(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;M=mu(e)|0;do if(M|0){if((t[(yi(e,0)|0)+944>>2]|0)==(e|0)){if(!(Pu(e+948|0,n)|0))break;pr(n+400|0,8504,540)|0,t[n+944>>2]=0,Gn(e);break}h=t[(t[e+976>>2]|0)+12>>2]|0,D=e+948|0,S=(h|0)==0,r=0,s=0;do u=t[(t[D>>2]|0)+(s<<2)>>2]|0,(u|0)==(n|0)?Gn(e):(l=mi(u)|0,t[(t[D>>2]|0)+(r<<2)>>2]=l,t[l+944>>2]=e,S||$E[h&15](u,l,e,r),r=r+1|0),s=s+1|0;while((s|0)!=(M|0));if(r>>>0>>0){S=e+948|0,D=e+952|0,h=r,r=t[D>>2]|0;do s=(t[S>>2]|0)+(h<<2)|0,u=s+4|0,l=r-u|0,n=l>>2,n&&(Iy(s|0,u|0,l|0)|0,r=t[D>>2]|0),l=r,u=s+(n<<2)|0,(l|0)!=(u|0)&&(r=l+(~((l+-4-u|0)>>>2)<<2)|0,t[D>>2]=r),h=h+1|0;while((h|0)!=(M|0))}}while(0)}function ao(e){e=e|0;var n=0,r=0,u=0,l=0;Iu(e,(mu(e)|0)==0,2491),Iu(e,(t[e+944>>2]|0)==0,2545),n=e+948|0,r=t[n>>2]|0,u=e+952|0,l=t[u>>2]|0,(l|0)!=(r|0)&&(t[u>>2]=l+(~((l+-4-r|0)>>>2)<<2)),Oo(n),n=e+976|0,r=t[n>>2]|0,pr(e|0,8104,1e3)|0,p[r+2>>0]|0&&(t[e+4>>2]=2,t[e+12>>2]=4),t[n>>2]=r}function Iu(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;l=m,m=m+16|0,u=l,n||(t[u>>2]=r,sr(e,5,3197,u)),m=l}function Oa(){return t[2276]|0}function p0(){var e=0;return e=C_(20)|0,Zs((e|0)!=0,2592),t[2277]=(t[2277]|0)+1,t[e>>2]=t[239],t[e+4>>2]=t[240],t[e+8>>2]=t[241],t[e+12>>2]=t[242],t[e+16>>2]=t[243],e|0}function Zs(e,n){e=e|0,n=n|0;var r=0,u=0;u=m,m=m+16|0,r=u,e||(t[r>>2]=n,sr(0,5,3197,r)),m=u}function K0(e){e=e|0,x_(e),t[2277]=(t[2277]|0)+-1}function $s(e,n){e=e|0,n=n|0;var r=0;n?(Iu(e,(mu(e)|0)==0,2629),r=1):(r=0,n=0),t[e+964>>2]=n,t[e+988>>2]=r}function ka(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+8|0,l=u+4|0,h=u,t[l>>2]=n,Iu(e,(t[n+944>>2]|0)==0,2709),Iu(e,(t[e+964>>2]|0)==0,2763),cs(e),n=e+948|0,t[h>>2]=(t[n>>2]|0)+(r<<2),t[s>>2]=t[h>>2],w0(n,s,l)|0,t[(t[l>>2]|0)+944>>2]=e,Gn(e),m=u}function cs(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;if(r=mu(e)|0,r|0?(t[(yi(e,0)|0)+944>>2]|0)!=(e|0):0){u=t[(t[e+976>>2]|0)+12>>2]|0,l=e+948|0,s=(u|0)==0,n=0;do h=t[(t[l>>2]|0)+(n<<2)>>2]|0,D=mi(h)|0,t[(t[l>>2]|0)+(n<<2)>>2]=D,t[D+944>>2]=e,s||$E[u&15](h,D,e,n),n=n+1|0;while((n|0)!=(r|0))}}function w0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0;Qe=m,m=m+64|0,P=Qe+52|0,D=Qe+48|0,K=Qe+28|0,Pe=Qe+24|0,Ee=Qe+20|0,ve=Qe,u=t[e>>2]|0,s=u,n=u+((t[n>>2]|0)-s>>2<<2)|0,u=e+4|0,l=t[u>>2]|0,h=e+8|0;do if(l>>>0<(t[h>>2]|0)>>>0){if((n|0)==(l|0)){t[n>>2]=t[r>>2],t[u>>2]=(t[u>>2]|0)+4;break}Ur(e,n,l,n+4|0),n>>>0<=r>>>0&&(r=(t[u>>2]|0)>>>0>r>>>0?r+4|0:r),t[n>>2]=t[r>>2]}else{u=(l-s>>2)+1|0,l=x0(e)|0,l>>>0>>0&&li(e),O=t[e>>2]|0,M=(t[h>>2]|0)-O|0,s=M>>1,Y(ve,M>>2>>>0>>1>>>0?s>>>0>>0?u:s:l,n-O>>2,e+8|0),O=ve+8|0,u=t[O>>2]|0,s=ve+12|0,M=t[s>>2]|0,h=M,S=u;do if((u|0)==(M|0)){if(M=ve+4|0,u=t[M>>2]|0,We=t[ve>>2]|0,l=We,u>>>0<=We>>>0){u=h-l>>1,u=(u|0)==0?1:u,Y(K,u,u>>>2,t[ve+16>>2]|0),t[Pe>>2]=t[M>>2],t[Ee>>2]=t[O>>2],t[D>>2]=t[Pe>>2],t[P>>2]=t[Ee>>2],hi(K,D,P),u=t[ve>>2]|0,t[ve>>2]=t[K>>2],t[K>>2]=u,u=K+4|0,We=t[M>>2]|0,t[M>>2]=t[u>>2],t[u>>2]=We,u=K+8|0,We=t[O>>2]|0,t[O>>2]=t[u>>2],t[u>>2]=We,u=K+12|0,We=t[s>>2]|0,t[s>>2]=t[u>>2],t[u>>2]=We,Jr(K),u=t[O>>2]|0;break}s=u,h=((s-l>>2)+1|0)/-2|0,D=u+(h<<2)|0,l=S-s|0,s=l>>2,s&&(Iy(D|0,u|0,l|0)|0,u=t[M>>2]|0),We=D+(s<<2)|0,t[O>>2]=We,t[M>>2]=u+(h<<2),u=We}while(0);t[u>>2]=t[r>>2],t[O>>2]=(t[O>>2]|0)+4,n=lt(e,ve,n)|0,Jr(ve)}while(0);return m=Qe,n|0}function Gn(e){e=e|0;var n=0;do{if(n=e+984|0,p[n>>0]|0)break;p[n>>0]=1,C[e+504>>2]=w(le),e=t[e+944>>2]|0}while((e|0)!=0)}function ic(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function ri(e){return e=e|0,t[e+944>>2]|0}function Gr(e){e=e|0,Iu(e,(t[e+964>>2]|0)!=0,2832),Gn(e)}function Yl(e){return e=e|0,(p[e+984>>0]|0)!=0|0}function ea(e,n){e=e|0,n=n|0,MI(e,n,400)|0&&(pr(e|0,n|0,400)|0,Gn(e))}function lf(e){e=e|0;var n=St;return n=w(C[e+44>>2]),e=Me(n)|0,w(e?w(0):n)}function Ns(e){e=e|0;var n=St;return n=w(C[e+48>>2]),Me(n)|0&&(n=p[(t[e+976>>2]|0)+2>>0]|0?w(1):w(0)),w(n)}function Ma(e,n){e=e|0,n=n|0,t[e+980>>2]=n}function Ls(e){return e=e|0,t[e+980>>2]|0}function h0(e,n){e=e|0,n=n|0;var r=0;r=e+4|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function Fs(e){return e=e|0,t[e+4>>2]|0}function Ni(e,n){e=e|0,n=n|0;var r=0;r=e+8|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function B(e){return e=e|0,t[e+8>>2]|0}function z(e,n){e=e|0,n=n|0;var r=0;r=e+12|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function G(e){return e=e|0,t[e+12>>2]|0}function $(e,n){e=e|0,n=n|0;var r=0;r=e+16|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function De(e){return e=e|0,t[e+16>>2]|0}function me(e,n){e=e|0,n=n|0;var r=0;r=e+20|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function xe(e){return e=e|0,t[e+20>>2]|0}function Z(e,n){e=e|0,n=n|0;var r=0;r=e+24|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function ke(e){return e=e|0,t[e+24>>2]|0}function Xe(e,n){e=e|0,n=n|0;var r=0;r=e+28|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function ht(e){return e=e|0,t[e+28>>2]|0}function ie(e,n){e=e|0,n=n|0;var r=0;r=e+32|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function qe(e){return e=e|0,t[e+32>>2]|0}function tt(e,n){e=e|0,n=n|0;var r=0;r=e+36|0,(t[r>>2]|0)!=(n|0)&&(t[r>>2]=n,Gn(e))}function Tt(e){return e=e|0,t[e+36>>2]|0}function kt(e,n){e=e|0,n=w(n);var r=0;r=e+40|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function bt(e,n){e=e|0,n=w(n);var r=0;r=e+44|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function on(e,n){e=e|0,n=w(n);var r=0;r=e+48|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function tn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+52|0,l=e+56|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Lt(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+52|0,r=e+56|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function gn(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+52|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function lr(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Qn(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+132+(n<<3)|0,n=e+132+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function _r(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+132+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Cn(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Ar(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+60+(n<<3)|0,n=e+60+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function v0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+60+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Rr(e,n){e=e|0,n=n|0;var r=0;r=e+60+(n<<3)+4|0,(t[r>>2]|0)!=3&&(C[e+60+(n<<3)>>2]=w(le),t[r>>2]=3,Gn(e))}function nt(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function _t(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=s?0:2,l=e+204+(n<<3)|0,n=e+204+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function Ze(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=n+204+(r<<3)|0,n=t[u+4>>2]|0,r=e,t[r>>2]=t[u>>2],t[r+4>>2]=n}function Ft(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0,s=0;s=Me(r)|0,u=(s^1)&1,l=e+276+(n<<3)|0,n=e+276+(n<<3)+4|0,(s|w(C[l>>2])==r?(t[n>>2]|0)==(u|0):0)||(C[l>>2]=r,t[n>>2]=u,Gn(e))}function nn(e,n){return e=e|0,n=n|0,w(C[e+276+(n<<3)>>2])}function sn(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+348|0,l=e+352|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Yn(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+348|0,r=e+352|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function yr(e){e=e|0;var n=0;n=e+352|0,(t[n>>2]|0)!=3&&(C[e+348>>2]=w(le),t[n>>2]=3,Gn(e))}function nu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+348|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Cu(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+356|0,l=e+360|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function S0(e,n){e=e|0,n=w(n);var r=0,u=0;u=e+356|0,r=e+360|0,(w(C[u>>2])==n?(t[r>>2]|0)==2:0)||(C[u>>2]=n,u=Me(n)|0,t[r>>2]=u?3:2,Gn(e))}function X0(e){e=e|0;var n=0;n=e+360|0,(t[n>>2]|0)!=3&&(C[e+356>>2]=w(le),t[n>>2]=3,Gn(e))}function xu(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+356|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function di(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+364|0,l=e+368|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ko(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+364|0,l=e+368|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Zo(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+364|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function sf(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+372|0,l=e+376|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function gl(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+372|0,l=e+376|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function af(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+372|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Mo(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+380|0,l=e+384|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ds(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+380|0,l=e+384|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function bs(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+380|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function No(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=(s^1)&1,u=e+388|0,l=e+392|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function Lo(e,n){e=e|0,n=w(n);var r=0,u=0,l=0,s=0;s=Me(n)|0,r=s?0:2,u=e+388|0,l=e+392|0,(s|w(C[u>>2])==n?(t[l>>2]|0)==(r|0):0)||(C[u>>2]=n,t[l>>2]=r,Gn(e))}function ps(e,n){e=e|0,n=n|0;var r=0,u=0;u=n+388|0,r=t[u+4>>2]|0,n=e,t[n>>2]=t[u>>2],t[n+4>>2]=r}function Vu(e,n){e=e|0,n=w(n);var r=0;r=e+396|0,w(C[r>>2])!=n&&(C[r>>2]=n,Gn(e))}function yu(e){return e=e|0,w(C[e+396>>2])}function pi(e){return e=e|0,w(C[e+400>>2])}function T0(e){return e=e|0,w(C[e+404>>2])}function Q0(e){return e=e|0,w(C[e+408>>2])}function Fo(e){return e=e|0,w(C[e+412>>2])}function ta(e){return e=e|0,w(C[e+416>>2])}function Kl(e){return e=e|0,w(C[e+420>>2])}function Ki(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+424+(n<<2)>>2])}function Yr(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+448+(n<<2)>>2])}function fo(e,n){switch(e=e|0,n=n|0,Iu(e,(n|0)<6,2918),n|0){case 0:{n=(t[e+496>>2]|0)==2?5:4;break}case 2:{n=(t[e+496>>2]|0)==2?4:5;break}default:}return w(C[e+472+(n<<2)>>2])}function Oi(e,n){e=e|0,n=n|0;var r=0,u=St;return r=t[e+4>>2]|0,(r|0)==(t[n+4>>2]|0)?r?(u=w(C[e>>2]),e=w(jt(w(u-w(C[n>>2]))))>2]=0,t[u+4>>2]=0,t[u+8>>2]=0,Y0(u|0,e|0,n|0,0),sr(e,3,(p[u+11>>0]|0)<0?t[u>>2]|0:u,r),eB(u),m=r}function J0(e,n,r,u){e=w(e),n=w(n),r=r|0,u=u|0;var l=St;e=w(e*n),l=w(YE(e,w(1)));do if(gi(l,w(0))|0)e=w(e-l);else{if(e=w(e-l),gi(l,w(1))|0){e=w(e+w(1));break}if(r){e=w(e+w(1));break}u||(l>w(.5)?l=w(1):(u=gi(l,w(.5))|0,l=w(u?1:0)),e=w(e+l))}while(0);return w(e/n)}function Z0(e,n,r,u,l,s,h,D,S,M,O,P,K){e=e|0,n=w(n),r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,D=w(D),S=w(S),M=w(M),O=w(O),P=w(P),K=K|0;var Pe=0,Ee=St,ve=St,Qe=St,We=St,st=St,Re=St;return S>2]),Ee!=w(0)):0)?(Qe=w(J0(n,Ee,0,0)),We=w(J0(u,Ee,0,0)),ve=w(J0(s,Ee,0,0)),Ee=w(J0(D,Ee,0,0))):(ve=s,Qe=n,Ee=D,We=u),(l|0)==(e|0)?Pe=gi(ve,Qe)|0:Pe=0,(h|0)==(r|0)?K=gi(Ee,We)|0:K=0,((Pe?0:(st=w(n-O),!(Te(e,st,S)|0)))?!(et(e,st,l,S)|0):0)?Pe=Ve(e,st,l,s,S)|0:Pe=1,((K?0:(Re=w(u-P),!(Te(r,Re,M)|0)))?!(et(r,Re,h,M)|0):0)?K=Ve(r,Re,h,D,M)|0:K=1,K=Pe&K),K|0}function Te(e,n,r){return e=e|0,n=w(n),r=w(r),(e|0)==1?e=gi(n,r)|0:e=0,e|0}function et(e,n,r,u){return e=e|0,n=w(n),r=r|0,u=w(u),(e|0)==2&(r|0)==0?n>=u?e=1:e=gi(n,u)|0:e=0,e|0}function Ve(e,n,r,u,l){return e=e|0,n=w(n),r=r|0,u=w(u),l=w(l),(e|0)==2&(r|0)==2&u>n?l<=n?e=1:e=gi(n,l)|0:e=0,e|0}function Gt(e,n,r,u,l,s,h,D,S,M,O){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,M=M|0,O=O|0;var P=0,K=0,Pe=0,Ee=0,ve=St,Qe=St,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=St,ts=St,ns=St,rs=0,Xs=0;On=m,m=m+160|0,mn=On+152|0,Nn=On+120|0,Lr=On+104|0,Re=On+72|0,Ee=On+56|0,Qt=On+8|0,st=On,Fe=(t[2279]|0)+1|0,t[2279]=Fe,hr=e+984|0,((p[hr>>0]|0)!=0?(t[e+512>>2]|0)!=(t[2278]|0):0)?We=4:(t[e+516>>2]|0)==(u|0)?kr=0:We=4,(We|0)==4&&(t[e+520>>2]=0,t[e+924>>2]=-1,t[e+928>>2]=-1,C[e+932>>2]=w(-1),C[e+936>>2]=w(-1),kr=1);e:do if(t[e+964>>2]|0)if(ve=w(Yt(e,2,h)),Qe=w(Yt(e,0,h)),P=e+916|0,ns=w(C[P>>2]),ts=w(C[e+920>>2]),Zi=w(C[e+932>>2]),Z0(l,n,s,r,t[e+924>>2]|0,ns,t[e+928>>2]|0,ts,Zi,w(C[e+936>>2]),ve,Qe,O)|0)We=22;else if(Pe=t[e+520>>2]|0,!Pe)We=21;else for(K=0;;){if(P=e+524+(K*24|0)|0,Zi=w(C[P>>2]),ts=w(C[e+524+(K*24|0)+4>>2]),ns=w(C[e+524+(K*24|0)+16>>2]),Z0(l,n,s,r,t[e+524+(K*24|0)+8>>2]|0,Zi,t[e+524+(K*24|0)+12>>2]|0,ts,ns,w(C[e+524+(K*24|0)+20>>2]),ve,Qe,O)|0){We=22;break e}if(K=K+1|0,K>>>0>=Pe>>>0){We=21;break}}else{if(S){if(P=e+916|0,!(gi(w(C[P>>2]),n)|0)){We=21;break}if(!(gi(w(C[e+920>>2]),r)|0)){We=21;break}if((t[e+924>>2]|0)!=(l|0)){We=21;break}P=(t[e+928>>2]|0)==(s|0)?P:0,We=22;break}if(Pe=t[e+520>>2]|0,!Pe)We=21;else for(K=0;;){if(P=e+524+(K*24|0)|0,((gi(w(C[P>>2]),n)|0?gi(w(C[e+524+(K*24|0)+4>>2]),r)|0:0)?(t[e+524+(K*24|0)+8>>2]|0)==(l|0):0)?(t[e+524+(K*24|0)+12>>2]|0)==(s|0):0){We=22;break e}if(K=K+1|0,K>>>0>=Pe>>>0){We=21;break}}}while(0);do if((We|0)==21)p[11697]|0?(P=0,We=28):(P=0,We=31);else if((We|0)==22){if(K=(p[11697]|0)!=0,!((P|0)!=0&(kr^1)))if(K){We=28;break}else{We=31;break}Ee=P+16|0,t[e+908>>2]=t[Ee>>2],Pe=P+20|0,t[e+912>>2]=t[Pe>>2],(p[11698]|0)==0|K^1||(t[st>>2]=Br(Fe)|0,t[st+4>>2]=Fe,sr(e,4,2972,st),K=t[e+972>>2]|0,K|0&&M1[K&127](e),l=wn(l,S)|0,s=wn(s,S)|0,Xs=+w(C[Ee>>2]),rs=+w(C[Pe>>2]),t[Qt>>2]=l,t[Qt+4>>2]=s,U[Qt+8>>3]=+n,U[Qt+16>>3]=+r,U[Qt+24>>3]=Xs,U[Qt+32>>3]=rs,t[Qt+40>>2]=M,sr(e,4,2989,Qt))}while(0);return(We|0)==28&&(K=Br(Fe)|0,t[Ee>>2]=K,t[Ee+4>>2]=Fe,t[Ee+8>>2]=kr?3047:11699,sr(e,4,3038,Ee),K=t[e+972>>2]|0,K|0&&M1[K&127](e),Qt=wn(l,S)|0,We=wn(s,S)|0,t[Re>>2]=Qt,t[Re+4>>2]=We,U[Re+8>>3]=+n,U[Re+16>>3]=+r,t[Re+24>>2]=M,sr(e,4,3049,Re),We=31),(We|0)==31&&(fu(e,n,r,u,l,s,h,D,S,O),p[11697]|0&&(K=t[2279]|0,Qt=Br(K)|0,t[Lr>>2]=Qt,t[Lr+4>>2]=K,t[Lr+8>>2]=kr?3047:11699,sr(e,4,3083,Lr),K=t[e+972>>2]|0,K|0&&M1[K&127](e),Qt=wn(l,S)|0,Lr=wn(s,S)|0,rs=+w(C[e+908>>2]),Xs=+w(C[e+912>>2]),t[Nn>>2]=Qt,t[Nn+4>>2]=Lr,U[Nn+8>>3]=rs,U[Nn+16>>3]=Xs,t[Nn+24>>2]=M,sr(e,4,3092,Nn)),t[e+516>>2]=u,P||(K=e+520|0,P=t[K>>2]|0,(P|0)==16&&(p[11697]|0&&sr(e,4,3124,mn),t[K>>2]=0,P=0),S?P=e+916|0:(t[K>>2]=P+1,P=e+524+(P*24|0)|0),C[P>>2]=n,C[P+4>>2]=r,t[P+8>>2]=l,t[P+12>>2]=s,t[P+16>>2]=t[e+908>>2],t[P+20>>2]=t[e+912>>2],P=0)),S&&(t[e+416>>2]=t[e+908>>2],t[e+420>>2]=t[e+912>>2],p[e+985>>0]=1,p[hr>>0]=0),t[2279]=(t[2279]|0)+-1,t[e+512>>2]=t[2278],m=On,kr|(P|0)==0|0}function Yt(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(Li(e,n,r)),w(u+w(A0(e,n,r)))}function sr(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=m,m=m+16|0,l=s,t[l>>2]=u,e?u=t[e+976>>2]|0:u=0,Ps(u,e,n,r,l),m=s}function Br(e){return e=e|0,(e>>>0>60?3201:3201+(60-e)|0)|0}function wn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+32|0,r=l+12|0,u=l,t[r>>2]=t[254],t[r+4>>2]=t[255],t[r+8>>2]=t[256],t[u>>2]=t[257],t[u+4>>2]=t[258],t[u+8>>2]=t[259],(e|0)>2?e=11699:e=t[(n?u:r)+(e<<2)>>2]|0,m=l,e|0}function fu(e,n,r,u,l,s,h,D,S,M){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=s|0,h=w(h),D=w(D),S=S|0,M=M|0;var O=0,P=0,K=0,Pe=0,Ee=St,ve=St,Qe=St,We=St,st=St,Re=St,Fe=St,Qt=0,Lr=0,Nn=0,mn=St,hr=St,kr=0,On=St,Zi=0,ts=0,ns=0,rs=0,Xs=0,$2=0,ed=0,Za=0,td=0,Oc=0,kc=0,nd=0,rd=0,id=0,si=0,$a=0,ud=0,zf=0,od=St,ld=St,Mc=St,Nc=St,qf=St,Il=0,Aa=0,As=0,ef=0,L1=0,F1=St,Lc=St,b1=St,P1=St,Bl=St,vl=St,tf=0,lu=St,I1=St,is=St,Hf=St,us=St,Wf=St,B1=0,U1=0,Vf=St,Ul=St,nf=0,j1=0,z1=0,q1=0,gr=St,Mu=0,ml=0,os=0,jl=0,Tr=0,Fn=0,rf=0,hn=St,H1=0,u0=0;rf=m,m=m+16|0,Il=rf+12|0,Aa=rf+8|0,As=rf+4|0,ef=rf,Iu(e,(l|0)==0|(Me(n)|0)^1,3326),Iu(e,(s|0)==0|(Me(r)|0)^1,3406),ml=El(e,u)|0,t[e+496>>2]=ml,Tr=I0(2,ml)|0,Fn=I0(0,ml)|0,C[e+440>>2]=w(Li(e,Tr,h)),C[e+444>>2]=w(A0(e,Tr,h)),C[e+428>>2]=w(Li(e,Fn,h)),C[e+436>>2]=w(A0(e,Fn,h)),C[e+464>>2]=w(R0(e,Tr)),C[e+468>>2]=w(co(e,Tr)),C[e+452>>2]=w(R0(e,Fn)),C[e+460>>2]=w(co(e,Fn)),C[e+488>>2]=w(Ru(e,Tr,h)),C[e+492>>2]=w(Yu(e,Tr,h)),C[e+476>>2]=w(Ru(e,Fn,h)),C[e+484>>2]=w(Yu(e,Fn,h));do if(t[e+964>>2]|0)Xl(e,n,r,l,s,h,D);else{if(os=e+948|0,jl=(t[e+952>>2]|0)-(t[os>>2]|0)>>2,!jl){hs(e,n,r,l,s,h,D);break}if(S?0:ra(e,n,r,l,s,h,D)|0)break;cs(e),$a=e+508|0,p[$a>>0]=0,Tr=I0(t[e+4>>2]|0,ml)|0,Fn=df(Tr,ml)|0,Mu=Fi(Tr)|0,ud=t[e+8>>2]|0,j1=e+28|0,zf=(t[j1>>2]|0)!=0,us=Mu?h:D,Vf=Mu?D:h,od=w(Ku(e,Tr,h)),ld=w(vs(e,Tr,h)),Ee=w(Ku(e,Fn,h)),Wf=w(wr(e,Tr,h)),Ul=w(wr(e,Fn,h)),Nn=Mu?l:s,nf=Mu?s:l,gr=Mu?Wf:Ul,st=Mu?Ul:Wf,Hf=w(Yt(e,2,h)),We=w(Yt(e,0,h)),ve=w(w(Sn(e+364|0,h))-gr),Qe=w(w(Sn(e+380|0,h))-gr),Re=w(w(Sn(e+372|0,D))-st),Fe=w(w(Sn(e+388|0,D))-st),Mc=Mu?ve:Re,Nc=Mu?Qe:Fe,Hf=w(n-Hf),n=w(Hf-gr),Me(n)|0?gr=n:gr=w(Eu(w(Yp(n,Qe)),ve)),I1=w(r-We),n=w(I1-st),Me(n)|0?is=n:is=w(Eu(w(Yp(n,Fe)),Re)),ve=Mu?gr:is,lu=Mu?is:gr;e:do if((Nn|0)==1)for(u=0,P=0;;){if(O=yi(e,P)|0,!u)(w(Xi(O))>w(0)?w(ru(O))>w(0):0)?u=O:u=0;else if($0(O)|0){Pe=0;break e}if(P=P+1|0,P>>>0>=jl>>>0){Pe=u;break}}else Pe=0;while(0);Qt=Pe+500|0,Lr=Pe+504|0,u=0,O=0,n=w(0),K=0;do{if(P=t[(t[os>>2]|0)+(K<<2)>>2]|0,(t[P+36>>2]|0)==1)Ci(P),p[P+985>>0]=1,p[P+984>>0]=0;else{Vr(P),S&&C0(P,El(P,ml)|0,ve,lu,gr);do if((t[P+24>>2]|0)!=1)if((P|0)==(Pe|0)){t[Qt>>2]=t[2278],C[Lr>>2]=w(0);break}else{Xr(e,P,gr,l,is,gr,is,s,ml,M);break}else O|0&&(t[O+960>>2]=P),t[P+960>>2]=0,O=P,u=(u|0)==0?P:u;while(0);vl=w(C[P+504>>2]),n=w(n+w(vl+w(Yt(P,Tr,gr))))}K=K+1|0}while((K|0)!=(jl|0));for(ns=n>ve,tf=zf&((Nn|0)==2&ns)?1:Nn,Zi=(nf|0)==1,Xs=Zi&(S^1),$2=(tf|0)==1,ed=(tf|0)==2,Za=976+(Tr<<2)|0,td=(nf|2|0)==2,id=Zi&(zf^1),Oc=1040+(Fn<<2)|0,kc=1040+(Tr<<2)|0,nd=976+(Fn<<2)|0,rd=(nf|0)!=1,ns=zf&((Nn|0)!=0&ns),ts=e+976|0,Zi=Zi^1,n=ve,kr=0,rs=0,vl=w(0),qf=w(0);;){e:do if(kr>>>0>>0)for(Lr=t[os>>2]|0,K=0,Fe=w(0),Re=w(0),Qe=w(0),ve=w(0),P=0,O=0,Pe=kr;;){if(Qt=t[Lr+(Pe<<2)>>2]|0,(t[Qt+36>>2]|0)!=1?(t[Qt+940>>2]=rs,(t[Qt+24>>2]|0)!=1):0){if(We=w(Yt(Qt,Tr,gr)),si=t[Za>>2]|0,r=w(Sn(Qt+380+(si<<3)|0,us)),st=w(C[Qt+504>>2]),r=w(Yp(r,st)),r=w(Eu(w(Sn(Qt+364+(si<<3)|0,us)),r)),zf&(K|0)!=0&w(We+w(Re+r))>n){s=K,We=Fe,Nn=Pe;break e}We=w(We+r),r=w(Re+We),We=w(Fe+We),$0(Qt)|0&&(Qe=w(Qe+w(Xi(Qt))),ve=w(ve-w(st*w(ru(Qt))))),O|0&&(t[O+960>>2]=Qt),t[Qt+960>>2]=0,K=K+1|0,O=Qt,P=(P|0)==0?Qt:P}else We=Fe,r=Re;if(Pe=Pe+1|0,Pe>>>0>>0)Fe=We,Re=r;else{s=K,Nn=Pe;break}}else s=0,We=w(0),Qe=w(0),ve=w(0),P=0,Nn=kr;while(0);si=Qe>w(0)&Qew(0)&veNc&((Me(Nc)|0)^1))n=Nc,si=51;else if(p[(t[ts>>2]|0)+3>>0]|0)si=51;else{if(mn!=w(0)?w(Xi(e))!=w(0):0){si=53;break}n=We,si=53}while(0);if((si|0)==51&&(si=0,Me(n)|0?si=53:(hr=w(n-We),On=n)),(si|0)==53&&(si=0,We>2]|0,Pe=hrw(0),Re=w(hr/mn),Qe=w(0),We=w(0),n=w(0),O=P;do r=w(Sn(O+380+(K<<3)|0,us)),ve=w(Sn(O+364+(K<<3)|0,us)),ve=w(Yp(r,w(Eu(ve,w(C[O+504>>2]))))),Pe?(r=w(ve*w(ru(O))),(r!=w(-0)?(hn=w(ve-w(st*r)),F1=w(Wn(O,Tr,hn,On,gr)),hn!=F1):0)&&(Qe=w(Qe-w(F1-ve)),n=w(n+r))):((Qt?(Lc=w(Xi(O)),Lc!=w(0)):0)?(hn=w(ve+w(Re*Lc)),b1=w(Wn(O,Tr,hn,On,gr)),hn!=b1):0)&&(Qe=w(Qe-w(b1-ve)),We=w(We-Lc)),O=t[O+960>>2]|0;while((O|0)!=0);if(n=w(Fe+n),ve=w(hr+Qe),L1)n=w(0);else{st=w(mn+We),Pe=t[Za>>2]|0,Qt=vew(0),st=w(ve/st),n=w(0);do{hn=w(Sn(P+380+(Pe<<3)|0,us)),Qe=w(Sn(P+364+(Pe<<3)|0,us)),Qe=w(Yp(hn,w(Eu(Qe,w(C[P+504>>2]))))),Qt?(hn=w(Qe*w(ru(P))),ve=w(-hn),hn!=w(-0)?(hn=w(Re*ve),ve=w(Wn(P,Tr,w(Qe+(Lr?ve:hn)),On,gr))):ve=Qe):(K?(P1=w(Xi(P)),P1!=w(0)):0)?ve=w(Wn(P,Tr,w(Qe+w(st*P1)),On,gr)):ve=Qe,n=w(n-w(ve-Qe)),We=w(Yt(P,Tr,gr)),r=w(Yt(P,Fn,gr)),ve=w(ve+We),C[Aa>>2]=ve,t[ef>>2]=1,Qe=w(C[P+396>>2]);e:do if(Me(Qe)|0){O=Me(lu)|0;do if(!O){if(ns|(Bu(P,Fn,lu)|0|Zi)||(Xu(e,P)|0)!=4||(t[(m0(P,Fn)|0)+4>>2]|0)==3||(t[(y0(P,Fn)|0)+4>>2]|0)==3)break;C[Il>>2]=lu,t[As>>2]=1;break e}while(0);if(Bu(P,Fn,lu)|0){O=t[P+992+(t[nd>>2]<<2)>>2]|0,hn=w(r+w(Sn(O,lu))),C[Il>>2]=hn,O=rd&(t[O+4>>2]|0)==2,t[As>>2]=((Me(hn)|0|O)^1)&1;break}else{C[Il>>2]=lu,t[As>>2]=O?0:2;break}}else hn=w(ve-We),mn=w(hn/Qe),hn=w(Qe*hn),t[As>>2]=1,C[Il>>2]=w(r+(Mu?mn:hn));while(0);kn(P,Tr,On,gr,ef,Aa),kn(P,Fn,lu,gr,As,Il);do if(Bu(P,Fn,lu)|0?0:(Xu(e,P)|0)==4){if((t[(m0(P,Fn)|0)+4>>2]|0)==3){O=0;break}O=(t[(y0(P,Fn)|0)+4>>2]|0)!=3}else O=0;while(0);hn=w(C[Aa>>2]),mn=w(C[Il>>2]),H1=t[ef>>2]|0,u0=t[As>>2]|0,Gt(P,Mu?hn:mn,Mu?mn:hn,ml,Mu?H1:u0,Mu?u0:H1,gr,is,S&(O^1),3488,M)|0,p[$a>>0]=p[$a>>0]|p[P+508>>0],P=t[P+960>>2]|0}while((P|0)!=0)}}else n=w(0);if(n=w(hr+n),u0=n>0]=u0|k[$a>>0],ed&n>w(0)?(O=t[Za>>2]|0,((t[e+364+(O<<3)+4>>2]|0)!=0?(Bl=w(Sn(e+364+(O<<3)|0,us)),Bl>=w(0)):0)?ve=w(Eu(w(0),w(Bl-w(On-n)))):ve=w(0)):ve=n,Qt=kr>>>0>>0,Qt){Pe=t[os>>2]|0,K=kr,O=0;do P=t[Pe+(K<<2)>>2]|0,t[P+24>>2]|0||(O=((t[(m0(P,Tr)|0)+4>>2]|0)==3&1)+O|0,O=O+((t[(y0(P,Tr)|0)+4>>2]|0)==3&1)|0),K=K+1|0;while((K|0)!=(Nn|0));O?(We=w(0),r=w(0)):si=101}else si=101;e:do if((si|0)==101)switch(si=0,ud|0){case 1:{O=0,We=w(ve*w(.5)),r=w(0);break e}case 2:{O=0,We=ve,r=w(0);break e}case 3:{if(s>>>0<=1){O=0,We=w(0),r=w(0);break e}r=w((s+-1|0)>>>0),O=0,We=w(0),r=w(w(Eu(ve,w(0)))/r);break e}case 5:{r=w(ve/w((s+1|0)>>>0)),O=0,We=r;break e}case 4:{r=w(ve/w(s>>>0)),O=0,We=w(r*w(.5));break e}default:{O=0,We=w(0),r=w(0);break e}}while(0);if(n=w(od+We),Qt){Qe=w(ve/w(O|0)),K=t[os>>2]|0,P=kr,ve=w(0);do{O=t[K+(P<<2)>>2]|0;e:do if((t[O+36>>2]|0)!=1){switch(t[O+24>>2]|0){case 1:{if(se(O,Tr)|0){if(!S)break e;hn=w(re(O,Tr,On)),hn=w(hn+w(R0(e,Tr))),hn=w(hn+w(Li(O,Tr,gr))),C[O+400+(t[kc>>2]<<2)>>2]=hn;break e}break}case 0:if(u0=(t[(m0(O,Tr)|0)+4>>2]|0)==3,hn=w(Qe+n),n=u0?hn:n,S&&(u0=O+400+(t[kc>>2]<<2)|0,C[u0>>2]=w(n+w(C[u0>>2]))),u0=(t[(y0(O,Tr)|0)+4>>2]|0)==3,hn=w(Qe+n),n=u0?hn:n,Xs){hn=w(r+w(Yt(O,Tr,gr))),ve=lu,n=w(n+w(hn+w(C[O+504>>2])));break e}else{n=w(n+w(r+w(Le(O,Tr,gr)))),ve=w(Eu(ve,w(Le(O,Fn,gr))));break e}default:}S&&(hn=w(We+w(R0(e,Tr))),u0=O+400+(t[kc>>2]<<2)|0,C[u0>>2]=w(hn+w(C[u0>>2])))}while(0);P=P+1|0}while((P|0)!=(Nn|0))}else ve=w(0);if(r=w(ld+n),td?We=w(w(Wn(e,Fn,w(Ul+ve),Vf,h))-Ul):We=lu,Qe=w(w(Wn(e,Fn,w(Ul+(id?lu:ve)),Vf,h))-Ul),Qt&S){P=kr;do{K=t[(t[os>>2]|0)+(P<<2)>>2]|0;do if((t[K+36>>2]|0)!=1){if((t[K+24>>2]|0)==1){if(se(K,Fn)|0){if(hn=w(re(K,Fn,lu)),hn=w(hn+w(R0(e,Fn))),hn=w(hn+w(Li(K,Fn,gr))),O=t[Oc>>2]|0,C[K+400+(O<<2)>>2]=hn,!(Me(hn)|0))break}else O=t[Oc>>2]|0;hn=w(R0(e,Fn)),C[K+400+(O<<2)>>2]=w(hn+w(Li(K,Fn,gr)));break}O=Xu(e,K)|0;do if((O|0)==4){if((t[(m0(K,Fn)|0)+4>>2]|0)==3){si=139;break}if((t[(y0(K,Fn)|0)+4>>2]|0)==3){si=139;break}if(Bu(K,Fn,lu)|0){n=Ee;break}H1=t[K+908+(t[Za>>2]<<2)>>2]|0,t[Il>>2]=H1,n=w(C[K+396>>2]),u0=Me(n)|0,ve=(t[W>>2]=H1,w(C[W>>2])),u0?n=Qe:(hr=w(Yt(K,Fn,gr)),hn=w(ve/n),n=w(n*ve),n=w(hr+(Mu?hn:n))),C[Aa>>2]=n,C[Il>>2]=w(w(Yt(K,Tr,gr))+ve),t[As>>2]=1,t[ef>>2]=1,kn(K,Tr,On,gr,As,Il),kn(K,Fn,lu,gr,ef,Aa),n=w(C[Il>>2]),hr=w(C[Aa>>2]),hn=Mu?n:hr,n=Mu?hr:n,u0=((Me(hn)|0)^1)&1,Gt(K,hn,n,ml,u0,((Me(n)|0)^1)&1,gr,is,1,3493,M)|0,n=Ee}else si=139;while(0);e:do if((si|0)==139){si=0,n=w(We-w(Le(K,Fn,gr)));do if((t[(m0(K,Fn)|0)+4>>2]|0)==3){if((t[(y0(K,Fn)|0)+4>>2]|0)!=3)break;n=w(Ee+w(Eu(w(0),w(n*w(.5)))));break e}while(0);if((t[(y0(K,Fn)|0)+4>>2]|0)==3){n=Ee;break}if((t[(m0(K,Fn)|0)+4>>2]|0)==3){n=w(Ee+w(Eu(w(0),n)));break}switch(O|0){case 1:{n=Ee;break e}case 2:{n=w(Ee+w(n*w(.5)));break e}default:{n=w(Ee+n);break e}}}while(0);hn=w(vl+n),u0=K+400+(t[Oc>>2]<<2)|0,C[u0>>2]=w(hn+w(C[u0>>2]))}while(0);P=P+1|0}while((P|0)!=(Nn|0))}if(vl=w(vl+Qe),qf=w(Eu(qf,r)),s=rs+1|0,Nn>>>0>=jl>>>0)break;n=On,kr=Nn,rs=s}do if(S){if(O=s>>>0>1,O?0:!(Ae(e)|0))break;if(!(Me(lu)|0)){n=w(lu-vl);e:do switch(t[e+12>>2]|0){case 3:{Ee=w(Ee+n),Re=w(0);break}case 2:{Ee=w(Ee+w(n*w(.5))),Re=w(0);break}case 4:{lu>vl?Re=w(n/w(s>>>0)):Re=w(0);break}case 7:if(lu>vl){Ee=w(Ee+w(n/w(s<<1>>>0))),Re=w(n/w(s>>>0)),Re=O?Re:w(0);break e}else{Ee=w(Ee+w(n*w(.5))),Re=w(0);break e}case 6:{Re=w(n/w(rs>>>0)),Re=lu>vl&O?Re:w(0);break}default:Re=w(0)}while(0);if(s|0)for(Qt=1040+(Fn<<2)|0,Lr=976+(Fn<<2)|0,Pe=0,P=0;;){e:do if(P>>>0>>0)for(ve=w(0),Qe=w(0),n=w(0),K=P;;){O=t[(t[os>>2]|0)+(K<<2)>>2]|0;do if((t[O+36>>2]|0)!=1?(t[O+24>>2]|0)==0:0){if((t[O+940>>2]|0)!=(Pe|0))break e;if(ot(O,Fn)|0&&(hn=w(C[O+908+(t[Lr>>2]<<2)>>2]),n=w(Eu(n,w(hn+w(Yt(O,Fn,gr)))))),(Xu(e,O)|0)!=5)break;Bl=w(vt(O)),Bl=w(Bl+w(Li(O,0,gr))),hn=w(C[O+912>>2]),hn=w(w(hn+w(Yt(O,0,gr)))-Bl),Bl=w(Eu(Qe,Bl)),hn=w(Eu(ve,hn)),ve=hn,Qe=Bl,n=w(Eu(n,w(Bl+hn)))}while(0);if(O=K+1|0,O>>>0>>0)K=O;else{K=O;break}}else Qe=w(0),n=w(0),K=P;while(0);if(st=w(Re+n),r=Ee,Ee=w(Ee+st),P>>>0>>0){We=w(r+Qe),O=P;do{P=t[(t[os>>2]|0)+(O<<2)>>2]|0;e:do if((t[P+36>>2]|0)!=1?(t[P+24>>2]|0)==0:0)switch(Xu(e,P)|0){case 1:{hn=w(r+w(Li(P,Fn,gr))),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 3:{hn=w(w(Ee-w(A0(P,Fn,gr)))-w(C[P+908+(t[Lr>>2]<<2)>>2])),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 2:{hn=w(r+w(w(st-w(C[P+908+(t[Lr>>2]<<2)>>2]))*w(.5))),C[P+400+(t[Qt>>2]<<2)>>2]=hn;break e}case 4:{if(hn=w(r+w(Li(P,Fn,gr))),C[P+400+(t[Qt>>2]<<2)>>2]=hn,Bu(P,Fn,lu)|0||(Mu?(ve=w(C[P+908>>2]),n=w(ve+w(Yt(P,Tr,gr))),Qe=st):(Qe=w(C[P+912>>2]),Qe=w(Qe+w(Yt(P,Fn,gr))),n=st,ve=w(C[P+908>>2])),gi(n,ve)|0?gi(Qe,w(C[P+912>>2]))|0:0))break e;Gt(P,n,Qe,ml,1,1,gr,is,1,3501,M)|0;break e}case 5:{C[P+404>>2]=w(w(We-w(vt(P)))+w(re(P,0,lu)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(K|0))}if(Pe=Pe+1|0,(Pe|0)==(s|0))break;P=K}}}while(0);if(C[e+908>>2]=w(Wn(e,2,Hf,h,h)),C[e+912>>2]=w(Wn(e,0,I1,D,h)),((tf|0)!=0?(B1=t[e+32>>2]|0,U1=(tf|0)==2,!(U1&(B1|0)!=2)):0)?U1&(B1|0)==2&&(n=w(Wf+On),n=w(Eu(w(Yp(n,w(Xt(e,Tr,qf,us)))),Wf)),si=198):(n=w(Wn(e,Tr,qf,us,h)),si=198),(si|0)==198&&(C[e+908+(t[976+(Tr<<2)>>2]<<2)>>2]=n),((nf|0)!=0?(z1=t[e+32>>2]|0,q1=(nf|0)==2,!(q1&(z1|0)!=2)):0)?q1&(z1|0)==2&&(n=w(Ul+lu),n=w(Eu(w(Yp(n,w(Xt(e,Fn,w(Ul+vl),Vf)))),Ul)),si=204):(n=w(Wn(e,Fn,w(Ul+vl),Vf,h)),si=204),(si|0)==204&&(C[e+908+(t[976+(Fn<<2)>>2]<<2)>>2]=n),S){if((t[j1>>2]|0)==2){P=976+(Fn<<2)|0,K=1040+(Fn<<2)|0,O=0;do Pe=yi(e,O)|0,t[Pe+24>>2]|0||(H1=t[P>>2]|0,hn=w(C[e+908+(H1<<2)>>2]),u0=Pe+400+(t[K>>2]<<2)|0,hn=w(hn-w(C[u0>>2])),C[u0>>2]=w(hn-w(C[Pe+908+(H1<<2)>>2]))),O=O+1|0;while((O|0)!=(jl|0))}if(u|0){O=Mu?tf:l;do xn(e,u,gr,O,is,ml,M),u=t[u+960>>2]|0;while((u|0)!=0)}if(O=(Tr|2|0)==3,P=(Fn|2|0)==3,O|P){u=0;do K=t[(t[os>>2]|0)+(u<<2)>>2]|0,(t[K+36>>2]|0)!=1&&(O&&_n(e,K,Tr),P&&_n(e,K,Fn)),u=u+1|0;while((u|0)!=(jl|0))}}}while(0);m=rf}function Gu(e,n){e=e|0,n=w(n);var r=0;Dn(e,n>=w(0),3147),r=n==w(0),C[e+4>>2]=r?w(0):n}function Kr(e,n,r,u){e=e|0,n=w(n),r=w(r),u=u|0;var l=St,s=St,h=0,D=0,S=0;t[2278]=(t[2278]|0)+1,Vr(e),Bu(e,2,n)|0?(l=w(Sn(t[e+992>>2]|0,n)),S=1,l=w(l+w(Yt(e,2,n)))):(l=w(Sn(e+380|0,n)),l>=w(0)?S=2:(S=((Me(n)|0)^1)&1,l=n)),Bu(e,0,r)|0?(s=w(Sn(t[e+996>>2]|0,r)),D=1,s=w(s+w(Yt(e,0,n)))):(s=w(Sn(e+388|0,r)),s>=w(0)?D=2:(D=((Me(r)|0)^1)&1,s=r)),h=e+976|0,(Gt(e,l,s,u,S,D,n,r,1,3189,t[h>>2]|0)|0?(C0(e,t[e+496>>2]|0,n,r,n),Au(e,w(C[(t[h>>2]|0)+4>>2]),w(0),w(0)),p[11696]|0):0)&&ff(e,7)}function Vr(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;D=m,m=m+32|0,h=D+24|0,s=D+16|0,u=D+8|0,l=D,r=0;do n=e+380+(r<<3)|0,((t[e+380+(r<<3)+4>>2]|0)!=0?(S=n,M=t[S+4>>2]|0,O=u,t[O>>2]=t[S>>2],t[O+4>>2]=M,O=e+364+(r<<3)|0,M=t[O+4>>2]|0,S=l,t[S>>2]=t[O>>2],t[S+4>>2]=M,t[s>>2]=t[u>>2],t[s+4>>2]=t[u+4>>2],t[h>>2]=t[l>>2],t[h+4>>2]=t[l+4>>2],Oi(s,h)|0):0)||(n=e+348+(r<<3)|0),t[e+992+(r<<2)>>2]=n,r=r+1|0;while((r|0)!=2);m=D}function Bu(e,n,r){e=e|0,n=n|0,r=w(r);var u=0;switch(e=t[e+992+(t[976+(n<<2)>>2]<<2)>>2]|0,t[e+4>>2]|0){case 0:case 3:{e=0;break}case 1:{w(C[e>>2])>2])>2]|0){case 2:{n=w(w(w(C[e>>2])*n)/w(100));break}case 1:{n=w(C[e>>2]);break}default:n=w(le)}return w(n)}function C0(e,n,r,u,l){e=e|0,n=n|0,r=w(r),u=w(u),l=w(l);var s=0,h=St;n=t[e+944>>2]|0?n:1,s=I0(t[e+4>>2]|0,n)|0,n=df(s,n)|0,r=w(Sr(e,s,r)),u=w(Sr(e,n,u)),h=w(r+w(Li(e,s,l))),C[e+400+(t[1040+(s<<2)>>2]<<2)>>2]=h,r=w(r+w(A0(e,s,l))),C[e+400+(t[1e3+(s<<2)>>2]<<2)>>2]=r,r=w(u+w(Li(e,n,l))),C[e+400+(t[1040+(n<<2)>>2]<<2)>>2]=r,l=w(u+w(A0(e,n,l))),C[e+400+(t[1e3+(n<<2)>>2]<<2)>>2]=l}function Au(e,n,r,u){e=e|0,n=w(n),r=w(r),u=w(u);var l=0,s=0,h=St,D=St,S=0,M=0,O=St,P=0,K=St,Pe=St,Ee=St,ve=St;if(n!=w(0)&&(l=e+400|0,ve=w(C[l>>2]),s=e+404|0,Ee=w(C[s>>2]),P=e+416|0,Pe=w(C[P>>2]),M=e+420|0,h=w(C[M>>2]),K=w(ve+r),O=w(Ee+u),u=w(K+Pe),D=w(O+h),S=(t[e+988>>2]|0)==1,C[l>>2]=w(J0(ve,n,0,S)),C[s>>2]=w(J0(Ee,n,0,S)),r=w(YE(w(Pe*n),w(1))),gi(r,w(0))|0?s=0:s=(gi(r,w(1))|0)^1,r=w(YE(w(h*n),w(1))),gi(r,w(0))|0?l=0:l=(gi(r,w(1))|0)^1,ve=w(J0(u,n,S&s,S&(s^1))),C[P>>2]=w(ve-w(J0(K,n,0,S))),ve=w(J0(D,n,S&l,S&(l^1))),C[M>>2]=w(ve-w(J0(O,n,0,S))),s=(t[e+952>>2]|0)-(t[e+948>>2]|0)>>2,s|0)){l=0;do Au(yi(e,l)|0,n,K,O),l=l+1|0;while((l|0)!=(s|0))}}function ei(e,n,r,u,l){switch(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,r|0){case 5:case 0:{e=F8(t[489]|0,u,l)|0;break}default:e=QI(u,l)|0}return e|0}function _l(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;l=m,m=m+16|0,s=l,t[s>>2]=u,Ps(e,0,n,r,s),m=l}function Ps(e,n,r,u,l){if(e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,e=e|0?e:956,tS[t[e+8>>2]&1](e,n,r,u,l)|0,(r|0)==5)Xn();else return}function Uu(e,n,r){e=e|0,n=n|0,r=r|0,p[e+n>>0]=r&1}function na(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(zi(e,u),Is(e,t[n>>2]|0,t[r>>2]|0,u))}function zi(e,n){e=e|0,n=n|0;var r=0;if((x0(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function Is(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function x0(e){return e=e|0,1073741823}function Li(e,n,r){return e=e|0,n=n|0,r=w(r),(Fi(n)|0?(t[e+96>>2]|0)!=0:0)?e=e+92|0:e=dt(e+60|0,t[1040+(n<<2)>>2]|0,992)|0,w($o(e,r))}function A0(e,n,r){return e=e|0,n=n|0,r=w(r),(Fi(n)|0?(t[e+104>>2]|0)!=0:0)?e=e+100|0:e=dt(e+60|0,t[1e3+(n<<2)>>2]|0,992)|0,w($o(e,r))}function Fi(e){return e=e|0,(e|1|0)==3|0}function $o(e,n){return e=e|0,n=w(n),(t[e+4>>2]|0)==3?n=w(0):n=w(Sn(e,n)),w(n)}function El(e,n){return e=e|0,n=n|0,e=t[e>>2]|0,((e|0)==0?(n|0)>1?n:1:e)|0}function I0(e,n){e=e|0,n=n|0;var r=0;e:do if((n|0)==2){switch(e|0){case 2:{e=3;break e}case 3:break;default:{r=4;break e}}e=2}else r=4;while(0);return e|0}function R0(e,n){e=e|0,n=n|0;var r=St;return((Fi(n)|0?(t[e+312>>2]|0)!=0:0)?(r=w(C[e+308>>2]),r>=w(0)):0)||(r=w(Eu(w(C[(dt(e+276|0,t[1040+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function co(e,n){e=e|0,n=n|0;var r=St;return((Fi(n)|0?(t[e+320>>2]|0)!=0:0)?(r=w(C[e+316>>2]),r>=w(0)):0)||(r=w(Eu(w(C[(dt(e+276|0,t[1e3+(n<<2)>>2]|0,992)|0)>>2]),w(0)))),w(r)}function Ru(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return((Fi(n)|0?(t[e+240>>2]|0)!=0:0)?(u=w(Sn(e+236|0,r)),u>=w(0)):0)||(u=w(Eu(w(Sn(dt(e+204|0,t[1040+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function Yu(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return((Fi(n)|0?(t[e+248>>2]|0)!=0:0)?(u=w(Sn(e+244|0,r)),u>=w(0)):0)||(u=w(Eu(w(Sn(dt(e+204|0,t[1e3+(n<<2)>>2]|0,992)|0,r)),w(0)))),w(u)}function Xl(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=St,S=St,M=St,O=St,P=St,K=St,Pe=0,Ee=0,ve=0;ve=m,m=m+16|0,Pe=ve,Ee=e+964|0,Iu(e,(t[Ee>>2]|0)!=0,3519),D=w(wr(e,2,n)),S=w(wr(e,0,n)),M=w(Yt(e,2,n)),O=w(Yt(e,0,n)),Me(n)|0?P=n:P=w(Eu(w(0),w(w(n-M)-D))),Me(r)|0?K=r:K=w(Eu(w(0),w(w(r-O)-S))),(u|0)==1&(l|0)==1?(C[e+908>>2]=w(Wn(e,2,w(n-M),s,s)),n=w(Wn(e,0,w(r-O),h,s))):(nS[t[Ee>>2]&1](Pe,e,P,u,K,l),P=w(D+w(C[Pe>>2])),K=w(n-M),C[e+908>>2]=w(Wn(e,2,(u|2|0)==2?P:K,s,s)),K=w(S+w(C[Pe+4>>2])),n=w(r-O),n=w(Wn(e,0,(l|2|0)==2?K:n,h,s))),C[e+912>>2]=n,m=ve}function hs(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=St,S=St,M=St,O=St;M=w(wr(e,2,s)),D=w(wr(e,0,s)),O=w(Yt(e,2,s)),S=w(Yt(e,0,s)),n=w(n-O),C[e+908>>2]=w(Wn(e,2,(u|2|0)==2?M:n,s,s)),r=w(r-S),C[e+912>>2]=w(Wn(e,0,(l|2|0)==2?D:r,h,s))}function ra(e,n,r,u,l,s,h){e=e|0,n=w(n),r=w(r),u=u|0,l=l|0,s=w(s),h=w(h);var D=0,S=St,M=St;return D=(u|0)==2,((n<=w(0)&D?0:!(r<=w(0)&(l|0)==2))?!((u|0)==1&(l|0)==1):0)?e=0:(S=w(Yt(e,0,s)),M=w(Yt(e,2,s)),D=n>2]=w(Wn(e,2,D?w(0):n,s,s)),n=w(r-S),D=r>2]=w(Wn(e,0,D?w(0):n,h,s)),e=1),e|0}function df(e,n){return e=e|0,n=n|0,yn(e)|0?e=I0(2,n)|0:e=0,e|0}function Ku(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Ru(e,n,r)),w(r+w(R0(e,n)))}function vs(e,n,r){return e=e|0,n=n|0,r=w(r),r=w(Yu(e,n,r)),w(r+w(co(e,n)))}function wr(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(Ku(e,n,r)),w(u+w(vs(e,n,r)))}function $0(e){return e=e|0,t[e+24>>2]|0?e=0:w(Xi(e))!=w(0)?e=1:e=w(ru(e))!=w(0),e|0}function Xi(e){e=e|0;var n=St;if(t[e+944>>2]|0){if(n=w(C[e+44>>2]),Me(n)|0)return n=w(C[e+40>>2]),e=n>w(0)&((Me(n)|0)^1),w(e?n:w(0))}else n=w(0);return w(n)}function ru(e){e=e|0;var n=St,r=0,u=St;do if(t[e+944>>2]|0){if(n=w(C[e+48>>2]),Me(n)|0){if(r=p[(t[e+976>>2]|0)+2>>0]|0,r<<24>>24==0?(u=w(C[e+40>>2]),u>24?w(1):w(0)}}else n=w(0);while(0);return w(n)}function Ci(e){e=e|0;var n=0,r=0;if(Iv(e+400|0,0,540)|0,p[e+985>>0]=1,cs(e),r=mu(e)|0,r|0){n=e+948|0,e=0;do Ci(t[(t[n>>2]|0)+(e<<2)>>2]|0),e=e+1|0;while((e|0)!=(r|0))}}function Xr(e,n,r,u,l,s,h,D,S,M){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=w(s),h=w(h),D=D|0,S=S|0,M=M|0;var O=0,P=St,K=0,Pe=0,Ee=St,ve=St,Qe=0,We=St,st=0,Re=St,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0,ts=0;Zi=m,m=m+16|0,Lr=Zi+12|0,Nn=Zi+8|0,mn=Zi+4|0,hr=Zi,On=I0(t[e+4>>2]|0,S)|0,Fe=Fi(On)|0,P=w(Sn(En(n)|0,Fe?s:h)),Qt=Bu(n,2,s)|0,kr=Bu(n,0,h)|0;do if(Me(P)|0?0:!(Me(Fe?r:l)|0)){if(O=n+504|0,!(Me(w(C[O>>2]))|0)&&(!(er(t[n+976>>2]|0,0)|0)||(t[n+500>>2]|0)==(t[2278]|0)))break;C[O>>2]=w(Eu(P,w(wr(n,On,s))))}else K=7;while(0);do if((K|0)==7){if(st=Fe^1,!(st|Qt^1)){h=w(Sn(t[n+992>>2]|0,s)),C[n+504>>2]=w(Eu(h,w(wr(n,2,s))));break}if(!(Fe|kr^1)){h=w(Sn(t[n+996>>2]|0,h)),C[n+504>>2]=w(Eu(h,w(wr(n,0,s))));break}C[Lr>>2]=w(le),C[Nn>>2]=w(le),t[mn>>2]=0,t[hr>>2]=0,We=w(Yt(n,2,s)),Re=w(Yt(n,0,s)),Qt?(Ee=w(We+w(Sn(t[n+992>>2]|0,s))),C[Lr>>2]=Ee,t[mn>>2]=1,Pe=1):(Pe=0,Ee=w(le)),kr?(P=w(Re+w(Sn(t[n+996>>2]|0,h))),C[Nn>>2]=P,t[hr>>2]=1,O=1):(O=0,P=w(le)),K=t[e+32>>2]|0,Fe&(K|0)==2?K=2:(Me(Ee)|0?!(Me(r)|0):0)&&(C[Lr>>2]=r,t[mn>>2]=2,Pe=2,Ee=r),(((K|0)==2&st?0:Me(P)|0)?!(Me(l)|0):0)&&(C[Nn>>2]=l,t[hr>>2]=2,O=2,P=l),ve=w(C[n+396>>2]),Qe=Me(ve)|0;do if(Qe)K=Pe;else{if((Pe|0)==1&st){C[Nn>>2]=w(w(Ee-We)/ve),t[hr>>2]=1,O=1,K=1;break}Fe&(O|0)==1?(C[Lr>>2]=w(ve*w(P-Re)),t[mn>>2]=1,O=1,K=1):K=Pe}while(0);ts=Me(r)|0,Pe=(Xu(e,n)|0)!=4,(Fe|Qt|((u|0)!=1|ts)|(Pe|(K|0)==1)?0:(C[Lr>>2]=r,t[mn>>2]=1,!Qe))&&(C[Nn>>2]=w(w(r-We)/ve),t[hr>>2]=1,O=1),(kr|st|((D|0)!=1|(Me(l)|0))|(Pe|(O|0)==1)?0:(C[Nn>>2]=l,t[hr>>2]=1,!Qe))&&(C[Lr>>2]=w(ve*w(l-Re)),t[mn>>2]=1),kn(n,2,s,s,mn,Lr),kn(n,0,h,s,hr,Nn),r=w(C[Lr>>2]),l=w(C[Nn>>2]),Gt(n,r,l,S,t[mn>>2]|0,t[hr>>2]|0,s,h,0,3565,M)|0,h=w(C[n+908+(t[976+(On<<2)>>2]<<2)>>2]),C[n+504>>2]=w(Eu(h,w(wr(n,On,s))))}while(0);t[n+500>>2]=t[2278],m=Zi}function Wn(e,n,r,u,l){return e=e|0,n=n|0,r=w(r),u=w(u),l=w(l),u=w(Xt(e,n,r,u)),w(Eu(u,w(wr(e,n,l))))}function Xu(e,n){return e=e|0,n=n|0,n=n+20|0,n=t[((t[n>>2]|0)==0?e+16|0:n)>>2]|0,((n|0)==5?yn(t[e+4>>2]|0)|0:0)&&(n=1),n|0}function m0(e,n){return e=e|0,n=n|0,(Fi(n)|0?(t[e+96>>2]|0)!=0:0)?n=4:n=t[1040+(n<<2)>>2]|0,e+60+(n<<3)|0}function y0(e,n){return e=e|0,n=n|0,(Fi(n)|0?(t[e+104>>2]|0)!=0:0)?n=5:n=t[1e3+(n<<2)>>2]|0,e+60+(n<<3)|0}function kn(e,n,r,u,l,s){switch(e=e|0,n=n|0,r=w(r),u=w(u),l=l|0,s=s|0,r=w(Sn(e+380+(t[976+(n<<2)>>2]<<3)|0,r)),r=w(r+w(Yt(e,n,u))),t[l>>2]|0){case 2:case 1:{l=Me(r)|0,u=w(C[s>>2]),C[s>>2]=l|u>2]=2,C[s>>2]=r);break}default:}}function se(e,n){return e=e|0,n=n|0,e=e+132|0,(Fi(n)|0?(t[(dt(e,4,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(dt(e,t[1040+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function re(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Fi(n)|0?(u=dt(e,4,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=dt(e,t[1040+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Sn(u,r))),w(r)}function Le(e,n,r){e=e|0,n=n|0,r=w(r);var u=St;return u=w(C[e+908+(t[976+(n<<2)>>2]<<2)>>2]),u=w(u+w(Li(e,n,r))),w(u+w(A0(e,n,r)))}function Ae(e){e=e|0;var n=0,r=0,u=0;e:do if(yn(t[e+4>>2]|0)|0)n=0;else if((t[e+16>>2]|0)!=5)if(r=mu(e)|0,!r)n=0;else for(n=0;;){if(u=yi(e,n)|0,(t[u+24>>2]|0)==0?(t[u+20>>2]|0)==5:0){n=1;break e}if(n=n+1|0,n>>>0>=r>>>0){n=0;break}}else n=1;while(0);return n|0}function ot(e,n){e=e|0,n=n|0;var r=St;return r=w(C[e+908+(t[976+(n<<2)>>2]<<2)>>2]),r>=w(0)&((Me(r)|0)^1)|0}function vt(e){e=e|0;var n=St,r=0,u=0,l=0,s=0,h=0,D=0,S=St;if(r=t[e+968>>2]|0,r)S=w(C[e+908>>2]),n=w(C[e+912>>2]),n=w(J8[r&0](e,S,n)),Iu(e,(Me(n)|0)^1,3573);else{s=mu(e)|0;do if(s|0){for(r=0,l=0;;){if(u=yi(e,l)|0,t[u+940>>2]|0){h=8;break}if((t[u+24>>2]|0)!=1)if(D=(Xu(e,u)|0)==5,D){r=u;break}else r=(r|0)==0?u:r;if(l=l+1|0,l>>>0>=s>>>0){h=8;break}}if((h|0)==8&&!r)break;return n=w(vt(r)),w(n+w(C[r+404>>2]))}while(0);n=w(C[e+912>>2])}return w(n)}function Xt(e,n,r,u){e=e|0,n=n|0,r=w(r),u=w(u);var l=St,s=0;return yn(n)|0?(n=1,s=3):Fi(n)|0?(n=0,s=3):(u=w(le),l=w(le)),(s|0)==3&&(l=w(Sn(e+364+(n<<3)|0,u)),u=w(Sn(e+380+(n<<3)|0,u))),s=u=w(0)&((Me(u)|0)^1)),r=s?u:r,s=l>=w(0)&((Me(l)|0)^1)&r>2]|0,s)|0,Ee=df(Qe,s)|0,ve=Fi(Qe)|0,P=w(Yt(n,2,r)),K=w(Yt(n,0,r)),Bu(n,2,r)|0?D=w(P+w(Sn(t[n+992>>2]|0,r))):(se(n,2)|0?It(n,2)|0:0)?(D=w(C[e+908>>2]),S=w(R0(e,2)),S=w(D-w(S+w(co(e,2)))),D=w(re(n,2,r)),D=w(Wn(n,2,w(S-w(D+w(xi(n,2,r)))),r,r))):D=w(le),Bu(n,0,l)|0?S=w(K+w(Sn(t[n+996>>2]|0,l))):(se(n,0)|0?It(n,0)|0:0)?(S=w(C[e+912>>2]),st=w(R0(e,0)),st=w(S-w(st+w(co(e,0)))),S=w(re(n,0,l)),S=w(Wn(n,0,w(st-w(S+w(xi(n,0,l)))),l,r))):S=w(le),M=Me(D)|0,O=Me(S)|0;do if(M^O?(Pe=w(C[n+396>>2]),!(Me(Pe)|0)):0)if(M){D=w(P+w(w(S-K)*Pe));break}else{st=w(K+w(w(D-P)/Pe)),S=O?st:S;break}while(0);O=Me(D)|0,M=Me(S)|0,O|M&&(Re=(O^1)&1,u=r>w(0)&((u|0)!=0&O),D=ve?D:u?r:D,Gt(n,D,S,s,ve?Re:u?2:Re,O&(M^1)&1,D,S,0,3623,h)|0,D=w(C[n+908>>2]),D=w(D+w(Yt(n,2,r))),S=w(C[n+912>>2]),S=w(S+w(Yt(n,0,r)))),Gt(n,D,S,s,1,1,D,S,1,3635,h)|0,(It(n,Qe)|0?!(se(n,Qe)|0):0)?(Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),st=w(st-w(co(e,Qe))),st=w(st-w(A0(n,Qe,r))),st=w(st-w(xi(n,Qe,ve?r:l))),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st):We=21;do if((We|0)==21){if(se(n,Qe)|0?0:(t[e+8>>2]|0)==1){Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(w(st-w(C[n+908+(Re<<2)>>2]))*w(.5)),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st;break}(se(n,Qe)|0?0:(t[e+8>>2]|0)==2)&&(Re=t[976+(Qe<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),C[n+400+(t[1040+(Qe<<2)>>2]<<2)>>2]=st)}while(0);(It(n,Ee)|0?!(se(n,Ee)|0):0)?(Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),st=w(st-w(co(e,Ee))),st=w(st-w(A0(n,Ee,r))),st=w(st-w(xi(n,Ee,ve?l:r))),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st):We=30;do if((We|0)==30?!(se(n,Ee)|0):0){if((Xu(e,n)|0)==2){Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(w(st-w(C[n+908+(Re<<2)>>2]))*w(.5)),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st;break}Re=(Xu(e,n)|0)==3,Re^(t[e+28>>2]|0)==2&&(Re=t[976+(Ee<<2)>>2]|0,st=w(C[e+908+(Re<<2)>>2]),st=w(st-w(C[n+908+(Re<<2)>>2])),C[n+400+(t[1040+(Ee<<2)>>2]<<2)>>2]=st)}while(0)}function _n(e,n,r){e=e|0,n=n|0,r=r|0;var u=St,l=0;l=t[976+(r<<2)>>2]|0,u=w(C[n+908+(l<<2)>>2]),u=w(w(C[e+908+(l<<2)>>2])-u),u=w(u-w(C[n+400+(t[1040+(r<<2)>>2]<<2)>>2])),C[n+400+(t[1e3+(r<<2)>>2]<<2)>>2]=u}function yn(e){return e=e|0,(e|1|0)==1|0}function En(e){e=e|0;var n=St;switch(t[e+56>>2]|0){case 0:case 3:{n=w(C[e+40>>2]),n>w(0)&((Me(n)|0)^1)?e=p[(t[e+976>>2]|0)+2>>0]|0?1056:992:e=1056;break}default:e=e+52|0}return e|0}function er(e,n){return e=e|0,n=n|0,(p[e+n>>0]|0)!=0|0}function It(e,n){return e=e|0,n=n|0,e=e+132|0,(Fi(n)|0?(t[(dt(e,5,948)|0)+4>>2]|0)!=0:0)?e=1:e=(t[(dt(e,t[1e3+(n<<2)>>2]|0,948)|0)+4>>2]|0)!=0,e|0}function xi(e,n,r){e=e|0,n=n|0,r=w(r);var u=0,l=0;return e=e+132|0,(Fi(n)|0?(u=dt(e,5,948)|0,(t[u+4>>2]|0)!=0):0)?l=4:(u=dt(e,t[1e3+(n<<2)>>2]|0,948)|0,t[u+4>>2]|0?l=4:r=w(0)),(l|0)==4&&(r=w(Sn(u,r))),w(r)}function Sr(e,n,r){return e=e|0,n=n|0,r=w(r),se(e,n)|0?r=w(re(e,n,r)):r=w(-w(xi(e,n,r))),w(r)}function cr(e){return e=w(e),C[W>>2]=e,t[W>>2]|0|0}function Y(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function Qr(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Jr(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function Ur(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;if(h=e+4|0,D=t[h>>2]|0,l=D-u|0,s=l>>2,e=n+(s<<2)|0,e>>>0>>0){u=D;do t[u>>2]=t[e>>2],e=e+4|0,u=(t[h>>2]|0)+4|0,t[h>>2]=u;while(e>>>0>>0)}s|0&&Iy(D+(0-s<<2)|0,n|0,l|0)|0}function lt(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return D=n+4|0,S=t[D>>2]|0,l=t[e>>2]|0,h=r,s=h-l|0,u=S+(0-(s>>2)<<2)|0,t[D>>2]=u,(s|0)>0&&pr(u|0,l|0,s|0)|0,l=e+4|0,s=n+8|0,u=(t[l>>2]|0)-h|0,(u|0)>0&&(pr(t[s>>2]|0,r|0,u|0)|0,t[s>>2]=(t[s>>2]|0)+(u>>>2<<2)),h=t[e>>2]|0,t[e>>2]=t[D>>2],t[D>>2]=h,h=t[l>>2]|0,t[l>>2]=t[s>>2],t[s>>2]=h,h=e+8|0,r=n+12|0,e=t[h>>2]|0,t[h>>2]=t[r>>2],t[r>>2]=e,t[n>>2]=t[D>>2],S|0}function hi(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(h=t[n>>2]|0,s=t[r>>2]|0,(h|0)!=(s|0)){l=e+8|0,r=((s+-4-h|0)>>>2)+1|0,e=h,u=t[l>>2]|0;do t[u>>2]=t[e>>2],u=(t[l>>2]|0)+4|0,t[l>>2]=u,e=e+4|0;while((e|0)!=(s|0));t[n>>2]=h+(r<<2)}}function Qi(){_e()}function g0(){var e=0;return e=cn(4)|0,bn(e),e|0}function bn(e){e=e|0,t[e>>2]=p0()|0}function Qu(e){e=e|0,e|0&&(eo(e),yt(e))}function eo(e){e=e|0,K0(t[e>>2]|0)}function po(e,n,r){e=e|0,n=n|0,r=r|0,Uu(t[e>>2]|0,n,r)}function Ju(e,n){e=e|0,n=w(n),Gu(t[e>>2]|0,n)}function bo(e,n){return e=e|0,n=n|0,er(t[e>>2]|0,n)|0}function to(){var e=0;return e=cn(8)|0,Na(e,0),e|0}function Na(e,n){e=e|0,n=n|0,n?n=Hn(t[n>>2]|0)|0:n=or()|0,t[e>>2]=n,t[e+4>>2]=0,Ma(n,e)}function pf(e){e=e|0;var n=0;return n=cn(8)|0,Na(n,e),n|0}function uc(e){e=e|0,e|0&&(ms(e),yt(e))}function ms(e){e=e|0;var n=0;bu(t[e>>2]|0),n=e+4|0,e=t[n>>2]|0,t[n>>2]=0,e|0&&(ia(e),yt(e))}function ia(e){e=e|0,B0(e)}function B0(e){e=e|0,e=t[e>>2]|0,e|0&&Ir(e|0)}function oc(e){return e=e|0,Ls(e)|0}function La(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ia(n),yt(n)),ao(t[e>>2]|0)}function gd(e,n){e=e|0,n=n|0,ea(t[e>>2]|0,t[n>>2]|0)}function $1(e,n){e=e|0,n=n|0,Z(t[e>>2]|0,n)}function e2(e,n,r){e=e|0,n=n|0,r=+r,lr(t[e>>2]|0,n,w(r))}function ho(e,n,r){e=e|0,n=n|0,r=+r,Qn(t[e>>2]|0,n,w(r))}function Uc(e,n){e=e|0,n=n|0,z(t[e>>2]|0,n)}function Dl(e,n){e=e|0,n=n|0,$(t[e>>2]|0,n)}function el(e,n){e=e|0,n=n|0,me(t[e>>2]|0,n)}function _d(e,n){e=e|0,n=n|0,h0(t[e>>2]|0,n)}function Bs(e,n){e=e|0,n=n|0,Xe(t[e>>2]|0,n)}function wl(e,n){e=e|0,n=n|0,Ni(t[e>>2]|0,n)}function t2(e,n,r){e=e|0,n=n|0,r=+r,Cn(t[e>>2]|0,n,w(r))}function Po(e,n,r){e=e|0,n=n|0,r=+r,Ar(t[e>>2]|0,n,w(r))}function Fa(e,n){e=e|0,n=n|0,Rr(t[e>>2]|0,n)}function ba(e,n){e=e|0,n=n|0,ie(t[e>>2]|0,n)}function Pa(e,n){e=e|0,n=n|0,tt(t[e>>2]|0,n)}function ua(e,n){e=e|0,n=+n,kt(t[e>>2]|0,w(n))}function ys(e,n){e=e|0,n=+n,tn(t[e>>2]|0,w(n))}function gs(e,n){e=e|0,n=+n,Lt(t[e>>2]|0,w(n))}function Ql(e,n){e=e|0,n=+n,bt(t[e>>2]|0,w(n))}function Io(e,n){e=e|0,n=+n,on(t[e>>2]|0,w(n))}function hf(e,n){e=e|0,n=+n,sn(t[e>>2]|0,w(n))}function tl(e,n){e=e|0,n=+n,Yn(t[e>>2]|0,w(n))}function ju(e){e=e|0,yr(t[e>>2]|0)}function Ia(e,n){e=e|0,n=+n,Cu(t[e>>2]|0,w(n))}function Zu(e,n){e=e|0,n=+n,S0(t[e>>2]|0,w(n))}function U0(e){e=e|0,X0(t[e>>2]|0)}function vf(e,n){e=e|0,n=+n,di(t[e>>2]|0,w(n))}function jc(e,n){e=e|0,n=+n,ko(t[e>>2]|0,w(n))}function lc(e,n){e=e|0,n=+n,sf(t[e>>2]|0,w(n))}function Sl(e,n){e=e|0,n=+n,gl(t[e>>2]|0,w(n))}function _s(e,n){e=e|0,n=+n,Mo(t[e>>2]|0,w(n))}function oa(e,n){e=e|0,n=+n,ds(t[e>>2]|0,w(n))}function n2(e,n){e=e|0,n=+n,No(t[e>>2]|0,w(n))}function la(e,n){e=e|0,n=+n,Lo(t[e>>2]|0,w(n))}function sc(e,n){e=e|0,n=+n,Vu(t[e>>2]|0,w(n))}function zc(e,n,r){e=e|0,n=n|0,r=+r,Ft(t[e>>2]|0,n,w(r))}function bi(e,n,r){e=e|0,n=n|0,r=+r,nt(t[e>>2]|0,n,w(r))}function g(e,n,r){e=e|0,n=n|0,r=+r,_t(t[e>>2]|0,n,w(r))}function y(e){return e=e|0,ke(t[e>>2]|0)|0}function A(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,_r(l,t[n>>2]|0,r),F(e,l),m=u}function F(e,n){e=e|0,n=n|0,I(e,t[n+4>>2]|0,+w(C[n>>2]))}function I(e,n,r){e=e|0,n=n|0,r=+r,t[e>>2]=n,U[e+8>>3]=r}function J(e){return e=e|0,G(t[e>>2]|0)|0}function fe(e){return e=e|0,De(t[e>>2]|0)|0}function mt(e){return e=e|0,xe(t[e>>2]|0)|0}function Ct(e){return e=e|0,Fs(t[e>>2]|0)|0}function Mt(e){return e=e|0,ht(t[e>>2]|0)|0}function Er(e){return e=e|0,B(t[e>>2]|0)|0}function $u(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,v0(l,t[n>>2]|0,r),F(e,l),m=u}function iu(e){return e=e|0,qe(t[e>>2]|0)|0}function j0(e){return e=e|0,Tt(t[e>>2]|0)|0}function Tl(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,gn(u,t[n>>2]|0),F(e,u),m=r}function e0(e){return e=e|0,+ +w(lf(t[e>>2]|0))}function He(e){return e=e|0,+ +w(Ns(t[e>>2]|0))}function Be(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,nu(u,t[n>>2]|0),F(e,u),m=r}function ut(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,xu(u,t[n>>2]|0),F(e,u),m=r}function Jt(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Zo(u,t[n>>2]|0),F(e,u),m=r}function jn(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,af(u,t[n>>2]|0),F(e,u),m=r}function ti(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,bs(u,t[n>>2]|0),F(e,u),m=r}function tr(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,ps(u,t[n>>2]|0),F(e,u),m=r}function ii(e){return e=e|0,+ +w(yu(t[e>>2]|0))}function qi(e,n){return e=e|0,n=n|0,+ +w(nn(t[e>>2]|0,n))}function jr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,Ze(l,t[n>>2]|0,r),F(e,l),m=u}function gu(e,n,r){e=e|0,n=n|0,r=r|0,ka(t[e>>2]|0,t[n>>2]|0,r)}function Ba(e,n){e=e|0,n=n|0,Tu(t[e>>2]|0,t[n>>2]|0)}function Ua(e){return e=e|0,mu(t[e>>2]|0)|0}function r2(e){return e=e|0,e=ri(t[e>>2]|0)|0,e?e=oc(e)|0:e=0,e|0}function Ed(e,n){return e=e|0,n=n|0,e=yi(t[e>>2]|0,n)|0,e?e=oc(e)|0:e=0,e|0}function Dd(e,n){e=e|0,n=n|0;var r=0,u=0;u=cn(4)|0,mf(u,n),r=e+4|0,n=t[r>>2]|0,t[r>>2]=u,n|0&&(ia(n),yt(n)),$s(t[e>>2]|0,1)}function mf(e,n){e=e|0,n=n|0,rl(e,n)}function i2(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,ch(D,Ls(n)|0,+r,u,+l,s),C[e>>2]=w(+U[D>>3]),C[e+4>>2]=w(+U[D+8>>3]),m=h}function ch(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0,D=0,S=0,M=0,O=0;h=m,m=m+32|0,O=h+8|0,M=h+20|0,S=h,D=h+16|0,U[O>>3]=r,t[M>>2]=u,U[S>>3]=l,t[D>>2]=s,qc(e,t[n+4>>2]|0,O,M,S,D),m=h}function qc(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0;h=m,m=m+16|0,D=h,Ta(D),n=vo(n)|0,dh(e,n,+U[r>>3],t[u>>2]|0,+U[l>>3],t[s>>2]|0),Ca(D),m=h}function vo(e){return e=e|0,t[e>>2]|0}function dh(e,n,r,u,l,s){e=e|0,n=n|0,r=+r,u=u|0,l=+l,s=s|0;var h=0;h=mo(ph()|0)|0,r=+Cl(r),u=u2(u)|0,l=+Cl(l),o2(e,Wr(0,h|0,n|0,+r,u|0,+l,u2(s)|0)|0)}function ph(){var e=0;return p[7608]|0||(Wc(9120),e=7608,t[e>>2]=1,t[e+4>>2]=0),9120}function mo(e){return e=e|0,t[e+8>>2]|0}function Cl(e){return e=+e,+ +ja(e)}function u2(e){return e=e|0,s2(e)|0}function o2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=n,u&1?(wd(r,0),Yi(u|0,r|0)|0,Hc(e,r),Mr(r)):(t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]),m=l}function wd(e,n){e=e|0,n=n|0,l2(e,n),t[e+8>>2]=0,p[e+24>>0]=0}function Hc(e,n){e=e|0,n=n|0,n=n+8|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2]}function Mr(e){e=e|0,p[e+24>>0]=0}function l2(e,n){e=e|0,n=n|0,t[e>>2]=n}function s2(e){return e=e|0,e|0}function ja(e){return e=+e,+e}function Wc(e){e=e|0,nl(e,Sd()|0,4)}function Sd(){return 1064}function nl(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=Pt(n|0,r+1|0)|0}function rl(e,n){e=e|0,n=n|0,n=t[n>>2]|0,t[e>>2]=n,Ei(n|0)}function hh(e){e=e|0;var n=0,r=0;r=e+4|0,n=t[r>>2]|0,t[r>>2]=0,n|0&&(ia(n),yt(n)),$s(t[e>>2]|0,0)}function yf(e){e=e|0,Gr(t[e>>2]|0)}function Vc(e){return e=e|0,Yl(t[e>>2]|0)|0}function Td(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,Kr(t[e>>2]|0,w(n),w(r),u)}function vh(e){return e=e|0,+ +w(pi(t[e>>2]|0))}function il(e){return e=e|0,+ +w(Q0(t[e>>2]|0))}function sa(e){return e=e|0,+ +w(T0(t[e>>2]|0))}function Cd(e){return e=e|0,+ +w(Fo(t[e>>2]|0))}function xd(e){return e=e|0,+ +w(ta(t[e>>2]|0))}function ac(e){return e=e|0,+ +w(Kl(t[e>>2]|0))}function mh(e,n){e=e|0,n=n|0,U[e>>3]=+w(pi(t[n>>2]|0)),U[e+8>>3]=+w(Q0(t[n>>2]|0)),U[e+16>>3]=+w(T0(t[n>>2]|0)),U[e+24>>3]=+w(Fo(t[n>>2]|0)),U[e+32>>3]=+w(ta(t[n>>2]|0)),U[e+40>>3]=+w(Kl(t[n>>2]|0))}function Ad(e,n){return e=e|0,n=n|0,+ +w(Ki(t[e>>2]|0,n))}function a2(e,n){return e=e|0,n=n|0,+ +w(Yr(t[e>>2]|0,n))}function Gc(e,n){return e=e|0,n=n|0,+ +w(fo(t[e>>2]|0,n))}function Yc(){return Oa()|0}function Us(){Rd(),aa(),Kc(),fc(),cc(),f2()}function Rd(){bN(11713,4938,1)}function aa(){eN(10448)}function Kc(){bM(10408)}function fc(){iM(10324)}function cc(){yE(10096)}function f2(){yh(9132)}function yh(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0,ts=0,ns=0,rs=0,Xs=0,$2=0,ed=0,Za=0,td=0,Oc=0,kc=0,nd=0,rd=0,id=0,si=0,$a=0,ud=0,zf=0,od=0,ld=0,Mc=0,Nc=0,qf=0,Il=0,Aa=0,As=0,ef=0,L1=0,F1=0,Lc=0,b1=0,P1=0,Bl=0,vl=0,tf=0,lu=0,I1=0,is=0,Hf=0,us=0,Wf=0,B1=0,U1=0,Vf=0,Ul=0,nf=0,j1=0,z1=0,q1=0,gr=0,Mu=0,ml=0,os=0,jl=0,Tr=0,Fn=0,rf=0;n=m,m=m+672|0,r=n+656|0,rf=n+648|0,Fn=n+640|0,Tr=n+632|0,jl=n+624|0,os=n+616|0,ml=n+608|0,Mu=n+600|0,gr=n+592|0,q1=n+584|0,z1=n+576|0,j1=n+568|0,nf=n+560|0,Ul=n+552|0,Vf=n+544|0,U1=n+536|0,B1=n+528|0,Wf=n+520|0,us=n+512|0,Hf=n+504|0,is=n+496|0,I1=n+488|0,lu=n+480|0,tf=n+472|0,vl=n+464|0,Bl=n+456|0,P1=n+448|0,b1=n+440|0,Lc=n+432|0,F1=n+424|0,L1=n+416|0,ef=n+408|0,As=n+400|0,Aa=n+392|0,Il=n+384|0,qf=n+376|0,Nc=n+368|0,Mc=n+360|0,ld=n+352|0,od=n+344|0,zf=n+336|0,ud=n+328|0,$a=n+320|0,si=n+312|0,id=n+304|0,rd=n+296|0,nd=n+288|0,kc=n+280|0,Oc=n+272|0,td=n+264|0,Za=n+256|0,ed=n+248|0,$2=n+240|0,Xs=n+232|0,rs=n+224|0,ns=n+216|0,ts=n+208|0,Zi=n+200|0,On=n+192|0,kr=n+184|0,hr=n+176|0,mn=n+168|0,Nn=n+160|0,Lr=n+152|0,Qt=n+144|0,Fe=n+136|0,Re=n+128|0,st=n+120|0,We=n+112|0,Qe=n+104|0,ve=n+96|0,Ee=n+88|0,Pe=n+80|0,K=n+72|0,P=n+64|0,O=n+56|0,M=n+48|0,S=n+40|0,D=n+32|0,h=n+24|0,s=n+16|0,l=n+8|0,u=n,gf(e,3646),Xc(e,3651,2)|0,gh(e,3665,2)|0,vm(e,3682,18)|0,t[rf>>2]=19,t[rf+4>>2]=0,t[r>>2]=t[rf>>2],t[r+4>>2]=t[rf+4>>2],js(e,3690,r)|0,t[Fn>>2]=1,t[Fn+4>>2]=0,t[r>>2]=t[Fn>>2],t[r+4>>2]=t[Fn+4>>2],fa(e,3696,r)|0,t[Tr>>2]=2,t[Tr+4>>2]=0,t[r>>2]=t[Tr>>2],t[r+4>>2]=t[Tr+4>>2],Ji(e,3706,r)|0,t[jl>>2]=1,t[jl+4>>2]=0,t[r>>2]=t[jl>>2],t[r+4>>2]=t[jl+4>>2],O0(e,3722,r)|0,t[os>>2]=2,t[os+4>>2]=0,t[r>>2]=t[os>>2],t[r+4>>2]=t[os+4>>2],O0(e,3734,r)|0,t[ml>>2]=3,t[ml+4>>2]=0,t[r>>2]=t[ml>>2],t[r+4>>2]=t[ml+4>>2],Ji(e,3753,r)|0,t[Mu>>2]=4,t[Mu+4>>2]=0,t[r>>2]=t[Mu>>2],t[r+4>>2]=t[Mu+4>>2],Ji(e,3769,r)|0,t[gr>>2]=5,t[gr+4>>2]=0,t[r>>2]=t[gr>>2],t[r+4>>2]=t[gr+4>>2],Ji(e,3783,r)|0,t[q1>>2]=6,t[q1+4>>2]=0,t[r>>2]=t[q1>>2],t[r+4>>2]=t[q1+4>>2],Ji(e,3796,r)|0,t[z1>>2]=7,t[z1+4>>2]=0,t[r>>2]=t[z1>>2],t[r+4>>2]=t[z1+4>>2],Ji(e,3813,r)|0,t[j1>>2]=8,t[j1+4>>2]=0,t[r>>2]=t[j1>>2],t[r+4>>2]=t[j1+4>>2],Ji(e,3825,r)|0,t[nf>>2]=3,t[nf+4>>2]=0,t[r>>2]=t[nf>>2],t[r+4>>2]=t[nf+4>>2],O0(e,3843,r)|0,t[Ul>>2]=4,t[Ul+4>>2]=0,t[r>>2]=t[Ul>>2],t[r+4>>2]=t[Ul+4>>2],O0(e,3853,r)|0,t[Vf>>2]=9,t[Vf+4>>2]=0,t[r>>2]=t[Vf>>2],t[r+4>>2]=t[Vf+4>>2],Ji(e,3870,r)|0,t[U1>>2]=10,t[U1+4>>2]=0,t[r>>2]=t[U1>>2],t[r+4>>2]=t[U1+4>>2],Ji(e,3884,r)|0,t[B1>>2]=11,t[B1+4>>2]=0,t[r>>2]=t[B1>>2],t[r+4>>2]=t[B1+4>>2],Ji(e,3896,r)|0,t[Wf>>2]=1,t[Wf+4>>2]=0,t[r>>2]=t[Wf>>2],t[r+4>>2]=t[Wf+4>>2],t0(e,3907,r)|0,t[us>>2]=2,t[us+4>>2]=0,t[r>>2]=t[us>>2],t[r+4>>2]=t[us+4>>2],t0(e,3915,r)|0,t[Hf>>2]=3,t[Hf+4>>2]=0,t[r>>2]=t[Hf>>2],t[r+4>>2]=t[Hf+4>>2],t0(e,3928,r)|0,t[is>>2]=4,t[is+4>>2]=0,t[r>>2]=t[is>>2],t[r+4>>2]=t[is+4>>2],t0(e,3948,r)|0,t[I1>>2]=5,t[I1+4>>2]=0,t[r>>2]=t[I1>>2],t[r+4>>2]=t[I1+4>>2],t0(e,3960,r)|0,t[lu>>2]=6,t[lu+4>>2]=0,t[r>>2]=t[lu>>2],t[r+4>>2]=t[lu+4>>2],t0(e,3974,r)|0,t[tf>>2]=7,t[tf+4>>2]=0,t[r>>2]=t[tf>>2],t[r+4>>2]=t[tf+4>>2],t0(e,3983,r)|0,t[vl>>2]=20,t[vl+4>>2]=0,t[r>>2]=t[vl>>2],t[r+4>>2]=t[vl+4>>2],js(e,3999,r)|0,t[Bl>>2]=8,t[Bl+4>>2]=0,t[r>>2]=t[Bl>>2],t[r+4>>2]=t[Bl+4>>2],t0(e,4012,r)|0,t[P1>>2]=9,t[P1+4>>2]=0,t[r>>2]=t[P1>>2],t[r+4>>2]=t[P1+4>>2],t0(e,4022,r)|0,t[b1>>2]=21,t[b1+4>>2]=0,t[r>>2]=t[b1>>2],t[r+4>>2]=t[b1+4>>2],js(e,4039,r)|0,t[Lc>>2]=10,t[Lc+4>>2]=0,t[r>>2]=t[Lc>>2],t[r+4>>2]=t[Lc+4>>2],t0(e,4053,r)|0,t[F1>>2]=11,t[F1+4>>2]=0,t[r>>2]=t[F1>>2],t[r+4>>2]=t[F1+4>>2],t0(e,4065,r)|0,t[L1>>2]=12,t[L1+4>>2]=0,t[r>>2]=t[L1>>2],t[r+4>>2]=t[L1+4>>2],t0(e,4084,r)|0,t[ef>>2]=13,t[ef+4>>2]=0,t[r>>2]=t[ef>>2],t[r+4>>2]=t[ef+4>>2],t0(e,4097,r)|0,t[As>>2]=14,t[As+4>>2]=0,t[r>>2]=t[As>>2],t[r+4>>2]=t[As+4>>2],t0(e,4117,r)|0,t[Aa>>2]=15,t[Aa+4>>2]=0,t[r>>2]=t[Aa>>2],t[r+4>>2]=t[Aa+4>>2],t0(e,4129,r)|0,t[Il>>2]=16,t[Il+4>>2]=0,t[r>>2]=t[Il>>2],t[r+4>>2]=t[Il+4>>2],t0(e,4148,r)|0,t[qf>>2]=17,t[qf+4>>2]=0,t[r>>2]=t[qf>>2],t[r+4>>2]=t[qf+4>>2],t0(e,4161,r)|0,t[Nc>>2]=18,t[Nc+4>>2]=0,t[r>>2]=t[Nc>>2],t[r+4>>2]=t[Nc+4>>2],t0(e,4181,r)|0,t[Mc>>2]=5,t[Mc+4>>2]=0,t[r>>2]=t[Mc>>2],t[r+4>>2]=t[Mc+4>>2],O0(e,4196,r)|0,t[ld>>2]=6,t[ld+4>>2]=0,t[r>>2]=t[ld>>2],t[r+4>>2]=t[ld+4>>2],O0(e,4206,r)|0,t[od>>2]=7,t[od+4>>2]=0,t[r>>2]=t[od>>2],t[r+4>>2]=t[od+4>>2],O0(e,4217,r)|0,t[zf>>2]=3,t[zf+4>>2]=0,t[r>>2]=t[zf>>2],t[r+4>>2]=t[zf+4>>2],Jl(e,4235,r)|0,t[ud>>2]=1,t[ud+4>>2]=0,t[r>>2]=t[ud>>2],t[r+4>>2]=t[ud+4>>2],za(e,4251,r)|0,t[$a>>2]=4,t[$a+4>>2]=0,t[r>>2]=t[$a>>2],t[r+4>>2]=t[$a+4>>2],Jl(e,4263,r)|0,t[si>>2]=5,t[si+4>>2]=0,t[r>>2]=t[si>>2],t[r+4>>2]=t[si+4>>2],Jl(e,4279,r)|0,t[id>>2]=6,t[id+4>>2]=0,t[r>>2]=t[id>>2],t[r+4>>2]=t[id+4>>2],Jl(e,4293,r)|0,t[rd>>2]=7,t[rd+4>>2]=0,t[r>>2]=t[rd>>2],t[r+4>>2]=t[rd+4>>2],Jl(e,4306,r)|0,t[nd>>2]=8,t[nd+4>>2]=0,t[r>>2]=t[nd>>2],t[r+4>>2]=t[nd+4>>2],Jl(e,4323,r)|0,t[kc>>2]=9,t[kc+4>>2]=0,t[r>>2]=t[kc>>2],t[r+4>>2]=t[kc+4>>2],Jl(e,4335,r)|0,t[Oc>>2]=2,t[Oc+4>>2]=0,t[r>>2]=t[Oc>>2],t[r+4>>2]=t[Oc+4>>2],za(e,4353,r)|0,t[td>>2]=12,t[td+4>>2]=0,t[r>>2]=t[td>>2],t[r+4>>2]=t[td+4>>2],no(e,4363,r)|0,t[Za>>2]=1,t[Za+4>>2]=0,t[r>>2]=t[Za>>2],t[r+4>>2]=t[Za+4>>2],ul(e,4376,r)|0,t[ed>>2]=2,t[ed+4>>2]=0,t[r>>2]=t[ed>>2],t[r+4>>2]=t[ed+4>>2],ul(e,4388,r)|0,t[$2>>2]=13,t[$2+4>>2]=0,t[r>>2]=t[$2>>2],t[r+4>>2]=t[$2+4>>2],no(e,4402,r)|0,t[Xs>>2]=14,t[Xs+4>>2]=0,t[r>>2]=t[Xs>>2],t[r+4>>2]=t[Xs+4>>2],no(e,4411,r)|0,t[rs>>2]=15,t[rs+4>>2]=0,t[r>>2]=t[rs>>2],t[r+4>>2]=t[rs+4>>2],no(e,4421,r)|0,t[ns>>2]=16,t[ns+4>>2]=0,t[r>>2]=t[ns>>2],t[r+4>>2]=t[ns+4>>2],no(e,4433,r)|0,t[ts>>2]=17,t[ts+4>>2]=0,t[r>>2]=t[ts>>2],t[r+4>>2]=t[ts+4>>2],no(e,4446,r)|0,t[Zi>>2]=18,t[Zi+4>>2]=0,t[r>>2]=t[Zi>>2],t[r+4>>2]=t[Zi+4>>2],no(e,4458,r)|0,t[On>>2]=3,t[On+4>>2]=0,t[r>>2]=t[On>>2],t[r+4>>2]=t[On+4>>2],ul(e,4471,r)|0,t[kr>>2]=1,t[kr+4>>2]=0,t[r>>2]=t[kr>>2],t[r+4>>2]=t[kr+4>>2],dc(e,4486,r)|0,t[hr>>2]=10,t[hr+4>>2]=0,t[r>>2]=t[hr>>2],t[r+4>>2]=t[hr+4>>2],Jl(e,4496,r)|0,t[mn>>2]=11,t[mn+4>>2]=0,t[r>>2]=t[mn>>2],t[r+4>>2]=t[mn+4>>2],Jl(e,4508,r)|0,t[Nn>>2]=3,t[Nn+4>>2]=0,t[r>>2]=t[Nn>>2],t[r+4>>2]=t[Nn+4>>2],za(e,4519,r)|0,t[Lr>>2]=4,t[Lr+4>>2]=0,t[r>>2]=t[Lr>>2],t[r+4>>2]=t[Lr+4>>2],Od(e,4530,r)|0,t[Qt>>2]=19,t[Qt+4>>2]=0,t[r>>2]=t[Qt>>2],t[r+4>>2]=t[Qt+4>>2],_h(e,4542,r)|0,t[Fe>>2]=12,t[Fe+4>>2]=0,t[r>>2]=t[Fe>>2],t[r+4>>2]=t[Fe+4>>2],_f(e,4554,r)|0,t[Re>>2]=13,t[Re+4>>2]=0,t[r>>2]=t[Re>>2],t[r+4>>2]=t[Re+4>>2],Ef(e,4568,r)|0,t[st>>2]=2,t[st+4>>2]=0,t[r>>2]=t[st>>2],t[r+4>>2]=t[st+4>>2],Qc(e,4578,r)|0,t[We>>2]=20,t[We+4>>2]=0,t[r>>2]=t[We>>2],t[r+4>>2]=t[We+4>>2],xl(e,4587,r)|0,t[Qe>>2]=22,t[Qe+4>>2]=0,t[r>>2]=t[Qe>>2],t[r+4>>2]=t[Qe+4>>2],js(e,4602,r)|0,t[ve>>2]=23,t[ve+4>>2]=0,t[r>>2]=t[ve>>2],t[r+4>>2]=t[ve+4>>2],js(e,4619,r)|0,t[Ee>>2]=14,t[Ee+4>>2]=0,t[r>>2]=t[Ee>>2],t[r+4>>2]=t[Ee+4>>2],Jc(e,4629,r)|0,t[Pe>>2]=1,t[Pe+4>>2]=0,t[r>>2]=t[Pe>>2],t[r+4>>2]=t[Pe+4>>2],ca(e,4637,r)|0,t[K>>2]=4,t[K+4>>2]=0,t[r>>2]=t[K>>2],t[r+4>>2]=t[K+4>>2],ul(e,4653,r)|0,t[P>>2]=5,t[P+4>>2]=0,t[r>>2]=t[P>>2],t[r+4>>2]=t[P+4>>2],ul(e,4669,r)|0,t[O>>2]=6,t[O+4>>2]=0,t[r>>2]=t[O>>2],t[r+4>>2]=t[O+4>>2],ul(e,4686,r)|0,t[M>>2]=7,t[M+4>>2]=0,t[r>>2]=t[M>>2],t[r+4>>2]=t[M+4>>2],ul(e,4701,r)|0,t[S>>2]=8,t[S+4>>2]=0,t[r>>2]=t[S>>2],t[r+4>>2]=t[S+4>>2],ul(e,4719,r)|0,t[D>>2]=9,t[D+4>>2]=0,t[r>>2]=t[D>>2],t[r+4>>2]=t[D+4>>2],ul(e,4736,r)|0,t[h>>2]=21,t[h+4>>2]=0,t[r>>2]=t[h>>2],t[r+4>>2]=t[h+4>>2],c2(e,4754,r)|0,t[s>>2]=2,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],dc(e,4772,r)|0,t[l>>2]=3,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],dc(e,4790,r)|0,t[u>>2]=4,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],dc(e,4808,r)|0,m=n}function gf(e,n){e=e|0,n=n|0;var r=0;r=Ja()|0,t[e>>2]=r,jo(r,n),Q2(t[e>>2]|0)}function Xc(e,n,r){return e=e|0,n=n|0,r=r|0,Ot(e,Or(n)|0,r,0),e|0}function gh(e,n,r){return e=e|0,n=n|0,r=r|0,c(e,Or(n)|0,r,0),e|0}function vm(e,n,r){return e=e|0,n=n|0,r=r|0,cE(e,Or(n)|0,r,0),e|0}function js(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],rE(e,n,l),m=u,e|0}function fa(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bl(e,n,l),m=u,e|0}function Ji(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],d(e,n,l),m=u,e|0}function O0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Tv(e,n,l),m=u,e|0}function t0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],sy(e,n,l),m=u,e|0}function Jl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],W2(e,n,l),m=u,e|0}function za(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],H2(e,n,l),m=u,e|0}function no(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],k0(e,n,l),m=u,e|0}function ul(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Ep(e,n,l),m=u,e|0}function dc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Hm(e,n,l),m=u,e|0}function Od(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],n0(e,n,l),m=u,e|0}function _h(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],x2(e,n,l),m=u,e|0}function _f(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Fm(e,n,l),m=u,e|0}function Ef(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Zd(e,n,l),m=u,e|0}function Qc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],p1(e,n,l),m=u,e|0}function xl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Ga(e,n,l),m=u,e|0}function Jc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Id(e,n,l),m=u,e|0}function ca(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Nd(e,n,l),m=u,e|0}function c2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],d2(e,n,l),m=u,e|0}function d2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],da(e,r,l,1),m=u}function Or(e){return e=e|0,e|0}function da(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=kd()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Zc(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,p2(s,u)|0,u),m=l}function kd(){var e=0,n=0;if(p[7616]|0||(ol(9136),Ht(24,9136,he|0)|0,n=7616,t[n>>2]=1,t[n+4>>2]=0),!(rr(9136)|0)){e=9136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));ol(9136)}return 9136}function Zc(e){return e=e|0,0}function p2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=kd()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Df(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(wf(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function vi(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0;h=m,m=m+32|0,K=h+24|0,P=h+20|0,S=h+16|0,O=h+12|0,M=h+8|0,D=h+4|0,Pe=h,t[P>>2]=n,t[S>>2]=r,t[O>>2]=u,t[M>>2]=l,t[D>>2]=s,s=e+28|0,t[Pe>>2]=t[s>>2],t[K>>2]=t[Pe>>2],Md(e+24|0,K,P,O,M,S,D)|0,t[s>>2]=t[t[s>>2]>>2],m=h}function Md(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,e=mm(n)|0,n=cn(24)|0,h2(n+4|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0,t[h>>2]|0),t[n>>2]=t[e>>2],t[e>>2]=n,n|0}function mm(e){return e=e|0,t[e>>2]|0}function h2(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function dn(e,n){return e=e|0,n=n|0,n|e|0}function Df(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function wf(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ym(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Sf(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Df(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Eh(e,D),gm(D),m=M;return}}function ym(e){return e=e|0,357913941}function Sf(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Eh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function gm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function ol(e){e=e|0,Bo(e)}function $c(e){e=e|0,Un(e+24|0)}function rr(e){return e=e|0,t[e>>2]|0}function Un(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Bo(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,3,n,zn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dr(){return 9228}function zn(){return 1140}function ll(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=yo(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=pc(n,u)|0,m=r,n|0}function Pn(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,t[e>>2]=n,t[e+4>>2]=r,t[e+8>>2]=u,t[e+12>>2]=l,t[e+16>>2]=s}function yo(e){return e=e|0,(t[(kd()|0)+24>>2]|0)+(e*12|0)|0}function pc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+48|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),N1[r&31](u,e),u=ro(u)|0,m=l,u|0}function ro(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(qa()|0)|0,u?(Zl(n,u),Tf(r,n),hc(e,r),e=Es(n)|0):e=vc(e)|0,m=l,e|0}function qa(){var e=0;return p[7632]|0||(xf(9184),Ht(25,9184,he|0)|0,e=7632,t[e>>2]=1,t[e+4>>2]=0),9184}function Ou(e){return e=e|0,t[e+36>>2]|0}function Zl(e,n){e=e|0,n=n|0,t[e>>2]=n,t[e+4>>2]=e,t[e+8>>2]=0}function Tf(e,n){e=e|0,n=n|0,t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=0}function hc(e,n){e=e|0,n=n|0,io(n,e,e+8|0,e+16|0,e+24|0,e+32|0,e+40|0)|0}function Es(e){return e=e|0,t[(t[e+4>>2]|0)+8>>2]|0}function vc(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;S=m,m=m+16|0,r=S+4|0,u=S,l=Sa(8)|0,s=l,h=cn(48)|0,D=h,n=D+48|0;do t[D>>2]=t[e>>2],D=D+4|0,e=e+4|0;while((D|0)<(n|0));return n=s+4|0,t[n>>2]=h,D=cn(8)|0,h=t[n>>2]|0,t[u>>2]=0,t[r>>2]=t[u>>2],Dh(D,h,r),t[l>>2]=D,m=S,s|0}function Dh(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1092,t[r+12>>2]=n,t[e+4>>2]=r}function an(e){e=e|0,Pv(e),yt(e)}function $l(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function go(e){e=e|0,yt(e)}function io(e,n,r,u,l,s,h){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,s=Hi(t[e>>2]|0,n,r,u,l,s,h)|0,h=e+4|0,t[(t[h>>2]|0)+8>>2]=s,t[(t[h>>2]|0)+8>>2]|0}function Hi(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0;var D=0,S=0;return D=m,m=m+16|0,S=D,Ta(S),e=vo(e)|0,h=zr(e,+U[n>>3],+U[r>>3],+U[u>>3],+U[l>>3],+U[s>>3],+U[h>>3])|0,Ca(S),m=D,h|0}function zr(e,n,r,u,l,s,h){e=e|0,n=+n,r=+r,u=+u,l=+l,s=+s,h=+h;var D=0;return D=mo(Cf()|0)|0,n=+Cl(n),r=+Cl(r),u=+Cl(u),l=+Cl(l),s=+Cl(s),f0(0,D|0,e|0,+n,+r,+u,+l,+s,+ +Cl(h))|0}function Cf(){var e=0;return p[7624]|0||(_m(9172),e=7624,t[e>>2]=1,t[e+4>>2]=0),9172}function _m(e){e=e|0,nl(e,Al()|0,6)}function Al(){return 1112}function xf(e){e=e|0,Ha(e)}function Af(e){e=e|0,v2(e+24|0),m2(e+16|0)}function v2(e){e=e|0,e1(e)}function m2(e){e=e|0,mc(e)}function mc(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function e1(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function Ha(e){e=e|0;var n=0;t[e+16>>2]=0,t[e+20>>2]=0,n=e+24|0,t[n>>2]=0,t[e+28>>2]=n,t[e+36>>2]=0,p[e+40>>0]=0,p[e+41>>0]=0}function Nd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],y2(e,r,l,0),m=u}function y2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=t1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Rf(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,n1(s,u)|0,u),m=l}function t1(){var e=0,n=0;if(p[7640]|0||(Rl(9232),Ht(26,9232,he|0)|0,n=7640,t[n>>2]=1,t[n+4>>2]=0),!(rr(9232)|0)){e=9232,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Rl(9232)}return 9232}function Rf(e){return e=e|0,0}function n1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=t1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Wa(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(r1(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Wa(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function r1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ld(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,g2(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Wa(s,u,r),t[S>>2]=(t[S>>2]|0)+12,yc(e,D),i1(D),m=M;return}}function Ld(e){return e=e|0,357913941}function g2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function yc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function i1(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Rl(e){e=e|0,Fd(e)}function pa(e){e=e|0,wh(e+24|0)}function wh(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Fd(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,bd()|0,3),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function bd(){return 1144}function Sh(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,h=s+8|0,D=s,S=_2(e)|0,e=t[S+4>>2]|0,t[D>>2]=t[S>>2],t[D+4>>2]=e,t[h>>2]=t[D>>2],t[h+4>>2]=t[D+4>>2],Th(n,h,r,u,l),m=s}function _2(e){return e=e|0,(t[(t1()|0)+24>>2]|0)+(e*12|0)|0}function Th(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0;var s=0,h=0,D=0,S=0,M=0;M=m,m=m+16|0,h=M+2|0,D=M+1|0,S=M,s=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(s=t[(t[e>>2]|0)+s>>2]|0),Ol(h,r),r=+es(h,r),Ol(D,u),u=+es(D,u),Ds(S,l),S=zs(S,l)|0,Z8[s&1](e,r,u,S),m=M}function Ol(e,n){e=e|0,n=+n}function es(e,n){return e=e|0,n=+n,+ +Ch(n)}function Ds(e,n){e=e|0,n=n|0}function zs(e,n){return e=e|0,n=n|0,Pd(n)|0}function Pd(e){return e=e|0,e|0}function Ch(e){return e=+e,+e}function Id(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Bd(e,r,l,1),m=u}function Bd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=u1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=o1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,xh(s,u)|0,u),m=l}function u1(){var e=0,n=0;if(p[7648]|0||(l1(9268),Ht(27,9268,he|0)|0,n=7648,t[n>>2]=1,t[n+4>>2]=0),!(rr(9268)|0)){e=9268,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));l1(9268)}return 9268}function o1(e){return e=e|0,0}function xh(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=u1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Ud(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(jd(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Ud(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function jd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ws(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Va(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Ud(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ah(e,D),uu(D),m=M;return}}function ws(e){return e=e|0,357913941}function Va(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ah(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function uu(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function l1(e){e=e|0,kl(e)}function Rh(e){e=e|0,s1(e+24|0)}function s1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function kl(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,4,n,Oh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Oh(){return 1160}function zd(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=kh(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=a1(n,u)|0,m=r,n|0}function kh(e){return e=e|0,(t[(u1()|0)+24>>2]|0)+(e*12|0)|0}function a1(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),Ml(Xp[r&31](e)|0)|0}function Ml(e){return e=e|0,e&1|0}function Ga(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ha(e,r,l,0),m=u}function ha(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=qd()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Hd(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Em(s,u)|0,u),m=l}function qd(){var e=0,n=0;if(p[7656]|0||(Lh(9304),Ht(28,9304,he|0)|0,n=7656,t[n>>2]=1,t[n+4>>2]=0),!(rr(9304)|0)){e=9304,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Lh(9304)}return 9304}function Hd(e){return e=e|0,0}function Em(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=qd()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Wd(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Mh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Wd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Mh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Nh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Vd(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Wd(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Dm(e,D),wm(D),m=M;return}}function Nh(e){return e=e|0,357913941}function Vd(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Dm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function wm(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Lh(e){e=e|0,f1(e)}function Sm(e){e=e|0,Gd(e+24|0)}function Gd(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function f1(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,c1()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function c1(){return 1164}function d1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=va(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Yd(n,l,r),m=u}function va(e){return e=e|0,(t[(qd()|0)+24>>2]|0)+(e*12|0)|0}function Yd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),qs(l,r),r=Hs(l,r)|0,N1[u&31](e,r),Ws(l),m=s}function qs(e,n){e=e|0,n=n|0,Kd(e,n)}function Hs(e,n){return e=e|0,n=n|0,e|0}function Ws(e){e=e|0,ia(e)}function Kd(e,n){e=e|0,n=n|0,ma(e,n)}function ma(e,n){e=e|0,n=n|0,t[e>>2]=n}function p1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],E2(e,r,l,0),m=u}function E2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=gc()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Xd(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,_o(s,u)|0,u),m=l}function gc(){var e=0,n=0;if(p[7664]|0||(Uh(9340),Ht(29,9340,he|0)|0,n=7664,t[n>>2]=1,t[n+4>>2]=0),!(rr(9340)|0)){e=9340,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Uh(9340)}return 9340}function Xd(e){return e=e|0,0}function _o(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=gc()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Fh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(bh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Fh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function bh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ph(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ih(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Fh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Tm(e,D),Bh(D),m=M;return}}function Ph(e){return e=e|0,357913941}function Ih(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Tm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Bh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Uh(e){e=e|0,jh(e)}function h1(e){e=e|0,Qd(e+24|0)}function Qd(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function jh(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,4,n,Jd()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Jd(){return 1180}function zh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=Cm(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=xm(n,l,r)|0,m=u,r|0}function Cm(e){return e=e|0,(t[(gc()|0)+24>>2]|0)+(e*12|0)|0}function xm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Of(l,r),l=kf(l,r)|0,l=D2(ZE[u&15](e,l)|0)|0,m=s,l|0}function Of(e,n){e=e|0,n=n|0}function kf(e,n){return e=e|0,n=n|0,Am(n)|0}function D2(e){return e=e|0,e|0}function Am(e){return e=e|0,e|0}function Zd(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],w2(e,r,l,0),m=u}function w2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=$d()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=qh(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ep(s,u)|0,u),m=l}function $d(){var e=0,n=0;if(p[7672]|0||(Vh(9376),Ht(30,9376,he|0)|0,n=7672,t[n>>2]=1,t[n+4>>2]=0),!(rr(9376)|0)){e=9376,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Vh(9376)}return 9376}function qh(e){return e=e|0,0}function ep(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=$d()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Hh(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Wh(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Hh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Wh(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=tp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Rm(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Hh(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Om(e,D),km(D),m=M;return}}function tp(e){return e=e|0,357913941}function Rm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Om(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function km(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Vh(e){e=e|0,np(e)}function v1(e){e=e|0,Mm(e+24|0)}function Mm(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function np(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,rp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function rp(){return 1196}function Nm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Lm(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Gh(n,u)|0,m=r,n|0}function Lm(e){return e=e|0,(t[($d()|0)+24>>2]|0)+(e*12|0)|0}function Gh(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),D2(Xp[r&31](e)|0)|0}function Fm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bm(e,r,l,1),m=u}function bm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=ip()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=up(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ya(s,u)|0,u),m=l}function ip(){var e=0,n=0;if(p[7680]|0||(lp(9412),Ht(31,9412,he|0)|0,n=7680,t[n>>2]=1,t[n+4>>2]=0),!(rr(9412)|0)){e=9412,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));lp(9412)}return 9412}function up(e){return e=e|0,0}function ya(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=ip()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],m1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(op(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function m1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function op(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Yh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,S2(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],m1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,y1(e,D),Kh(D),m=M;return}}function Yh(e){return e=e|0,357913941}function S2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function y1(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Kh(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function lp(e){e=e|0,Qh(e)}function Xh(e){e=e|0,sp(e+24|0)}function sp(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Qh(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,Jh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Jh(){return 1200}function ap(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=T2(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=C2(n,u)|0,m=r,n|0}function T2(e){return e=e|0,(t[(ip()|0)+24>>2]|0)+(e*12|0)|0}function C2(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),z0(Xp[r&31](e)|0)|0}function z0(e){return e=e|0,e|0}function x2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ga(e,r,l,0),m=u}function ga(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ya()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=A2(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,R2(s,u)|0,u),m=l}function Ya(){var e=0,n=0;if(p[7688]|0||(dp(9448),Ht(32,9448,he|0)|0,n=7688,t[n>>2]=1,t[n+4>>2]=0),!(rr(9448)|0)){e=9448,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));dp(9448)}return 9448}function A2(e){return e=e|0,0}function R2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ya()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],fp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(O2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function fp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function O2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Zh(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Pm(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],fp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,$h(e,D),cp(D),m=M;return}}function Zh(e){return e=e|0,357913941}function Pm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function $h(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function cp(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function dp(e){e=e|0,Bm(e)}function pp(e){e=e|0,Im(e+24|0)}function Im(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Bm(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,Eo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Eo(){return 1204}function k2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Um(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],sl(n,l,r),m=u}function Um(e){return e=e|0,(t[(Ya()|0)+24>>2]|0)+(e*12|0)|0}function sl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Jn(l,r),l=Vs(l,r)|0,N1[u&31](e,l),m=s}function Jn(e,n){e=e|0,n=n|0}function Vs(e,n){return e=e|0,n=n|0,al(n)|0}function al(e){return e=e|0,e|0}function n0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ev(e,r,l,0),m=u}function ev(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Gs()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=hp(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,jm(s,u)|0,u),m=l}function Gs(){var e=0,n=0;if(p[7696]|0||(yp(9484),Ht(33,9484,he|0)|0,n=7696,t[n>>2]=1,t[n+4>>2]=0),!(rr(9484)|0)){e=9484,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));yp(9484)}return 9484}function hp(e){return e=e|0,0}function jm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Gs()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],tv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(vp(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function tv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function vp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=zm(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,mp(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],tv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,_c(e,D),Ea(D),m=M;return}}function zm(e){return e=e|0,357913941}function mp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function _c(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ea(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function yp(e){e=e|0,zu(e)}function M2(e){e=e|0,ku(e+24|0)}function ku(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function zu(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,gp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gp(){return 1212}function _p(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=nv(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],qm(n,s,r,u),m=l}function nv(e){return e=e|0,(t[(Gs()|0)+24>>2]|0)+(e*12|0)|0}function qm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Jn(s,r),s=Vs(s,r)|0,Of(h,u),h=kf(h,u)|0,jy[l&15](e,s,h),m=D}function Hm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Wm(e,r,l,1),m=u}function Wm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=N2()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=rv(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Ec(s,u)|0,u),m=l}function N2(){var e=0,n=0;if(p[7704]|0||(iv(9520),Ht(34,9520,he|0)|0,n=7704,t[n>>2]=1,t[n+4>>2]=0),!(rr(9520)|0)){e=9520,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));iv(9520)}return 9520}function rv(e){return e=e|0,0}function Ec(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=N2()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],g1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Vm(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function g1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Vm(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=L2(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,_1(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],g1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Nl(e,D),Da(D),m=M;return}}function L2(e){return e=e|0,357913941}function _1(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Nl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Da(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function iv(e){e=e|0,ov(e)}function Gm(e){e=e|0,uv(e+24|0)}function uv(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function ov(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,Ym()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Ym(){return 1224}function lv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;return l=m,m=m+16|0,s=l+8|0,h=l,D=wa(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],u=+Cr(n,s,r),m=l,+u}function wa(e){return e=e|0,(t[(N2()|0)+24>>2]|0)+(e*12|0)|0}function Cr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,h=+ja(+eS[u&7](e,l)),m=s,+h}function Ep(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],fl(e,r,l,1),m=u}function fl(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=cu()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=E1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,ki(s,u)|0,u),m=l}function cu(){var e=0,n=0;if(p[7712]|0||(wp(9556),Ht(35,9556,he|0)|0,n=7712,t[n>>2]=1,t[n+4>>2]=0),!(rr(9556)|0)){e=9556,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));wp(9556)}return 9556}function E1(e){return e=e|0,0}function ki(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=cu()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Dp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(F2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Dp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function F2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Do(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ss(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Dp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Mf(e,D),b2(D),m=M;return}}function Do(e){return e=e|0,357913941}function Ss(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Mf(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function b2(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function wp(e){e=e|0,Sp(e)}function D1(e){e=e|0,w1(e+24|0)}function w1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Sp(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,Zn()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Zn(){return 1232}function cl(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=qn(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=+q0(n,l),m=u,+r}function qn(e){return e=e|0,(t[(cu()|0)+24>>2]|0)+(e*12|0)|0}function q0(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),+ +ja(+$8[r&15](e))}function k0(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],P2(e,r,l,1),m=u}function P2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ll()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=S1(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Dc(s,u)|0,u),m=l}function Ll(){var e=0,n=0;if(p[7720]|0||(U2(9592),Ht(36,9592,he|0)|0,n=7720,t[n>>2]=1,t[n+4>>2]=0),!(rr(9592)|0)){e=9592,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));U2(9592)}return 9592}function S1(e){return e=e|0,0}function Dc(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ll()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],wc(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(I2(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function wc(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function I2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Tp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,M0(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],wc(s,u,r),t[S>>2]=(t[S>>2]|0)+12,fn(e,D),B2(D),m=M;return}}function Tp(e){return e=e|0,357913941}function M0(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function fn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function B2(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function U2(e){e=e|0,Cc(e)}function Sc(e){e=e|0,Tc(e+24|0)}function Tc(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Cc(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,7,n,T1()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function T1(){return 1276}function Cp(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=Ka(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=Km(n,u)|0,m=r,n|0}function Ka(e){return e=e|0,(t[(Ll()|0)+24>>2]|0)+(e*12|0)|0}function Km(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;return l=m,m=m+16|0,u=l,r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),N1[r&31](u,e),u=xc(u)|0,m=l,u|0}function xc(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(j2()|0)|0,u?(Zl(n,u),Tf(r,n),sv(e,r),e=Es(n)|0):e=C1(e)|0,m=l,e|0}function j2(){var e=0;return p[7736]|0||(Uo(9640),Ht(25,9640,he|0)|0,e=7736,t[e>>2]=1,t[e+4>>2]=0),9640}function sv(e,n){e=e|0,n=n|0,Ac(n,e,e+8|0)|0}function C1(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(16)|0,t[D>>2]=t[e>>2],t[D+4>>2]=t[e+4>>2],t[D+8>>2]=t[e+8>>2],t[D+12>>2]=t[e+12>>2],s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Nf(e,s,l),t[u>>2]=e,m=r,n|0}function Nf(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1244,t[r+12>>2]=n,t[e+4>>2]=r}function Lf(e){e=e|0,Pv(e),yt(e)}function x1(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function Fl(e){e=e|0,yt(e)}function Ac(e,n,r){return e=e|0,n=n|0,r=r|0,n=Ff(t[e>>2]|0,n,r)|0,r=e+4|0,t[(t[r>>2]|0)+8>>2]=n,t[(t[r>>2]|0)+8>>2]|0}function Ff(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return u=m,m=m+16|0,l=u,Ta(l),e=vo(e)|0,r=Xm(e,t[n>>2]|0,+U[r>>3])|0,Ca(l),m=u,r|0}function Xm(e,n,r){e=e|0,n=n|0,r=+r;var u=0;return u=mo(dl()|0)|0,n=u2(n)|0,Pr(0,u|0,e|0,n|0,+ +Cl(r))|0}function dl(){var e=0;return p[7728]|0||(z2(9628),e=7728,t[e>>2]=1,t[e+4>>2]=0),9628}function z2(e){e=e|0,nl(e,q2()|0,2)}function q2(){return 1264}function Uo(e){e=e|0,Ha(e)}function H2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Qm(e,r,l,1),m=u}function Qm(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=A1()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Jm(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Zm(s,u)|0,u),m=l}function A1(){var e=0,n=0;if(p[7744]|0||(cv(9684),Ht(37,9684,he|0)|0,n=7744,t[n>>2]=1,t[n+4>>2]=0),!(rr(9684)|0)){e=9684,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));cv(9684)}return 9684}function Jm(e){return e=e|0,0}function Zm(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=A1()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],av(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):($m(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function av(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function $m(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=fv(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,ey(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],av(s,u,r),t[S>>2]=(t[S>>2]|0)+12,ty(e,D),ny(D),m=M;return}}function fv(e){return e=e|0,357913941}function ey(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function ty(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function ny(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function cv(e){e=e|0,iy(e)}function ry(e){e=e|0,xp(e+24|0)}function xp(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function iy(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,5,n,bf()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function bf(){return 1280}function dv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=pv(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=hv(n,l,r)|0,m=u,r|0}function pv(e){return e=e|0,(t[(A1()|0)+24>>2]|0)+(e*12|0)|0}function hv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return h=m,m=m+32|0,l=h,s=h+16|0,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(s,r),s=zs(s,r)|0,jy[u&15](l,e,s),s=xc(l)|0,m=h,s|0}function W2(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],V2(e,r,l,1),m=u}function V2(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Ap()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=vv(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,G2(s,u)|0,u),m=l}function Ap(){var e=0,n=0;if(p[7752]|0||(Ev(9720),Ht(38,9720,he|0)|0,n=7752,t[n>>2]=1,t[n+4>>2]=0),!(rr(9720)|0)){e=9720,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ev(9720)}return 9720}function vv(e){return e=e|0,0}function G2(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Ap()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],mv(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(yv(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function mv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function yv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Rp(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,gv(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],mv(s,u,r),t[S>>2]=(t[S>>2]|0)+12,_v(e,D),uy(D),m=M;return}}function Rp(e){return e=e|0,357913941}function gv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function _v(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function uy(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Ev(e){e=e|0,Dv(e)}function oy(e){e=e|0,Y2(e+24|0)}function Y2(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Dv(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,Op()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Op(){return 1288}function ly(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;return r=m,m=m+16|0,u=r+8|0,l=r,s=r0(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],n=kp(n,u)|0,m=r,n|0}function r0(e){return e=e|0,(t[(Ap()|0)+24>>2]|0)+(e*12|0)|0}function kp(e,n){e=e|0,n=n|0;var r=0;return r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),s2(Xp[r&31](e)|0)|0}function sy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ay(e,r,l,0),m=u}function ay(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Mp()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=Xa(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Np(s,u)|0,u),m=l}function Mp(){var e=0,n=0;if(p[7760]|0||(bp(9756),Ht(39,9756,he|0)|0,n=7760,t[n>>2]=1,t[n+4>>2]=0),!(rr(9756)|0)){e=9756,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));bp(9756)}return 9756}function Xa(e){return e=e|0,0}function Np(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Mp()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],Lp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Fp(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function Lp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Fp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=fy(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,cy(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],Lp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,wv(e,D),Pf(D),m=M;return}}function fy(e){return e=e|0,357913941}function cy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function wv(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Pf(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function bp(e){e=e|0,py(e)}function Sv(e){e=e|0,dy(e+24|0)}function dy(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function py(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,Pp()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Pp(){return 1292}function Ip(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=hy(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],vy(n,l,r),m=u}function hy(e){return e=e|0,(t[(Mp()|0)+24>>2]|0)+(e*12|0)|0}function vy(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ol(l,r),r=+es(l,r),Q8[u&31](e,r),m=s}function Tv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Bp(e,r,l,0),m=u}function Bp(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Up()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=K2(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,my(s,u)|0,u),m=l}function Up(){var e=0,n=0;if(p[7768]|0||(jp(9792),Ht(40,9792,he|0)|0,n=7768,t[n>>2]=1,t[n+4>>2]=0),!(rr(9792)|0)){e=9792,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));jp(9792)}return 9792}function K2(e){return e=e|0,0}function my(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Up()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],R1(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(yy(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function R1(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function yy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Cv(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,xv(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],R1(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gy(e,D),If(D),m=M;return}}function Cv(e){return e=e|0,357913941}function xv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gy(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function If(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function jp(e){e=e|0,Ey(e)}function Av(e){e=e|0,_y(e+24|0)}function _y(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Ey(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,1,n,zp()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zp(){return 1300}function Dy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=Ys(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],wy(n,s,r,u),m=l}function Ys(e){return e=e|0,(t[(Up()|0)+24>>2]|0)+(e*12|0)|0}function wy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Ds(s,r),s=zs(s,r)|0,Ol(h,u),u=+es(h,u),iS[l&15](e,s,u),m=D}function d(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],v(e,r,l,0),m=u}function v(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=x()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=b(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,H(s,u)|0,u),m=l}function x(){var e=0,n=0;if(p[7776]|0||(Rt(9828),Ht(41,9828,he|0)|0,n=7776,t[n>>2]=1,t[n+4>>2]=0),!(rr(9828)|0)){e=9828,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Rt(9828)}return 9828}function b(e){return e=e|0,0}function H(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=x()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],ee(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(de(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function ee(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function de(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=ye(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,be(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],ee(s,u,r),t[S>>2]=(t[S>>2]|0)+12,gt(e,D),Dt(D),m=M;return}}function ye(e){return e=e|0,357913941}function be(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function gt(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Dt(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Rt(e){e=e|0,$n(e)}function rn(e){e=e|0,Rn(e+24|0)}function Rn(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function $n(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,7,n,Nr()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Nr(){return 1312}function ir(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=Zr(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ui(n,l,r),m=u}function Zr(e){return e=e|0,(t[(x()|0)+24>>2]|0)+(e*12|0)|0}function ui(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,N1[u&31](e,l),m=s}function bl(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],Wi(e,r,l,0),m=u}function Wi(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=uo()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=i0(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,Ts(s,u)|0,u),m=l}function uo(){var e=0,n=0;if(p[7784]|0||(r_(9864),Ht(42,9864,he|0)|0,n=7784,t[n>>2]=1,t[n+4>>2]=0),!(rr(9864)|0)){e=9864,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));r_(9864)}return 9864}function i0(e){return e=e|0,0}function Ts(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=uo()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],wo(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(Rv(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function wo(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function Rv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=X4(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Sy(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],wo(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ty(e,D),Qa(D),m=M;return}}function X4(e){return e=e|0,357913941}function Sy(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ty(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Qa(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function r_(e){e=e|0,Z4(e)}function Q4(e){e=e|0,J4(e+24|0)}function J4(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function Z4(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,8,n,$4()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function $4(){return 1320}function Cy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=eE(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tE(n,l,r),m=u}function eE(e){return e=e|0,(t[(uo()|0)+24>>2]|0)+(e*12|0)|0}function tE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),xy(l,r),l=i_(l,r)|0,N1[u&31](e,l),m=s}function xy(e,n){e=e|0,n=n|0}function i_(e,n){return e=e|0,n=n|0,nE(n)|0}function nE(e){return e=e|0,e|0}function rE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],u_(e,r,l,0),m=u}function u_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=Bf()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=o_(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,iE(s,u)|0,u),m=l}function Bf(){var e=0,n=0;if(p[7792]|0||(Oy(9900),Ht(43,9900,he|0)|0,n=7792,t[n>>2]=1,t[n+4>>2]=0),!(rr(9900)|0)){e=9900,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Oy(9900)}return 9900}function o_(e){return e=e|0,0}function iE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=Bf()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],qp(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(uE(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function qp(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function uE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=Ov(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,Ay(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],qp(s,u,r),t[S>>2]=(t[S>>2]|0)+12,Ry(e,D),oE(D),m=M;return}}function Ov(e){return e=e|0,357913941}function Ay(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function Ry(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function oE(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function Oy(e){e=e|0,l_(e)}function lE(e){e=e|0,sE(e+24|0)}function sE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function l_(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,22,n,aE()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function aE(){return 1344}function fE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0;r=m,m=m+16|0,u=r+8|0,l=r,s=s_(e)|0,e=t[s+4>>2]|0,t[l>>2]=t[s>>2],t[l+4>>2]=e,t[u>>2]=t[l>>2],t[u+4>>2]=t[l+4>>2],kv(n,u),m=r}function s_(e){return e=e|0,(t[(Bf()|0)+24>>2]|0)+(e*12|0)|0}function kv(e,n){e=e|0,n=n|0;var r=0;r=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(r=t[(t[e>>2]|0)+r>>2]|0),M1[r&127](e)}function cE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=ky()|0,e=dE(r)|0,vi(s,n,l,e,pE(r,u)|0,u)}function ky(){var e=0,n=0;if(p[7800]|0||(Ny(9936),Ht(44,9936,he|0)|0,n=7800,t[n>>2]=1,t[n+4>>2]=0),!(rr(9936)|0)){e=9936,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));Ny(9936)}return 9936}function dE(e){return e=e|0,e|0}function pE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=ky()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(My(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(a_(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function My(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function a_(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=f_(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,c_(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,My(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,d_(e,l),p_(l),m=D;return}}function f_(e){return e=e|0,536870911}function c_(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function d_(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function p_(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function Ny(e){e=e|0,v_(e)}function h_(e){e=e|0,hE(e+24|0)}function hE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function v_(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,23,n,Eo()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function vE(e,n){e=e|0,n=n|0,a(t[(mE(e)|0)>>2]|0,n)}function mE(e){return e=e|0,(t[(ky()|0)+24>>2]|0)+(e<<3)|0}function a(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,Jn(u,n),n=Vs(u,n)|0,M1[e&127](n),m=r}function c(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=_()|0,e=T(r)|0,vi(s,n,l,e,R(r,u)|0,u)}function _(){var e=0,n=0;if(p[7808]|0||(pt(9972),Ht(45,9972,he|0)|0,n=7808,t[n>>2]=1,t[n+4>>2]=0),!(rr(9972)|0)){e=9972,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));pt(9972)}return 9972}function T(e){return e=e|0,e|0}function R(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=_()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(j(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(V(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function j(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function V(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=te(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,oe(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,j(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Ie(e,l),Ye(l),m=D;return}}function te(e){return e=e|0,536870911}function oe(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Ie(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ye(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function pt(e){e=e|0,zt(e)}function Nt(e){e=e|0,Vt(e+24|0)}function Vt(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zt(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,9,n,vn()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function vn(){return 1348}function xr(e,n){return e=e|0,n=n|0,wi(t[($r(e)|0)>>2]|0,n)|0}function $r(e){return e=e|0,(t[(_()|0)+24>>2]|0)+(e<<3)|0}function wi(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,N0(u,n),n=Vi(u,n)|0,n=D2(Xp[e&31](n)|0)|0,m=r,n|0}function N0(e,n){e=e|0,n=n|0}function Vi(e,n){return e=e|0,n=n|0,it(n)|0}function it(e){return e=e|0,e|0}function Ot(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=Je()|0,e=Bt(r)|0,vi(s,n,l,e,Mn(r,u)|0,u)}function Je(){var e=0,n=0;if(p[7816]|0||(qr(10008),Ht(46,10008,he|0)|0,n=7816,t[n>>2]=1,t[n+4>>2]=0),!(rr(10008)|0)){e=10008,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));qr(10008)}return 10008}function Bt(e){return e=e|0,e|0}function Mn(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=Je()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(pn(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Pi(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function pn(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Pi(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=oi(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,qu(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,pn(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,ar(e,l),ou(l),m=D;return}}function oi(e){return e=e|0,536870911}function qu(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function ar(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function ou(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function qr(e){e=e|0,H0(e)}function _u(e){e=e|0,_0(e+24|0)}function _0(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function H0(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,15,n,rp()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Cs(e){return e=e|0,pl(t[(Hu(e)|0)>>2]|0)|0}function Hu(e){return e=e|0,(t[(Je()|0)+24>>2]|0)+(e<<3)|0}function pl(e){return e=e|0,D2(N_[e&7]()|0)|0}function Ja(){var e=0;return p[7832]|0||(y_(10052),Ht(25,10052,he|0)|0,e=7832,t[e>>2]=1,t[e+4>>2]=0),10052}function jo(e,n){e=e|0,n=n|0,t[e>>2]=xs()|0,t[e+4>>2]=X2()|0,t[e+12>>2]=n,t[e+8>>2]=Uf()|0,t[e+32>>2]=2}function xs(){return 11709}function X2(){return 1188}function Uf(){return O1()|0}function Rc(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(zo(r),yt(r)):n|0&&(ms(n),yt(n))}function Pl(e,n){return e=e|0,n=n|0,n&e|0}function zo(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function O1(){var e=0;return p[7824]|0||(t[2511]=m_()|0,t[2512]=0,e=7824,t[e>>2]=1,t[e+4>>2]=0),10044}function m_(){return 0}function y_(e){e=e|0,Ha(e)}function yE(e){e=e|0;var n=0,r=0,u=0,l=0,s=0;n=m,m=m+32|0,r=n+24|0,s=n+16|0,l=n+8|0,u=n,g_(e,4827),gE(e,4834,3)|0,_E(e,3682,47)|0,t[s>>2]=9,t[s+4>>2]=0,t[r>>2]=t[s>>2],t[r+4>>2]=t[s+4>>2],Ly(e,4841,r)|0,t[l>>2]=1,t[l+4>>2]=0,t[r>>2]=t[l>>2],t[r+4>>2]=t[l+4>>2],__(e,4871,r)|0,t[u>>2]=10,t[u+4>>2]=0,t[r>>2]=t[u>>2],t[r+4>>2]=t[u+4>>2],EE(e,4891,r)|0,m=n}function g_(e,n){e=e|0,n=n|0;var r=0;r=Qk()|0,t[e>>2]=r,Jk(r,n),Q2(t[e>>2]|0)}function gE(e,n,r){return e=e|0,n=n|0,r=r|0,Fk(e,Or(n)|0,r,0),e|0}function _E(e,n,r){return e=e|0,n=n|0,r=r|0,_k(e,Or(n)|0,r,0),e|0}function Ly(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],ek(e,n,l),m=u,e|0}function __(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],bO(e,n,l),m=u,e|0}function EE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=t[r+4>>2]|0,t[s>>2]=t[r>>2],t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],DE(e,n,l),m=u,e|0}function DE(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],wE(e,r,l,1),m=u}function wE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=SE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=DO(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,wO(s,u)|0,u),m=l}function SE(){var e=0,n=0;if(p[7840]|0||(L3(10100),Ht(48,10100,he|0)|0,n=7840,t[n>>2]=1,t[n+4>>2]=0),!(rr(10100)|0)){e=10100,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));L3(10100)}return 10100}function DO(e){return e=e|0,0}function wO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=SE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],N3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(SO(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function N3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function SO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=TO(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,CO(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],N3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,xO(e,D),AO(D),m=M;return}}function TO(e){return e=e|0,357913941}function CO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function xO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AO(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function L3(e){e=e|0,kO(e)}function RO(e){e=e|0,OO(e+24|0)}function OO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function kO(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,6,n,MO()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function MO(){return 1364}function NO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;return u=m,m=m+16|0,l=u+8|0,s=u,h=LO(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],r=FO(n,l,r)|0,m=u,r|0}function LO(e){return e=e|0,(t[(SE()|0)+24>>2]|0)+(e*12|0)|0}function FO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),Ds(l,r),l=zs(l,r)|0,l=Ml(ZE[u&15](e,l)|0)|0,m=s,l|0}function bO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],PO(e,r,l,0),m=u}function PO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=TE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=IO(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,BO(s,u)|0,u),m=l}function TE(){var e=0,n=0;if(p[7848]|0||(b3(10136),Ht(49,10136,he|0)|0,n=7848,t[n>>2]=1,t[n+4>>2]=0),!(rr(10136)|0)){e=10136,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));b3(10136)}return 10136}function IO(e){return e=e|0,0}function BO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=TE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],F3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(UO(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function F3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function UO(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=jO(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,zO(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],F3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,qO(e,D),HO(D),m=M;return}}function jO(e){return e=e|0,357913941}function zO(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function qO(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function HO(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function b3(e){e=e|0,GO(e)}function WO(e){e=e|0,VO(e+24|0)}function VO(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function GO(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,9,n,YO()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function YO(){return 1372}function KO(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,l=u+8|0,s=u,h=XO(e)|0,e=t[h+4>>2]|0,t[s>>2]=t[h>>2],t[s+4>>2]=e,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],QO(n,l,r),m=u}function XO(e){return e=e|0,(t[(TE()|0)+24>>2]|0)+(e*12|0)|0}function QO(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=St;s=m,m=m+16|0,l=s,u=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(u=t[(t[e>>2]|0)+u>>2]|0),JO(l,r),h=w(ZO(l,r)),X8[u&1](e,h),m=s}function JO(e,n){e=e|0,n=+n}function ZO(e,n){return e=e|0,n=+n,w($O(n))}function $O(e){return e=+e,w(e)}function ek(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,l=u+8|0,s=u,D=t[r>>2]|0,h=t[r+4>>2]|0,r=Or(n)|0,t[s>>2]=D,t[s+4>>2]=h,t[l>>2]=t[s>>2],t[l+4>>2]=t[s+4>>2],tk(e,r,l,0),m=u}function tk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0,S=0,M=0,O=0;l=m,m=m+32|0,s=l+16|0,O=l+8|0,D=l,M=t[r>>2]|0,S=t[r+4>>2]|0,h=t[e>>2]|0,e=CE()|0,t[O>>2]=M,t[O+4>>2]=S,t[s>>2]=t[O>>2],t[s+4>>2]=t[O+4>>2],r=nk(s)|0,t[D>>2]=M,t[D+4>>2]=S,t[s>>2]=t[D>>2],t[s+4>>2]=t[D+4>>2],vi(h,n,e,r,rk(s,u)|0,u),m=l}function CE(){var e=0,n=0;if(p[7856]|0||(I3(10172),Ht(50,10172,he|0)|0,n=7856,t[n>>2]=1,t[n+4>>2]=0),!(rr(10172)|0)){e=10172,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));I3(10172)}return 10172}function nk(e){return e=e|0,0}function rk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0;return O=m,m=m+32|0,l=O+24|0,h=O+16|0,D=O,S=O+8|0,s=t[e>>2]|0,u=t[e+4>>2]|0,t[D>>2]=s,t[D+4>>2]=u,P=CE()|0,M=P+24|0,e=dn(n,4)|0,t[S>>2]=e,n=P+28|0,r=t[n>>2]|0,r>>>0<(t[P+32>>2]|0)>>>0?(t[h>>2]=s,t[h+4>>2]=u,t[l>>2]=t[h>>2],t[l+4>>2]=t[h+4>>2],P3(r,l,e),e=(t[n>>2]|0)+12|0,t[n>>2]=e):(ik(M,D,S),e=t[n>>2]|0),m=O,((e-(t[M>>2]|0)|0)/12|0)+-1|0}function P3(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=t[n+4>>2]|0,t[e>>2]=t[n>>2],t[e+4>>2]=u,t[e+8>>2]=r}function ik(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;if(M=m,m=m+48|0,u=M+32|0,h=M+24|0,D=M,S=e+4|0,l=(((t[S>>2]|0)-(t[e>>2]|0)|0)/12|0)+1|0,s=uk(e)|0,s>>>0>>0)li(e);else{O=t[e>>2]|0,K=((t[e+8>>2]|0)-O|0)/12|0,P=K<<1,ok(D,K>>>0>>1>>>0?P>>>0>>0?l:P:s,((t[S>>2]|0)-O|0)/12|0,e+8|0),S=D+8|0,s=t[S>>2]|0,l=t[n+4>>2]|0,r=t[r>>2]|0,t[h>>2]=t[n>>2],t[h+4>>2]=l,t[u>>2]=t[h>>2],t[u+4>>2]=t[h+4>>2],P3(s,u,r),t[S>>2]=(t[S>>2]|0)+12,lk(e,D),sk(D),m=M;return}}function uk(e){return e=e|0,357913941}function ok(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>357913941)Xn();else{l=cn(n*12|0)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r*12|0)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n*12|0)}function lk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(((l|0)/-12|0)*12|0)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function sk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~(((u+-12-n|0)>>>0)/12|0)*12|0)),e=t[e>>2]|0,e|0&&yt(e)}function I3(e){e=e|0,ck(e)}function ak(e){e=e|0,fk(e+24|0)}function fk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~(((n+-12-u|0)>>>0)/12|0)*12|0)),yt(r))}function ck(e){e=e|0;var n=0;n=dr()|0,Pn(e,2,3,n,dk()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dk(){return 1380}function pk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+8|0,h=l,D=hk(e)|0,e=t[D+4>>2]|0,t[h>>2]=t[D>>2],t[h+4>>2]=e,t[s>>2]=t[h>>2],t[s+4>>2]=t[h+4>>2],vk(n,s,r,u),m=l}function hk(e){return e=e|0,(t[(CE()|0)+24>>2]|0)+(e*12|0)|0}function vk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;D=m,m=m+16|0,s=D+1|0,h=D,l=t[n>>2]|0,n=t[n+4>>2]|0,e=e+(n>>1)|0,n&1&&(l=t[(t[e>>2]|0)+l>>2]|0),Ds(s,r),s=zs(s,r)|0,mk(h,u),h=yk(h,u)|0,jy[l&15](e,s,h),m=D}function mk(e,n){e=e|0,n=n|0}function yk(e,n){return e=e|0,n=n|0,gk(n)|0}function gk(e){return e=e|0,(e|0)!=0|0}function _k(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=xE()|0,e=Ek(r)|0,vi(s,n,l,e,Dk(r,u)|0,u)}function xE(){var e=0,n=0;if(p[7864]|0||(U3(10208),Ht(51,10208,he|0)|0,n=7864,t[n>>2]=1,t[n+4>>2]=0),!(rr(10208)|0)){e=10208,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));U3(10208)}return 10208}function Ek(e){return e=e|0,e|0}function Dk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=xE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(B3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(wk(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function B3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function wk(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=Sk(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Tk(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,B3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Ck(e,l),xk(l),m=D;return}}function Sk(e){return e=e|0,536870911}function Tk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Ck(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function xk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function U3(e){e=e|0,Ok(e)}function Ak(e){e=e|0,Rk(e+24|0)}function Rk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Ok(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,24,n,kk()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function kk(){return 1392}function Mk(e,n){e=e|0,n=n|0,Lk(t[(Nk(e)|0)>>2]|0,n)}function Nk(e){return e=e|0,(t[(xE()|0)+24>>2]|0)+(e<<3)|0}function Lk(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,N0(u,n),n=Vi(u,n)|0,M1[e&127](n),m=r}function Fk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=AE()|0,e=bk(r)|0,vi(s,n,l,e,Pk(r,u)|0,u)}function AE(){var e=0,n=0;if(p[7872]|0||(z3(10244),Ht(52,10244,he|0)|0,n=7872,t[n>>2]=1,t[n+4>>2]=0),!(rr(10244)|0)){e=10244,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));z3(10244)}return 10244}function bk(e){return e=e|0,e|0}function Pk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=AE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(j3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Ik(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function j3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Ik(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=Bk(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Uk(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,j3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,jk(e,l),zk(l),m=D;return}}function Bk(e){return e=e|0,536870911}function Uk(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function jk(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function zk(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function z3(e){e=e|0,Wk(e)}function qk(e){e=e|0,Hk(e+24|0)}function Hk(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Wk(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,16,n,Vk()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Vk(){return 1400}function Gk(e){return e=e|0,Kk(t[(Yk(e)|0)>>2]|0)|0}function Yk(e){return e=e|0,(t[(AE()|0)+24>>2]|0)+(e<<3)|0}function Kk(e){return e=e|0,Xk(N_[e&7]()|0)|0}function Xk(e){return e=e|0,e|0}function Qk(){var e=0;return p[7880]|0||(rM(10280),Ht(25,10280,he|0)|0,e=7880,t[e>>2]=1,t[e+4>>2]=0),10280}function Jk(e,n){e=e|0,n=n|0,t[e>>2]=Zk()|0,t[e+4>>2]=$k()|0,t[e+12>>2]=n,t[e+8>>2]=eM()|0,t[e+32>>2]=4}function Zk(){return 11711}function $k(){return 1356}function eM(){return O1()|0}function tM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(nM(r),yt(r)):n|0&&(eo(n),yt(n))}function nM(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function rM(e){e=e|0,Ha(e)}function iM(e){e=e|0,uM(e,4920),oM(e)|0,lM(e)|0}function uM(e,n){e=e|0,n=n|0;var r=0;r=j2()|0,t[e>>2]=r,RM(r,n),Q2(t[e>>2]|0)}function oM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,gM()|0),e|0}function lM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,sM()|0),e|0}function sM(){var e=0;return p[7888]|0||(q3(10328),Ht(53,10328,he|0)|0,e=7888,t[e>>2]=1,t[e+4>>2]=0),rr(10328)|0||q3(10328),10328}function Hp(e,n){e=e|0,n=n|0,vi(e,0,n,0,0,0)}function q3(e){e=e|0,cM(e),Wp(e,10)}function aM(e){e=e|0,fM(e+24|0)}function fM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function cM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,1,n,vM()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function dM(e,n,r){e=e|0,n=n|0,r=+r,pM(e,n,r)}function Wp(e,n){e=e|0,n=n|0,t[e+20>>2]=n}function pM(e,n,r){e=e|0,n=n|0,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+16|0,s=u+8|0,D=u+13|0,l=u,h=u+12|0,Ds(D,n),t[s>>2]=zs(D,n)|0,Ol(h,r),U[l>>3]=+es(h,r),hM(e,s,l),m=u}function hM(e,n,r){e=e|0,n=n|0,r=r|0,I(e+8|0,t[n>>2]|0,+U[r>>3]),p[e+24>>0]=1}function vM(){return 1404}function mM(e,n){return e=e|0,n=+n,yM(e,n)|0}function yM(e,n){e=e|0,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,s=u+4|0,h=u+8|0,D=u,l=Sa(8)|0,r=l,S=cn(16)|0,Ds(s,e),e=zs(s,e)|0,Ol(h,n),I(S,e,+es(h,n)),h=r+4|0,t[h>>2]=S,e=cn(8)|0,h=t[h>>2]|0,t[D>>2]=0,t[s>>2]=t[D>>2],Nf(e,h,s),t[l>>2]=e,m=u,r|0}function gM(){var e=0;return p[7896]|0||(H3(10364),Ht(54,10364,he|0)|0,e=7896,t[e>>2]=1,t[e+4>>2]=0),rr(10364)|0||H3(10364),10364}function H3(e){e=e|0,DM(e),Wp(e,55)}function _M(e){e=e|0,EM(e+24|0)}function EM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function DM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,4,n,CM()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function wM(e){e=e|0,SM(e)}function SM(e){e=e|0,TM(e)}function TM(e){e=e|0,W3(e+8|0),p[e+24>>0]=1}function W3(e){e=e|0,t[e>>2]=0,U[e+8>>3]=0}function CM(){return 1424}function xM(){return AM()|0}function AM(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,u=cn(16)|0,W3(u),s=e+4|0,t[s>>2]=u,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],Nf(u,s,l),t[r>>2]=u,m=n,e|0}function RM(e,n){e=e|0,n=n|0,t[e>>2]=OM()|0,t[e+4>>2]=kM()|0,t[e+12>>2]=n,t[e+8>>2]=MM()|0,t[e+32>>2]=5}function OM(){return 11710}function kM(){return 1416}function MM(){return E_()|0}function NM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(LM(r),yt(r)):n|0&&yt(n)}function LM(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function E_(){var e=0;return p[7904]|0||(t[2600]=FM()|0,t[2601]=0,e=7904,t[e>>2]=1,t[e+4>>2]=0),10400}function FM(){return t[357]|0}function bM(e){e=e|0,PM(e,4926),IM(e)|0}function PM(e,n){e=e|0,n=n|0;var r=0;r=qa()|0,t[e>>2]=r,KM(r,n),Q2(t[e>>2]|0)}function IM(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,BM()|0),e|0}function BM(){var e=0;return p[7912]|0||(V3(10412),Ht(56,10412,he|0)|0,e=7912,t[e>>2]=1,t[e+4>>2]=0),rr(10412)|0||V3(10412),10412}function V3(e){e=e|0,zM(e),Wp(e,57)}function UM(e){e=e|0,jM(e+24|0)}function jM(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zM(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,5,n,VM()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qM(e){e=e|0,HM(e)}function HM(e){e=e|0,WM(e)}function WM(e){e=e|0;var n=0,r=0;n=e+8|0,r=n+48|0;do t[n>>2]=0,n=n+4|0;while((n|0)<(r|0));p[e+56>>0]=1}function VM(){return 1432}function GM(){return YM()|0}function YM(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0;h=m,m=m+16|0,e=h+4|0,n=h,r=Sa(8)|0,u=r,l=cn(48)|0,s=l,D=s+48|0;do t[s>>2]=0,s=s+4|0;while((s|0)<(D|0));return s=u+4|0,t[s>>2]=l,D=cn(8)|0,s=t[s>>2]|0,t[n>>2]=0,t[e>>2]=t[n>>2],Dh(D,s,e),t[r>>2]=D,m=h,u|0}function KM(e,n){e=e|0,n=n|0,t[e>>2]=XM()|0,t[e+4>>2]=QM()|0,t[e+12>>2]=n,t[e+8>>2]=JM()|0,t[e+32>>2]=6}function XM(){return 11704}function QM(){return 1436}function JM(){return E_()|0}function ZM(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&($M(r),yt(r)):n|0&&yt(n)}function $M(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function eN(e){e=e|0,tN(e,4933),nN(e)|0,rN(e)|0}function tN(e,n){e=e|0,n=n|0;var r=0;r=AN()|0,t[e>>2]=r,RN(r,n),Q2(t[e>>2]|0)}function nN(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,yN()|0),e|0}function rN(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,iN()|0),e|0}function iN(){var e=0;return p[7920]|0||(G3(10452),Ht(58,10452,he|0)|0,e=7920,t[e>>2]=1,t[e+4>>2]=0),rr(10452)|0||G3(10452),10452}function G3(e){e=e|0,lN(e),Wp(e,1)}function uN(e){e=e|0,oN(e+24|0)}function oN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function lN(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,1,n,cN()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function sN(e,n,r){e=e|0,n=+n,r=+r,aN(e,n,r)}function aN(e,n,r){e=e|0,n=+n,r=+r;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,s=u+8|0,D=u+17|0,l=u,h=u+16|0,Ol(D,n),U[s>>3]=+es(D,n),Ol(h,r),U[l>>3]=+es(h,r),fN(e,s,l),m=u}function fN(e,n,r){e=e|0,n=n|0,r=r|0,Y3(e+8|0,+U[n>>3],+U[r>>3]),p[e+24>>0]=1}function Y3(e,n,r){e=e|0,n=+n,r=+r,U[e>>3]=n,U[e+8>>3]=r}function cN(){return 1472}function dN(e,n){return e=+e,n=+n,pN(e,n)|0}function pN(e,n){e=+e,n=+n;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+16|0,h=u+4|0,D=u+8|0,S=u,l=Sa(8)|0,r=l,s=cn(16)|0,Ol(h,e),e=+es(h,e),Ol(D,n),Y3(s,e,+es(D,n)),D=r+4|0,t[D>>2]=s,s=cn(8)|0,D=t[D>>2]|0,t[S>>2]=0,t[h>>2]=t[S>>2],K3(s,D,h),t[l>>2]=s,m=u,r|0}function K3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1452,t[r+12>>2]=n,t[e+4>>2]=r}function hN(e){e=e|0,Pv(e),yt(e)}function vN(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function mN(e){e=e|0,yt(e)}function yN(){var e=0;return p[7928]|0||(X3(10488),Ht(59,10488,he|0)|0,e=7928,t[e>>2]=1,t[e+4>>2]=0),rr(10488)|0||X3(10488),10488}function X3(e){e=e|0,EN(e),Wp(e,60)}function gN(e){e=e|0,_N(e+24|0)}function _N(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function EN(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,6,n,TN()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function DN(e){e=e|0,wN(e)}function wN(e){e=e|0,SN(e)}function SN(e){e=e|0,Q3(e+8|0),p[e+24>>0]=1}function Q3(e){e=e|0,t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,t[e+12>>2]=0}function TN(){return 1492}function CN(){return xN()|0}function xN(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,u=cn(16)|0,Q3(u),s=e+4|0,t[s>>2]=u,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],K3(u,s,l),t[r>>2]=u,m=n,e|0}function AN(){var e=0;return p[7936]|0||(FN(10524),Ht(25,10524,he|0)|0,e=7936,t[e>>2]=1,t[e+4>>2]=0),10524}function RN(e,n){e=e|0,n=n|0,t[e>>2]=ON()|0,t[e+4>>2]=kN()|0,t[e+12>>2]=n,t[e+8>>2]=MN()|0,t[e+32>>2]=7}function ON(){return 11700}function kN(){return 1484}function MN(){return E_()|0}function NN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(LN(r),yt(r)):n|0&&yt(n)}function LN(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function FN(e){e=e|0,Ha(e)}function bN(e,n,r){e=e|0,n=n|0,r=r|0,e=Or(n)|0,n=PN(r)|0,r=IN(r,0)|0,pL(e,n,r,RE()|0,0)}function PN(e){return e=e|0,e|0}function IN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=RE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(Z3(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(WN(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function RE(){var e=0,n=0;if(p[7944]|0||(J3(10568),Ht(61,10568,he|0)|0,n=7944,t[n>>2]=1,t[n+4>>2]=0),!(rr(10568)|0)){e=10568,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));J3(10568)}return 10568}function J3(e){e=e|0,jN(e)}function BN(e){e=e|0,UN(e+24|0)}function UN(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function jN(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,17,n,Jh()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zN(e){return e=e|0,HN(t[(qN(e)|0)>>2]|0)|0}function qN(e){return e=e|0,(t[(RE()|0)+24>>2]|0)+(e<<3)|0}function HN(e){return e=e|0,z0(N_[e&7]()|0)|0}function Z3(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function WN(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=VN(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,GN(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,Z3(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,YN(e,l),KN(l),m=D;return}}function VN(e){return e=e|0,536870911}function GN(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function YN(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function KN(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function XN(){QN()}function QN(){JN(10604)}function JN(e){e=e|0,ZN(e,4955)}function ZN(e,n){e=e|0,n=n|0;var r=0;r=$N()|0,t[e>>2]=r,eL(r,n),Q2(t[e>>2]|0)}function $N(){var e=0;return p[7952]|0||(aL(10612),Ht(25,10612,he|0)|0,e=7952,t[e>>2]=1,t[e+4>>2]=0),10612}function eL(e,n){e=e|0,n=n|0,t[e>>2]=iL()|0,t[e+4>>2]=uL()|0,t[e+12>>2]=n,t[e+8>>2]=oL()|0,t[e+32>>2]=8}function Q2(e){e=e|0;var n=0,r=0;n=m,m=m+16|0,r=n,Mv()|0,t[r>>2]=e,tL(10608,r),m=n}function Mv(){return p[11714]|0||(t[2652]=0,Ht(62,10608,he|0)|0,p[11714]=1),10608}function tL(e,n){e=e|0,n=n|0;var r=0;r=cn(8)|0,t[r+4>>2]=t[n>>2],t[r>>2]=t[e>>2],t[e>>2]=r}function nL(e){e=e|0,rL(e)}function rL(e){e=e|0;var n=0,r=0;if(n=t[e>>2]|0,n|0)do r=n,n=t[n>>2]|0,yt(r);while((n|0)!=0);t[e>>2]=0}function iL(){return 11715}function uL(){return 1496}function oL(){return O1()|0}function lL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(sL(r),yt(r)):n|0&&yt(n)}function sL(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function aL(e){e=e|0,Ha(e)}function fL(e,n){e=e|0,n=n|0;var r=0,u=0;Mv()|0,r=t[2652]|0;e:do if(r|0){for(;u=t[r+4>>2]|0,!(u|0?(L8(OE(u)|0,e)|0)==0:0);)if(r=t[r>>2]|0,!r)break e;cL(u,n)}while(0)}function OE(e){return e=e|0,t[e+12>>2]|0}function cL(e,n){e=e|0,n=n|0;var r=0;e=e+36|0,r=t[e>>2]|0,r|0&&(ia(r),yt(r)),r=cn(4)|0,mf(r,n),t[e>>2]=r}function kE(){return p[11716]|0||(t[2664]=0,Ht(63,10656,he|0)|0,p[11716]=1),10656}function $3(){var e=0;return p[11717]|0?e=t[2665]|0:(dL(),t[2665]=1504,p[11717]=1,e=1504),e|0}function dL(){p[11740]|0||(p[11718]=dn(dn(8,0)|0,0)|0,p[11719]=dn(dn(0,0)|0,0)|0,p[11720]=dn(dn(0,16)|0,0)|0,p[11721]=dn(dn(8,0)|0,0)|0,p[11722]=dn(dn(0,0)|0,0)|0,p[11723]=dn(dn(8,0)|0,0)|0,p[11724]=dn(dn(0,0)|0,0)|0,p[11725]=dn(dn(8,0)|0,0)|0,p[11726]=dn(dn(0,0)|0,0)|0,p[11727]=dn(dn(8,0)|0,0)|0,p[11728]=dn(dn(0,0)|0,0)|0,p[11729]=dn(dn(0,0)|0,32)|0,p[11730]=dn(dn(0,0)|0,32)|0,p[11740]=1)}function e8(){return 1572}function pL(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0;s=m,m=m+32|0,O=s+16|0,M=s+12|0,S=s+8|0,D=s+4|0,h=s,t[O>>2]=e,t[M>>2]=n,t[S>>2]=r,t[D>>2]=u,t[h>>2]=l,kE()|0,hL(10656,O,M,S,D,h),m=s}function hL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0;h=cn(24)|0,h2(h+4|0,t[n>>2]|0,t[r>>2]|0,t[u>>2]|0,t[l>>2]|0,t[s>>2]|0),t[h>>2]=t[e>>2],t[e>>2]=h}function t8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0;if(st=m,m=m+32|0,Ee=st+20|0,ve=st+8|0,Qe=st+4|0,We=st,n=t[n>>2]|0,n|0){Pe=Ee+4|0,S=Ee+8|0,M=ve+4|0,O=ve+8|0,P=ve+8|0,K=Ee+8|0;do{if(h=n+4|0,D=ME(h)|0,D|0){if(l=Fy(D)|0,t[Ee>>2]=0,t[Pe>>2]=0,t[S>>2]=0,u=(by(D)|0)+1|0,vL(Ee,u),u|0)for(;u=u+-1|0,jf(ve,t[l>>2]|0),s=t[Pe>>2]|0,s>>>0<(t[K>>2]|0)>>>0?(t[s>>2]=t[ve>>2],t[Pe>>2]=(t[Pe>>2]|0)+4):NE(Ee,ve),u;)l=l+4|0;u=Py(D)|0,t[ve>>2]=0,t[M>>2]=0,t[O>>2]=0;e:do if(t[u>>2]|0)for(l=0,s=0;;){if((l|0)==(s|0)?mL(ve,u):(t[l>>2]=t[u>>2],t[M>>2]=(t[M>>2]|0)+4),u=u+4|0,!(t[u>>2]|0))break e;l=t[M>>2]|0,s=t[P>>2]|0}while(0);t[Qe>>2]=D_(h)|0,t[We>>2]=rr(D)|0,yL(r,e,Qe,We,Ee,ve),LE(ve),k1(Ee)}n=t[n>>2]|0}while((n|0)!=0)}m=st}function ME(e){return e=e|0,t[e+12>>2]|0}function Fy(e){return e=e|0,t[e+12>>2]|0}function by(e){return e=e|0,t[e+16>>2]|0}function vL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+32|0,r=l,u=t[e>>2]|0,(t[e+8>>2]|0)-u>>2>>>0>>0&&(a8(r,n,(t[e+4>>2]|0)-u>>2,e+8|0),f8(e,r),c8(r)),m=l}function NE(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=s8(e)|0,s>>>0>>0)li(e);else{D=t[e>>2]|0,M=(t[e+8>>2]|0)-D|0,S=M>>1,a8(r,M>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,f8(e,r),c8(r),m=h;return}}function Py(e){return e=e|0,t[e+8>>2]|0}function mL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;if(h=m,m=m+32|0,r=h,u=e+4|0,l=((t[u>>2]|0)-(t[e>>2]|0)>>2)+1|0,s=l8(e)|0,s>>>0>>0)li(e);else{D=t[e>>2]|0,M=(t[e+8>>2]|0)-D|0,S=M>>1,PL(r,M>>2>>>0>>1>>>0?S>>>0>>0?l:S:s,(t[u>>2]|0)-D>>2,e+8|0),s=r+8|0,t[t[s>>2]>>2]=t[n>>2],t[s>>2]=(t[s>>2]|0)+4,IL(e,r),BL(r),m=h;return}}function D_(e){return e=e|0,t[e>>2]|0}function yL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,gL(e,n,r,u,l,s)}function LE(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function k1(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-4-u|0)>>>2)<<2)),yt(r))}function gL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+48|0,O=h+40|0,D=h+32|0,P=h+24|0,S=h+12|0,M=h,Ta(D),e=vo(e)|0,t[P>>2]=t[n>>2],r=t[r>>2]|0,u=t[u>>2]|0,FE(S,l),_L(M,s),t[O>>2]=t[P>>2],EL(e,O,r,u,S,M),LE(M),k1(S),Ca(D),m=h}function FE(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(FL(e,u),bL(e,t[n>>2]|0,t[r>>2]|0,u))}function _L(e,n){e=e|0,n=n|0;var r=0,u=0;t[e>>2]=0,t[e+4>>2]=0,t[e+8>>2]=0,r=n+4|0,u=(t[r>>2]|0)-(t[n>>2]|0)>>2,u|0&&(NL(e,u),LL(e,t[n>>2]|0,t[r>>2]|0,u))}function EL(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+32|0,O=h+28|0,P=h+24|0,D=h+12|0,S=h,M=mo(DL()|0)|0,t[P>>2]=t[n>>2],t[O>>2]=t[P>>2],n=Vp(O)|0,r=n8(r)|0,u=bE(u)|0,t[D>>2]=t[l>>2],O=l+4|0,t[D+4>>2]=t[O>>2],P=l+8|0,t[D+8>>2]=t[P>>2],t[P>>2]=0,t[O>>2]=0,t[l>>2]=0,l=PE(D)|0,t[S>>2]=t[s>>2],O=s+4|0,t[S+4>>2]=t[O>>2],P=s+8|0,t[S+8>>2]=t[P>>2],t[P>>2]=0,t[O>>2]=0,t[s>>2]=0,G0(0,M|0,e|0,n|0,r|0,u|0,l|0,wL(S)|0)|0,LE(S),k1(D),m=h}function DL(){var e=0;return p[7968]|0||(kL(10708),e=7968,t[e>>2]=1,t[e+4>>2]=0),10708}function Vp(e){return e=e|0,i8(e)|0}function n8(e){return e=e|0,r8(e)|0}function bE(e){return e=e|0,z0(e)|0}function PE(e){return e=e|0,TL(e)|0}function wL(e){return e=e|0,SL(e)|0}function SL(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Sa(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=r8(t[(t[e>>2]|0)+(n<<2)>>2]|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function r8(e){return e=e|0,e|0}function TL(e){e=e|0;var n=0,r=0,u=0;if(u=(t[e+4>>2]|0)-(t[e>>2]|0)|0,r=u>>2,u=Sa(u+4|0)|0,t[u>>2]=r,r|0){n=0;do t[u+4+(n<<2)>>2]=i8((t[e>>2]|0)+(n<<2)|0)|0,n=n+1|0;while((n|0)!=(r|0))}return u|0}function i8(e){e=e|0;var n=0,r=0,u=0,l=0;return l=m,m=m+32|0,n=l+12|0,r=l,u=Ou(u8()|0)|0,u?(Zl(n,u),Tf(r,n),lI(e,r),e=Es(n)|0):e=CL(e)|0,m=l,e|0}function u8(){var e=0;return p[7960]|0||(OL(10664),Ht(25,10664,he|0)|0,e=7960,t[e>>2]=1,t[e+4>>2]=0),10664}function CL(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(4)|0,t[D>>2]=t[e>>2],s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],o8(e,s,l),t[u>>2]=e,m=r,n|0}function o8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1656,t[r+12>>2]=n,t[e+4>>2]=r}function xL(e){e=e|0,Pv(e),yt(e)}function AL(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function RL(e){e=e|0,yt(e)}function OL(e){e=e|0,Ha(e)}function kL(e){e=e|0,nl(e,ML()|0,5)}function ML(){return 1676}function NL(e,n){e=e|0,n=n|0;var r=0;if((l8(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function LL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function l8(e){return e=e|0,1073741823}function FL(e,n){e=e|0,n=n|0;var r=0;if((s8(e)|0)>>>0>>0&&li(e),n>>>0>1073741823)Xn();else{r=cn(n<<2)|0,t[e+4>>2]=r,t[e>>2]=r,t[e+8>>2]=r+(n<<2);return}}function bL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,u=e+4|0,e=r-n|0,(e|0)>0&&(pr(t[u>>2]|0,n|0,e|0)|0,t[u>>2]=(t[u>>2]|0)+(e>>>2<<2))}function s8(e){return e=e|0,1073741823}function PL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function IL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function BL(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function a8(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>1073741823)Xn();else{l=cn(n<<2)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<2)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<2)}function f8(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>2)<<2)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function c8(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-4-n|0)>>>2)<<2)),e=t[e>>2]|0,e|0&&yt(e)}function UL(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;if(ve=m,m=m+32|0,O=ve+20|0,P=ve+12|0,M=ve+16|0,K=ve+4|0,Pe=ve,Ee=ve+8|0,D=$3()|0,s=t[D>>2]|0,h=t[s>>2]|0,h|0)for(S=t[D+8>>2]|0,D=t[D+4>>2]|0;jf(O,h),jL(e,O,D,S),s=s+4|0,h=t[s>>2]|0,h;)S=S+1|0,D=D+1|0;if(s=e8()|0,h=t[s>>2]|0,h|0)do jf(O,h),t[P>>2]=t[s+4>>2],zL(n,O,P),s=s+8|0,h=t[s>>2]|0;while((h|0)!=0);if(s=t[(Mv()|0)>>2]|0,s|0)do n=t[s+4>>2]|0,jf(O,t[(Nv(n)|0)>>2]|0),t[P>>2]=OE(n)|0,qL(r,O,P),s=t[s>>2]|0;while((s|0)!=0);if(jf(M,0),s=kE()|0,t[O>>2]=t[M>>2],t8(O,s,l),s=t[(Mv()|0)>>2]|0,s|0){e=O+4|0,n=O+8|0,r=O+8|0;do{if(S=t[s+4>>2]|0,jf(P,t[(Nv(S)|0)>>2]|0),HL(K,d8(S)|0),h=t[K>>2]|0,h|0){t[O>>2]=0,t[e>>2]=0,t[n>>2]=0;do jf(Pe,t[(Nv(t[h+4>>2]|0)|0)>>2]|0),D=t[e>>2]|0,D>>>0<(t[r>>2]|0)>>>0?(t[D>>2]=t[Pe>>2],t[e>>2]=(t[e>>2]|0)+4):NE(O,Pe),h=t[h>>2]|0;while((h|0)!=0);WL(u,P,O),k1(O)}t[Ee>>2]=t[P>>2],M=p8(S)|0,t[O>>2]=t[Ee>>2],t8(O,M,l),m2(K),s=t[s>>2]|0}while((s|0)!=0)}m=ve}function jL(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,rF(e,n,r,u)}function zL(e,n,r){e=e|0,n=n|0,r=r|0,nF(e,n,r)}function Nv(e){return e=e|0,e|0}function qL(e,n,r){e=e|0,n=n|0,r=r|0,ZL(e,n,r)}function d8(e){return e=e|0,e+16|0}function HL(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(s=m,m=m+16|0,l=s+8|0,r=s,t[e>>2]=0,u=t[n>>2]|0,t[l>>2]=u,t[r>>2]=e,r=JL(r)|0,u|0){if(u=cn(12)|0,h=(h8(l)|0)+4|0,e=t[h+4>>2]|0,n=u+4|0,t[n>>2]=t[h>>2],t[n+4>>2]=e,n=t[t[l>>2]>>2]|0,t[l>>2]=n,!n)e=u;else for(n=u;e=cn(12)|0,S=(h8(l)|0)+4|0,D=t[S+4>>2]|0,h=e+4|0,t[h>>2]=t[S>>2],t[h+4>>2]=D,t[n>>2]=e,h=t[t[l>>2]>>2]|0,t[l>>2]=h,h;)n=e;t[e>>2]=t[r>>2],t[r>>2]=u}m=s}function WL(e,n,r){e=e|0,n=n|0,r=r|0,VL(e,n,r)}function p8(e){return e=e|0,e+24|0}function VL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+24|0,l=u+16|0,D=u+12|0,s=u,Ta(l),e=vo(e)|0,t[D>>2]=t[n>>2],FE(s,r),t[h>>2]=t[D>>2],YL(e,h,s),k1(s),Ca(l),m=u}function YL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=m,m=m+32|0,h=u+16|0,D=u+12|0,l=u,s=mo(KL()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Vp(h)|0,t[l>>2]=t[r>>2],h=r+4|0,t[l+4>>2]=t[h>>2],D=r+8|0,t[l+8>>2]=t[D>>2],t[D>>2]=0,t[h>>2]=0,t[r>>2]=0,F0(0,s|0,e|0,n|0,PE(l)|0)|0,k1(l),m=u}function KL(){var e=0;return p[7976]|0||(XL(10720),e=7976,t[e>>2]=1,t[e+4>>2]=0),10720}function XL(e){e=e|0,nl(e,QL()|0,2)}function QL(){return 1732}function JL(e){return e=e|0,t[e>>2]|0}function h8(e){return e=e|0,t[e>>2]|0}function ZL(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,Ta(l),e=vo(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],v8(e,s,r),Ca(l),m=u}function v8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+16|0,s=u+4|0,h=u,l=mo($L()|0)|0,t[h>>2]=t[n>>2],t[s>>2]=t[h>>2],n=Vp(s)|0,F0(0,l|0,e|0,n|0,n8(r)|0)|0,m=u}function $L(){var e=0;return p[7984]|0||(eF(10732),e=7984,t[e>>2]=1,t[e+4>>2]=0),10732}function eF(e){e=e|0,nl(e,tF()|0,2)}function tF(){return 1744}function nF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;u=m,m=m+32|0,s=u+16|0,l=u+8|0,h=u,Ta(l),e=vo(e)|0,t[h>>2]=t[n>>2],r=t[r>>2]|0,t[s>>2]=t[h>>2],v8(e,s,r),Ca(l),m=u}function rF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,Ta(s),e=vo(e)|0,t[D>>2]=t[n>>2],r=p[r>>0]|0,u=p[u>>0]|0,t[h>>2]=t[D>>2],iF(e,h,r,u),Ca(s),m=l}function iF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,h=l+4|0,D=l,s=mo(uF()|0)|0,t[D>>2]=t[n>>2],t[h>>2]=t[D>>2],n=Vp(h)|0,r=Lv(r)|0,Bn(0,s|0,e|0,n|0,r|0,Lv(u)|0)|0,m=l}function uF(){var e=0;return p[7992]|0||(lF(10744),e=7992,t[e>>2]=1,t[e+4>>2]=0),10744}function Lv(e){return e=e|0,oF(e)|0}function oF(e){return e=e|0,e&255|0}function lF(e){e=e|0,nl(e,sF()|0,3)}function sF(){return 1756}function aF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;switch(K=m,m=m+32|0,D=K+8|0,S=K+4|0,M=K+20|0,O=K,ma(e,0),u=oI(n)|0,t[D>>2]=0,P=D+4|0,t[P>>2]=0,t[D+8>>2]=0,u<<24>>24){case 0:{p[M>>0]=0,fF(S,r,M),w_(e,S)|0,B0(S);break}case 8:{P=qE(n)|0,p[M>>0]=8,jf(O,t[P+4>>2]|0),cF(S,r,M,O,P+8|0),w_(e,S)|0,B0(S);break}case 9:{if(s=qE(n)|0,n=t[s+4>>2]|0,n|0)for(h=D+8|0,l=s+12|0;n=n+-1|0,jf(S,t[l>>2]|0),u=t[P>>2]|0,u>>>0<(t[h>>2]|0)>>>0?(t[u>>2]=t[S>>2],t[P>>2]=(t[P>>2]|0)+4):NE(D,S),n;)l=l+4|0;p[M>>0]=9,jf(O,t[s+8>>2]|0),dF(S,r,M,O,D),w_(e,S)|0,B0(S);break}default:P=qE(n)|0,p[M>>0]=u,jf(O,t[P+4>>2]|0),pF(S,r,M,O),w_(e,S)|0,B0(S)}k1(D),m=K}function fF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;u=m,m=m+16|0,l=u,Ta(l),n=vo(n)|0,xF(e,n,p[r>>0]|0),Ca(l),m=u}function w_(e,n){e=e|0,n=n|0;var r=0;return r=t[e>>2]|0,r|0&&Ir(r|0),t[e>>2]=t[n>>2],t[n>>2]=0,e|0}function cF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+32|0,D=s+16|0,h=s+8|0,S=s,Ta(h),n=vo(n)|0,r=p[r>>0]|0,t[S>>2]=t[u>>2],l=t[l>>2]|0,t[D>>2]=t[S>>2],wF(e,n,r,D,l),Ca(h),m=s}function dF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0;s=m,m=m+32|0,S=s+24|0,h=s+16|0,M=s+12|0,D=s,Ta(h),n=vo(n)|0,r=p[r>>0]|0,t[M>>2]=t[u>>2],FE(D,l),t[S>>2]=t[M>>2],gF(e,n,r,S,D),k1(D),Ca(h),m=s}function pF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+32|0,h=l+16|0,s=l+8|0,D=l,Ta(s),n=vo(n)|0,r=p[r>>0]|0,t[D>>2]=t[u>>2],t[h>>2]=t[D>>2],hF(e,n,r,h),Ca(s),m=l}function hF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0,h=0,D=0;l=m,m=m+16|0,s=l+4|0,D=l,h=mo(vF()|0)|0,r=Lv(r)|0,t[D>>2]=t[u>>2],t[s>>2]=t[D>>2],S_(e,F0(0,h|0,n|0,r|0,Vp(s)|0)|0),m=l}function vF(){var e=0;return p[8e3]|0||(mF(10756),e=8e3,t[e>>2]=1,t[e+4>>2]=0),10756}function S_(e,n){e=e|0,n=n|0,ma(e,n)}function mF(e){e=e|0,nl(e,yF()|0,2)}function yF(){return 1772}function gF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0;s=m,m=m+32|0,S=s+16|0,M=s+12|0,h=s,D=mo(_F()|0)|0,r=Lv(r)|0,t[M>>2]=t[u>>2],t[S>>2]=t[M>>2],u=Vp(S)|0,t[h>>2]=t[l>>2],S=l+4|0,t[h+4>>2]=t[S>>2],M=l+8|0,t[h+8>>2]=t[M>>2],t[M>>2]=0,t[S>>2]=0,t[l>>2]=0,S_(e,Bn(0,D|0,n|0,r|0,u|0,PE(h)|0)|0),k1(h),m=s}function _F(){var e=0;return p[8008]|0||(EF(10768),e=8008,t[e>>2]=1,t[e+4>>2]=0),10768}function EF(e){e=e|0,nl(e,DF()|0,3)}function DF(){return 1784}function wF(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0;s=m,m=m+16|0,D=s+4|0,S=s,h=mo(SF()|0)|0,r=Lv(r)|0,t[S>>2]=t[u>>2],t[D>>2]=t[S>>2],u=Vp(D)|0,S_(e,Bn(0,h|0,n|0,r|0,u|0,bE(l)|0)|0),m=s}function SF(){var e=0;return p[8016]|0||(TF(10780),e=8016,t[e>>2]=1,t[e+4>>2]=0),10780}function TF(e){e=e|0,nl(e,CF()|0,3)}function CF(){return 1800}function xF(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;u=mo(AF()|0)|0,S_(e,ji(0,u|0,n|0,Lv(r)|0)|0)}function AF(){var e=0;return p[8024]|0||(RF(10792),e=8024,t[e>>2]=1,t[e+4>>2]=0),10792}function RF(e){e=e|0,nl(e,OF()|0,1)}function OF(){return 1816}function kF(){MF(),NF(),LF()}function MF(){t[2702]=H8(65536)|0}function NF(){$F(10856)}function LF(){FF(10816)}function FF(e){e=e|0,bF(e,5044),PF(e)|0}function bF(e,n){e=e|0,n=n|0;var r=0;r=u8()|0,t[e>>2]=r,YF(r,n),Q2(t[e>>2]|0)}function PF(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,IF()|0),e|0}function IF(){var e=0;return p[8032]|0||(m8(10820),Ht(64,10820,he|0)|0,e=8032,t[e>>2]=1,t[e+4>>2]=0),rr(10820)|0||m8(10820),10820}function m8(e){e=e|0,jF(e),Wp(e,25)}function BF(e){e=e|0,UF(e+24|0)}function UF(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function jF(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,18,n,WF()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function zF(e,n){e=e|0,n=n|0,qF(e,n)}function qF(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;r=m,m=m+16|0,u=r,l=r+4|0,Of(l,n),t[u>>2]=kf(l,n)|0,HF(e,u),m=r}function HF(e,n){e=e|0,n=n|0,y8(e+4|0,t[n>>2]|0),p[e+8>>0]=1}function y8(e,n){e=e|0,n=n|0,t[e>>2]=n}function WF(){return 1824}function VF(e){return e=e|0,GF(e)|0}function GF(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0;return r=m,m=m+16|0,l=r+4|0,h=r,u=Sa(8)|0,n=u,D=cn(4)|0,Of(l,e),y8(D,kf(l,e)|0),s=n+4|0,t[s>>2]=D,e=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],o8(e,s,l),t[u>>2]=e,m=r,n|0}function Sa(e){e=e|0;var n=0,r=0;return e=e+7&-8,(e>>>0<=32768?(n=t[2701]|0,e>>>0<=(65536-n|0)>>>0):0)?(r=(t[2702]|0)+n|0,t[2701]=n+e,e=r):(e=H8(e+8|0)|0,t[e>>2]=t[2703],t[2703]=e,e=e+8|0),e|0}function YF(e,n){e=e|0,n=n|0,t[e>>2]=KF()|0,t[e+4>>2]=XF()|0,t[e+12>>2]=n,t[e+8>>2]=QF()|0,t[e+32>>2]=9}function KF(){return 11744}function XF(){return 1832}function QF(){return E_()|0}function JF(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(ZF(r),yt(r)):n|0&&yt(n)}function ZF(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function $F(e){e=e|0,eb(e,5052),tb(e)|0,nb(e,5058,26)|0,rb(e,5069,1)|0,ib(e,5077,10)|0,ub(e,5087,19)|0,ob(e,5094,27)|0}function eb(e,n){e=e|0,n=n|0;var r=0;r=ZP()|0,t[e>>2]=r,$P(r,n),Q2(t[e>>2]|0)}function tb(e){e=e|0;var n=0;return n=t[e>>2]|0,Hp(n,BP()|0),e|0}function nb(e,n,r){return e=e|0,n=n|0,r=r|0,EP(e,Or(n)|0,r,0),e|0}function rb(e,n,r){return e=e|0,n=n|0,r=r|0,uP(e,Or(n)|0,r,0),e|0}function ib(e,n,r){return e=e|0,n=n|0,r=r|0,Ib(e,Or(n)|0,r,0),e|0}function ub(e,n,r){return e=e|0,n=n|0,r=r|0,wb(e,Or(n)|0,r,0),e|0}function g8(e,n){e=e|0,n=n|0;var r=0,u=0;e:for(;;){for(r=t[2703]|0;;){if((r|0)==(n|0))break e;if(u=t[r>>2]|0,t[2703]=u,!r)r=u;else break}yt(r)}t[2701]=e}function ob(e,n,r){return e=e|0,n=n|0,r=r|0,lb(e,Or(n)|0,r,0),e|0}function lb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=IE()|0,e=sb(r)|0,vi(s,n,l,e,ab(r,u)|0,u)}function IE(){var e=0,n=0;if(p[8040]|0||(E8(10860),Ht(65,10860,he|0)|0,n=8040,t[n>>2]=1,t[n+4>>2]=0),!(rr(10860)|0)){e=10860,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));E8(10860)}return 10860}function sb(e){return e=e|0,e|0}function ab(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=IE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(_8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(fb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function _8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function fb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=cb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,db(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,_8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,pb(e,l),hb(l),m=D;return}}function cb(e){return e=e|0,536870911}function db(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function pb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function hb(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function E8(e){e=e|0,yb(e)}function vb(e){e=e|0,mb(e+24|0)}function mb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function yb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,11,n,gb()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function gb(){return 1840}function _b(e,n,r){e=e|0,n=n|0,r=r|0,Db(t[(Eb(e)|0)>>2]|0,n,r)}function Eb(e){return e=e|0,(t[(IE()|0)+24>>2]|0)+(e<<3)|0}function Db(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+1|0,l=u,Of(s,n),n=kf(s,n)|0,Of(l,r),r=kf(l,r)|0,N1[e&31](n,r),m=u}function wb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=BE()|0,e=Sb(r)|0,vi(s,n,l,e,Tb(r,u)|0,u)}function BE(){var e=0,n=0;if(p[8048]|0||(w8(10896),Ht(66,10896,he|0)|0,n=8048,t[n>>2]=1,t[n+4>>2]=0),!(rr(10896)|0)){e=10896,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));w8(10896)}return 10896}function Sb(e){return e=e|0,e|0}function Tb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=BE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(D8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(Cb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function D8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function Cb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=xb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,Ab(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,D8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Rb(e,l),Ob(l),m=D;return}}function xb(e){return e=e|0,536870911}function Ab(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Rb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Ob(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function w8(e){e=e|0,Nb(e)}function kb(e){e=e|0,Mb(e+24|0)}function Mb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Nb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,11,n,Lb()|0,1),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Lb(){return 1852}function Fb(e,n){return e=e|0,n=n|0,Pb(t[(bb(e)|0)>>2]|0,n)|0}function bb(e){return e=e|0,(t[(BE()|0)+24>>2]|0)+(e<<3)|0}function Pb(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,Of(u,n),n=kf(u,n)|0,n=z0(Xp[e&31](n)|0)|0,m=r,n|0}function Ib(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=UE()|0,e=Bb(r)|0,vi(s,n,l,e,Ub(r,u)|0,u)}function UE(){var e=0,n=0;if(p[8056]|0||(T8(10932),Ht(67,10932,he|0)|0,n=8056,t[n>>2]=1,t[n+4>>2]=0),!(rr(10932)|0)){e=10932,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));T8(10932)}return 10932}function Bb(e){return e=e|0,e|0}function Ub(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=UE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(S8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(jb(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function S8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function jb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=zb(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,qb(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,S8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,Hb(e,l),Wb(l),m=D;return}}function zb(e){return e=e|0,536870911}function qb(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function Hb(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function Wb(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function T8(e){e=e|0,Yb(e)}function Vb(e){e=e|0,Gb(e+24|0)}function Gb(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function Yb(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,7,n,Kb()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function Kb(){return 1860}function Xb(e,n,r){return e=e|0,n=n|0,r=r|0,Jb(t[(Qb(e)|0)>>2]|0,n,r)|0}function Qb(e){return e=e|0,(t[(UE()|0)+24>>2]|0)+(e<<3)|0}function Jb(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0;return u=m,m=m+32|0,h=u+12|0,s=u+8|0,D=u,S=u+16|0,l=u+4|0,Zb(S,n),$b(D,S,n),qs(l,r),r=Hs(l,r)|0,t[h>>2]=t[D>>2],jy[e&15](s,h,r),r=eP(s)|0,B0(s),Ws(l),m=u,r|0}function Zb(e,n){e=e|0,n=n|0}function $b(e,n,r){e=e|0,n=n|0,r=r|0,tP(e,r)}function eP(e){return e=e|0,vo(e)|0}function tP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0;l=m,m=m+16|0,r=l,u=n,u&1?(nP(r,0),Yi(u|0,r|0)|0,rP(e,r),iP(r)):t[e>>2]=t[n>>2],m=l}function nP(e,n){e=e|0,n=n|0,l2(e,n),t[e+4>>2]=0,p[e+8>>0]=0}function rP(e,n){e=e|0,n=n|0,t[e>>2]=t[n+4>>2]}function iP(e){e=e|0,p[e+8>>0]=0}function uP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=jE()|0,e=oP(r)|0,vi(s,n,l,e,lP(r,u)|0,u)}function jE(){var e=0,n=0;if(p[8064]|0||(x8(10968),Ht(68,10968,he|0)|0,n=8064,t[n>>2]=1,t[n+4>>2]=0),!(rr(10968)|0)){e=10968,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));x8(10968)}return 10968}function oP(e){return e=e|0,e|0}function lP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=jE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(C8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(sP(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function C8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function sP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=aP(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,fP(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,C8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,cP(e,l),dP(l),m=D;return}}function aP(e){return e=e|0,536870911}function fP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function cP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function dP(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function x8(e){e=e|0,vP(e)}function pP(e){e=e|0,hP(e+24|0)}function hP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function vP(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,1,n,mP()|0,5),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function mP(){return 1872}function yP(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,_P(t[(gP(e)|0)>>2]|0,n,r,u,l,s)}function gP(e){return e=e|0,(t[(jE()|0)+24>>2]|0)+(e<<3)|0}function _P(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0;h=m,m=m+32|0,D=h+16|0,S=h+12|0,M=h+8|0,O=h+4|0,P=h,qs(D,n),n=Hs(D,n)|0,qs(S,r),r=Hs(S,r)|0,qs(M,u),u=Hs(M,u)|0,qs(O,l),l=Hs(O,l)|0,qs(P,s),s=Hs(P,s)|0,K8[e&1](n,r,u,l,s),Ws(P),Ws(O),Ws(M),Ws(S),Ws(D),m=h}function EP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;s=t[e>>2]|0,l=zE()|0,e=DP(r)|0,vi(s,n,l,e,wP(r,u)|0,u)}function zE(){var e=0,n=0;if(p[8072]|0||(R8(11004),Ht(69,11004,he|0)|0,n=8072,t[n>>2]=1,t[n+4>>2]=0),!(rr(11004)|0)){e=11004,n=e+36|0;do t[e>>2]=0,e=e+4|0;while((e|0)<(n|0));R8(11004)}return 11004}function DP(e){return e=e|0,e|0}function wP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0,D=0,S=0;return D=m,m=m+16|0,l=D,s=D+4|0,t[l>>2]=e,S=zE()|0,h=S+24|0,n=dn(n,4)|0,t[s>>2]=n,r=S+28|0,u=t[r>>2]|0,u>>>0<(t[S+32>>2]|0)>>>0?(A8(u,e,n),n=(t[r>>2]|0)+8|0,t[r>>2]=n):(SP(h,l,s),n=t[r>>2]|0),m=D,(n-(t[h>>2]|0)>>3)+-1|0}function A8(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,t[e+4>>2]=r}function SP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0;if(D=m,m=m+32|0,l=D,s=e+4|0,h=((t[s>>2]|0)-(t[e>>2]|0)>>3)+1|0,u=TP(e)|0,u>>>0>>0)li(e);else{S=t[e>>2]|0,O=(t[e+8>>2]|0)-S|0,M=O>>2,CP(l,O>>3>>>0>>1>>>0?M>>>0>>0?h:M:u,(t[s>>2]|0)-S>>3,e+8|0),h=l+8|0,A8(t[h>>2]|0,t[n>>2]|0,t[r>>2]|0),t[h>>2]=(t[h>>2]|0)+8,xP(e,l),AP(l),m=D;return}}function TP(e){return e=e|0,536870911}function CP(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0;t[e+12>>2]=0,t[e+16>>2]=u;do if(n)if(n>>>0>536870911)Xn();else{l=cn(n<<3)|0;break}else l=0;while(0);t[e>>2]=l,u=l+(r<<3)|0,t[e+8>>2]=u,t[e+4>>2]=u,t[e+12>>2]=l+(n<<3)}function xP(e,n){e=e|0,n=n|0;var r=0,u=0,l=0,s=0,h=0;u=t[e>>2]|0,h=e+4|0,s=n+4|0,l=(t[h>>2]|0)-u|0,r=(t[s>>2]|0)+(0-(l>>3)<<3)|0,t[s>>2]=r,(l|0)>0?(pr(r|0,u|0,l|0)|0,u=s,r=t[s>>2]|0):u=s,s=t[e>>2]|0,t[e>>2]=r,t[u>>2]=s,s=n+8|0,l=t[h>>2]|0,t[h>>2]=t[s>>2],t[s>>2]=l,s=e+8|0,h=n+12|0,e=t[s>>2]|0,t[s>>2]=t[h>>2],t[h>>2]=e,t[n>>2]=t[u>>2]}function AP(e){e=e|0;var n=0,r=0,u=0;n=t[e+4>>2]|0,r=e+8|0,u=t[r>>2]|0,(u|0)!=(n|0)&&(t[r>>2]=u+(~((u+-8-n|0)>>>3)<<3)),e=t[e>>2]|0,e|0&&yt(e)}function R8(e){e=e|0,kP(e)}function RP(e){e=e|0,OP(e+24|0)}function OP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function kP(e){e=e|0;var n=0;n=dr()|0,Pn(e,1,12,n,MP()|0,2),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function MP(){return 1896}function NP(e,n,r){e=e|0,n=n|0,r=r|0,FP(t[(LP(e)|0)>>2]|0,n,r)}function LP(e){return e=e|0,(t[(zE()|0)+24>>2]|0)+(e<<3)|0}function FP(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;u=m,m=m+16|0,s=u+4|0,l=u,bP(s,n),n=PP(s,n)|0,qs(l,r),r=Hs(l,r)|0,N1[e&31](n,r),Ws(l),m=u}function bP(e,n){e=e|0,n=n|0}function PP(e,n){return e=e|0,n=n|0,IP(n)|0}function IP(e){return e=e|0,e|0}function BP(){var e=0;return p[8080]|0||(O8(11040),Ht(70,11040,he|0)|0,e=8080,t[e>>2]=1,t[e+4>>2]=0),rr(11040)|0||O8(11040),11040}function O8(e){e=e|0,zP(e),Wp(e,71)}function UP(e){e=e|0,jP(e+24|0)}function jP(e){e=e|0;var n=0,r=0,u=0;r=t[e>>2]|0,u=r,r|0&&(e=e+4|0,n=t[e>>2]|0,(n|0)!=(r|0)&&(t[e>>2]=n+(~((n+-8-u|0)>>>3)<<3)),yt(r))}function zP(e){e=e|0;var n=0;n=dr()|0,Pn(e,5,7,n,VP()|0,0),t[e+24>>2]=0,t[e+28>>2]=0,t[e+32>>2]=0}function qP(e){e=e|0,HP(e)}function HP(e){e=e|0,WP(e)}function WP(e){e=e|0,p[e+8>>0]=1}function VP(){return 1936}function GP(){return YP()|0}function YP(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0;return n=m,m=m+16|0,l=n+4|0,h=n,r=Sa(8)|0,e=r,s=e+4|0,t[s>>2]=cn(1)|0,u=cn(8)|0,s=t[s>>2]|0,t[h>>2]=0,t[l>>2]=t[h>>2],KP(u,s,l),t[r>>2]=u,m=n,e|0}function KP(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]=n,r=cn(16)|0,t[r+4>>2]=0,t[r+8>>2]=0,t[r>>2]=1916,t[r+12>>2]=n,t[e+4>>2]=r}function XP(e){e=e|0,Pv(e),yt(e)}function QP(e){e=e|0,e=t[e+12>>2]|0,e|0&&yt(e)}function JP(e){e=e|0,yt(e)}function ZP(){var e=0;return p[8088]|0||(uI(11076),Ht(25,11076,he|0)|0,e=8088,t[e>>2]=1,t[e+4>>2]=0),11076}function $P(e,n){e=e|0,n=n|0,t[e>>2]=eI()|0,t[e+4>>2]=tI()|0,t[e+12>>2]=n,t[e+8>>2]=nI()|0,t[e+32>>2]=10}function eI(){return 11745}function tI(){return 1940}function nI(){return O1()|0}function rI(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,(Pl(u,896)|0)==512?r|0&&(iI(r),yt(r)):n|0&&yt(n)}function iI(e){e=e|0,e=t[e+4>>2]|0,e|0&&J2(e)}function uI(e){e=e|0,Ha(e)}function jf(e,n){e=e|0,n=n|0,t[e>>2]=n}function qE(e){return e=e|0,t[e>>2]|0}function oI(e){return e=e|0,p[t[e>>2]>>0]|0}function lI(e,n){e=e|0,n=n|0;var r=0,u=0;r=m,m=m+16|0,u=r,t[u>>2]=t[e>>2],sI(n,u)|0,m=r}function sI(e,n){e=e|0,n=n|0;var r=0;return r=aI(t[e>>2]|0,n)|0,n=e+4|0,t[(t[n>>2]|0)+8>>2]=r,t[(t[n>>2]|0)+8>>2]|0}function aI(e,n){e=e|0,n=n|0;var r=0,u=0;return r=m,m=m+16|0,u=r,Ta(u),e=vo(e)|0,n=fI(e,t[n>>2]|0)|0,Ca(u),m=r,n|0}function Ta(e){e=e|0,t[e>>2]=t[2701],t[e+4>>2]=t[2703]}function fI(e,n){e=e|0,n=n|0;var r=0;return r=mo(cI()|0)|0,ji(0,r|0,e|0,bE(n)|0)|0}function Ca(e){e=e|0,g8(t[e>>2]|0,t[e+4>>2]|0)}function cI(){var e=0;return p[8096]|0||(dI(11120),e=8096,t[e>>2]=1,t[e+4>>2]=0),11120}function dI(e){e=e|0,nl(e,pI()|0,1)}function pI(){return 1948}function hI(){vI()}function vI(){var e=0,n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;if(Ee=m,m=m+16|0,O=Ee+4|0,P=Ee,Ln(65536,10804,t[2702]|0,10812),r=$3()|0,n=t[r>>2]|0,e=t[n>>2]|0,e|0)for(u=t[r+8>>2]|0,r=t[r+4>>2]|0;Wl(e|0,k[r>>0]|0|0,p[u>>0]|0),n=n+4|0,e=t[n>>2]|0,e;)u=u+1|0,r=r+1|0;if(e=e8()|0,n=t[e>>2]|0,n|0)do xo(n|0,t[e+4>>2]|0),e=e+8|0,n=t[e>>2]|0;while((n|0)!=0);xo(mI()|0,5167),M=Mv()|0,e=t[M>>2]|0;e:do if(e|0){do yI(t[e+4>>2]|0),e=t[e>>2]|0;while((e|0)!=0);if(e=t[M>>2]|0,e|0){S=M;do{for(;l=e,e=t[e>>2]|0,l=t[l+4>>2]|0,!!(gI(l)|0);)if(t[P>>2]=S,t[O>>2]=t[P>>2],_I(M,O)|0,!e)break e;if(EI(l),S=t[S>>2]|0,n=k8(l)|0,s=lo()|0,h=m,m=m+((1*(n<<2)|0)+15&-16)|0,D=m,m=m+((1*(n<<2)|0)+15&-16)|0,n=t[(d8(l)|0)>>2]|0,n|0)for(r=h,u=D;t[r>>2]=t[(Nv(t[n+4>>2]|0)|0)>>2],t[u>>2]=t[n+8>>2],n=t[n>>2]|0,n;)r=r+4|0,u=u+4|0;ve=Nv(l)|0,n=DI(l)|0,r=k8(l)|0,u=wI(l)|0,Ao(ve|0,n|0,h|0,D|0,r|0,u|0,OE(l)|0),ci(s|0)}while((e|0)!=0)}}while(0);if(e=t[(kE()|0)>>2]|0,e|0)do ve=e+4|0,M=ME(ve)|0,l=Py(M)|0,s=Fy(M)|0,h=(by(M)|0)+1|0,D=T_(M)|0,S=M8(ve)|0,M=rr(M)|0,O=D_(ve)|0,P=HE(ve)|0,oo(0,l|0,s|0,h|0,D|0,S|0,M|0,O|0,P|0,WE(ve)|0),e=t[e>>2]|0;while((e|0)!=0);e=t[(Mv()|0)>>2]|0;e:do if(e|0){t:for(;;){if(n=t[e+4>>2]|0,n|0?(K=t[(Nv(n)|0)>>2]|0,Pe=t[(p8(n)|0)>>2]|0,Pe|0):0){r=Pe;do{n=r+4|0,u=ME(n)|0;n:do if(u|0)switch(rr(u)|0){case 0:break t;case 4:case 3:case 2:{D=Py(u)|0,S=Fy(u)|0,M=(by(u)|0)+1|0,O=T_(u)|0,P=rr(u)|0,ve=D_(n)|0,oo(K|0,D|0,S|0,M|0,O|0,0,P|0,ve|0,HE(n)|0,WE(n)|0);break n}case 1:{h=Py(u)|0,D=Fy(u)|0,S=(by(u)|0)+1|0,M=T_(u)|0,O=M8(n)|0,P=rr(u)|0,ve=D_(n)|0,oo(K|0,h|0,D|0,S|0,M|0,O|0,P|0,ve|0,HE(n)|0,WE(n)|0);break n}case 5:{M=Py(u)|0,O=Fy(u)|0,P=(by(u)|0)+1|0,ve=T_(u)|0,oo(K|0,M|0,O|0,P|0,ve|0,SI(u)|0,rr(u)|0,0,0,0);break n}default:break n}while(0);r=t[r>>2]|0}while((r|0)!=0)}if(e=t[e>>2]|0,!e)break e}Xn()}while(0);Ms(),m=Ee}function mI(){return 11703}function yI(e){e=e|0,p[e+40>>0]=0}function gI(e){return e=e|0,(p[e+40>>0]|0)!=0|0}function _I(e,n){return e=e|0,n=n|0,n=TI(n)|0,e=t[n>>2]|0,t[n>>2]=t[e>>2],yt(e),t[n>>2]|0}function EI(e){e=e|0,p[e+40>>0]=1}function k8(e){return e=e|0,t[e+20>>2]|0}function DI(e){return e=e|0,t[e+8>>2]|0}function wI(e){return e=e|0,t[e+32>>2]|0}function T_(e){return e=e|0,t[e+4>>2]|0}function M8(e){return e=e|0,t[e+4>>2]|0}function HE(e){return e=e|0,t[e+8>>2]|0}function WE(e){return e=e|0,t[e+16>>2]|0}function SI(e){return e=e|0,t[e+20>>2]|0}function TI(e){return e=e|0,t[e>>2]|0}function C_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0;Qt=m,m=m+16|0,K=Qt;do if(e>>>0<245){if(M=e>>>0<11?16:e+11&-8,e=M>>>3,P=t[2783]|0,r=P>>>e,r&3|0)return n=(r&1^1)+e|0,e=11172+(n<<1<<2)|0,r=e+8|0,u=t[r>>2]|0,l=u+8|0,s=t[l>>2]|0,(e|0)==(s|0)?t[2783]=P&~(1<>2]=e,t[r>>2]=s),Fe=n<<3,t[u+4>>2]=Fe|3,Fe=u+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1,Fe=l,m=Qt,Fe|0;if(O=t[2785]|0,M>>>0>O>>>0){if(r|0)return n=2<>>12&16,n=n>>>h,r=n>>>5&8,n=n>>>r,l=n>>>2&4,n=n>>>l,e=n>>>1&2,n=n>>>e,u=n>>>1&1,u=(r|h|l|e|u)+(n>>>u)|0,n=11172+(u<<1<<2)|0,e=n+8|0,l=t[e>>2]|0,h=l+8|0,r=t[h>>2]|0,(n|0)==(r|0)?(e=P&~(1<>2]=n,t[e>>2]=r,e=P),s=(u<<3)-M|0,t[l+4>>2]=M|3,u=l+M|0,t[u+4>>2]=s|1,t[u+s>>2]=s,O|0&&(l=t[2788]|0,n=O>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=l,t[n+12>>2]=l,t[l+8>>2]=n,t[l+12>>2]=r),t[2785]=s,t[2788]=u,Fe=h,m=Qt,Fe|0;if(D=t[2784]|0,D){if(r=(D&0-D)+-1|0,h=r>>>12&16,r=r>>>h,s=r>>>5&8,r=r>>>s,S=r>>>2&4,r=r>>>S,u=r>>>1&2,r=r>>>u,e=r>>>1&1,e=t[11436+((s|h|S|u|e)+(r>>>e)<<2)>>2]|0,r=(t[e+4>>2]&-8)-M|0,u=t[e+16+(((t[e+16>>2]|0)==0&1)<<2)>>2]|0,!u)S=e,s=r;else{do h=(t[u+4>>2]&-8)-M|0,S=h>>>0>>0,r=S?h:r,e=S?u:e,u=t[u+16+(((t[u+16>>2]|0)==0&1)<<2)>>2]|0;while((u|0)!=0);S=e,s=r}if(h=S+M|0,S>>>0>>0){l=t[S+24>>2]|0,n=t[S+12>>2]|0;do if((n|0)==(S|0)){if(e=S+20|0,n=t[e>>2]|0,!n&&(e=S+16|0,n=t[e>>2]|0,!n)){r=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0,r=n}else r=t[S+8>>2]|0,t[r+12>>2]=n,t[n+8>>2]=r,r=n;while(0);do if(l|0){if(n=t[S+28>>2]|0,e=11436+(n<<2)|0,(S|0)==(t[e>>2]|0)){if(t[e>>2]=r,!r){t[2784]=D&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=l,n=t[S+16>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),n=t[S+20>>2]|0,n|0&&(t[r+20>>2]=n,t[n+24>>2]=r)}while(0);return s>>>0<16?(Fe=s+M|0,t[S+4>>2]=Fe|3,Fe=S+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1):(t[S+4>>2]=M|3,t[h+4>>2]=s|1,t[h+s>>2]=s,O|0&&(u=t[2788]|0,n=O>>>3,r=11172+(n<<1<<2)|0,n=1<>2]|0):(t[2783]=P|n,n=r,e=r+8|0),t[e>>2]=u,t[n+12>>2]=u,t[u+8>>2]=n,t[u+12>>2]=r),t[2785]=s,t[2788]=h),Fe=S+8|0,m=Qt,Fe|0}else P=M}else P=M}else P=M}else if(e>>>0<=4294967231)if(e=e+11|0,M=e&-8,S=t[2784]|0,S){u=0-M|0,e=e>>>8,e?M>>>0>16777215?D=31:(P=(e+1048320|0)>>>16&8,Re=e<>>16&4,Re=Re<>>16&2,D=14-(O|P|D)+(Re<>>15)|0,D=M>>>(D+7|0)&1|D<<1):D=0,r=t[11436+(D<<2)>>2]|0;e:do if(!r)r=0,e=0,Re=57;else for(e=0,h=M<<((D|0)==31?0:25-(D>>>1)|0),s=0;;){if(l=(t[r+4>>2]&-8)-M|0,l>>>0>>0)if(l)e=r,u=l;else{e=r,u=0,l=r,Re=61;break e}if(l=t[r+20>>2]|0,r=t[r+16+(h>>>31<<2)>>2]|0,s=(l|0)==0|(l|0)==(r|0)?s:l,l=(r|0)==0,l){r=s,Re=57;break}else h=h<<((l^1)&1)}while(0);if((Re|0)==57){if((r|0)==0&(e|0)==0){if(e=2<>>12&16,P=P>>>h,s=P>>>5&8,P=P>>>s,D=P>>>2&4,P=P>>>D,O=P>>>1&2,P=P>>>O,r=P>>>1&1,e=0,r=t[11436+((s|h|D|O|r)+(P>>>r)<<2)>>2]|0}r?(l=r,Re=61):(D=e,h=u)}if((Re|0)==61)for(;;)if(Re=0,r=(t[l+4>>2]&-8)-M|0,P=r>>>0>>0,r=P?r:u,e=P?l:e,l=t[l+16+(((t[l+16>>2]|0)==0&1)<<2)>>2]|0,l)u=r,Re=61;else{D=e,h=r;break}if((D|0)!=0?h>>>0<((t[2785]|0)-M|0)>>>0:0){if(s=D+M|0,D>>>0>=s>>>0)return Fe=0,m=Qt,Fe|0;l=t[D+24>>2]|0,n=t[D+12>>2]|0;do if((n|0)==(D|0)){if(e=D+20|0,n=t[e>>2]|0,!n&&(e=D+16|0,n=t[e>>2]|0,!n)){n=0;break}for(;;){if(r=n+20|0,u=t[r>>2]|0,u|0){n=u,e=r;continue}if(r=n+16|0,u=t[r>>2]|0,u)n=u,e=r;else break}t[e>>2]=0}else Fe=t[D+8>>2]|0,t[Fe+12>>2]=n,t[n+8>>2]=Fe;while(0);do if(l){if(e=t[D+28>>2]|0,r=11436+(e<<2)|0,(D|0)==(t[r>>2]|0)){if(t[r>>2]=n,!n){u=S&~(1<>2]|0)!=(D|0)&1)<<2)>>2]=n,!n){u=S;break}t[n+24>>2]=l,e=t[D+16>>2]|0,e|0&&(t[n+16>>2]=e,t[e+24>>2]=n),e=t[D+20>>2]|0,e&&(t[n+20>>2]=e,t[e+24>>2]=n),u=S}else u=S;while(0);do if(h>>>0>=16){if(t[D+4>>2]=M|3,t[s+4>>2]=h|1,t[s+h>>2]=h,n=h>>>3,h>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=s,t[n+12>>2]=s,t[s+8>>2]=n,t[s+12>>2]=r;break}if(n=h>>>8,n?h>>>0>16777215?n=31:(Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,n=14-(st|Re|n)+(Fe<>>15)|0,n=h>>>(n+7|0)&1|n<<1):n=0,r=11436+(n<<2)|0,t[s+28>>2]=n,e=s+16|0,t[e+4>>2]=0,t[e>>2]=0,e=1<>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}for(e=h<<((n|0)==31?0:25-(n>>>1)|0),r=t[r>>2]|0;;){if((t[r+4>>2]&-8|0)==(h|0)){Re=97;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=96;break}}if((Re|0)==96){t[u>>2]=s,t[s+24>>2]=r,t[s+12>>2]=s,t[s+8>>2]=s;break}else if((Re|0)==97){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=s,t[Re>>2]=s,t[s+8>>2]=Fe,t[s+12>>2]=r,t[s+24>>2]=0;break}}else Fe=h+M|0,t[D+4>>2]=Fe|3,Fe=D+Fe+4|0,t[Fe>>2]=t[Fe>>2]|1;while(0);return Fe=D+8|0,m=Qt,Fe|0}else P=M}else P=M;else P=-1;while(0);if(r=t[2785]|0,r>>>0>=P>>>0)return n=r-P|0,e=t[2788]|0,n>>>0>15?(Fe=e+P|0,t[2788]=Fe,t[2785]=n,t[Fe+4>>2]=n|1,t[Fe+n>>2]=n,t[e+4>>2]=P|3):(t[2785]=0,t[2788]=0,t[e+4>>2]=r|3,Fe=e+r+4|0,t[Fe>>2]=t[Fe>>2]|1),Fe=e+8|0,m=Qt,Fe|0;if(h=t[2786]|0,h>>>0>P>>>0)return st=h-P|0,t[2786]=st,Fe=t[2789]|0,Re=Fe+P|0,t[2789]=Re,t[Re+4>>2]=st|1,t[Fe+4>>2]=P|3,Fe=Fe+8|0,m=Qt,Fe|0;if(t[2901]|0?e=t[2903]|0:(t[2903]=4096,t[2902]=4096,t[2904]=-1,t[2905]=-1,t[2906]=0,t[2894]=0,e=K&-16^1431655768,t[K>>2]=e,t[2901]=e,e=4096),D=P+48|0,S=P+47|0,s=e+S|0,l=0-e|0,M=s&l,M>>>0<=P>>>0||(e=t[2893]|0,e|0?(O=t[2891]|0,K=O+M|0,K>>>0<=O>>>0|K>>>0>e>>>0):0))return Fe=0,m=Qt,Fe|0;e:do if(t[2894]&4)n=0,Re=133;else{r=t[2789]|0;t:do if(r){for(u=11580;e=t[u>>2]|0,!(e>>>0<=r>>>0?(ve=u+4|0,(e+(t[ve>>2]|0)|0)>>>0>r>>>0):0);)if(e=t[u+8>>2]|0,e)u=e;else{Re=118;break t}if(n=s-h&l,n>>>0<2147483647)if(e=Z2(n|0)|0,(e|0)==((t[u>>2]|0)+(t[ve>>2]|0)|0)){if((e|0)!=(-1|0)){h=n,s=e,Re=135;break e}}else u=e,Re=126;else n=0}else Re=118;while(0);do if((Re|0)==118)if(r=Z2(0)|0,(r|0)!=(-1|0)?(n=r,Pe=t[2902]|0,Ee=Pe+-1|0,n=((Ee&n|0)==0?0:(Ee+n&0-Pe)-n|0)+M|0,Pe=t[2891]|0,Ee=n+Pe|0,n>>>0>P>>>0&n>>>0<2147483647):0){if(ve=t[2893]|0,ve|0?Ee>>>0<=Pe>>>0|Ee>>>0>ve>>>0:0){n=0;break}if(e=Z2(n|0)|0,(e|0)==(r|0)){h=n,s=r,Re=135;break e}else u=e,Re=126}else n=0;while(0);do if((Re|0)==126){if(r=0-n|0,!(D>>>0>n>>>0&(n>>>0<2147483647&(u|0)!=(-1|0))))if((u|0)==(-1|0)){n=0;break}else{h=n,s=u,Re=135;break e}if(e=t[2903]|0,e=S-n+e&0-e,e>>>0>=2147483647){h=n,s=u,Re=135;break e}if((Z2(e|0)|0)==(-1|0)){Z2(r|0)|0,n=0;break}else{h=e+n|0,s=u,Re=135;break e}}while(0);t[2894]=t[2894]|4,Re=133}while(0);if((((Re|0)==133?M>>>0<2147483647:0)?(st=Z2(M|0)|0,ve=Z2(0)|0,Qe=ve-st|0,We=Qe>>>0>(P+40|0)>>>0,!((st|0)==(-1|0)|We^1|st>>>0>>0&((st|0)!=(-1|0)&(ve|0)!=(-1|0))^1)):0)&&(h=We?Qe:n,s=st,Re=135),(Re|0)==135){n=(t[2891]|0)+h|0,t[2891]=n,n>>>0>(t[2892]|0)>>>0&&(t[2892]=n),S=t[2789]|0;do if(S){for(n=11580;;){if(e=t[n>>2]|0,r=n+4|0,u=t[r>>2]|0,(s|0)==(e+u|0)){Re=145;break}if(l=t[n+8>>2]|0,l)n=l;else break}if(((Re|0)==145?(t[n+12>>2]&8|0)==0:0)?S>>>0>>0&S>>>0>=e>>>0:0){t[r>>2]=u+h,Fe=S+8|0,Fe=(Fe&7|0)==0?0:0-Fe&7,Re=S+Fe|0,Fe=(t[2786]|0)+(h-Fe)|0,t[2789]=Re,t[2786]=Fe,t[Re+4>>2]=Fe|1,t[Re+Fe+4>>2]=40,t[2790]=t[2905];break}for(s>>>0<(t[2787]|0)>>>0&&(t[2787]=s),r=s+h|0,n=11580;;){if((t[n>>2]|0)==(r|0)){Re=153;break}if(e=t[n+8>>2]|0,e)n=e;else break}if((Re|0)==153?(t[n+12>>2]&8|0)==0:0){t[n>>2]=s,O=n+4|0,t[O>>2]=(t[O>>2]|0)+h,O=s+8|0,O=s+((O&7|0)==0?0:0-O&7)|0,n=r+8|0,n=r+((n&7|0)==0?0:0-n&7)|0,M=O+P|0,D=n-O-P|0,t[O+4>>2]=P|3;do if((n|0)!=(S|0)){if((n|0)==(t[2788]|0)){Fe=(t[2785]|0)+D|0,t[2785]=Fe,t[2788]=M,t[M+4>>2]=Fe|1,t[M+Fe>>2]=Fe;break}if(e=t[n+4>>2]|0,(e&3|0)==1){h=e&-8,u=e>>>3;e:do if(e>>>0<256)if(e=t[n+8>>2]|0,r=t[n+12>>2]|0,(r|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=r,t[r+8>>2]=e;break}else{s=t[n+24>>2]|0,e=t[n+12>>2]|0;do if((e|0)==(n|0)){if(u=n+16|0,r=u+4|0,e=t[r>>2]|0,!e)if(e=t[u>>2]|0,e)r=u;else{e=0;break}for(;;){if(u=e+20|0,l=t[u>>2]|0,l|0){e=l,r=u;continue}if(u=e+16|0,l=t[u>>2]|0,l)e=l,r=u;else break}t[r>>2]=0}else Fe=t[n+8>>2]|0,t[Fe+12>>2]=e,t[e+8>>2]=Fe;while(0);if(!s)break;r=t[n+28>>2]|0,u=11436+(r<<2)|0;do if((n|0)!=(t[u>>2]|0)){if(t[s+16+(((t[s+16>>2]|0)!=(n|0)&1)<<2)>>2]=e,!e)break e}else{if(t[u>>2]=e,e|0)break;t[2784]=t[2784]&~(1<>2]=s,r=n+16|0,u=t[r>>2]|0,u|0&&(t[e+16>>2]=u,t[u+24>>2]=e),r=t[r+4>>2]|0,!r)break;t[e+20>>2]=r,t[r+24>>2]=e}while(0);n=n+h|0,l=h+D|0}else l=D;if(n=n+4|0,t[n>>2]=t[n>>2]&-2,t[M+4>>2]=l|1,t[M+l>>2]=l,n=l>>>3,l>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=M,t[n+12>>2]=M,t[M+8>>2]=n,t[M+12>>2]=r;break}n=l>>>8;do if(!n)n=0;else{if(l>>>0>16777215){n=31;break}Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,n=14-(st|Re|n)+(Fe<>>15)|0,n=l>>>(n+7|0)&1|n<<1}while(0);if(u=11436+(n<<2)|0,t[M+28>>2]=n,e=M+16|0,t[e+4>>2]=0,t[e>>2]=0,e=t[2784]|0,r=1<>2]=M,t[M+24>>2]=u,t[M+12>>2]=M,t[M+8>>2]=M;break}for(e=l<<((n|0)==31?0:25-(n>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){Re=194;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=193;break}}if((Re|0)==193){t[u>>2]=M,t[M+24>>2]=r,t[M+12>>2]=M,t[M+8>>2]=M;break}else if((Re|0)==194){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=M,t[Re>>2]=M,t[M+8>>2]=Fe,t[M+12>>2]=r,t[M+24>>2]=0;break}}else Fe=(t[2786]|0)+D|0,t[2786]=Fe,t[2789]=M,t[M+4>>2]=Fe|1;while(0);return Fe=O+8|0,m=Qt,Fe|0}for(n=11580;e=t[n>>2]|0,!(e>>>0<=S>>>0?(Fe=e+(t[n+4>>2]|0)|0,Fe>>>0>S>>>0):0);)n=t[n+8>>2]|0;l=Fe+-47|0,e=l+8|0,e=l+((e&7|0)==0?0:0-e&7)|0,l=S+16|0,e=e>>>0>>0?S:e,n=e+8|0,r=s+8|0,r=(r&7|0)==0?0:0-r&7,Re=s+r|0,r=h+-40-r|0,t[2789]=Re,t[2786]=r,t[Re+4>>2]=r|1,t[Re+r+4>>2]=40,t[2790]=t[2905],r=e+4|0,t[r>>2]=27,t[n>>2]=t[2895],t[n+4>>2]=t[2896],t[n+8>>2]=t[2897],t[n+12>>2]=t[2898],t[2895]=s,t[2896]=h,t[2898]=0,t[2897]=n,n=e+24|0;do Re=n,n=n+4|0,t[n>>2]=7;while((Re+8|0)>>>0>>0);if((e|0)!=(S|0)){if(s=e-S|0,t[r>>2]=t[r>>2]&-2,t[S+4>>2]=s|1,t[e>>2]=s,n=s>>>3,s>>>0<256){r=11172+(n<<1<<2)|0,e=t[2783]|0,n=1<>2]|0):(t[2783]=e|n,n=r,e=r+8|0),t[e>>2]=S,t[n+12>>2]=S,t[S+8>>2]=n,t[S+12>>2]=r;break}if(n=s>>>8,n?s>>>0>16777215?r=31:(Re=(n+1048320|0)>>>16&8,Fe=n<>>16&4,Fe=Fe<>>16&2,r=14-(st|Re|r)+(Fe<>>15)|0,r=s>>>(r+7|0)&1|r<<1):r=0,u=11436+(r<<2)|0,t[S+28>>2]=r,t[S+20>>2]=0,t[l>>2]=0,n=t[2784]|0,e=1<>2]=S,t[S+24>>2]=u,t[S+12>>2]=S,t[S+8>>2]=S;break}for(e=s<<((r|0)==31?0:25-(r>>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(s|0)){Re=216;break}if(u=r+16+(e>>>31<<2)|0,n=t[u>>2]|0,n)e=e<<1,r=n;else{Re=215;break}}if((Re|0)==215){t[u>>2]=S,t[S+24>>2]=r,t[S+12>>2]=S,t[S+8>>2]=S;break}else if((Re|0)==216){Re=r+8|0,Fe=t[Re>>2]|0,t[Fe+12>>2]=S,t[Re>>2]=S,t[S+8>>2]=Fe,t[S+12>>2]=r,t[S+24>>2]=0;break}}}else{Fe=t[2787]|0,(Fe|0)==0|s>>>0>>0&&(t[2787]=s),t[2895]=s,t[2896]=h,t[2898]=0,t[2792]=t[2901],t[2791]=-1,n=0;do Fe=11172+(n<<1<<2)|0,t[Fe+12>>2]=Fe,t[Fe+8>>2]=Fe,n=n+1|0;while((n|0)!=32);Fe=s+8|0,Fe=(Fe&7|0)==0?0:0-Fe&7,Re=s+Fe|0,Fe=h+-40-Fe|0,t[2789]=Re,t[2786]=Fe,t[Re+4>>2]=Fe|1,t[Re+Fe+4>>2]=40,t[2790]=t[2905]}while(0);if(n=t[2786]|0,n>>>0>P>>>0)return st=n-P|0,t[2786]=st,Fe=t[2789]|0,Re=Fe+P|0,t[2789]=Re,t[Re+4>>2]=st|1,t[Fe+4>>2]=P|3,Fe=Fe+8|0,m=Qt,Fe|0}return t[(Fv()|0)>>2]=12,Fe=0,m=Qt,Fe|0}function x_(e){e=e|0;var n=0,r=0,u=0,l=0,s=0,h=0,D=0,S=0;if(!!e){r=e+-8|0,l=t[2787]|0,e=t[e+-4>>2]|0,n=e&-8,S=r+n|0;do if(e&1)D=r,h=r;else{if(u=t[r>>2]|0,!(e&3)||(h=r+(0-u)|0,s=u+n|0,h>>>0>>0))return;if((h|0)==(t[2788]|0)){if(e=S+4|0,n=t[e>>2]|0,(n&3|0)!=3){D=h,n=s;break}t[2785]=s,t[e>>2]=n&-2,t[h+4>>2]=s|1,t[h+s>>2]=s;return}if(r=u>>>3,u>>>0<256)if(e=t[h+8>>2]|0,n=t[h+12>>2]|0,(n|0)==(e|0)){t[2783]=t[2783]&~(1<>2]=n,t[n+8>>2]=e,D=h,n=s;break}l=t[h+24>>2]|0,e=t[h+12>>2]|0;do if((e|0)==(h|0)){if(r=h+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{e=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0}else D=t[h+8>>2]|0,t[D+12>>2]=e,t[e+8>>2]=D;while(0);if(l){if(n=t[h+28>>2]|0,r=11436+(n<<2)|0,(h|0)==(t[r>>2]|0)){if(t[r>>2]=e,!e){t[2784]=t[2784]&~(1<>2]|0)!=(h|0)&1)<<2)>>2]=e,!e){D=h,n=s;break}t[e+24>>2]=l,n=h+16|0,r=t[n>>2]|0,r|0&&(t[e+16>>2]=r,t[r+24>>2]=e),n=t[n+4>>2]|0,n?(t[e+20>>2]=n,t[n+24>>2]=e,D=h,n=s):(D=h,n=s)}else D=h,n=s}while(0);if(!(h>>>0>=S>>>0)&&(e=S+4|0,u=t[e>>2]|0,!!(u&1))){if(u&2)t[e>>2]=u&-2,t[D+4>>2]=n|1,t[h+n>>2]=n,l=n;else{if(e=t[2788]|0,(S|0)==(t[2789]|0)){if(S=(t[2786]|0)+n|0,t[2786]=S,t[2789]=D,t[D+4>>2]=S|1,(D|0)!=(e|0))return;t[2788]=0,t[2785]=0;return}if((S|0)==(e|0)){S=(t[2785]|0)+n|0,t[2785]=S,t[2788]=h,t[D+4>>2]=S|1,t[h+S>>2]=S;return}l=(u&-8)+n|0,r=u>>>3;do if(u>>>0<256)if(n=t[S+8>>2]|0,e=t[S+12>>2]|0,(e|0)==(n|0)){t[2783]=t[2783]&~(1<>2]=e,t[e+8>>2]=n;break}else{s=t[S+24>>2]|0,e=t[S+12>>2]|0;do if((e|0)==(S|0)){if(r=S+16|0,n=r+4|0,e=t[n>>2]|0,!e)if(e=t[r>>2]|0,e)n=r;else{r=0;break}for(;;){if(r=e+20|0,u=t[r>>2]|0,u|0){e=u,n=r;continue}if(r=e+16|0,u=t[r>>2]|0,u)e=u,n=r;else break}t[n>>2]=0,r=e}else r=t[S+8>>2]|0,t[r+12>>2]=e,t[e+8>>2]=r,r=e;while(0);if(s|0){if(e=t[S+28>>2]|0,n=11436+(e<<2)|0,(S|0)==(t[n>>2]|0)){if(t[n>>2]=r,!r){t[2784]=t[2784]&~(1<>2]|0)!=(S|0)&1)<<2)>>2]=r,!r)break;t[r+24>>2]=s,e=S+16|0,n=t[e>>2]|0,n|0&&(t[r+16>>2]=n,t[n+24>>2]=r),e=t[e+4>>2]|0,e|0&&(t[r+20>>2]=e,t[e+24>>2]=r)}}while(0);if(t[D+4>>2]=l|1,t[h+l>>2]=l,(D|0)==(t[2788]|0)){t[2785]=l;return}}if(e=l>>>3,l>>>0<256){r=11172+(e<<1<<2)|0,n=t[2783]|0,e=1<>2]|0):(t[2783]=n|e,e=r,n=r+8|0),t[n>>2]=D,t[e+12>>2]=D,t[D+8>>2]=e,t[D+12>>2]=r;return}e=l>>>8,e?l>>>0>16777215?e=31:(h=(e+1048320|0)>>>16&8,S=e<>>16&4,S=S<>>16&2,e=14-(s|h|e)+(S<>>15)|0,e=l>>>(e+7|0)&1|e<<1):e=0,u=11436+(e<<2)|0,t[D+28>>2]=e,t[D+20>>2]=0,t[D+16>>2]=0,n=t[2784]|0,r=1<>>1)|0),r=t[u>>2]|0;;){if((t[r+4>>2]&-8|0)==(l|0)){e=73;break}if(u=r+16+(n>>>31<<2)|0,e=t[u>>2]|0,e)n=n<<1,r=e;else{e=72;break}}if((e|0)==72){t[u>>2]=D,t[D+24>>2]=r,t[D+12>>2]=D,t[D+8>>2]=D;break}else if((e|0)==73){h=r+8|0,S=t[h>>2]|0,t[S+12>>2]=D,t[h>>2]=D,t[D+8>>2]=S,t[D+12>>2]=r,t[D+24>>2]=0;break}}else t[2784]=n|r,t[u>>2]=D,t[D+24>>2]=u,t[D+12>>2]=D,t[D+8>>2]=D;while(0);if(S=(t[2791]|0)+-1|0,t[2791]=S,!S)e=11588;else return;for(;e=t[e>>2]|0,e;)e=e+8|0;t[2791]=-1}}}function CI(){return 11628}function xI(e){e=e|0;var n=0,r=0;return n=m,m=m+16|0,r=n,t[r>>2]=OI(t[e+60>>2]|0)|0,e=A_(wu(6,r|0)|0)|0,m=n,e|0}function N8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0;P=m,m=m+48|0,M=P+16|0,s=P,l=P+32|0,D=e+28|0,u=t[D>>2]|0,t[l>>2]=u,S=e+20|0,u=(t[S>>2]|0)-u|0,t[l+4>>2]=u,t[l+8>>2]=n,t[l+12>>2]=r,u=u+r|0,h=e+60|0,t[s>>2]=t[h>>2],t[s+4>>2]=l,t[s+8>>2]=2,s=A_(d0(146,s|0)|0)|0;e:do if((u|0)!=(s|0)){for(n=2;!((s|0)<0);)if(u=u-s|0,Pe=t[l+4>>2]|0,K=s>>>0>Pe>>>0,l=K?l+8|0:l,n=(K<<31>>31)+n|0,Pe=s-(K?Pe:0)|0,t[l>>2]=(t[l>>2]|0)+Pe,K=l+4|0,t[K>>2]=(t[K>>2]|0)-Pe,t[M>>2]=t[h>>2],t[M+4>>2]=l,t[M+8>>2]=n,s=A_(d0(146,M|0)|0)|0,(u|0)==(s|0)){O=3;break e}t[e+16>>2]=0,t[D>>2]=0,t[S>>2]=0,t[e>>2]=t[e>>2]|32,(n|0)==2?r=0:r=r-(t[l+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(Pe=t[e+44>>2]|0,t[e+16>>2]=Pe+(t[e+48>>2]|0),t[D>>2]=Pe,t[S>>2]=Pe),m=P,r|0}function AI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;return l=m,m=m+32|0,s=l,u=l+20|0,t[s>>2]=t[e+60>>2],t[s+4>>2]=0,t[s+8>>2]=n,t[s+12>>2]=u,t[s+16>>2]=r,(A_(Ti(140,s|0)|0)|0)<0?(t[u>>2]=-1,e=-1):e=t[u>>2]|0,m=l,e|0}function A_(e){return e=e|0,e>>>0>4294963200&&(t[(Fv()|0)>>2]=0-e,e=-1),e|0}function Fv(){return(RI()|0)+64|0}function RI(){return VE()|0}function VE(){return 2084}function OI(e){return e=e|0,e|0}function kI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;return l=m,m=m+32|0,u=l,t[e+36>>2]=1,((t[e>>2]&64|0)==0?(t[u>>2]=t[e+60>>2],t[u+4>>2]=21523,t[u+8>>2]=l+16,b0(54,u|0)|0):0)&&(p[e+75>>0]=-1),u=N8(e,n,r)|0,m=l,u|0}function L8(e,n){e=e|0,n=n|0;var r=0,u=0;if(r=p[e>>0]|0,u=p[n>>0]|0,r<<24>>24==0?1:r<<24>>24!=u<<24>>24)e=u;else{do e=e+1|0,n=n+1|0,r=p[e>>0]|0,u=p[n>>0]|0;while(!(r<<24>>24==0?1:r<<24>>24!=u<<24>>24));e=u}return(r&255)-(e&255)|0}function MI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0;e:do if(!r)e=0;else{for(;u=p[e>>0]|0,l=p[n>>0]|0,u<<24>>24==l<<24>>24;)if(r=r+-1|0,r)e=e+1|0,n=n+1|0;else{e=0;break e}e=(u&255)-(l&255)|0}while(0);return e|0}function F8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0;ve=m,m=m+224|0,O=ve+120|0,P=ve+80|0,Pe=ve,Ee=ve+136|0,u=P,l=u+40|0;do t[u>>2]=0,u=u+4|0;while((u|0)<(l|0));return t[O>>2]=t[r>>2],(GE(0,n,O,Pe,P)|0)<0?r=-1:((t[e+76>>2]|0)>-1?K=NI(e)|0:K=0,r=t[e>>2]|0,M=r&32,(p[e+74>>0]|0)<1&&(t[e>>2]=r&-33),u=e+48|0,t[u>>2]|0?r=GE(e,n,O,Pe,P)|0:(l=e+44|0,s=t[l>>2]|0,t[l>>2]=Ee,h=e+28|0,t[h>>2]=Ee,D=e+20|0,t[D>>2]=Ee,t[u>>2]=80,S=e+16|0,t[S>>2]=Ee+80,r=GE(e,n,O,Pe,P)|0,s&&(M_[t[e+36>>2]&7](e,0,0)|0,r=(t[D>>2]|0)==0?-1:r,t[l>>2]=s,t[u>>2]=0,t[S>>2]=0,t[h>>2]=0,t[D>>2]=0)),u=t[e>>2]|0,t[e>>2]=u|M,K|0&&LI(e),r=(u&32|0)==0?r:-1),m=ve,r|0}function GE(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0;On=m,m=m+64|0,Nn=On+16|0,mn=On,Qt=On+24|0,hr=On+8|0,kr=On+20|0,t[Nn>>2]=n,st=(e|0)!=0,Re=Qt+40|0,Fe=Re,Qt=Qt+39|0,Lr=hr+4|0,h=0,s=0,O=0;e:for(;;){do if((s|0)>-1)if((h|0)>(2147483647-s|0)){t[(Fv()|0)>>2]=75,s=-1;break}else{s=h+s|0;break}while(0);if(h=p[n>>0]|0,h<<24>>24)D=n;else{We=87;break}t:for(;;){switch(h<<24>>24){case 37:{h=D,We=9;break t}case 0:{h=D;break t}default:}Qe=D+1|0,t[Nn>>2]=Qe,h=p[Qe>>0]|0,D=Qe}t:do if((We|0)==9)for(;;){if(We=0,(p[D+1>>0]|0)!=37)break t;if(h=h+1|0,D=D+2|0,t[Nn>>2]=D,(p[D>>0]|0)==37)We=9;else break}while(0);if(h=h-n|0,st&&qo(e,n,h),h|0){n=D;continue}S=D+1|0,h=(p[S>>0]|0)+-48|0,h>>>0<10?(Qe=(p[D+2>>0]|0)==36,ve=Qe?h:-1,O=Qe?1:O,S=Qe?D+3|0:S):ve=-1,t[Nn>>2]=S,h=p[S>>0]|0,D=(h<<24>>24)+-32|0;t:do if(D>>>0<32)for(M=0,P=h;;){if(h=1<>2]=S,h=p[S>>0]|0,D=(h<<24>>24)+-32|0,D>>>0>=32)break;P=h}else M=0;while(0);if(h<<24>>24==42){if(D=S+1|0,h=(p[D>>0]|0)+-48|0,h>>>0<10?(p[S+2>>0]|0)==36:0)t[l+(h<<2)>>2]=10,h=t[u+((p[D>>0]|0)+-48<<3)>>2]|0,O=1,S=S+3|0;else{if(O|0){s=-1;break}st?(O=(t[r>>2]|0)+(4-1)&~(4-1),h=t[O>>2]|0,t[r>>2]=O+4,O=0,S=D):(h=0,O=0,S=D)}t[Nn>>2]=S,Qe=(h|0)<0,h=Qe?0-h|0:h,M=Qe?M|8192:M}else{if(h=b8(Nn)|0,(h|0)<0){s=-1;break}S=t[Nn>>2]|0}do if((p[S>>0]|0)==46){if((p[S+1>>0]|0)!=42){t[Nn>>2]=S+1,D=b8(Nn)|0,S=t[Nn>>2]|0;break}if(P=S+2|0,D=(p[P>>0]|0)+-48|0,D>>>0<10?(p[S+3>>0]|0)==36:0){t[l+(D<<2)>>2]=10,D=t[u+((p[P>>0]|0)+-48<<3)>>2]|0,S=S+4|0,t[Nn>>2]=S;break}if(O|0){s=-1;break e}st?(Qe=(t[r>>2]|0)+(4-1)&~(4-1),D=t[Qe>>2]|0,t[r>>2]=Qe+4):D=0,t[Nn>>2]=P,S=P}else D=-1;while(0);for(Ee=0;;){if(((p[S>>0]|0)+-65|0)>>>0>57){s=-1;break e}if(Qe=S+1|0,t[Nn>>2]=Qe,P=p[(p[S>>0]|0)+-65+(5178+(Ee*58|0))>>0]|0,K=P&255,(K+-1|0)>>>0<8)Ee=K,S=Qe;else break}if(!(P<<24>>24)){s=-1;break}Pe=(ve|0)>-1;do if(P<<24>>24==19)if(Pe){s=-1;break e}else We=49;else{if(Pe){t[l+(ve<<2)>>2]=K,Pe=u+(ve<<3)|0,ve=t[Pe+4>>2]|0,We=mn,t[We>>2]=t[Pe>>2],t[We+4>>2]=ve,We=49;break}if(!st){s=0;break e}P8(mn,K,r)}while(0);if((We|0)==49?(We=0,!st):0){h=0,n=Qe;continue}S=p[S>>0]|0,S=(Ee|0)!=0&(S&15|0)==3?S&-33:S,Pe=M&-65537,ve=(M&8192|0)==0?M:Pe;t:do switch(S|0){case 110:switch((Ee&255)<<24>>24){case 0:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 1:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 2:{h=t[mn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Qe;continue e}case 3:{E[t[mn>>2]>>1]=s,h=0,n=Qe;continue e}case 4:{p[t[mn>>2]>>0]=s,h=0,n=Qe;continue e}case 6:{t[t[mn>>2]>>2]=s,h=0,n=Qe;continue e}case 7:{h=t[mn>>2]|0,t[h>>2]=s,t[h+4>>2]=((s|0)<0)<<31>>31,h=0,n=Qe;continue e}default:{h=0,n=Qe;continue e}}case 112:{S=120,D=D>>>0>8?D:8,n=ve|8,We=61;break}case 88:case 120:{n=ve,We=61;break}case 111:{S=mn,n=t[S>>2]|0,S=t[S+4>>2]|0,K=bI(n,S,Re)|0,Pe=Fe-K|0,M=0,P=5642,D=(ve&8|0)==0|(D|0)>(Pe|0)?D:Pe+1|0,Pe=ve,We=67;break}case 105:case 100:if(S=mn,n=t[S>>2]|0,S=t[S+4>>2]|0,(S|0)<0){n=R_(0,0,n|0,S|0)|0,S=ft,M=mn,t[M>>2]=n,t[M+4>>2]=S,M=1,P=5642,We=66;break t}else{M=(ve&2049|0)!=0&1,P=(ve&2048|0)==0?(ve&1|0)==0?5642:5644:5643,We=66;break t}case 117:{S=mn,M=0,P=5642,n=t[S>>2]|0,S=t[S+4>>2]|0,We=66;break}case 99:{p[Qt>>0]=t[mn>>2],n=Qt,M=0,P=5642,K=Re,S=1,D=Pe;break}case 109:{S=PI(t[(Fv()|0)>>2]|0)|0,We=71;break}case 115:{S=t[mn>>2]|0,S=S|0?S:5652,We=71;break}case 67:{t[hr>>2]=t[mn>>2],t[Lr>>2]=0,t[mn>>2]=hr,K=-1,S=hr,We=75;break}case 83:{n=t[mn>>2]|0,D?(K=D,S=n,We=75):(hl(e,32,h,0,ve),n=0,We=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{h=BI(e,+U[mn>>3],h,D,ve,S)|0,n=Qe;continue e}default:M=0,P=5642,K=Re,S=D,D=ve}while(0);t:do if((We|0)==61)ve=mn,Ee=t[ve>>2]|0,ve=t[ve+4>>2]|0,K=FI(Ee,ve,Re,S&32)|0,P=(n&8|0)==0|(Ee|0)==0&(ve|0)==0,M=P?0:2,P=P?5642:5642+(S>>4)|0,Pe=n,n=Ee,S=ve,We=67;else if((We|0)==66)K=bv(n,S,Re)|0,Pe=ve,We=67;else if((We|0)==71)We=0,ve=II(S,0,D)|0,Ee=(ve|0)==0,n=S,M=0,P=5642,K=Ee?S+D|0:ve,S=Ee?D:ve-S|0,D=Pe;else if((We|0)==75){for(We=0,P=S,n=0,D=0;M=t[P>>2]|0,!(!M||(D=I8(kr,M)|0,(D|0)<0|D>>>0>(K-n|0)>>>0));)if(n=D+n|0,K>>>0>n>>>0)P=P+4|0;else break;if((D|0)<0){s=-1;break e}if(hl(e,32,h,n,ve),!n)n=0,We=84;else for(M=0;;){if(D=t[S>>2]|0,!D){We=84;break t}if(D=I8(kr,D)|0,M=D+M|0,(M|0)>(n|0)){We=84;break t}if(qo(e,kr,D),M>>>0>=n>>>0){We=84;break}else S=S+4|0}}while(0);if((We|0)==67)We=0,S=(n|0)!=0|(S|0)!=0,ve=(D|0)!=0|S,S=((S^1)&1)+(Fe-K)|0,n=ve?K:Re,K=Re,S=ve?(D|0)>(S|0)?D:S:D,D=(D|0)>-1?Pe&-65537:Pe;else if((We|0)==84){We=0,hl(e,32,h,n,ve^8192),h=(h|0)>(n|0)?h:n,n=Qe;continue}Ee=K-n|0,Pe=(S|0)<(Ee|0)?Ee:S,ve=Pe+M|0,h=(h|0)<(ve|0)?ve:h,hl(e,32,h,ve,D),qo(e,P,M),hl(e,48,h,ve,D^65536),hl(e,48,Pe,Ee,0),qo(e,n,Ee),hl(e,32,h,ve,D^8192),n=Qe}e:do if((We|0)==87&&!e)if(!O)s=0;else{for(s=1;n=t[l+(s<<2)>>2]|0,!!n;)if(P8(u+(s<<3)|0,n,r),s=s+1|0,(s|0)>=10){s=1;break e}for(;;){if(t[l+(s<<2)>>2]|0){s=-1;break e}if(s=s+1|0,(s|0)>=10){s=1;break}}}while(0);return m=On,s|0}function NI(e){return e=e|0,0}function LI(e){e=e|0}function qo(e,n,r){e=e|0,n=n|0,r=r|0,t[e>>2]&32||YI(n,r,e)|0}function b8(e){e=e|0;var n=0,r=0,u=0;if(r=t[e>>2]|0,u=(p[r>>0]|0)+-48|0,u>>>0<10){n=0;do n=u+(n*10|0)|0,r=r+1|0,t[e>>2]=r,u=(p[r>>0]|0)+-48|0;while(u>>>0<10)}else n=0;return n|0}function P8(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;e:do if(n>>>0<=20)do switch(n|0){case 9:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,t[e>>2]=n;break e}case 10:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=((n|0)<0)<<31>>31;break e}case 11:{u=(t[r>>2]|0)+(4-1)&~(4-1),n=t[u>>2]|0,t[r>>2]=u+4,u=e,t[u>>2]=n,t[u+4>>2]=0;break e}case 12:{u=(t[r>>2]|0)+(8-1)&~(8-1),n=u,l=t[n>>2]|0,n=t[n+4>>2]|0,t[r>>2]=u+8,u=e,t[u>>2]=l,t[u+4>>2]=n;break e}case 13:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&65535)<<16>>16,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 14:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&65535,t[l+4>>2]=0;break e}case 15:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,u=(u&255)<<24>>24,l=e,t[l>>2]=u,t[l+4>>2]=((u|0)<0)<<31>>31;break e}case 16:{l=(t[r>>2]|0)+(4-1)&~(4-1),u=t[l>>2]|0,t[r>>2]=l+4,l=e,t[l>>2]=u&255,t[l+4>>2]=0;break e}case 17:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+U[l>>3],t[r>>2]=l+8,U[e>>3]=s;break e}case 18:{l=(t[r>>2]|0)+(8-1)&~(8-1),s=+U[l>>3],t[r>>2]=l+8,U[e>>3]=s;break e}default:break e}while(0);while(0)}function FI(e,n,r,u){if(e=e|0,n=n|0,r=r|0,u=u|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,p[r>>0]=k[5694+(e&15)>>0]|0|u,e=O_(e|0,n|0,4)|0,n=ft;while(!((e|0)==0&(n|0)==0));return r|0}function bI(e,n,r){if(e=e|0,n=n|0,r=r|0,!((e|0)==0&(n|0)==0))do r=r+-1|0,p[r>>0]=e&7|48,e=O_(e|0,n|0,3)|0,n=ft;while(!((e|0)==0&(n|0)==0));return r|0}function bv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if(n>>>0>0|(n|0)==0&e>>>0>4294967295){for(;u=QE(e|0,n|0,10,0)|0,r=r+-1|0,p[r>>0]=u&255|48,u=e,e=XE(e|0,n|0,10,0)|0,n>>>0>9|(n|0)==9&u>>>0>4294967295;)n=ft;n=e}else n=e;if(n)for(;r=r+-1|0,p[r>>0]=(n>>>0)%10|0|48,!(n>>>0<10);)n=(n>>>0)/10|0;return r|0}function PI(e){return e=e|0,HI(e,t[(qI()|0)+188>>2]|0)|0}function II(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;s=n&255,u=(r|0)!=0;e:do if(u&(e&3|0)!=0)for(l=n&255;;){if((p[e>>0]|0)==l<<24>>24){h=6;break e}if(e=e+1|0,r=r+-1|0,u=(r|0)!=0,!(u&(e&3|0)!=0)){h=5;break}}else h=5;while(0);(h|0)==5&&(u?h=6:r=0);e:do if((h|0)==6&&(l=n&255,(p[e>>0]|0)!=l<<24>>24)){u=nr(s,16843009)|0;t:do if(r>>>0>3){for(;s=t[e>>2]^u,!((s&-2139062144^-2139062144)&s+-16843009|0);)if(e=e+4|0,r=r+-4|0,r>>>0<=3){h=11;break t}}else h=11;while(0);if((h|0)==11&&!r){r=0;break}for(;;){if((p[e>>0]|0)==l<<24>>24)break e;if(e=e+1|0,r=r+-1|0,!r){r=0;break}}}while(0);return(r|0?e:0)|0}function hl(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0;if(h=m,m=m+256|0,s=h,(r|0)>(u|0)&(l&73728|0)==0){if(l=r-u|0,Iv(s|0,n|0,(l>>>0<256?l:256)|0)|0,l>>>0>255){n=r-u|0;do qo(e,s,256),l=l+-256|0;while(l>>>0>255);l=n&255}qo(e,s,l)}m=h}function I8(e,n){return e=e|0,n=n|0,e?e=jI(e,n,0)|0:e=0,e|0}function BI(e,n,r,u,l,s){e=e|0,n=+n,r=r|0,u=u|0,l=l|0,s=s|0;var h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0,ve=0,Qe=0,We=0,st=0,Re=0,Fe=0,Qt=0,Lr=0,Nn=0,mn=0,hr=0,kr=0,On=0,Zi=0;Zi=m,m=m+560|0,S=Zi+8|0,Qe=Zi,On=Zi+524|0,kr=On,M=Zi+512|0,t[Qe>>2]=0,hr=M+12|0,B8(n)|0,(ft|0)<0?(n=-n,Nn=1,Lr=5659):(Nn=(l&2049|0)!=0&1,Lr=(l&2048|0)==0?(l&1|0)==0?5660:5665:5662),B8(n)|0,mn=ft&2146435072;do if(mn>>>0<2146435072|(mn|0)==2146435072&0<0){if(Pe=+UI(n,Qe)*2,h=Pe!=0,h&&(t[Qe>>2]=(t[Qe>>2]|0)+-1),st=s|32,(st|0)==97){Ee=s&32,K=(Ee|0)==0?Lr:Lr+9|0,P=Nn|2,h=12-u|0;do if(u>>>0>11|(h|0)==0)n=Pe;else{n=8;do h=h+-1|0,n=n*16;while((h|0)!=0);if((p[K>>0]|0)==45){n=-(n+(-Pe-n));break}else{n=Pe+n-n;break}}while(0);D=t[Qe>>2]|0,h=(D|0)<0?0-D|0:D,h=bv(h,((h|0)<0)<<31>>31,hr)|0,(h|0)==(hr|0)&&(h=M+11|0,p[h>>0]=48),p[h+-1>>0]=(D>>31&2)+43,O=h+-2|0,p[O>>0]=s+15,M=(u|0)<1,S=(l&8|0)==0,h=On;do mn=~~n,D=h+1|0,p[h>>0]=k[5694+mn>>0]|Ee,n=(n-+(mn|0))*16,((D-kr|0)==1?!(S&(M&n==0)):0)?(p[D>>0]=46,h=h+2|0):h=D;while(n!=0);mn=h-kr|0,kr=hr-O|0,hr=(u|0)!=0&(mn+-2|0)<(u|0)?u+2|0:mn,h=kr+P+hr|0,hl(e,32,r,h,l),qo(e,K,P),hl(e,48,r,h,l^65536),qo(e,On,mn),hl(e,48,hr-mn|0,0,0),qo(e,O,kr),hl(e,32,r,h,l^8192);break}D=(u|0)<0?6:u,h?(h=(t[Qe>>2]|0)+-28|0,t[Qe>>2]=h,n=Pe*268435456):(n=Pe,h=t[Qe>>2]|0),mn=(h|0)<0?S:S+288|0,S=mn;do Fe=~~n>>>0,t[S>>2]=Fe,S=S+4|0,n=(n-+(Fe>>>0))*1e9;while(n!=0);if((h|0)>0)for(M=mn,P=S;;){if(O=(h|0)<29?h:29,h=P+-4|0,h>>>0>=M>>>0){S=0;do Re=W8(t[h>>2]|0,0,O|0)|0,Re=KE(Re|0,ft|0,S|0,0)|0,Fe=ft,We=QE(Re|0,Fe|0,1e9,0)|0,t[h>>2]=We,S=XE(Re|0,Fe|0,1e9,0)|0,h=h+-4|0;while(h>>>0>=M>>>0);S&&(M=M+-4|0,t[M>>2]=S)}for(S=P;!(S>>>0<=M>>>0);)if(h=S+-4|0,!(t[h>>2]|0))S=h;else break;if(h=(t[Qe>>2]|0)-O|0,t[Qe>>2]=h,(h|0)>0)P=S;else break}else M=mn;if((h|0)<0){u=((D+25|0)/9|0)+1|0,ve=(st|0)==102;do{if(Ee=0-h|0,Ee=(Ee|0)<9?Ee:9,M>>>0>>0){O=(1<>>Ee,K=0,h=M;do Fe=t[h>>2]|0,t[h>>2]=(Fe>>>Ee)+K,K=nr(Fe&O,P)|0,h=h+4|0;while(h>>>0>>0);h=(t[M>>2]|0)==0?M+4|0:M,K?(t[S>>2]=K,M=h,h=S+4|0):(M=h,h=S)}else M=(t[M>>2]|0)==0?M+4|0:M,h=S;S=ve?mn:M,S=(h-S>>2|0)>(u|0)?S+(u<<2)|0:h,h=(t[Qe>>2]|0)+Ee|0,t[Qe>>2]=h}while((h|0)<0);h=M,u=S}else h=M,u=S;if(Fe=mn,h>>>0>>0){if(S=(Fe-h>>2)*9|0,O=t[h>>2]|0,O>>>0>=10){M=10;do M=M*10|0,S=S+1|0;while(O>>>0>=M>>>0)}}else S=0;if(ve=(st|0)==103,We=(D|0)!=0,M=D-((st|0)!=102?S:0)+((We&ve)<<31>>31)|0,(M|0)<(((u-Fe>>2)*9|0)+-9|0)){if(M=M+9216|0,Ee=mn+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(P=t[Ee>>2]|0,K=(P>>>0)%(O>>>0)|0,M=(Ee+4|0)==(u|0),M&(K|0)==0)M=Ee;else if(Pe=(((P>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,Re=(O|0)/2|0,n=K>>>0>>0?.5:M&(K|0)==(Re|0)?1:1.5,Nn&&(Re=(p[Lr>>0]|0)==45,n=Re?-n:n,Pe=Re?-Pe:Pe),M=P-K|0,t[Ee>>2]=M,Pe+n!=Pe){if(Re=M+O|0,t[Ee>>2]=Re,Re>>>0>999999999)for(S=Ee;M=S+-4|0,t[S>>2]=0,M>>>0>>0&&(h=h+-4|0,t[h>>2]=0),Re=(t[M>>2]|0)+1|0,t[M>>2]=Re,Re>>>0>999999999;)S=M;else M=Ee;if(S=(Fe-h>>2)*9|0,P=t[h>>2]|0,P>>>0>=10){O=10;do O=O*10|0,S=S+1|0;while(P>>>0>=O>>>0)}}else M=Ee;M=M+4|0,M=u>>>0>M>>>0?M:u,Re=h}else M=u,Re=h;for(st=M;;){if(st>>>0<=Re>>>0){Qe=0;break}if(h=st+-4|0,!(t[h>>2]|0))st=h;else{Qe=1;break}}u=0-S|0;do if(ve)if(h=((We^1)&1)+D|0,(h|0)>(S|0)&(S|0)>-5?(O=s+-1|0,D=h+-1-S|0):(O=s+-2|0,D=h+-1|0),h=l&8,h)Ee=h;else{if(Qe?(Qt=t[st+-4>>2]|0,(Qt|0)!=0):0)if((Qt>>>0)%10|0)M=0;else{M=0,h=10;do h=h*10|0,M=M+1|0;while(!((Qt>>>0)%(h>>>0)|0|0))}else M=9;if(h=((st-Fe>>2)*9|0)+-9|0,(O|32|0)==102){Ee=h-M|0,Ee=(Ee|0)>0?Ee:0,D=(D|0)<(Ee|0)?D:Ee,Ee=0;break}else{Ee=h+S-M|0,Ee=(Ee|0)>0?Ee:0,D=(D|0)<(Ee|0)?D:Ee,Ee=0;break}}else O=s,Ee=l&8;while(0);if(ve=D|Ee,P=(ve|0)!=0&1,K=(O|32|0)==102,K)We=0,h=(S|0)>0?S:0;else{if(h=(S|0)<0?u:S,h=bv(h,((h|0)<0)<<31>>31,hr)|0,M=hr,(M-h|0)<2)do h=h+-1|0,p[h>>0]=48;while((M-h|0)<2);p[h+-1>>0]=(S>>31&2)+43,h=h+-2|0,p[h>>0]=O,We=h,h=M-h|0}if(h=Nn+1+D+P+h|0,hl(e,32,r,h,l),qo(e,Lr,Nn),hl(e,48,r,h,l^65536),K){O=Re>>>0>mn>>>0?mn:Re,Ee=On+9|0,P=Ee,K=On+8|0,M=O;do{if(S=bv(t[M>>2]|0,0,Ee)|0,(M|0)==(O|0))(S|0)==(Ee|0)&&(p[K>>0]=48,S=K);else if(S>>>0>On>>>0){Iv(On|0,48,S-kr|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}qo(e,S,P-S|0),M=M+4|0}while(M>>>0<=mn>>>0);if(ve|0&&qo(e,5710,1),M>>>0>>0&(D|0)>0)for(;;){if(S=bv(t[M>>2]|0,0,Ee)|0,S>>>0>On>>>0){Iv(On|0,48,S-kr|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}if(qo(e,S,(D|0)<9?D:9),M=M+4|0,S=D+-9|0,M>>>0>>0&(D|0)>9)D=S;else{D=S;break}}hl(e,48,D+9|0,9,0)}else{if(ve=Qe?st:Re+4|0,(D|0)>-1){Qe=On+9|0,Ee=(Ee|0)==0,u=Qe,P=0-kr|0,K=On+8|0,O=Re;do{S=bv(t[O>>2]|0,0,Qe)|0,(S|0)==(Qe|0)&&(p[K>>0]=48,S=K);do if((O|0)==(Re|0)){if(M=S+1|0,qo(e,S,1),Ee&(D|0)<1){S=M;break}qo(e,5710,1),S=M}else{if(S>>>0<=On>>>0)break;Iv(On|0,48,S+P|0)|0;do S=S+-1|0;while(S>>>0>On>>>0)}while(0);kr=u-S|0,qo(e,S,(D|0)>(kr|0)?kr:D),D=D-kr|0,O=O+4|0}while(O>>>0>>0&(D|0)>-1)}hl(e,48,D+18|0,18,0),qo(e,We,hr-We|0)}hl(e,32,r,h,l^8192)}else On=(s&32|0)!=0,h=Nn+3|0,hl(e,32,r,h,l&-65537),qo(e,Lr,Nn),qo(e,n!=n|!1?On?5686:5690:On?5678:5682,3),hl(e,32,r,h,l^8192);while(0);return m=Zi,((h|0)<(r|0)?r:h)|0}function B8(e){e=+e;var n=0;return U[W>>3]=e,n=t[W>>2]|0,ft=t[W+4>>2]|0,n|0}function UI(e,n){return e=+e,n=n|0,+ +U8(e,n)}function U8(e,n){e=+e,n=n|0;var r=0,u=0,l=0;switch(U[W>>3]=e,r=t[W>>2]|0,u=t[W+4>>2]|0,l=O_(r|0,u|0,52)|0,l&2047){case 0:{e!=0?(e=+U8(e*18446744073709552e3,n),r=(t[n>>2]|0)+-64|0):r=0,t[n>>2]=r;break}case 2047:break;default:t[n>>2]=(l&2047)+-1022,t[W>>2]=r,t[W+4>>2]=u&-2146435073|1071644672,e=+U[W>>3]}return+e}function jI(e,n,r){e=e|0,n=n|0,r=r|0;do if(e){if(n>>>0<128){p[e>>0]=n,e=1;break}if(!(t[t[(zI()|0)+188>>2]>>2]|0))if((n&-128|0)==57216){p[e>>0]=n,e=1;break}else{t[(Fv()|0)>>2]=84,e=-1;break}if(n>>>0<2048){p[e>>0]=n>>>6|192,p[e+1>>0]=n&63|128,e=2;break}if(n>>>0<55296|(n&-8192|0)==57344){p[e>>0]=n>>>12|224,p[e+1>>0]=n>>>6&63|128,p[e+2>>0]=n&63|128,e=3;break}if((n+-65536|0)>>>0<1048576){p[e>>0]=n>>>18|240,p[e+1>>0]=n>>>12&63|128,p[e+2>>0]=n>>>6&63|128,p[e+3>>0]=n&63|128,e=4;break}else{t[(Fv()|0)>>2]=84,e=-1;break}}else e=1;while(0);return e|0}function zI(){return VE()|0}function qI(){return VE()|0}function HI(e,n){e=e|0,n=n|0;var r=0,u=0;for(u=0;;){if((k[5712+u>>0]|0)==(e|0)){e=2;break}if(r=u+1|0,(r|0)==87){r=5800,u=87,e=5;break}else u=r}if((e|0)==2&&(u?(r=5800,e=5):r=5800),(e|0)==5)for(;;){do e=r,r=r+1|0;while((p[e>>0]|0)!=0);if(u=u+-1|0,u)e=5;else break}return WI(r,t[n+20>>2]|0)|0}function WI(e,n){return e=e|0,n=n|0,VI(e,n)|0}function VI(e,n){return e=e|0,n=n|0,n?n=GI(t[n>>2]|0,t[n+4>>2]|0,e)|0:n=0,(n|0?n:e)|0}function GI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0;K=(t[e>>2]|0)+1794895138|0,s=Gp(t[e+8>>2]|0,K)|0,u=Gp(t[e+12>>2]|0,K)|0,l=Gp(t[e+16>>2]|0,K)|0;e:do if((s>>>0>>2>>>0?(P=n-(s<<2)|0,u>>>0

>>0&l>>>0

>>0):0)?((l|u)&3|0)==0:0){for(P=u>>>2,O=l>>>2,M=0;;){if(D=s>>>1,S=M+D|0,h=S<<1,l=h+P|0,u=Gp(t[e+(l<<2)>>2]|0,K)|0,l=Gp(t[e+(l+1<<2)>>2]|0,K)|0,!(l>>>0>>0&u>>>0<(n-l|0)>>>0)){u=0;break e}if(p[e+(l+u)>>0]|0){u=0;break e}if(u=L8(r,e+l|0)|0,!u)break;if(u=(u|0)<0,(s|0)==1){u=0;break e}else M=u?M:S,s=u?D:s-D|0}u=h+O|0,l=Gp(t[e+(u<<2)>>2]|0,K)|0,u=Gp(t[e+(u+1<<2)>>2]|0,K)|0,u>>>0>>0&l>>>0<(n-u|0)>>>0?u=(p[e+(u+l)>>0]|0)==0?e+u|0:0:u=0}else u=0;while(0);return u|0}function Gp(e,n){e=e|0,n=n|0;var r=0;return r=Y8(e|0)|0,((n|0)==0?e:r)|0}function YI(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0,D=0;u=r+16|0,l=t[u>>2]|0,l?s=5:KI(r)|0?u=0:(l=t[u>>2]|0,s=5);e:do if((s|0)==5){if(D=r+20|0,h=t[D>>2]|0,u=h,(l-h|0)>>>0>>0){u=M_[t[r+36>>2]&7](r,e,n)|0;break}t:do if((p[r+75>>0]|0)>-1){for(h=n;;){if(!h){s=0,l=e;break t}if(l=h+-1|0,(p[e+l>>0]|0)==10)break;h=l}if(u=M_[t[r+36>>2]&7](r,e,h)|0,u>>>0>>0)break e;s=h,l=e+h|0,n=n-h|0,u=t[D>>2]|0}else s=0,l=e;while(0);pr(u|0,l|0,n|0)|0,t[D>>2]=(t[D>>2]|0)+n,u=s+n|0}while(0);return u|0}function KI(e){e=e|0;var n=0,r=0;return n=e+74|0,r=p[n>>0]|0,p[n>>0]=r+255|r,n=t[e>>2]|0,n&8?(t[e>>2]=n|32,e=-1):(t[e+8>>2]=0,t[e+4>>2]=0,r=t[e+44>>2]|0,t[e+28>>2]=r,t[e+20>>2]=r,t[e+16>>2]=r+(t[e+48>>2]|0),e=0),e|0}function Eu(e,n){e=w(e),n=w(n);var r=0,u=0;r=j8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=j8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?n:e;break}else{e=e>2]=e,t[W>>2]|0|0}function Yp(e,n){e=w(e),n=w(n);var r=0,u=0;r=z8(e)|0;do if((r&2147483647)>>>0<=2139095040){if(u=z8(n)|0,(u&2147483647)>>>0<=2139095040)if((u^r|0)<0){e=(r|0)<0?e:n;break}else{e=e>2]=e,t[W>>2]|0|0}function YE(e,n){e=w(e),n=w(n);var r=0,u=0,l=0,s=0,h=0,D=0,S=0,M=0;s=(C[W>>2]=e,t[W>>2]|0),D=(C[W>>2]=n,t[W>>2]|0),r=s>>>23&255,h=D>>>23&255,S=s&-2147483648,l=D<<1;e:do if((l|0)!=0?!((r|0)==255|((XI(n)|0)&2147483647)>>>0>2139095040):0){if(u=s<<1,u>>>0<=l>>>0)return n=w(e*w(0)),w((u|0)==(l|0)?n:e);if(r)u=s&8388607|8388608;else{if(r=s<<9,(r|0)>-1){u=r,r=0;do r=r+-1|0,u=u<<1;while((u|0)>-1)}else r=0;u=s<<1-r}if(h)D=D&8388607|8388608;else{if(s=D<<9,(s|0)>-1){l=0;do l=l+-1|0,s=s<<1;while((s|0)>-1)}else l=0;h=l,D=D<<1-l}l=u-D|0,s=(l|0)>-1;t:do if((r|0)>(h|0)){for(;;){if(s)if(l)u=l;else break;if(u=u<<1,r=r+-1|0,l=u-D|0,s=(l|0)>-1,(r|0)<=(h|0))break t}n=w(e*w(0));break e}while(0);if(s)if(l)u=l;else{n=w(e*w(0));break}if(u>>>0<8388608)do u=u<<1,r=r+-1|0;while(u>>>0<8388608);(r|0)>0?r=u+-8388608|r<<23:r=u>>>(1-r|0),n=(t[W>>2]=r|S,w(C[W>>2]))}else M=3;while(0);return(M|0)==3&&(n=w(e*n),n=w(n/n)),w(n)}function XI(e){return e=w(e),C[W>>2]=e,t[W>>2]|0|0}function QI(e,n){return e=e|0,n=n|0,F8(t[582]|0,e,n)|0}function li(e){e=e|0,Xn()}function Pv(e){e=e|0}function JI(e,n){return e=e|0,n=n|0,0}function ZI(e){return e=e|0,(q8(e+4|0)|0)==-1?(M1[t[(t[e>>2]|0)+8>>2]&127](e),e=1):e=0,e|0}function q8(e){e=e|0;var n=0;return n=t[e>>2]|0,t[e>>2]=n+-1,n+-1|0}function J2(e){e=e|0,ZI(e)|0&&$I(e)}function $I(e){e=e|0;var n=0;n=e+8|0,((t[n>>2]|0)!=0?(q8(n)|0)!=-1:0)||M1[t[(t[e>>2]|0)+16>>2]&127](e)}function cn(e){e=e|0;var n=0;for(n=(e|0)==0?1:e;e=C_(n)|0,!(e|0);){if(e=tB()|0,!e){e=0;break}rS[e&0]()}return e|0}function H8(e){return e=e|0,cn(e)|0}function yt(e){e=e|0,x_(e)}function eB(e){e=e|0,(p[e+11>>0]|0)<0&&yt(t[e>>2]|0)}function tB(){var e=0;return e=t[2923]|0,t[2923]=e+0,e|0}function nB(){}function R_(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,u=n-u-(r>>>0>e>>>0|0)>>>0,ft=u,e-r>>>0|0|0}function KE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,r=e+r>>>0,ft=n+u+(r>>>0>>0|0)>>>0,r|0|0}function Iv(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0,h=0;if(s=e+r|0,n=n&255,(r|0)>=67){for(;e&3;)p[e>>0]=n,e=e+1|0;for(u=s&-4|0,l=u-64|0,h=n|n<<8|n<<16|n<<24;(e|0)<=(l|0);)t[e>>2]=h,t[e+4>>2]=h,t[e+8>>2]=h,t[e+12>>2]=h,t[e+16>>2]=h,t[e+20>>2]=h,t[e+24>>2]=h,t[e+28>>2]=h,t[e+32>>2]=h,t[e+36>>2]=h,t[e+40>>2]=h,t[e+44>>2]=h,t[e+48>>2]=h,t[e+52>>2]=h,t[e+56>>2]=h,t[e+60>>2]=h,e=e+64|0;for(;(e|0)<(u|0);)t[e>>2]=h,e=e+4|0}for(;(e|0)<(s|0);)p[e>>0]=n,e=e+1|0;return s-r|0}function W8(e,n,r){return e=e|0,n=n|0,r=r|0,(r|0)<32?(ft=n<>>32-r,e<>>r,e>>>r|(n&(1<>>r-32|0)}function pr(e,n,r){e=e|0,n=n|0,r=r|0;var u=0,l=0,s=0;if((r|0)>=8192)return ni(e|0,n|0,r|0)|0;if(s=e|0,l=e+r|0,(e&3)==(n&3)){for(;e&3;){if(!r)return s|0;p[e>>0]=p[n>>0]|0,e=e+1|0,n=n+1|0,r=r-1|0}for(r=l&-4|0,u=r-64|0;(e|0)<=(u|0);)t[e>>2]=t[n>>2],t[e+4>>2]=t[n+4>>2],t[e+8>>2]=t[n+8>>2],t[e+12>>2]=t[n+12>>2],t[e+16>>2]=t[n+16>>2],t[e+20>>2]=t[n+20>>2],t[e+24>>2]=t[n+24>>2],t[e+28>>2]=t[n+28>>2],t[e+32>>2]=t[n+32>>2],t[e+36>>2]=t[n+36>>2],t[e+40>>2]=t[n+40>>2],t[e+44>>2]=t[n+44>>2],t[e+48>>2]=t[n+48>>2],t[e+52>>2]=t[n+52>>2],t[e+56>>2]=t[n+56>>2],t[e+60>>2]=t[n+60>>2],e=e+64|0,n=n+64|0;for(;(e|0)<(r|0);)t[e>>2]=t[n>>2],e=e+4|0,n=n+4|0}else for(r=l-4|0;(e|0)<(r|0);)p[e>>0]=p[n>>0]|0,p[e+1>>0]=p[n+1>>0]|0,p[e+2>>0]=p[n+2>>0]|0,p[e+3>>0]=p[n+3>>0]|0,e=e+4|0,n=n+4|0;for(;(e|0)<(l|0);)p[e>>0]=p[n>>0]|0,e=e+1|0,n=n+1|0;return s|0}function V8(e){e=e|0;var n=0;return n=p[Se+(e&255)>>0]|0,(n|0)<8?n|0:(n=p[Se+(e>>8&255)>>0]|0,(n|0)<8?n+8|0:(n=p[Se+(e>>16&255)>>0]|0,(n|0)<8?n+16|0:(p[Se+(e>>>24)>>0]|0)+24|0))}function G8(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0;var s=0,h=0,D=0,S=0,M=0,O=0,P=0,K=0,Pe=0,Ee=0;if(O=e,S=n,M=S,h=r,K=u,D=K,!M)return s=(l|0)!=0,D?s?(t[l>>2]=e|0,t[l+4>>2]=n&0,K=0,l=0,ft=K,l|0):(K=0,l=0,ft=K,l|0):(s&&(t[l>>2]=(O>>>0)%(h>>>0),t[l+4>>2]=0),K=0,l=(O>>>0)/(h>>>0)>>>0,ft=K,l|0);s=(D|0)==0;do if(h){if(!s){if(s=(vr(D|0)|0)-(vr(M|0)|0)|0,s>>>0<=31){P=s+1|0,D=31-s|0,n=s-31>>31,h=P,e=O>>>(P>>>0)&n|M<>>(P>>>0)&n,s=0,D=O<>2]=e|0,t[l+4>>2]=S|n&0,K=0,l=0,ft=K,l|0):(K=0,l=0,ft=K,l|0)}if(s=h-1|0,s&h|0){D=(vr(h|0)|0)+33-(vr(M|0)|0)|0,Ee=64-D|0,P=32-D|0,S=P>>31,Pe=D-32|0,n=Pe>>31,h=D,e=P-1>>31&M>>>(Pe>>>0)|(M<>>(D>>>0))&n,n=n&M>>>(D>>>0),s=O<>>(Pe>>>0))&S|O<>31;break}return l|0&&(t[l>>2]=s&O,t[l+4>>2]=0),(h|0)==1?(Pe=S|n&0,Ee=e|0|0,ft=Pe,Ee|0):(Ee=V8(h|0)|0,Pe=M>>>(Ee>>>0)|0,Ee=M<<32-Ee|O>>>(Ee>>>0)|0,ft=Pe,Ee|0)}else{if(s)return l|0&&(t[l>>2]=(M>>>0)%(h>>>0),t[l+4>>2]=0),Pe=0,Ee=(M>>>0)/(h>>>0)>>>0,ft=Pe,Ee|0;if(!O)return l|0&&(t[l>>2]=0,t[l+4>>2]=(M>>>0)%(D>>>0)),Pe=0,Ee=(M>>>0)/(D>>>0)>>>0,ft=Pe,Ee|0;if(s=D-1|0,!(s&D))return l|0&&(t[l>>2]=e|0,t[l+4>>2]=s&M|n&0),Pe=0,Ee=M>>>((V8(D|0)|0)>>>0),ft=Pe,Ee|0;if(s=(vr(D|0)|0)-(vr(M|0)|0)|0,s>>>0<=30){n=s+1|0,D=31-s|0,h=n,e=M<>>(n>>>0),n=M>>>(n>>>0),s=0,D=O<>2]=e|0,t[l+4>>2]=S|n&0,Pe=0,Ee=0,ft=Pe,Ee|0):(Pe=0,Ee=0,ft=Pe,Ee|0)}while(0);if(!h)M=D,S=0,D=0;else{P=r|0|0,O=K|u&0,M=KE(P|0,O|0,-1,-1)|0,r=ft,S=D,D=0;do u=S,S=s>>>31|S<<1,s=D|s<<1,u=e<<1|u>>>31|0,K=e>>>31|n<<1|0,R_(M|0,r|0,u|0,K|0)|0,Ee=ft,Pe=Ee>>31|((Ee|0)<0?-1:0)<<1,D=Pe&1,e=R_(u|0,K|0,Pe&P|0,(((Ee|0)<0?-1:0)>>31|((Ee|0)<0?-1:0)<<1)&O|0)|0,n=ft,h=h-1|0;while((h|0)!=0);M=S,S=0}return h=0,l|0&&(t[l>>2]=e,t[l+4>>2]=n),Pe=(s|0)>>>31|(M|h)<<1|(h<<1|s>>>31)&0|S,Ee=(s<<1|0>>>31)&-2|D,ft=Pe,Ee|0}function XE(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,G8(e,n,r,u,0)|0}function Z2(e){e=e|0;var n=0,r=0;return r=e+15&-16|0,n=t[q>>2]|0,e=n+r|0,(r|0)>0&(e|0)<(n|0)|(e|0)<0?(ur()|0,Vl(12),-1):(t[q>>2]=e,((e|0)>(Fr()|0)?(fr()|0)==0:0)?(t[q>>2]=n,Vl(12),-1):n|0)}function Iy(e,n,r){e=e|0,n=n|0,r=r|0;var u=0;if((n|0)<(e|0)&(e|0)<(n+r|0)){for(u=e,n=n+r|0,e=e+r|0;(r|0)>0;)e=e-1|0,n=n-1|0,r=r-1|0,p[e>>0]=p[n>>0]|0;e=u}else pr(e,n,r)|0;return e|0}function QE(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0;var l=0,s=0;return s=m,m=m+16|0,l=s|0,G8(e,n,r,u,l)|0,m=s,ft=t[l+4>>2]|0,t[l>>2]|0|0}function Y8(e){return e=e|0,(e&255)<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function rB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,K8[e&1](n|0,r|0,u|0,l|0,s|0)}function iB(e,n,r){e=e|0,n=n|0,r=w(r),X8[e&1](n|0,w(r))}function uB(e,n,r){e=e|0,n=n|0,r=+r,Q8[e&31](n|0,+r)}function oB(e,n,r,u){return e=e|0,n=n|0,r=w(r),u=w(u),w(J8[e&0](n|0,w(r),w(u)))}function lB(e,n){e=e|0,n=n|0,M1[e&127](n|0)}function sB(e,n,r){e=e|0,n=n|0,r=r|0,N1[e&31](n|0,r|0)}function aB(e,n){return e=e|0,n=n|0,Xp[e&31](n|0)|0}function fB(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,Z8[e&1](n|0,+r,+u,l|0)}function cB(e,n,r,u){e=e|0,n=n|0,r=+r,u=+u,VB[e&1](n|0,+r,+u)}function dB(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,M_[e&7](n|0,r|0,u|0)|0}function pB(e,n,r,u){return e=e|0,n=n|0,r=r|0,u=u|0,+GB[e&1](n|0,r|0,u|0)}function hB(e,n){return e=e|0,n=n|0,+$8[e&15](n|0)}function vB(e,n,r){return e=e|0,n=n|0,r=+r,YB[e&1](n|0,+r)|0}function mB(e,n,r){return e=e|0,n=n|0,r=r|0,ZE[e&15](n|0,r|0)|0}function yB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=+u,l=+l,s=s|0,KB[e&1](n|0,r|0,+u,+l,s|0)}function gB(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,h=h|0,XB[e&1](n|0,r|0,u|0,l|0,s|0,h|0)}function _B(e,n,r){return e=e|0,n=n|0,r=r|0,+eS[e&7](n|0,r|0)}function EB(e){return e=e|0,N_[e&7]()|0}function DB(e,n,r,u,l,s){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,tS[e&1](n|0,r|0,u|0,l|0,s|0)|0}function wB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=+l,QB[e&1](n|0,r|0,u|0,+l)}function SB(e,n,r,u,l,s,h){e=e|0,n=n|0,r=r|0,u=w(u),l=l|0,s=w(s),h=h|0,nS[e&1](n|0,r|0,w(u),l|0,w(s),h|0)}function TB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,jy[e&15](n|0,r|0,u|0)}function CB(e){e=e|0,rS[e&0]()}function xB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,iS[e&15](n|0,r|0,+u)}function AB(e,n,r){return e=e|0,n=+n,r=+r,JB[e&1](+n,+r)|0}function RB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,$E[e&15](n|0,r|0,u|0,l|0)}function OB(e,n,r,u,l){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,Ut(0)}function kB(e,n){e=e|0,n=w(n),Ut(1)}function Ks(e,n){e=e|0,n=+n,Ut(2)}function MB(e,n,r){return e=e|0,n=w(n),r=w(r),Ut(3),St}function Kn(e){e=e|0,Ut(4)}function By(e,n){e=e|0,n=n|0,Ut(5)}function xa(e){return e=e|0,Ut(6),0}function NB(e,n,r,u){e=e|0,n=+n,r=+r,u=u|0,Ut(7)}function LB(e,n,r){e=e|0,n=+n,r=+r,Ut(8)}function FB(e,n,r){return e=e|0,n=n|0,r=r|0,Ut(9),0}function bB(e,n,r){return e=e|0,n=n|0,r=r|0,Ut(10),0}function Kp(e){return e=e|0,Ut(11),0}function PB(e,n){return e=e|0,n=+n,Ut(12),0}function Uy(e,n){return e=e|0,n=n|0,Ut(13),0}function IB(e,n,r,u,l){e=e|0,n=n|0,r=+r,u=+u,l=l|0,Ut(14)}function BB(e,n,r,u,l,s){e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,s=s|0,Ut(15)}function JE(e,n){return e=e|0,n=n|0,Ut(16),0}function UB(){return Ut(17),0}function jB(e,n,r,u,l){return e=e|0,n=n|0,r=r|0,u=u|0,l=l|0,Ut(18),0}function zB(e,n,r,u){e=e|0,n=n|0,r=r|0,u=+u,Ut(19)}function qB(e,n,r,u,l,s){e=e|0,n=n|0,r=w(r),u=u|0,l=w(l),s=s|0,Ut(20)}function k_(e,n,r){e=e|0,n=n|0,r=r|0,Ut(21)}function HB(){Ut(22)}function Bv(e,n,r){e=e|0,n=n|0,r=+r,Ut(23)}function WB(e,n){return e=+e,n=+n,Ut(24),0}function Uv(e,n,r,u){e=e|0,n=n|0,r=r|0,u=u|0,Ut(25)}var K8=[OB,UL],X8=[kB,Ju],Q8=[Ks,ua,ys,gs,Ql,Io,hf,tl,Ia,Zu,vf,jc,lc,Sl,_s,oa,n2,la,sc,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks,Ks],J8=[MB],M1=[Kn,Pv,an,$l,go,Lf,x1,Fl,hN,vN,mN,xL,AL,RL,XP,QP,JP,Ne,uc,La,ju,U0,hh,yf,$c,Af,pa,Rh,Sm,h1,v1,Xh,pp,M2,Gm,D1,Sc,ry,oy,Sv,Av,rn,Q4,lE,h_,Nt,_u,Qu,RO,WO,ak,Ak,qk,aM,_M,wM,UM,qM,uN,gN,DN,BN,nL,v2,BF,vb,kb,Vb,pP,RP,UP,qP,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn,Kn],N1=[By,gd,$1,Uc,Dl,el,_d,Bs,wl,Fa,ba,Pa,Tl,Be,ut,Jt,jn,ti,tr,Ba,Dd,mh,fE,vE,Mk,zF,fL,g8,By,By,By,By],Xp=[xa,xI,pf,y,J,fe,mt,Ct,Mt,Er,iu,j0,Ua,r2,Vc,Cs,Gk,zN,VF,Sa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa,xa],Z8=[NB,Td],VB=[LB,sN],M_=[FB,N8,AI,kI,zh,dv,NO,Xb],GB=[bB,lv],$8=[Kp,e0,He,ii,vh,il,sa,Cd,xd,ac,Kp,Kp,Kp,Kp,Kp,Kp],YB=[PB,mM],ZE=[Uy,JI,Ed,ll,zd,Nm,ap,Cp,ly,xr,bo,Fb,Uy,Uy,Uy,Uy],KB=[IB,Sh],XB=[BB,yP],eS=[JE,qi,Ad,a2,Gc,cl,JE,JE],N_=[UB,Yc,to,g0,xM,GM,CN,GP],tS=[jB,ei],QB=[zB,Dy],nS=[qB,i2],jy=[k_,A,$u,jr,gu,d1,k2,ir,Cy,po,aF,_b,NP,k_,k_,k_],rS=[HB],iS=[Bv,e2,ho,t2,Po,zc,bi,g,Ip,KO,dM,Bv,Bv,Bv,Bv,Bv],JB=[WB,dN],$E=[Uv,_p,Rc,pk,tM,NM,ZM,NN,lL,JF,rI,Uv,Uv,Uv,Uv,Uv];return{_llvm_bswap_i32:Y8,dynCall_idd:AB,dynCall_i:EB,_i64Subtract:R_,___udivdi3:XE,dynCall_vif:iB,setThrew:fs,dynCall_viii:TB,_bitshift64Lshr:O_,_bitshift64Shl:W8,dynCall_vi:lB,dynCall_viiddi:yB,dynCall_diii:pB,dynCall_iii:mB,_memset:Iv,_sbrk:Z2,_memcpy:pr,__GLOBAL__sub_I_Yoga_cpp:Qi,dynCall_vii:sB,___uremdi3:QE,dynCall_vid:uB,stackAlloc:so,_nbind_init:hI,getTempRet0:X,dynCall_di:hB,dynCall_iid:vB,setTempRet0:P0,_i64Add:KE,dynCall_fiff:oB,dynCall_iiii:dB,_emscripten_get_global_libc:CI,dynCall_viid:xB,dynCall_viiid:wB,dynCall_viififi:SB,dynCall_ii:aB,__GLOBAL__sub_I_Binding_cc:kF,dynCall_viiii:RB,dynCall_iiiiii:DB,stackSave:Jo,dynCall_viiiii:rB,__GLOBAL__sub_I_nbind_cc:Us,dynCall_vidd:cB,_free:x_,runPostSets:nB,dynCall_viiiiii:gB,establishStackSpace:Fu,_memmove:Iy,stackRestore:Gl,_malloc:C_,__GLOBAL__sub_I_common_cc:XN,dynCall_viddi:fB,dynCall_dii:_B,dynCall_v:CB}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(i){this.name="ExitStatus",this.message="Program terminated with exit("+i+")",this.status=i}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function i(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=i)},Module.callMain=Module.callMain=function(o){o=o||[],ensureInitRuntime();var f=o.length+1;function p(){for(var N=0;N<4-1;N++)E.push(0)}var E=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];p();for(var t=0;t0||(preRun(),runDependencies>0)||Module.calledRun)return;function o(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(i),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),o()},1)):o()}Module.run=Module.run=run;function exit(i,o){o&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=i,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(i)),ENVIRONMENT_IS_NODE&&process.exit(i),Module.quit(i,new ExitStatus(i)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(i){Module.onAbort&&Module.onAbort(i),i!==void 0?(Module.print(i),Module.printErr(i),i=JSON.stringify(i)):i="",ABORT=!0,EXITSTATUS=1;var o=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,f="abort("+i+") at "+stackTrace()+o;throw abortDecorators&&abortDecorators.forEach(function(p){f=p(f,i)}),f}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var eh=ce((Wne,O9)=>{"use strict";var tX=A9(),nX=R9(),hw=!1,vw=null;nX({},function(i,o){if(!hw){if(hw=!0,i)throw i;vw=o}});if(!hw)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");O9.exports=tX(vw.bind,vw.lib)});var M9=ce((Vne,k9)=>{"use strict";k9.exports=({onlyFirst:i=!1}={})=>{let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i?void 0:"g")}});var mw=ce((Gne,N9)=>{"use strict";var rX=M9();N9.exports=i=>typeof i=="string"?i.replace(rX(),""):i});var gw=ce((Yne,yw)=>{"use strict";var L9=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);yw.exports=L9;yw.exports.default=L9});var b9=ce((Kne,F9)=>{"use strict";F9.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var m4=ce((Xne,_w)=>{"use strict";var iX=mw(),uX=gw(),oX=b9(),P9=i=>{if(i=i.replace(oX()," "),typeof i!="string"||i.length===0)return 0;i=iX(i);let o=0;for(let f=0;f=127&&p<=159||p>=768&&p<=879||(p>65535&&f++,o+=uX(p)?2:1)}return o};_w.exports=P9;_w.exports.default=P9});var Dw=ce((Qne,Ew)=>{"use strict";var lX=m4(),I9=i=>{let o=0;for(let f of i.split(` +`))o=Math.max(o,lX(f));return o};Ew.exports=I9;Ew.exports.default=I9});var B9=ce(vg=>{"use strict";var sX=vg&&vg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(vg,"__esModule",{value:!0});var aX=sX(Dw()),ww={};vg.default=i=>{if(i.length===0)return{width:0,height:0};if(ww[i])return ww[i];let o=aX.default(i),f=i.split(` +`).length;return ww[i]={width:o,height:f},{width:o,height:f}}});var U9=ce(mg=>{"use strict";var fX=mg&&mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(mg,"__esModule",{value:!0});var Ii=fX(eh()),cX=(i,o)=>{"position"in o&&i.setPositionType(o.position==="absolute"?Ii.default.POSITION_TYPE_ABSOLUTE:Ii.default.POSITION_TYPE_RELATIVE)},dX=(i,o)=>{"marginLeft"in o&&i.setMargin(Ii.default.EDGE_START,o.marginLeft||0),"marginRight"in o&&i.setMargin(Ii.default.EDGE_END,o.marginRight||0),"marginTop"in o&&i.setMargin(Ii.default.EDGE_TOP,o.marginTop||0),"marginBottom"in o&&i.setMargin(Ii.default.EDGE_BOTTOM,o.marginBottom||0)},pX=(i,o)=>{"paddingLeft"in o&&i.setPadding(Ii.default.EDGE_LEFT,o.paddingLeft||0),"paddingRight"in o&&i.setPadding(Ii.default.EDGE_RIGHT,o.paddingRight||0),"paddingTop"in o&&i.setPadding(Ii.default.EDGE_TOP,o.paddingTop||0),"paddingBottom"in o&&i.setPadding(Ii.default.EDGE_BOTTOM,o.paddingBottom||0)},hX=(i,o)=>{var f;"flexGrow"in o&&i.setFlexGrow((f=o.flexGrow)!==null&&f!==void 0?f:0),"flexShrink"in o&&i.setFlexShrink(typeof o.flexShrink=="number"?o.flexShrink:1),"flexDirection"in o&&(o.flexDirection==="row"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_ROW),o.flexDirection==="row-reverse"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_ROW_REVERSE),o.flexDirection==="column"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_COLUMN),o.flexDirection==="column-reverse"&&i.setFlexDirection(Ii.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in o&&(typeof o.flexBasis=="number"?i.setFlexBasis(o.flexBasis):typeof o.flexBasis=="string"?i.setFlexBasisPercent(Number.parseInt(o.flexBasis,10)):i.setFlexBasis(NaN)),"alignItems"in o&&((o.alignItems==="stretch"||!o.alignItems)&&i.setAlignItems(Ii.default.ALIGN_STRETCH),o.alignItems==="flex-start"&&i.setAlignItems(Ii.default.ALIGN_FLEX_START),o.alignItems==="center"&&i.setAlignItems(Ii.default.ALIGN_CENTER),o.alignItems==="flex-end"&&i.setAlignItems(Ii.default.ALIGN_FLEX_END)),"alignSelf"in o&&((o.alignSelf==="auto"||!o.alignSelf)&&i.setAlignSelf(Ii.default.ALIGN_AUTO),o.alignSelf==="flex-start"&&i.setAlignSelf(Ii.default.ALIGN_FLEX_START),o.alignSelf==="center"&&i.setAlignSelf(Ii.default.ALIGN_CENTER),o.alignSelf==="flex-end"&&i.setAlignSelf(Ii.default.ALIGN_FLEX_END)),"justifyContent"in o&&((o.justifyContent==="flex-start"||!o.justifyContent)&&i.setJustifyContent(Ii.default.JUSTIFY_FLEX_START),o.justifyContent==="center"&&i.setJustifyContent(Ii.default.JUSTIFY_CENTER),o.justifyContent==="flex-end"&&i.setJustifyContent(Ii.default.JUSTIFY_FLEX_END),o.justifyContent==="space-between"&&i.setJustifyContent(Ii.default.JUSTIFY_SPACE_BETWEEN),o.justifyContent==="space-around"&&i.setJustifyContent(Ii.default.JUSTIFY_SPACE_AROUND))},vX=(i,o)=>{var f,p;"width"in o&&(typeof o.width=="number"?i.setWidth(o.width):typeof o.width=="string"?i.setWidthPercent(Number.parseInt(o.width,10)):i.setWidthAuto()),"height"in o&&(typeof o.height=="number"?i.setHeight(o.height):typeof o.height=="string"?i.setHeightPercent(Number.parseInt(o.height,10)):i.setHeightAuto()),"minWidth"in o&&(typeof o.minWidth=="string"?i.setMinWidthPercent(Number.parseInt(o.minWidth,10)):i.setMinWidth((f=o.minWidth)!==null&&f!==void 0?f:0)),"minHeight"in o&&(typeof o.minHeight=="string"?i.setMinHeightPercent(Number.parseInt(o.minHeight,10)):i.setMinHeight((p=o.minHeight)!==null&&p!==void 0?p:0))},mX=(i,o)=>{"display"in o&&i.setDisplay(o.display==="flex"?Ii.default.DISPLAY_FLEX:Ii.default.DISPLAY_NONE)},yX=(i,o)=>{if("borderStyle"in o){let f=typeof o.borderStyle=="string"?1:0;i.setBorder(Ii.default.EDGE_TOP,f),i.setBorder(Ii.default.EDGE_BOTTOM,f),i.setBorder(Ii.default.EDGE_LEFT,f),i.setBorder(Ii.default.EDGE_RIGHT,f)}};mg.default=(i,o={})=>{cX(i,o),dX(i,o),pX(i,o),hX(i,o),vX(i,o),mX(i,o),yX(i,o)}});var z9=ce(($ne,j9)=>{"use strict";j9.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Sw=ce((ere,q9)=>{var yg=z9(),H9={};for(let i of Object.keys(yg))H9[yg[i]]=i;var In={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};q9.exports=In;for(let i of Object.keys(In)){if(!("channels"in In[i]))throw new Error("missing channels property: "+i);if(!("labels"in In[i]))throw new Error("missing channel labels property: "+i);if(In[i].labels.length!==In[i].channels)throw new Error("channel and label counts mismatch: "+i);let{channels:o,labels:f}=In[i];delete In[i].channels,delete In[i].labels,Object.defineProperty(In[i],"channels",{value:o}),Object.defineProperty(In[i],"labels",{value:f})}In.rgb.hsl=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.min(o,f,p),t=Math.max(o,f,p),k=t-E,L,N;t===E?L=0:o===t?L=(f-p)/k:f===t?L=2+(p-o)/k:p===t&&(L=4+(o-f)/k),L=Math.min(L*60,360),L<0&&(L+=360);let C=(E+t)/2;return t===E?N=0:C<=.5?N=k/(t+E):N=k/(2-t-E),[L,N*100,C*100]};In.rgb.hsv=function(i){let o,f,p,E,t,k=i[0]/255,L=i[1]/255,N=i[2]/255,C=Math.max(k,L,N),U=C-Math.min(k,L,N),q=function(W){return(C-W)/6/U+1/2};return U===0?(E=0,t=0):(t=U/C,o=q(k),f=q(L),p=q(N),k===C?E=p-f:L===C?E=1/3+o-p:N===C&&(E=2/3+f-o),E<0?E+=1:E>1&&(E-=1)),[E*360,t*100,C*100]};In.rgb.hwb=function(i){let o=i[0],f=i[1],p=i[2],E=In.rgb.hsl(i)[0],t=1/255*Math.min(o,Math.min(f,p));return p=1-1/255*Math.max(o,Math.max(f,p)),[E,t*100,p*100]};In.rgb.cmyk=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.min(1-o,1-f,1-p),t=(1-o-E)/(1-E)||0,k=(1-f-E)/(1-E)||0,L=(1-p-E)/(1-E)||0;return[t*100,k*100,L*100,E*100]};function gX(i,o){return(i[0]-o[0])**2+(i[1]-o[1])**2+(i[2]-o[2])**2}In.rgb.keyword=function(i){let o=H9[i];if(o)return o;let f=Infinity,p;for(let E of Object.keys(yg)){let t=yg[E],k=gX(i,t);k.04045?((o+.055)/1.055)**2.4:o/12.92,f=f>.04045?((f+.055)/1.055)**2.4:f/12.92,p=p>.04045?((p+.055)/1.055)**2.4:p/12.92;let E=o*.4124+f*.3576+p*.1805,t=o*.2126+f*.7152+p*.0722,k=o*.0193+f*.1192+p*.9505;return[E*100,t*100,k*100]};In.rgb.lab=function(i){let o=In.rgb.xyz(i),f=o[0],p=o[1],E=o[2];f/=95.047,p/=100,E/=108.883,f=f>.008856?f**(1/3):7.787*f+16/116,p=p>.008856?p**(1/3):7.787*p+16/116,E=E>.008856?E**(1/3):7.787*E+16/116;let t=116*p-16,k=500*(f-p),L=200*(p-E);return[t,k,L]};In.hsl.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100,E,t,k;if(f===0)return k=p*255,[k,k,k];p<.5?E=p*(1+f):E=p+f-p*f;let L=2*p-E,N=[0,0,0];for(let C=0;C<3;C++)t=o+1/3*-(C-1),t<0&&t++,t>1&&t--,6*t<1?k=L+(E-L)*6*t:2*t<1?k=E:3*t<2?k=L+(E-L)*(2/3-t)*6:k=L,N[C]=k*255;return N};In.hsl.hsv=function(i){let o=i[0],f=i[1]/100,p=i[2]/100,E=f,t=Math.max(p,.01);p*=2,f*=p<=1?p:2-p,E*=t<=1?t:2-t;let k=(p+f)/2,L=p===0?2*E/(t+E):2*f/(p+f);return[o,L*100,k*100]};In.hsv.rgb=function(i){let o=i[0]/60,f=i[1]/100,p=i[2]/100,E=Math.floor(o)%6,t=o-Math.floor(o),k=255*p*(1-f),L=255*p*(1-f*t),N=255*p*(1-f*(1-t));switch(p*=255,E){case 0:return[p,N,k];case 1:return[L,p,k];case 2:return[k,p,N];case 3:return[k,L,p];case 4:return[N,k,p];case 5:return[p,k,L]}};In.hsv.hsl=function(i){let o=i[0],f=i[1]/100,p=i[2]/100,E=Math.max(p,.01),t,k;k=(2-f)*p;let L=(2-f)*E;return t=f*E,t/=L<=1?L:2-L,t=t||0,k/=2,[o,t*100,k*100]};In.hwb.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100,E=f+p,t;E>1&&(f/=E,p/=E);let k=Math.floor(6*o),L=1-p;t=6*o-k,(k&1)!=0&&(t=1-t);let N=f+t*(L-f),C,U,q;switch(k){default:case 6:case 0:C=L,U=N,q=f;break;case 1:C=N,U=L,q=f;break;case 2:C=f,U=L,q=N;break;case 3:C=f,U=N,q=L;break;case 4:C=N,U=f,q=L;break;case 5:C=L,U=f,q=N;break}return[C*255,U*255,q*255]};In.cmyk.rgb=function(i){let o=i[0]/100,f=i[1]/100,p=i[2]/100,E=i[3]/100,t=1-Math.min(1,o*(1-E)+E),k=1-Math.min(1,f*(1-E)+E),L=1-Math.min(1,p*(1-E)+E);return[t*255,k*255,L*255]};In.xyz.rgb=function(i){let o=i[0]/100,f=i[1]/100,p=i[2]/100,E,t,k;return E=o*3.2406+f*-1.5372+p*-.4986,t=o*-.9689+f*1.8758+p*.0415,k=o*.0557+f*-.204+p*1.057,E=E>.0031308?1.055*E**(1/2.4)-.055:E*12.92,t=t>.0031308?1.055*t**(1/2.4)-.055:t*12.92,k=k>.0031308?1.055*k**(1/2.4)-.055:k*12.92,E=Math.min(Math.max(0,E),1),t=Math.min(Math.max(0,t),1),k=Math.min(Math.max(0,k),1),[E*255,t*255,k*255]};In.xyz.lab=function(i){let o=i[0],f=i[1],p=i[2];o/=95.047,f/=100,p/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,f=f>.008856?f**(1/3):7.787*f+16/116,p=p>.008856?p**(1/3):7.787*p+16/116;let E=116*f-16,t=500*(o-f),k=200*(f-p);return[E,t,k]};In.lab.xyz=function(i){let o=i[0],f=i[1],p=i[2],E,t,k;t=(o+16)/116,E=f/500+t,k=t-p/200;let L=t**3,N=E**3,C=k**3;return t=L>.008856?L:(t-16/116)/7.787,E=N>.008856?N:(E-16/116)/7.787,k=C>.008856?C:(k-16/116)/7.787,E*=95.047,t*=100,k*=108.883,[E,t,k]};In.lab.lch=function(i){let o=i[0],f=i[1],p=i[2],E;E=Math.atan2(p,f)*360/2/Math.PI,E<0&&(E+=360);let k=Math.sqrt(f*f+p*p);return[o,k,E]};In.lch.lab=function(i){let o=i[0],f=i[1],E=i[2]/360*2*Math.PI,t=f*Math.cos(E),k=f*Math.sin(E);return[o,t,k]};In.rgb.ansi16=function(i,o=null){let[f,p,E]=i,t=o===null?In.rgb.hsv(i)[2]:o;if(t=Math.round(t/50),t===0)return 30;let k=30+(Math.round(E/255)<<2|Math.round(p/255)<<1|Math.round(f/255));return t===2&&(k+=60),k};In.hsv.ansi16=function(i){return In.rgb.ansi16(In.hsv.rgb(i),i[2])};In.rgb.ansi256=function(i){let o=i[0],f=i[1],p=i[2];return o===f&&f===p?o<8?16:o>248?231:Math.round((o-8)/247*24)+232:16+36*Math.round(o/255*5)+6*Math.round(f/255*5)+Math.round(p/255*5)};In.ansi16.rgb=function(i){let o=i%10;if(o===0||o===7)return i>50&&(o+=3.5),o=o/10.5*255,[o,o,o];let f=(~~(i>50)+1)*.5,p=(o&1)*f*255,E=(o>>1&1)*f*255,t=(o>>2&1)*f*255;return[p,E,t]};In.ansi256.rgb=function(i){if(i>=232){let t=(i-232)*10+8;return[t,t,t]}i-=16;let o,f=Math.floor(i/36)/5*255,p=Math.floor((o=i%36)/6)/5*255,E=o%6/5*255;return[f,p,E]};In.rgb.hex=function(i){let f=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(f.length)+f};In.hex.rgb=function(i){let o=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!o)return[0,0,0];let f=o[0];o[0].length===3&&(f=f.split("").map(L=>L+L).join(""));let p=parseInt(f,16),E=p>>16&255,t=p>>8&255,k=p&255;return[E,t,k]};In.rgb.hcg=function(i){let o=i[0]/255,f=i[1]/255,p=i[2]/255,E=Math.max(Math.max(o,f),p),t=Math.min(Math.min(o,f),p),k=E-t,L,N;return k<1?L=t/(1-k):L=0,k<=0?N=0:E===o?N=(f-p)/k%6:E===f?N=2+(p-o)/k:N=4+(o-f)/k,N/=6,N%=1,[N*360,k*100,L*100]};In.hsl.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=f<.5?2*o*f:2*o*(1-f),E=0;return p<1&&(E=(f-.5*p)/(1-p)),[i[0],p*100,E*100]};In.hsv.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=o*f,E=0;return p<1&&(E=(f-p)/(1-p)),[i[0],p*100,E*100]};In.hcg.rgb=function(i){let o=i[0]/360,f=i[1]/100,p=i[2]/100;if(f===0)return[p*255,p*255,p*255];let E=[0,0,0],t=o%1*6,k=t%1,L=1-k,N=0;switch(Math.floor(t)){case 0:E[0]=1,E[1]=k,E[2]=0;break;case 1:E[0]=L,E[1]=1,E[2]=0;break;case 2:E[0]=0,E[1]=1,E[2]=k;break;case 3:E[0]=0,E[1]=L,E[2]=1;break;case 4:E[0]=k,E[1]=0,E[2]=1;break;default:E[0]=1,E[1]=0,E[2]=L}return N=(1-f)*p,[(f*E[0]+N)*255,(f*E[1]+N)*255,(f*E[2]+N)*255]};In.hcg.hsv=function(i){let o=i[1]/100,f=i[2]/100,p=o+f*(1-o),E=0;return p>0&&(E=o/p),[i[0],E*100,p*100]};In.hcg.hsl=function(i){let o=i[1]/100,p=i[2]/100*(1-o)+.5*o,E=0;return p>0&&p<.5?E=o/(2*p):p>=.5&&p<1&&(E=o/(2*(1-p))),[i[0],E*100,p*100]};In.hcg.hwb=function(i){let o=i[1]/100,f=i[2]/100,p=o+f*(1-o);return[i[0],(p-o)*100,(1-p)*100]};In.hwb.hcg=function(i){let o=i[1]/100,f=i[2]/100,p=1-f,E=p-o,t=0;return E<1&&(t=(p-E)/(1-E)),[i[0],E*100,t*100]};In.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]};In.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]};In.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]};In.gray.hsl=function(i){return[0,0,i[0]]};In.gray.hsv=In.gray.hsl;In.gray.hwb=function(i){return[0,100,i[0]]};In.gray.cmyk=function(i){return[0,0,0,i[0]]};In.gray.lab=function(i){return[i[0],0,0]};In.gray.hex=function(i){let o=Math.round(i[0]/100*255)&255,p=((o<<16)+(o<<8)+o).toString(16).toUpperCase();return"000000".substring(p.length)+p};In.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]}});var V9=ce((tre,W9)=>{var y4=Sw();function _X(){let i={},o=Object.keys(y4);for(let f=o.length,p=0;p{var Tw=Sw(),SX=V9(),sm={},TX=Object.keys(Tw);function CX(i){let o=function(...f){let p=f[0];return p==null?p:(p.length>1&&(f=p),i(f))};return"conversion"in i&&(o.conversion=i.conversion),o}function xX(i){let o=function(...f){let p=f[0];if(p==null)return p;p.length>1&&(f=p);let E=i(f);if(typeof E=="object")for(let t=E.length,k=0;k{sm[i]={},Object.defineProperty(sm[i],"channels",{value:Tw[i].channels}),Object.defineProperty(sm[i],"labels",{value:Tw[i].labels});let o=SX(i);Object.keys(o).forEach(p=>{let E=o[p];sm[i][p]=xX(E),sm[i][p].raw=CX(E)})});G9.exports=sm});var _4=ce((rre,K9)=>{"use strict";var X9=(i,o)=>(...f)=>`[${i(...f)+o}m`,Q9=(i,o)=>(...f)=>{let p=i(...f);return`[${38+o};5;${p}m`},J9=(i,o)=>(...f)=>{let p=i(...f);return`[${38+o};2;${p[0]};${p[1]};${p[2]}m`},g4=i=>i,Z9=(i,o,f)=>[i,o,f],am=(i,o,f)=>{Object.defineProperty(i,o,{get:()=>{let p=f();return Object.defineProperty(i,o,{value:p,enumerable:!0,configurable:!0}),p},enumerable:!0,configurable:!0})},Cw,fm=(i,o,f,p)=>{Cw===void 0&&(Cw=Y9());let E=p?10:0,t={};for(let[k,L]of Object.entries(Cw)){let N=k==="ansi16"?"ansi":k;k===o?t[N]=i(f,E):typeof L=="object"&&(t[N]=i(L[o],E))}return t};function AX(){let i=new Map,o={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};o.color.gray=o.color.blackBright,o.bgColor.bgGray=o.bgColor.bgBlackBright,o.color.grey=o.color.blackBright,o.bgColor.bgGrey=o.bgColor.bgBlackBright;for(let[f,p]of Object.entries(o)){for(let[E,t]of Object.entries(p))o[E]={open:`[${t[0]}m`,close:`[${t[1]}m`},p[E]=o[E],i.set(t[0],t[1]);Object.defineProperty(o,f,{value:p,enumerable:!1})}return Object.defineProperty(o,"codes",{value:i,enumerable:!1}),o.color.close="",o.bgColor.close="",am(o.color,"ansi",()=>fm(X9,"ansi16",g4,!1)),am(o.color,"ansi256",()=>fm(Q9,"ansi256",g4,!1)),am(o.color,"ansi16m",()=>fm(J9,"rgb",Z9,!1)),am(o.bgColor,"ansi",()=>fm(X9,"ansi16",g4,!0)),am(o.bgColor,"ansi256",()=>fm(Q9,"ansi256",g4,!0)),am(o.bgColor,"ansi16m",()=>fm(J9,"rgb",Z9,!0)),o}Object.defineProperty(K9,"exports",{enumerable:!0,get:AX})});var tA=ce((ire,$9)=>{"use strict";var gg=m4(),RX=mw(),OX=_4(),xw=new Set(["","\x9B"]),kX=39,eA=i=>`${xw.values().next().value}[${i}m`,MX=i=>i.split(" ").map(o=>gg(o)),Aw=(i,o,f)=>{let p=[...o],E=!1,t=gg(RX(i[i.length-1]));for(let[k,L]of p.entries()){let N=gg(L);if(t+N<=f?i[i.length-1]+=L:(i.push(L),t=0),xw.has(L))E=!0;else if(E&&L==="m"){E=!1;continue}E||(t+=N,t===f&&k0&&i.length>1&&(i[i.length-2]+=i.pop())},NX=i=>{let o=i.split(" "),f=o.length;for(;f>0&&!(gg(o[f-1])>0);)f--;return f===o.length?i:o.slice(0,f).join(" ")+o.slice(f).join("")},LX=(i,o,f={})=>{if(f.trim!==!1&&i.trim()==="")return"";let p="",E="",t,k=MX(i),L=[""];for(let[N,C]of i.split(" ").entries()){f.trim!==!1&&(L[L.length-1]=L[L.length-1].trimLeft());let U=gg(L[L.length-1]);if(N!==0&&(U>=o&&(f.wordWrap===!1||f.trim===!1)&&(L.push(""),U=0),(U>0||f.trim===!1)&&(L[L.length-1]+=" ",U++)),f.hard&&k[N]>o){let q=o-U,W=1+Math.floor((k[N]-q-1)/o);Math.floor((k[N]-1)/o)o&&U>0&&k[N]>0){if(f.wordWrap===!1&&Uo&&f.wordWrap===!1){Aw(L,C,o);continue}L[L.length-1]+=C}f.trim!==!1&&(L=L.map(NX)),p=L.join(` +`);for(let[N,C]of[...p].entries()){if(E+=C,xw.has(C)){let q=parseFloat(/\d[^m]*/.exec(p.slice(N,N+4)));t=q===kX?null:q}let U=OX.codes.get(Number(t));t&&U&&(p[N+1]===` +`?E+=eA(U):C===` +`&&(E+=eA(t)))}return E};$9.exports=(i,o,f)=>String(i).normalize().replace(/\r\n/g,` +`).split(` +`).map(p=>LX(p,o,f)).join(` +`)});var iA=ce((ure,nA)=>{"use strict";var rA="[\uD800-\uDBFF][\uDC00-\uDFFF]",FX=i=>i&&i.exact?new RegExp(`^${rA}$`):new RegExp(rA,"g");nA.exports=FX});var Rw=ce((ore,uA)=>{"use strict";var bX=gw(),PX=iA(),oA=_4(),lA=["","\x9B"],E4=i=>`${lA[0]}[${i}m`,sA=(i,o,f)=>{let p=[];i=[...i];for(let E of i){let t=E;E.match(";")&&(E=E.split(";")[0][0]+"0");let k=oA.codes.get(parseInt(E,10));if(k){let L=i.indexOf(k.toString());L>=0?i.splice(L,1):p.push(E4(o?k:t))}else if(o){p.push(E4(0));break}else p.push(E4(t))}if(o&&(p=p.filter((E,t)=>p.indexOf(E)===t),f!==void 0)){let E=E4(oA.codes.get(parseInt(f,10)));p=p.reduce((t,k)=>k===E?[k,...t]:[...t,k],[])}return p.join("")};uA.exports=(i,o,f)=>{let p=[...i.normalize()],E=[];f=typeof f=="number"?f:p.length;let t=!1,k,L=0,N="";for(let[C,U]of p.entries()){let q=!1;if(lA.includes(U)){let W=/\d[^m]*/.exec(i.slice(C,C+18));k=W&&W.length>0?W[0]:void 0,Lo&&L<=f)N+=U;else if(L===o&&!t&&k!==void 0)N=sA(E);else if(L>=f){N+=sA(E,!0,k);break}}return N}});var fA=ce((lre,aA)=>{"use strict";var pd=Rw(),IX=m4();function D4(i,o,f){if(i.charAt(o)===" ")return o;for(let p=1;p<=3;p++)if(f){if(i.charAt(o+p)===" ")return o+p}else if(i.charAt(o-p)===" ")return o-p;return o}aA.exports=(i,o,f)=>{f=E0({position:"end",preferTruncationOnSpace:!1},f);let{position:p,space:E,preferTruncationOnSpace:t}=f,k="\u2026",L=1;if(typeof i!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof i}`);if(typeof o!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof o}`);if(o<1)return"";if(o===1)return k;let N=IX(i);if(N<=o)return i;if(p==="start"){if(t){let C=D4(i,N-o+1,!0);return k+pd(i,C,N).trim()}return E===!0&&(k+=" ",L=2),k+pd(i,N-o+L,N)}if(p==="middle"){E===!0&&(k=" "+k+" ",L=3);let C=Math.floor(o/2);if(t){let U=D4(i,C),q=D4(i,N-(o-C)+1,!0);return pd(i,0,U)+k+pd(i,q,N).trim()}return pd(i,0,C)+k+pd(i,N-(o-C)+L,N)}if(p==="end"){if(t){let C=D4(i,o-1);return pd(i,0,C)+k}return E===!0&&(k=" "+k,L=2),pd(i,0,o-L)+k}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${p}`)}});var kw=ce(_g=>{"use strict";var cA=_g&&_g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(_g,"__esModule",{value:!0});var BX=cA(tA()),UX=cA(fA()),Ow={};_g.default=(i,o,f)=>{let p=i+String(o)+String(f);if(Ow[p])return Ow[p];let E=i;if(f==="wrap"&&(E=BX.default(i,o,{trim:!1,hard:!0})),f.startsWith("truncate")){let t="end";f==="truncate-middle"&&(t="middle"),f==="truncate-start"&&(t="start"),E=UX.default(i,o,{position:t})}return Ow[p]=E,E}});var Nw=ce(Mw=>{"use strict";Object.defineProperty(Mw,"__esModule",{value:!0});var dA=i=>{let o="";if(i.childNodes.length>0)for(let f of i.childNodes){let p="";f.nodeName==="#text"?p=f.nodeValue:((f.nodeName==="ink-text"||f.nodeName==="ink-virtual-text")&&(p=dA(f)),p.length>0&&typeof f.internal_transform=="function"&&(p=f.internal_transform(p))),o+=p}return o};Mw.default=dA});var Lw=ce(l0=>{"use strict";var Eg=l0&&l0.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(l0,"__esModule",{value:!0});l0.setTextNodeValue=l0.createTextNode=l0.setStyle=l0.setAttribute=l0.removeChildNode=l0.insertBeforeNode=l0.appendChildNode=l0.createNode=l0.TEXT_NAME=void 0;var jX=Eg(eh()),pA=Eg(B9()),zX=Eg(U9()),qX=Eg(kw()),HX=Eg(Nw());l0.TEXT_NAME="#text";l0.createNode=i=>{var o;let f={nodeName:i,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:i==="ink-virtual-text"?void 0:jX.default.Node.create()};return i==="ink-text"&&((o=f.yogaNode)===null||o===void 0||o.setMeasureFunc(WX.bind(null,f))),f};l0.appendChildNode=(i,o)=>{var f;o.parentNode&&l0.removeChildNode(o.parentNode,o),o.parentNode=i,i.childNodes.push(o),o.yogaNode&&((f=i.yogaNode)===null||f===void 0||f.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.insertBeforeNode=(i,o,f)=>{var p,E;o.parentNode&&l0.removeChildNode(o.parentNode,o),o.parentNode=i;let t=i.childNodes.indexOf(f);if(t>=0){i.childNodes.splice(t,0,o),o.yogaNode&&((p=i.yogaNode)===null||p===void 0||p.insertChild(o.yogaNode,t));return}i.childNodes.push(o),o.yogaNode&&((E=i.yogaNode)===null||E===void 0||E.insertChild(o.yogaNode,i.yogaNode.getChildCount())),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.removeChildNode=(i,o)=>{var f,p;o.yogaNode&&((p=(f=o.parentNode)===null||f===void 0?void 0:f.yogaNode)===null||p===void 0||p.removeChild(o.yogaNode)),o.parentNode=null;let E=i.childNodes.indexOf(o);E>=0&&i.childNodes.splice(E,1),(i.nodeName==="ink-text"||i.nodeName==="ink-virtual-text")&&w4(i)};l0.setAttribute=(i,o,f)=>{i.attributes[o]=f};l0.setStyle=(i,o)=>{i.style=o,i.yogaNode&&zX.default(i.yogaNode,o)};l0.createTextNode=i=>{let o={nodeName:"#text",nodeValue:i,yogaNode:void 0,parentNode:null,style:{}};return l0.setTextNodeValue(o,i),o};var WX=function(i,o){var f,p;let E=i.nodeName==="#text"?i.nodeValue:HX.default(i),t=pA.default(E);if(t.width<=o||t.width>=1&&o>0&&o<1)return t;let k=(p=(f=i.style)===null||f===void 0?void 0:f.textWrap)!==null&&p!==void 0?p:"wrap",L=qX.default(E,o,k);return pA.default(L)},hA=i=>{var o;if(!(!i||!i.parentNode))return(o=i.yogaNode)!==null&&o!==void 0?o:hA(i.parentNode)},w4=i=>{let o=hA(i);o==null||o.markDirty()};l0.setTextNodeValue=(i,o)=>{typeof o!="string"&&(o=String(o)),i.nodeValue=o,w4(i)}});var th=ce((cre,vA)=>{"use strict";vA.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}});var Dg=ce((dre,Fw)=>{"use strict";var{EMPTY_BUFFER:VX}=th();function mA(i,o){if(i.length===0)return VX;if(i.length===1)return i[0];let f=Buffer.allocUnsafe(o),p=0;for(let E=0;E{"use strict";var DA=Symbol("kDone"),bw=Symbol("kRun"),wA=class{constructor(o){this[DA]=()=>{this.pending--,this[bw]()},this.concurrency=o||Infinity,this.jobs=[],this.pending=0}add(o){this.jobs.push(o),this[bw]()}[bw](){if(this.pending!==this.concurrency&&this.jobs.length){let o=this.jobs.shift();this.pending++,o(this[DA])}}};EA.exports=wA});var Tg=ce((hre,TA)=>{"use strict";var wg=require("zlib"),CA=Dg(),GX=SA(),{kStatusCode:xA,NOOP:YX}=th(),KX=Buffer.from([0,0,255,255]),T4=Symbol("permessage-deflate"),G1=Symbol("total-length"),Sg=Symbol("callback"),hd=Symbol("buffers"),Pw=Symbol("error"),C4,AA=class{constructor(o,f,p){if(this._maxPayload=p|0,this._options=o||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._isServer=!!f,this._deflate=null,this._inflate=null,this.params=null,!C4){let E=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;C4=new GX(E)}}static get extensionName(){return"permessage-deflate"}offer(){let o={};return this._options.serverNoContextTakeover&&(o.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(o.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(o.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?o.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(o.client_max_window_bits=!0),o}accept(o){return o=this.normalizeParams(o),this.params=this._isServer?this.acceptAsServer(o):this.acceptAsClient(o),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let o=this._deflate[Sg];this._deflate.close(),this._deflate=null,o&&o(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(o){let f=this._options,p=o.find(E=>!(f.serverNoContextTakeover===!1&&E.server_no_context_takeover||E.server_max_window_bits&&(f.serverMaxWindowBits===!1||typeof f.serverMaxWindowBits=="number"&&f.serverMaxWindowBits>E.server_max_window_bits)||typeof f.clientMaxWindowBits=="number"&&!E.client_max_window_bits));if(!p)throw new Error("None of the extension offers can be accepted");return f.serverNoContextTakeover&&(p.server_no_context_takeover=!0),f.clientNoContextTakeover&&(p.client_no_context_takeover=!0),typeof f.serverMaxWindowBits=="number"&&(p.server_max_window_bits=f.serverMaxWindowBits),typeof f.clientMaxWindowBits=="number"?p.client_max_window_bits=f.clientMaxWindowBits:(p.client_max_window_bits===!0||f.clientMaxWindowBits===!1)&&delete p.client_max_window_bits,p}acceptAsClient(o){let f=o[0];if(this._options.clientNoContextTakeover===!1&&f.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!f.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(f.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&f.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return f}normalizeParams(o){return o.forEach(f=>{Object.keys(f).forEach(p=>{let E=f[p];if(E.length>1)throw new Error(`Parameter "${p}" must have only a single value`);if(E=E[0],p==="client_max_window_bits"){if(E!==!0){let t=+E;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${p}": ${E}`);E=t}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${p}": ${E}`)}else if(p==="server_max_window_bits"){let t=+E;if(!Number.isInteger(t)||t<8||t>15)throw new TypeError(`Invalid value for parameter "${p}": ${E}`);E=t}else if(p==="client_no_context_takeover"||p==="server_no_context_takeover"){if(E!==!0)throw new TypeError(`Invalid value for parameter "${p}": ${E}`)}else throw new Error(`Unknown parameter "${p}"`);f[p]=E})}),o}decompress(o,f,p){C4.add(E=>{this._decompress(o,f,(t,k)=>{E(),p(t,k)})})}compress(o,f,p){C4.add(E=>{this._compress(o,f,(t,k)=>{E(),p(t,k)})})}_decompress(o,f,p){let E=this._isServer?"client":"server";if(!this._inflate){let t=`${E}_max_window_bits`,k=typeof this.params[t]!="number"?wg.Z_DEFAULT_WINDOWBITS:this.params[t];this._inflate=wg.createInflateRaw(Gf(E0({},this._options.zlibInflateOptions),{windowBits:k})),this._inflate[T4]=this,this._inflate[G1]=0,this._inflate[hd]=[],this._inflate.on("error",QX),this._inflate.on("data",RA)}this._inflate[Sg]=p,this._inflate.write(o),f&&this._inflate.write(KX),this._inflate.flush(()=>{let t=this._inflate[Pw];if(t){this._inflate.close(),this._inflate=null,p(t);return}let k=CA.concat(this._inflate[hd],this._inflate[G1]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[G1]=0,this._inflate[hd]=[],f&&this.params[`${E}_no_context_takeover`]&&this._inflate.reset()),p(null,k)})}_compress(o,f,p){let E=this._isServer?"server":"client";if(!this._deflate){let t=`${E}_max_window_bits`,k=typeof this.params[t]!="number"?wg.Z_DEFAULT_WINDOWBITS:this.params[t];this._deflate=wg.createDeflateRaw(Gf(E0({},this._options.zlibDeflateOptions),{windowBits:k})),this._deflate[G1]=0,this._deflate[hd]=[],this._deflate.on("error",YX),this._deflate.on("data",XX)}this._deflate[Sg]=p,this._deflate.write(o),this._deflate.flush(wg.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let t=CA.concat(this._deflate[hd],this._deflate[G1]);f&&(t=t.slice(0,t.length-4)),this._deflate[Sg]=null,this._deflate[G1]=0,this._deflate[hd]=[],f&&this.params[`${E}_no_context_takeover`]&&this._deflate.reset(),p(null,t)})}};TA.exports=AA;function XX(i){this[hd].push(i),this[G1]+=i.length}function RA(i){if(this[G1]+=i.length,this[T4]._maxPayload<1||this[G1]<=this[T4]._maxPayload){this[hd].push(i);return}this[Pw]=new RangeError("Max payload size exceeded"),this[Pw][xA]=1009,this.removeListener("data",RA),this.reset()}function QX(i){this[T4]._inflate=null,i[xA]=1007,this[Sg](i)}});var Bw=ce((vre,Iw)=>{"use strict";function OA(i){return i>=1e3&&i<=1014&&i!==1004&&i!==1005&&i!==1006||i>=3e3&&i<=4999}function kA(i){let o=i.length,f=0;for(;f=o||(i[f+1]&192)!=128||(i[f+2]&192)!=128||i[f]===224&&(i[f+1]&224)==128||i[f]===237&&(i[f+1]&224)==160)return!1;f+=3}else if((i[f]&248)==240){if(f+3>=o||(i[f+1]&192)!=128||(i[f+2]&192)!=128||(i[f+3]&192)!=128||i[f]===240&&(i[f+1]&240)==128||i[f]===244&&i[f+1]>143||i[f]>244)return!1;f+=4}else return!1;return!0}try{let i=require("utf-8-validate");typeof i=="object"&&(i=i.Validation.isValidUTF8),Iw.exports={isValidStatusCode:OA,isValidUTF8(o){return o.length<150?kA(o):i(o)}}}catch(i){Iw.exports={isValidStatusCode:OA,isValidUTF8:kA}}});var zw=ce((mre,MA)=>{"use strict";var{Writable:JX}=require("stream"),NA=Tg(),{BINARY_TYPES:ZX,EMPTY_BUFFER:$X,kStatusCode:eQ,kWebSocket:tQ}=th(),{concat:Uw,toArrayBuffer:nQ,unmask:rQ}=Dg(),{isValidStatusCode:iQ,isValidUTF8:LA}=Bw(),Cg=0,FA=1,bA=2,PA=3,jw=4,uQ=5,IA=class extends JX{constructor(o,f,p,E){super();this._binaryType=o||ZX[0],this[tQ]=void 0,this._extensions=f||{},this._isServer=!!p,this._maxPayload=E|0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=Cg,this._loop=!1}_write(o,f,p){if(this._opcode===8&&this._state==Cg)return p();this._bufferedBytes+=o.length,this._buffers.push(o),this.startLoop(p)}consume(o){if(this._bufferedBytes-=o,o===this._buffers[0].length)return this._buffers.shift();if(o=p.length?f.set(this._buffers.shift(),E):(f.set(new Uint8Array(p.buffer,p.byteOffset,o),E),this._buffers[0]=p.slice(o)),o-=p.length}while(o>0);return f}startLoop(o){let f;this._loop=!0;do switch(this._state){case Cg:f=this.getInfo();break;case FA:f=this.getPayloadLength16();break;case bA:f=this.getPayloadLength64();break;case PA:this.getMask();break;case jw:f=this.getData(o);break;default:this._loop=!1;return}while(this._loop);o(f)}getInfo(){if(this._bufferedBytes<2){this._loop=!1;return}let o=this.consume(2);if((o[0]&48)!=0)return this._loop=!1,Ho(RangeError,"RSV2 and RSV3 must be clear",!0,1002);let f=(o[0]&64)==64;if(f&&!this._extensions[NA.extensionName])return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=(o[0]&128)==128,this._opcode=o[0]&15,this._payloadLength=o[1]&127,this._opcode===0){if(f)return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,Ho(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented)return this._loop=!1,Ho(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=f}else if(this._opcode>7&&this._opcode<11){if(!this._fin)return this._loop=!1,Ho(RangeError,"FIN must be set",!0,1002);if(f)return this._loop=!1,Ho(RangeError,"RSV1 must be clear",!0,1002);if(this._payloadLength>125)return this._loop=!1,Ho(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002)}else return this._loop=!1,Ho(RangeError,`invalid opcode ${this._opcode}`,!0,1002);if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(o[1]&128)==128,this._isServer){if(!this._masked)return this._loop=!1,Ho(RangeError,"MASK must be set",!0,1002)}else if(this._masked)return this._loop=!1,Ho(RangeError,"MASK must be clear",!0,1002);if(this._payloadLength===126)this._state=FA;else if(this._payloadLength===127)this._state=bA;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=!1;return}return this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=!1;return}let o=this.consume(8),f=o.readUInt32BE(0);return f>Math.pow(2,53-32)-1?(this._loop=!1,Ho(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=f*Math.pow(2,32)+o.readUInt32BE(4),this.haveLength())}haveLength(){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0))return this._loop=!1,Ho(RangeError,"Max payload size exceeded",!1,1009);this._masked?this._state=PA:this._state=jw}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=jw}getData(o){let f=$X;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(f);if(this._compressed){this._state=uQ,this.decompress(f,o);return}return f.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(f)),this.dataMessage()}decompress(o,f){this._extensions[NA.extensionName].decompress(o,this._fin,(E,t)=>{if(E)return f(E);if(t.length){if(this._messageLength+=t.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return f(Ho(RangeError,"Max payload size exceeded",!1,1009));this._fragments.push(t)}let k=this.dataMessage();if(k)return f(k);this.startLoop(f)})}dataMessage(){if(this._fin){let o=this._messageLength,f=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let p;this._binaryType==="nodebuffer"?p=Uw(f,o):this._binaryType==="arraybuffer"?p=nQ(Uw(f,o)):p=f,this.emit("message",p)}else{let p=Uw(f,o);if(!LA(p))return this._loop=!1,Ho(Error,"invalid UTF-8 sequence",!0,1007);this.emit("message",p.toString())}}this._state=Cg}controlMessage(o){if(this._opcode===8)if(this._loop=!1,o.length===0)this.emit("conclude",1005,""),this.end();else{if(o.length===1)return Ho(RangeError,"invalid payload length 1",!0,1002);{let f=o.readUInt16BE(0);if(!iQ(f))return Ho(RangeError,`invalid status code ${f}`,!0,1002);let p=o.slice(2);if(!LA(p))return Ho(Error,"invalid UTF-8 sequence",!0,1007);this.emit("conclude",f,p.toString()),this.end()}}else this._opcode===9?this.emit("ping",o):this.emit("pong",o);this._state=Cg}};MA.exports=IA;function Ho(i,o,f,p){let E=new i(f?`Invalid WebSocket frame: ${o}`:o);return Error.captureStackTrace(E,Ho),E[eQ]=p,E}});var qw=ce((yre,BA)=>{"use strict";var{randomFillSync:oQ}=require("crypto"),UA=Tg(),{EMPTY_BUFFER:lQ}=th(),{isValidStatusCode:sQ}=Bw(),{mask:jA,toBuffer:Y1}=Dg(),nh=Buffer.alloc(4),K1=class{constructor(o,f){this._extensions=f||{},this._socket=o,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(o,f){let p=f.mask&&f.readOnly,E=f.mask?6:2,t=o.length;o.length>=65536?(E+=8,t=127):o.length>125&&(E+=2,t=126);let k=Buffer.allocUnsafe(p?o.length+E:E);return k[0]=f.fin?f.opcode|128:f.opcode,f.rsv1&&(k[0]|=64),k[1]=t,t===126?k.writeUInt16BE(o.length,2):t===127&&(k.writeUInt32BE(0,2),k.writeUInt32BE(o.length,6)),f.mask?(oQ(nh,0,4),k[1]|=128,k[E-4]=nh[0],k[E-3]=nh[1],k[E-2]=nh[2],k[E-1]=nh[3],p?(jA(o,nh,k,E,o.length),[k]):(jA(o,nh,o,0,o.length),[k,o])):[k,o]}close(o,f,p,E){let t;if(o===void 0)t=lQ;else{if(typeof o!="number"||!sQ(o))throw new TypeError("First argument must be a valid error code number");if(f===void 0||f==="")t=Buffer.allocUnsafe(2),t.writeUInt16BE(o,0);else{let k=Buffer.byteLength(f);if(k>123)throw new RangeError("The message must not be greater than 123 bytes");t=Buffer.allocUnsafe(2+k),t.writeUInt16BE(o,0),t.write(f,2)}}this._deflating?this.enqueue([this.doClose,t,p,E]):this.doClose(t,p,E)}doClose(o,f,p){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:8,mask:f,readOnly:!1}),p)}ping(o,f,p){let E=Y1(o);if(E.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPing,E,f,Y1.readOnly,p]):this.doPing(E,f,Y1.readOnly,p)}doPing(o,f,p,E){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:9,mask:f,readOnly:p}),E)}pong(o,f,p){let E=Y1(o);if(E.length>125)throw new RangeError("The data size must not be greater than 125 bytes");this._deflating?this.enqueue([this.doPong,E,f,Y1.readOnly,p]):this.doPong(E,f,Y1.readOnly,p)}doPong(o,f,p,E){this.sendFrame(K1.frame(o,{fin:!0,rsv1:!1,opcode:10,mask:f,readOnly:p}),E)}send(o,f,p){let E=Y1(o),t=this._extensions[UA.extensionName],k=f.binary?2:1,L=f.compress;if(this._firstFragment?(this._firstFragment=!1,L&&t&&(L=E.length>=t._threshold),this._compress=L):(L=!1,k=0),f.fin&&(this._firstFragment=!0),t){let N={fin:f.fin,rsv1:L,opcode:k,mask:f.mask,readOnly:Y1.readOnly};this._deflating?this.enqueue([this.dispatch,E,this._compress,N,p]):this.dispatch(E,this._compress,N,p)}else this.sendFrame(K1.frame(E,{fin:f.fin,rsv1:!1,opcode:k,mask:f.mask,readOnly:Y1.readOnly}),p)}dispatch(o,f,p,E){if(!f){this.sendFrame(K1.frame(o,p),E);return}let t=this._extensions[UA.extensionName];this._bufferedBytes+=o.length,this._deflating=!0,t.compress(o,p.fin,(k,L)=>{if(this._socket.destroyed){let N=new Error("The socket was closed while data was being compressed");typeof E=="function"&&E(N);for(let C=0;C{"use strict";var xg=class{constructor(o,f){this.target=f,this.type=o}},qA=class extends xg{constructor(o,f){super("message",f);this.data=o}},HA=class extends xg{constructor(o,f,p){super("close",p);this.wasClean=p._closeFrameReceived&&p._closeFrameSent,this.reason=f,this.code=o}},WA=class extends xg{constructor(o){super("open",o)}},VA=class extends xg{constructor(o,f){super("error",f);this.message=o.message,this.error=o}},aQ={addEventListener(i,o,f){if(typeof o!="function")return;function p(N){o.call(this,new qA(N,this))}function E(N,C){o.call(this,new HA(N,C,this))}function t(N){o.call(this,new VA(N,this))}function k(){o.call(this,new WA(this))}let L=f&&f.once?"once":"on";i==="message"?(p._listener=o,this[L](i,p)):i==="close"?(E._listener=o,this[L](i,E)):i==="error"?(t._listener=o,this[L](i,t)):i==="open"?(k._listener=o,this[L](i,k)):this[L](i,o)},removeEventListener(i,o){let f=this.listeners(i);for(let p=0;p{"use strict";var Ag=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function Pc(i,o,f){i[o]===void 0?i[o]=[f]:i[o].push(f)}function fQ(i){let o=Object.create(null);if(i===void 0||i==="")return o;let f=Object.create(null),p=!1,E=!1,t=!1,k,L,N=-1,C=-1,U=0;for(;U{let f=i[o];return Array.isArray(f)||(f=[f]),f.map(p=>[o].concat(Object.keys(p).map(E=>{let t=p[E];return Array.isArray(t)||(t=[t]),t.map(k=>k===!0?E:`${E}=${k}`).join("; ")})).join("; ")).join(", ")}).join(", ")}YA.exports={format:cQ,parse:fQ}});var Kw=ce((Ere,KA)=>{"use strict";var dQ=require("events"),pQ=require("https"),hQ=require("http"),XA=require("net"),vQ=require("tls"),{randomBytes:mQ,createHash:yQ}=require("crypto"),{URL:Ww}=require("url"),vd=Tg(),gQ=zw(),_Q=qw(),{BINARY_TYPES:QA,EMPTY_BUFFER:Vw,GUID:EQ,kStatusCode:DQ,kWebSocket:Qs,NOOP:JA}=th(),{addEventListener:wQ,removeEventListener:SQ}=GA(),{format:TQ,parse:CQ}=Hw(),{toBuffer:xQ}=Dg(),ZA=["CONNECTING","OPEN","CLOSING","CLOSED"],Gw=[8,13],AQ=30*1e3,Bi=class extends dQ{constructor(o,f,p){super();this._binaryType=QA[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=Bi.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,o!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(f)?f=f.join(", "):typeof f=="object"&&f!==null&&(p=f,f=void 0),$A(this,o,f,p)):this._isServer=!0}get binaryType(){return this._binaryType}set binaryType(o){!QA.includes(o)||(this._binaryType=o,this._receiver&&(this._receiver._binaryType=o))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(o,f,p){let E=new gQ(this.binaryType,this._extensions,this._isServer,p);this._sender=new _Q(o,this._extensions),this._receiver=E,this._socket=o,E[Qs]=this,o[Qs]=this,E.on("conclude",RQ),E.on("drain",OQ),E.on("error",kQ),E.on("message",MQ),E.on("ping",NQ),E.on("pong",LQ),o.setTimeout(0),o.setNoDelay(),f.length>0&&o.unshift(f),o.on("close",eR),o.on("data",x4),o.on("end",tR),o.on("error",nR),this._readyState=Bi.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=Bi.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[vd.extensionName]&&this._extensions[vd.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=Bi.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(o,f){if(this.readyState!==Bi.CLOSED){if(this.readyState===Bi.CONNECTING){let p="WebSocket was closed before the connection was established";return X1(this,this._req,p)}if(this.readyState===Bi.CLOSING){this._closeFrameSent&&this._closeFrameReceived&&this._socket.end();return}this._readyState=Bi.CLOSING,this._sender.close(o,f,!this._isServer,p=>{p||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),AQ)}}ping(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(p=o,o=f=void 0):typeof f=="function"&&(p=f,f=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}f===void 0&&(f=!this._isServer),this._sender.ping(o||Vw,f,p)}pong(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof o=="function"?(p=o,o=f=void 0):typeof f=="function"&&(p=f,f=void 0),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}f===void 0&&(f=!this._isServer),this._sender.pong(o||Vw,f,p)}send(o,f,p){if(this.readyState===Bi.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof f=="function"&&(p=f,f={}),typeof o=="number"&&(o=o.toString()),this.readyState!==Bi.OPEN){Yw(this,o,p);return}let E=E0({binary:typeof o!="string",mask:!this._isServer,compress:!0,fin:!0},f);this._extensions[vd.extensionName]||(E.compress=!1),this._sender.send(o||Vw,E,p)}terminate(){if(this.readyState!==Bi.CLOSED){if(this.readyState===Bi.CONNECTING){let o="WebSocket was closed before the connection was established";return X1(this,this._req,o)}this._socket&&(this._readyState=Bi.CLOSING,this._socket.destroy())}}};ZA.forEach((i,o)=>{let f={enumerable:!0,value:o};Object.defineProperty(Bi.prototype,i,f),Object.defineProperty(Bi,i,f)});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(i=>{Object.defineProperty(Bi.prototype,i,{enumerable:!0})});["open","error","close","message"].forEach(i=>{Object.defineProperty(Bi.prototype,`on${i}`,{configurable:!0,enumerable:!0,get(){let o=this.listeners(i);for(let f=0;f{X1(i,W,"Opening handshake has timed out")}),W.on("error",ne=>{W===null||W.aborted||(W=i._req=null,i._readyState=Bi.CLOSING,i.emit("error",ne),i.emitClose())}),W.on("response",ne=>{let m=ne.headers.location,we=ne.statusCode;if(m&&E.followRedirects&&we>=300&&we<400){if(++i._redirects>E.maxRedirects){X1(i,W,"Maximum redirects exceeded");return}W.abort();let Se=new Ww(m,o);$A(i,Se,f,p)}else i.emit("unexpected-response",W,ne)||X1(i,W,`Unexpected server response: ${ne.statusCode}`)}),W.on("upgrade",(ne,m,we)=>{if(i.emit("upgrade",ne),i.readyState!==Bi.CONNECTING)return;W=i._req=null;let Se=yQ("sha1").update(C+EQ).digest("base64");if(ne.headers["sec-websocket-accept"]!==Se){X1(i,m,"Invalid Sec-WebSocket-Accept header");return}let he=ne.headers["sec-websocket-protocol"],ge=(f||"").split(/, */),ze;if(!f&&he?ze="Server sent a subprotocol but none was requested":f&&!he?ze="Server sent no subprotocol":he&&!ge.includes(he)&&(ze="Server sent an invalid subprotocol"),ze){X1(i,m,ze);return}if(he&&(i._protocol=he),q)try{let pe=CQ(ne.headers["sec-websocket-extensions"]);pe[vd.extensionName]&&(q.accept(pe[vd.extensionName]),i._extensions[vd.extensionName]=q)}catch(pe){X1(i,m,"Invalid Sec-WebSocket-Extensions header");return}i.setSocket(m,we,E.maxPayload)})}function FQ(i){return i.path=i.socketPath,XA.connect(i)}function bQ(i){return i.path=void 0,!i.servername&&i.servername!==""&&(i.servername=XA.isIP(i.host)?"":i.host),vQ.connect(i)}function X1(i,o,f){i._readyState=Bi.CLOSING;let p=new Error(f);Error.captureStackTrace(p,X1),o.setHeader?(o.abort(),o.socket&&!o.socket.destroyed&&o.socket.destroy(),o.once("abort",i.emitClose.bind(i)),i.emit("error",p)):(o.destroy(p),o.once("error",i.emit.bind(i,"error")),o.once("close",i.emitClose.bind(i)))}function Yw(i,o,f){if(o){let p=xQ(o).length;i._socket?i._sender._bufferedBytes+=p:i._bufferedAmount+=p}if(f){let p=new Error(`WebSocket is not open: readyState ${i.readyState} (${ZA[i.readyState]})`);f(p)}}function RQ(i,o){let f=this[Qs];f._socket.removeListener("data",x4),f._socket.resume(),f._closeFrameReceived=!0,f._closeMessage=o,f._closeCode=i,i===1005?f.close():f.close(i,o)}function OQ(){this[Qs]._socket.resume()}function kQ(i){let o=this[Qs];o._socket.removeListener("data",x4),o._readyState=Bi.CLOSING,o._closeCode=i[DQ],o.emit("error",i),o._socket.destroy()}function rR(){this[Qs].emitClose()}function MQ(i){this[Qs].emit("message",i)}function NQ(i){let o=this[Qs];o.pong(i,!o._isServer,JA),o.emit("ping",i)}function LQ(i){this[Qs].emit("pong",i)}function eR(){let i=this[Qs];this.removeListener("close",eR),this.removeListener("end",tR),i._readyState=Bi.CLOSING,i._socket.read(),i._receiver.end(),this.removeListener("data",x4),this[Qs]=void 0,clearTimeout(i._closeTimer),i._receiver._writableState.finished||i._receiver._writableState.errorEmitted?i.emitClose():(i._receiver.on("error",rR),i._receiver.on("finish",rR))}function x4(i){this[Qs]._receiver.write(i)||this.pause()}function tR(){let i=this[Qs];i._readyState=Bi.CLOSING,i._receiver.end(),this.end()}function nR(){let i=this[Qs];this.removeListener("error",nR),this.on("error",JA),i&&(i._readyState=Bi.CLOSING,this.destroy())}});var lR=ce((Dre,iR)=>{"use strict";var{Duplex:PQ}=require("stream");function uR(i){i.emit("close")}function IQ(){!this.destroyed&&this._writableState.finished&&this.destroy()}function oR(i){this.removeListener("error",oR),this.destroy(),this.listenerCount("error")===0&&this.emit("error",i)}function BQ(i,o){let f=!0;function p(){f&&i._socket.resume()}i.readyState===i.CONNECTING?i.once("open",function(){i._receiver.removeAllListeners("drain"),i._receiver.on("drain",p)}):(i._receiver.removeAllListeners("drain"),i._receiver.on("drain",p));let E=new PQ(Gf(E0({},o),{autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1}));return i.on("message",function(k){E.push(k)||(f=!1,i._socket.pause())}),i.once("error",function(k){E.destroyed||E.destroy(k)}),i.once("close",function(){E.destroyed||E.push(null)}),E._destroy=function(t,k){if(i.readyState===i.CLOSED){k(t),process.nextTick(uR,E);return}let L=!1;i.once("error",function(C){L=!0,k(C)}),i.once("close",function(){L||k(t),process.nextTick(uR,E)}),i.terminate()},E._final=function(t){if(i.readyState===i.CONNECTING){i.once("open",function(){E._final(t)});return}i._socket!==null&&(i._socket._writableState.finished?(t(),E._readableState.endEmitted&&E.destroy()):(i._socket.once("finish",function(){t()}),i.close()))},E._read=function(){i.readyState===i.OPEN&&!f&&(f=!0,i._receiver._writableState.needDrain||i._socket.resume())},E._write=function(t,k,L){if(i.readyState===i.CONNECTING){i.once("open",function(){E._write(t,k,L)});return}i.send(t,L)},E.on("end",IQ),E.on("error",oR),E}iR.exports=BQ});var fR=ce((wre,sR)=>{"use strict";var UQ=require("events"),{createHash:jQ}=require("crypto"),{createServer:zQ,STATUS_CODES:Xw}=require("http"),rh=Tg(),qQ=Kw(),{format:HQ,parse:WQ}=Hw(),{GUID:VQ,kWebSocket:GQ}=th(),YQ=/^[+/0-9A-Za-z]{22}==$/,aR=class extends UQ{constructor(o,f){super();if(o=E0({maxPayload:100*1024*1024,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},o),o.port==null&&!o.server&&!o.noServer)throw new TypeError('One of the "port", "server", or "noServer" options must be specified');if(o.port!=null?(this._server=zQ((p,E)=>{let t=Xw[426];E.writeHead(426,{"Content-Length":t.length,"Content-Type":"text/plain"}),E.end(t)}),this._server.listen(o.port,o.host,o.backlog,f)):o.server&&(this._server=o.server),this._server){let p=this.emit.bind(this,"connection");this._removeListeners=KQ(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(E,t,k)=>{this.handleUpgrade(E,t,k,p)}})}o.perMessageDeflate===!0&&(o.perMessageDeflate={}),o.clientTracking&&(this.clients=new Set),this.options=o}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(o){if(o&&this.once("close",o),this.clients)for(let p of this.clients)p.terminate();let f=this._server;if(f&&(this._removeListeners(),this._removeListeners=this._server=null,this.options.port!=null)){f.close(()=>this.emit("close"));return}process.nextTick(XQ,this)}shouldHandle(o){if(this.options.path){let f=o.url.indexOf("?");if((f!==-1?o.url.slice(0,f):o.url)!==this.options.path)return!1}return!0}handleUpgrade(o,f,p,E){f.on("error",Qw);let t=o.headers["sec-websocket-key"]!==void 0?o.headers["sec-websocket-key"].trim():!1,k=+o.headers["sec-websocket-version"],L={};if(o.method!=="GET"||o.headers.upgrade.toLowerCase()!=="websocket"||!t||!YQ.test(t)||k!==8&&k!==13||!this.shouldHandle(o))return A4(f,400);if(this.options.perMessageDeflate){let N=new rh(this.options.perMessageDeflate,!0,this.options.maxPayload);try{let C=WQ(o.headers["sec-websocket-extensions"]);C[rh.extensionName]&&(N.accept(C[rh.extensionName]),L[rh.extensionName]=N)}catch(C){return A4(f,400)}}if(this.options.verifyClient){let N={origin:o.headers[`${k===8?"sec-websocket-origin":"origin"}`],secure:!!(o.socket.authorized||o.socket.encrypted),req:o};if(this.options.verifyClient.length===2){this.options.verifyClient(N,(C,U,q,W)=>{if(!C)return A4(f,U||401,q,W);this.completeUpgrade(t,L,o,f,p,E)});return}if(!this.options.verifyClient(N))return A4(f,401)}this.completeUpgrade(t,L,o,f,p,E)}completeUpgrade(o,f,p,E,t,k){if(!E.readable||!E.writable)return E.destroy();if(E[GQ])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");let L=jQ("sha1").update(o+VQ).digest("base64"),N=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${L}`],C=new qQ(null),U=p.headers["sec-websocket-protocol"];if(U&&(U=U.split(",").map(QQ),this.options.handleProtocols?U=this.options.handleProtocols(U,p):U=U[0],U&&(N.push(`Sec-WebSocket-Protocol: ${U}`),C._protocol=U)),f[rh.extensionName]){let q=f[rh.extensionName].params,W=HQ({[rh.extensionName]:[q]});N.push(`Sec-WebSocket-Extensions: ${W}`),C._extensions=f}this.emit("headers",N,p),E.write(N.concat(`\r +`).join(`\r +`)),E.removeListener("error",Qw),C.setSocket(E,t,this.options.maxPayload),this.clients&&(this.clients.add(C),C.on("close",()=>this.clients.delete(C))),k(C,p)}};sR.exports=aR;function KQ(i,o){for(let f of Object.keys(o))i.on(f,o[f]);return function(){for(let p of Object.keys(o))i.removeListener(p,o[p])}}function XQ(i){i.emit("close")}function Qw(){this.destroy()}function A4(i,o,f,p){i.writable&&(f=f||Xw[o],p=E0({Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(f)},p),i.write(`HTTP/1.1 ${o} ${Xw[o]}\r +`+Object.keys(p).map(E=>`${E}: ${p[E]}`).join(`\r +`)+`\r +\r +`+f)),i.removeListener("error",Qw),i.destroy()}function QQ(i){return i.trim()}});var dR=ce((Sre,cR)=>{"use strict";var Rg=Kw();Rg.createWebSocketStream=lR();Rg.Server=fR();Rg.Receiver=zw();Rg.Sender=qw();cR.exports=Rg});var pR=ce(R4=>{"use strict";var JQ=R4&&R4.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(R4,"__esModule",{value:!0});var ZQ=JQ(dR()),Og=global;Og.WebSocket||(Og.WebSocket=ZQ.default);Og.window||(Og.window=global);Og.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:"InternalApp",isEnabled:!0,isValid:!0},{type:2,value:"InternalAppContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdoutContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStderrContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalStdinContext",isEnabled:!0,isValid:!0},{type:2,value:"InternalFocusContext",isEnabled:!0,isValid:!0}]});var hR=ce((O4,Jw)=>{(function(i,o){typeof O4=="object"&&typeof Jw=="object"?Jw.exports=o():typeof define=="function"&&define.amd?define([],o):typeof O4=="object"?O4.ReactDevToolsBackend=o():i.ReactDevToolsBackend=o()})(window,function(){return function(i){var o={};function f(p){if(o[p])return o[p].exports;var E=o[p]={i:p,l:!1,exports:{}};return i[p].call(E.exports,E,E.exports,f),E.l=!0,E.exports}return f.m=i,f.c=o,f.d=function(p,E,t){f.o(p,E)||Object.defineProperty(p,E,{enumerable:!0,get:t})},f.r=function(p){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(p,"__esModule",{value:!0})},f.t=function(p,E){if(1&E&&(p=f(p)),8&E||4&E&&typeof p=="object"&&p&&p.__esModule)return p;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:p}),2&E&&typeof p!="string")for(var k in p)f.d(t,k,function(L){return p[L]}.bind(null,k));return t},f.n=function(p){var E=p&&p.__esModule?function(){return p.default}:function(){return p};return f.d(E,"a",E),E},f.o=function(p,E){return Object.prototype.hasOwnProperty.call(p,E)},f.p="",f(f.s=20)}([function(i,o,f){"use strict";i.exports=f(12)},function(i,o,f){"use strict";var p=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,t=Object.prototype.propertyIsEnumerable;function k(L){if(L==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(L)}i.exports=function(){try{if(!Object.assign)return!1;var L=new String("abc");if(L[5]="de",Object.getOwnPropertyNames(L)[0]==="5")return!1;for(var N={},C=0;C<10;C++)N["_"+String.fromCharCode(C)]=C;if(Object.getOwnPropertyNames(N).map(function(q){return N[q]}).join("")!=="0123456789")return!1;var U={};return"abcdefghijklmnopqrst".split("").forEach(function(q){U[q]=q}),Object.keys(Object.assign({},U)).join("")==="abcdefghijklmnopqrst"}catch(q){return!1}}()?Object.assign:function(L,N){for(var C,U,q=k(L),W=1;W=le||en<0||$t&&At-Ke>=wt}function ue(){var At=Se();if(Ce(At))return je(At);$e=setTimeout(ue,function(en){var ln=le-(en-ft);return $t?we(ln,wt-(en-Ke)):ln}(At))}function je(At){return $e=void 0,at&&Ge?Q(At):(Ge=rt=void 0,xt)}function ct(){var At=Se(),en=Ce(At);if(Ge=arguments,rt=this,ft=At,en){if($e===void 0)return ae(ft);if($t)return $e=setTimeout(ue,le),Q(ft)}return $e===void 0&&($e=setTimeout(ue,le)),xt}return le=pe(le)||0,ge(Ue)&&(jt=!!Ue.leading,wt=($t="maxWait"in Ue)?m(pe(Ue.maxWait)||0,le):wt,at="trailing"in Ue?!!Ue.trailing:at),ct.cancel=function(){$e!==void 0&&clearTimeout($e),Ke=0,Ge=ft=rt=$e=void 0},ct.flush=function(){return $e===void 0?xt:je(Se())},ct}function ge(Oe){var le=E(Oe);return!!Oe&&(le=="object"||le=="function")}function ze(Oe){return E(Oe)=="symbol"||function(le){return!!le&&E(le)=="object"}(Oe)&&ne.call(Oe)=="[object Symbol]"}function pe(Oe){if(typeof Oe=="number")return Oe;if(ze(Oe))return NaN;if(ge(Oe)){var le=typeof Oe.valueOf=="function"?Oe.valueOf():Oe;Oe=ge(le)?le+"":le}if(typeof Oe!="string")return Oe===0?Oe:+Oe;Oe=Oe.replace(t,"");var Ue=L.test(Oe);return Ue||N.test(Oe)?C(Oe.slice(2),Ue?2:8):k.test(Oe)?NaN:+Oe}i.exports=function(Oe,le,Ue){var Ge=!0,rt=!0;if(typeof Oe!="function")throw new TypeError("Expected a function");return ge(Ue)&&(Ge="leading"in Ue?!!Ue.leading:Ge,rt="trailing"in Ue?!!Ue.trailing:rt),he(Oe,le,{leading:Ge,maxWait:le,trailing:rt})}}).call(this,f(4))},function(i,o,f){(function(p){function E(Q){return(E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ae){return typeof ae}:function(ae){return ae&&typeof Symbol=="function"&&ae.constructor===Symbol&&ae!==Symbol.prototype?"symbol":typeof ae})(Q)}var t;o=i.exports=m,t=(p===void 0?"undefined":E(p))==="object"&&p.env&&p.env.NODE_DEBUG&&/\bsemver\b/i.test(p.env.NODE_DEBUG)?function(){var Q=Array.prototype.slice.call(arguments,0);Q.unshift("SEMVER"),console.log.apply(console,Q)}:function(){},o.SEMVER_SPEC_VERSION="2.0.0";var k=Number.MAX_SAFE_INTEGER||9007199254740991,L=o.re=[],N=o.src=[],C=o.tokens={},U=0;function q(Q){C[Q]=U++}q("NUMERICIDENTIFIER"),N[C.NUMERICIDENTIFIER]="0|[1-9]\\d*",q("NUMERICIDENTIFIERLOOSE"),N[C.NUMERICIDENTIFIERLOOSE]="[0-9]+",q("NONNUMERICIDENTIFIER"),N[C.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-][a-zA-Z0-9-]*",q("MAINVERSION"),N[C.MAINVERSION]="("+N[C.NUMERICIDENTIFIER]+")\\.("+N[C.NUMERICIDENTIFIER]+")\\.("+N[C.NUMERICIDENTIFIER]+")",q("MAINVERSIONLOOSE"),N[C.MAINVERSIONLOOSE]="("+N[C.NUMERICIDENTIFIERLOOSE]+")\\.("+N[C.NUMERICIDENTIFIERLOOSE]+")\\.("+N[C.NUMERICIDENTIFIERLOOSE]+")",q("PRERELEASEIDENTIFIER"),N[C.PRERELEASEIDENTIFIER]="(?:"+N[C.NUMERICIDENTIFIER]+"|"+N[C.NONNUMERICIDENTIFIER]+")",q("PRERELEASEIDENTIFIERLOOSE"),N[C.PRERELEASEIDENTIFIERLOOSE]="(?:"+N[C.NUMERICIDENTIFIERLOOSE]+"|"+N[C.NONNUMERICIDENTIFIER]+")",q("PRERELEASE"),N[C.PRERELEASE]="(?:-("+N[C.PRERELEASEIDENTIFIER]+"(?:\\."+N[C.PRERELEASEIDENTIFIER]+")*))",q("PRERELEASELOOSE"),N[C.PRERELEASELOOSE]="(?:-?("+N[C.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+N[C.PRERELEASEIDENTIFIERLOOSE]+")*))",q("BUILDIDENTIFIER"),N[C.BUILDIDENTIFIER]="[0-9A-Za-z-]+",q("BUILD"),N[C.BUILD]="(?:\\+("+N[C.BUILDIDENTIFIER]+"(?:\\."+N[C.BUILDIDENTIFIER]+")*))",q("FULL"),q("FULLPLAIN"),N[C.FULLPLAIN]="v?"+N[C.MAINVERSION]+N[C.PRERELEASE]+"?"+N[C.BUILD]+"?",N[C.FULL]="^"+N[C.FULLPLAIN]+"$",q("LOOSEPLAIN"),N[C.LOOSEPLAIN]="[v=\\s]*"+N[C.MAINVERSIONLOOSE]+N[C.PRERELEASELOOSE]+"?"+N[C.BUILD]+"?",q("LOOSE"),N[C.LOOSE]="^"+N[C.LOOSEPLAIN]+"$",q("GTLT"),N[C.GTLT]="((?:<|>)?=?)",q("XRANGEIDENTIFIERLOOSE"),N[C.XRANGEIDENTIFIERLOOSE]=N[C.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",q("XRANGEIDENTIFIER"),N[C.XRANGEIDENTIFIER]=N[C.NUMERICIDENTIFIER]+"|x|X|\\*",q("XRANGEPLAIN"),N[C.XRANGEPLAIN]="[v=\\s]*("+N[C.XRANGEIDENTIFIER]+")(?:\\.("+N[C.XRANGEIDENTIFIER]+")(?:\\.("+N[C.XRANGEIDENTIFIER]+")(?:"+N[C.PRERELEASE]+")?"+N[C.BUILD]+"?)?)?",q("XRANGEPLAINLOOSE"),N[C.XRANGEPLAINLOOSE]="[v=\\s]*("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+N[C.XRANGEIDENTIFIERLOOSE]+")(?:"+N[C.PRERELEASELOOSE]+")?"+N[C.BUILD]+"?)?)?",q("XRANGE"),N[C.XRANGE]="^"+N[C.GTLT]+"\\s*"+N[C.XRANGEPLAIN]+"$",q("XRANGELOOSE"),N[C.XRANGELOOSE]="^"+N[C.GTLT]+"\\s*"+N[C.XRANGEPLAINLOOSE]+"$",q("COERCE"),N[C.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",q("COERCERTL"),L[C.COERCERTL]=new RegExp(N[C.COERCE],"g"),q("LONETILDE"),N[C.LONETILDE]="(?:~>?)",q("TILDETRIM"),N[C.TILDETRIM]="(\\s*)"+N[C.LONETILDE]+"\\s+",L[C.TILDETRIM]=new RegExp(N[C.TILDETRIM],"g"),q("TILDE"),N[C.TILDE]="^"+N[C.LONETILDE]+N[C.XRANGEPLAIN]+"$",q("TILDELOOSE"),N[C.TILDELOOSE]="^"+N[C.LONETILDE]+N[C.XRANGEPLAINLOOSE]+"$",q("LONECARET"),N[C.LONECARET]="(?:\\^)",q("CARETTRIM"),N[C.CARETTRIM]="(\\s*)"+N[C.LONECARET]+"\\s+",L[C.CARETTRIM]=new RegExp(N[C.CARETTRIM],"g"),q("CARET"),N[C.CARET]="^"+N[C.LONECARET]+N[C.XRANGEPLAIN]+"$",q("CARETLOOSE"),N[C.CARETLOOSE]="^"+N[C.LONECARET]+N[C.XRANGEPLAINLOOSE]+"$",q("COMPARATORLOOSE"),N[C.COMPARATORLOOSE]="^"+N[C.GTLT]+"\\s*("+N[C.LOOSEPLAIN]+")$|^$",q("COMPARATOR"),N[C.COMPARATOR]="^"+N[C.GTLT]+"\\s*("+N[C.FULLPLAIN]+")$|^$",q("COMPARATORTRIM"),N[C.COMPARATORTRIM]="(\\s*)"+N[C.GTLT]+"\\s*("+N[C.LOOSEPLAIN]+"|"+N[C.XRANGEPLAIN]+")",L[C.COMPARATORTRIM]=new RegExp(N[C.COMPARATORTRIM],"g"),q("HYPHENRANGE"),N[C.HYPHENRANGE]="^\\s*("+N[C.XRANGEPLAIN]+")\\s+-\\s+("+N[C.XRANGEPLAIN]+")\\s*$",q("HYPHENRANGELOOSE"),N[C.HYPHENRANGELOOSE]="^\\s*("+N[C.XRANGEPLAINLOOSE]+")\\s+-\\s+("+N[C.XRANGEPLAINLOOSE]+")\\s*$",q("STAR"),N[C.STAR]="(<|>)?=?\\s*\\*";for(var W=0;W256||!(ae.loose?L[C.LOOSE]:L[C.FULL]).test(Q))return null;try{return new m(Q,ae)}catch(Ce){return null}}function m(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof m){if(Q.loose===ae.loose)return Q;Q=Q.version}else if(typeof Q!="string")throw new TypeError("Invalid Version: "+Q);if(Q.length>256)throw new TypeError("version is longer than 256 characters");if(!(this instanceof m))return new m(Q,ae);t("SemVer",Q,ae),this.options=ae,this.loose=!!ae.loose;var Ce=Q.trim().match(ae.loose?L[C.LOOSE]:L[C.FULL]);if(!Ce)throw new TypeError("Invalid Version: "+Q);if(this.raw=Q,this.major=+Ce[1],this.minor=+Ce[2],this.patch=+Ce[3],this.major>k||this.major<0)throw new TypeError("Invalid major version");if(this.minor>k||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>k||this.patch<0)throw new TypeError("Invalid patch version");Ce[4]?this.prerelease=Ce[4].split(".").map(function(ue){if(/^[0-9]+$/.test(ue)){var je=+ue;if(je>=0&&je=0;)typeof this.prerelease[Ce]=="number"&&(this.prerelease[Ce]++,Ce=-2);Ce===-1&&this.prerelease.push(0)}ae&&(this.prerelease[0]===ae?isNaN(this.prerelease[1])&&(this.prerelease=[ae,0]):this.prerelease=[ae,0]);break;default:throw new Error("invalid increment argument: "+Q)}return this.format(),this.raw=this.version,this},o.inc=function(Q,ae,Ce,ue){typeof Ce=="string"&&(ue=Ce,Ce=void 0);try{return new m(Q,Ce).inc(ae,ue).version}catch(je){return null}},o.diff=function(Q,ae){if(pe(Q,ae))return null;var Ce=ne(Q),ue=ne(ae),je="";if(Ce.prerelease.length||ue.prerelease.length){je="pre";var ct="prerelease"}for(var At in Ce)if((At==="major"||At==="minor"||At==="patch")&&Ce[At]!==ue[At])return je+At;return ct},o.compareIdentifiers=Se;var we=/^[0-9]+$/;function Se(Q,ae){var Ce=we.test(Q),ue=we.test(ae);return Ce&&ue&&(Q=+Q,ae=+ae),Q===ae?0:Ce&&!ue?-1:ue&&!Ce?1:Q0}function ze(Q,ae,Ce){return he(Q,ae,Ce)<0}function pe(Q,ae,Ce){return he(Q,ae,Ce)===0}function Oe(Q,ae,Ce){return he(Q,ae,Ce)!==0}function le(Q,ae,Ce){return he(Q,ae,Ce)>=0}function Ue(Q,ae,Ce){return he(Q,ae,Ce)<=0}function Ge(Q,ae,Ce,ue){switch(ae){case"===":return E(Q)==="object"&&(Q=Q.version),E(Ce)==="object"&&(Ce=Ce.version),Q===Ce;case"!==":return E(Q)==="object"&&(Q=Q.version),E(Ce)==="object"&&(Ce=Ce.version),Q!==Ce;case"":case"=":case"==":return pe(Q,Ce,ue);case"!=":return Oe(Q,Ce,ue);case">":return ge(Q,Ce,ue);case">=":return le(Q,Ce,ue);case"<":return ze(Q,Ce,ue);case"<=":return Ue(Q,Ce,ue);default:throw new TypeError("Invalid operator: "+ae)}}function rt(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof rt){if(Q.loose===!!ae.loose)return Q;Q=Q.value}if(!(this instanceof rt))return new rt(Q,ae);t("comparator",Q,ae),this.options=ae,this.loose=!!ae.loose,this.parse(Q),this.semver===wt?this.value="":this.value=this.operator+this.semver.version,t("comp",this)}o.rcompareIdentifiers=function(Q,ae){return Se(ae,Q)},o.major=function(Q,ae){return new m(Q,ae).major},o.minor=function(Q,ae){return new m(Q,ae).minor},o.patch=function(Q,ae){return new m(Q,ae).patch},o.compare=he,o.compareLoose=function(Q,ae){return he(Q,ae,!0)},o.compareBuild=function(Q,ae,Ce){var ue=new m(Q,Ce),je=new m(ae,Ce);return ue.compare(je)||ue.compareBuild(je)},o.rcompare=function(Q,ae,Ce){return he(ae,Q,Ce)},o.sort=function(Q,ae){return Q.sort(function(Ce,ue){return o.compareBuild(Ce,ue,ae)})},o.rsort=function(Q,ae){return Q.sort(function(Ce,ue){return o.compareBuild(ue,Ce,ae)})},o.gt=ge,o.lt=ze,o.eq=pe,o.neq=Oe,o.gte=le,o.lte=Ue,o.cmp=Ge,o.Comparator=rt;var wt={};function xt(Q,ae){if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),Q instanceof xt)return Q.loose===!!ae.loose&&Q.includePrerelease===!!ae.includePrerelease?Q:new xt(Q.raw,ae);if(Q instanceof rt)return new xt(Q.value,ae);if(!(this instanceof xt))return new xt(Q,ae);if(this.options=ae,this.loose=!!ae.loose,this.includePrerelease=!!ae.includePrerelease,this.raw=Q,this.set=Q.split(/\s*\|\|\s*/).map(function(Ce){return this.parseRange(Ce.trim())},this).filter(function(Ce){return Ce.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+Q);this.format()}function $e(Q,ae){for(var Ce=!0,ue=Q.slice(),je=ue.pop();Ce&&ue.length;)Ce=ue.every(function(ct){return je.intersects(ct,ae)}),je=ue.pop();return Ce}function ft(Q){return!Q||Q.toLowerCase()==="x"||Q==="*"}function Ke(Q,ae,Ce,ue,je,ct,At,en,ln,An,nr,un,Wt){return((ae=ft(Ce)?"":ft(ue)?">="+Ce+".0.0":ft(je)?">="+Ce+"."+ue+".0":">="+ae)+" "+(en=ft(ln)?"":ft(An)?"<"+(+ln+1)+".0.0":ft(nr)?"<"+ln+"."+(+An+1)+".0":un?"<="+ln+"."+An+"."+nr+"-"+un:"<="+en)).trim()}function jt(Q,ae,Ce){for(var ue=0;ue0){var je=Q[ue].semver;if(je.major===ae.major&&je.minor===ae.minor&&je.patch===ae.patch)return!0}return!1}return!0}function $t(Q,ae,Ce){try{ae=new xt(ae,Ce)}catch(ue){return!1}return ae.test(Q)}function at(Q,ae,Ce,ue){var je,ct,At,en,ln;switch(Q=new m(Q,ue),ae=new xt(ae,ue),Ce){case">":je=ge,ct=Ue,At=ze,en=">",ln=">=";break;case"<":je=ze,ct=le,At=ge,en="<",ln="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if($t(Q,ae,ue))return!1;for(var An=0;An=0.0.0")),un=un||vr,Wt=Wt||vr,je(vr.semver,un.semver,ue)?un=vr:At(vr.semver,Wt.semver,ue)&&(Wt=vr)}),un.operator===en||un.operator===ln||(!Wt.operator||Wt.operator===en)&&ct(Q,Wt.semver)||Wt.operator===ln&&At(Q,Wt.semver))return!1}return!0}rt.prototype.parse=function(Q){var ae=this.options.loose?L[C.COMPARATORLOOSE]:L[C.COMPARATOR],Ce=Q.match(ae);if(!Ce)throw new TypeError("Invalid comparator: "+Q);this.operator=Ce[1]!==void 0?Ce[1]:"",this.operator==="="&&(this.operator=""),Ce[2]?this.semver=new m(Ce[2],this.options.loose):this.semver=wt},rt.prototype.toString=function(){return this.value},rt.prototype.test=function(Q){if(t("Comparator.test",Q,this.options.loose),this.semver===wt||Q===wt)return!0;if(typeof Q=="string")try{Q=new m(Q,this.options)}catch(ae){return!1}return Ge(Q,this.operator,this.semver,this.options)},rt.prototype.intersects=function(Q,ae){if(!(Q instanceof rt))throw new TypeError("a Comparator is required");var Ce;if(ae&&E(ae)==="object"||(ae={loose:!!ae,includePrerelease:!1}),this.operator==="")return this.value===""||(Ce=new xt(Q.value,ae),$t(this.value,Ce,ae));if(Q.operator==="")return Q.value===""||(Ce=new xt(this.value,ae),$t(Q.semver,Ce,ae));var ue=!(this.operator!==">="&&this.operator!==">"||Q.operator!==">="&&Q.operator!==">"),je=!(this.operator!=="<="&&this.operator!=="<"||Q.operator!=="<="&&Q.operator!=="<"),ct=this.semver.version===Q.semver.version,At=!(this.operator!==">="&&this.operator!=="<="||Q.operator!==">="&&Q.operator!=="<="),en=Ge(this.semver,"<",Q.semver,ae)&&(this.operator===">="||this.operator===">")&&(Q.operator==="<="||Q.operator==="<"),ln=Ge(this.semver,">",Q.semver,ae)&&(this.operator==="<="||this.operator==="<")&&(Q.operator===">="||Q.operator===">");return ue||je||ct&&At||en||ln},o.Range=xt,xt.prototype.format=function(){return this.range=this.set.map(function(Q){return Q.join(" ").trim()}).join("||").trim(),this.range},xt.prototype.toString=function(){return this.range},xt.prototype.parseRange=function(Q){var ae=this.options.loose;Q=Q.trim();var Ce=ae?L[C.HYPHENRANGELOOSE]:L[C.HYPHENRANGE];Q=Q.replace(Ce,Ke),t("hyphen replace",Q),Q=Q.replace(L[C.COMPARATORTRIM],"$1$2$3"),t("comparator trim",Q,L[C.COMPARATORTRIM]),Q=(Q=(Q=Q.replace(L[C.TILDETRIM],"$1~")).replace(L[C.CARETTRIM],"$1^")).split(/\s+/).join(" ");var ue=ae?L[C.COMPARATORLOOSE]:L[C.COMPARATOR],je=Q.split(" ").map(function(ct){return function(At,en){return t("comp",At,en),At=function(ln,An){return ln.trim().split(/\s+/).map(function(nr){return function(un,Wt){t("caret",un,Wt);var vr=Wt.loose?L[C.CARETLOOSE]:L[C.CARET];return un.replace(vr,function(w,Ut,Vn,fr,Fr){var ur;return t("caret",un,w,Ut,Vn,fr,Fr),ft(Ut)?ur="":ft(Vn)?ur=">="+Ut+".0.0 <"+(+Ut+1)+".0.0":ft(fr)?ur=Ut==="0"?">="+Ut+"."+Vn+".0 <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+".0 <"+(+Ut+1)+".0.0":Fr?(t("replaceCaret pr",Fr),ur=Ut==="0"?Vn==="0"?">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+Vn+"."+(+fr+1):">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+(+Ut+1)+".0.0"):(t("no pr"),ur=Ut==="0"?Vn==="0"?">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+Vn+"."+(+fr+1):">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+(+Vn+1)+".0":">="+Ut+"."+Vn+"."+fr+" <"+(+Ut+1)+".0.0"),t("caret return",ur),ur})}(nr,An)}).join(" ")}(At,en),t("caret",At),At=function(ln,An){return ln.trim().split(/\s+/).map(function(nr){return function(un,Wt){var vr=Wt.loose?L[C.TILDELOOSE]:L[C.TILDE];return un.replace(vr,function(w,Ut,Vn,fr,Fr){var ur;return t("tilde",un,w,Ut,Vn,fr,Fr),ft(Ut)?ur="":ft(Vn)?ur=">="+Ut+".0.0 <"+(+Ut+1)+".0.0":ft(fr)?ur=">="+Ut+"."+Vn+".0 <"+Ut+"."+(+Vn+1)+".0":Fr?(t("replaceTilde pr",Fr),ur=">="+Ut+"."+Vn+"."+fr+"-"+Fr+" <"+Ut+"."+(+Vn+1)+".0"):ur=">="+Ut+"."+Vn+"."+fr+" <"+Ut+"."+(+Vn+1)+".0",t("tilde return",ur),ur})}(nr,An)}).join(" ")}(At,en),t("tildes",At),At=function(ln,An){return t("replaceXRanges",ln,An),ln.split(/\s+/).map(function(nr){return function(un,Wt){un=un.trim();var vr=Wt.loose?L[C.XRANGELOOSE]:L[C.XRANGE];return un.replace(vr,function(w,Ut,Vn,fr,Fr,ur){t("xRange",un,w,Ut,Vn,fr,Fr,ur);var br=ft(Vn),Kt=br||ft(fr),vu=Kt||ft(Fr),a0=vu;return Ut==="="&&a0&&(Ut=""),ur=Wt.includePrerelease?"-0":"",br?w=Ut===">"||Ut==="<"?"<0.0.0-0":"*":Ut&&a0?(Kt&&(fr=0),Fr=0,Ut===">"?(Ut=">=",Kt?(Vn=+Vn+1,fr=0,Fr=0):(fr=+fr+1,Fr=0)):Ut==="<="&&(Ut="<",Kt?Vn=+Vn+1:fr=+fr+1),w=Ut+Vn+"."+fr+"."+Fr+ur):Kt?w=">="+Vn+".0.0"+ur+" <"+(+Vn+1)+".0.0"+ur:vu&&(w=">="+Vn+"."+fr+".0"+ur+" <"+Vn+"."+(+fr+1)+".0"+ur),t("xRange return",w),w})}(nr,An)}).join(" ")}(At,en),t("xrange",At),At=function(ln,An){return t("replaceStars",ln,An),ln.trim().replace(L[C.STAR],"")}(At,en),t("stars",At),At}(ct,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(je=je.filter(function(ct){return!!ct.match(ue)})),je=je.map(function(ct){return new rt(ct,this.options)},this)},xt.prototype.intersects=function(Q,ae){if(!(Q instanceof xt))throw new TypeError("a Range is required");return this.set.some(function(Ce){return $e(Ce,ae)&&Q.set.some(function(ue){return $e(ue,ae)&&Ce.every(function(je){return ue.every(function(ct){return je.intersects(ct,ae)})})})})},o.toComparators=function(Q,ae){return new xt(Q,ae).set.map(function(Ce){return Ce.map(function(ue){return ue.value}).join(" ").trim().split(" ")})},xt.prototype.test=function(Q){if(!Q)return!1;if(typeof Q=="string")try{Q=new m(Q,this.options)}catch(Ce){return!1}for(var ae=0;ae":ct.prerelease.length===0?ct.patch++:ct.prerelease.push(0),ct.raw=ct.format();case"":case">=":Ce&&!ge(Ce,ct)||(Ce=ct);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+je.operator)}});return Ce&&Q.test(Ce)?Ce:null},o.validRange=function(Q,ae){try{return new xt(Q,ae).range||"*"}catch(Ce){return null}},o.ltr=function(Q,ae,Ce){return at(Q,ae,"<",Ce)},o.gtr=function(Q,ae,Ce){return at(Q,ae,">",Ce)},o.outside=at,o.prerelease=function(Q,ae){var Ce=ne(Q,ae);return Ce&&Ce.prerelease.length?Ce.prerelease:null},o.intersects=function(Q,ae,Ce){return Q=new xt(Q,Ce),ae=new xt(ae,Ce),Q.intersects(ae)},o.coerce=function(Q,ae){if(Q instanceof m)return Q;if(typeof Q=="number"&&(Q=String(Q)),typeof Q!="string")return null;var Ce=null;if((ae=ae||{}).rtl){for(var ue;(ue=L[C.COERCERTL].exec(Q))&&(!Ce||Ce.index+Ce[0].length!==Q.length);)Ce&&ue.index+ue[0].length===Ce.index+Ce[0].length||(Ce=ue),L[C.COERCERTL].lastIndex=ue.index+ue[1].length+ue[2].length;L[C.COERCERTL].lastIndex=-1}else Ce=Q.match(L[C.COERCE]);return Ce===null?null:ne(Ce[2]+"."+(Ce[3]||"0")+"."+(Ce[4]||"0"),ae)}}).call(this,f(5))},function(i,o){function f(E){return(f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(E)}var p;p=function(){return this}();try{p=p||new Function("return this")()}catch(E){(typeof window=="undefined"?"undefined":f(window))==="object"&&(p=window)}i.exports=p},function(i,o){var f,p,E=i.exports={};function t(){throw new Error("setTimeout has not been defined")}function k(){throw new Error("clearTimeout has not been defined")}function L(Se){if(f===setTimeout)return setTimeout(Se,0);if((f===t||!f)&&setTimeout)return f=setTimeout,setTimeout(Se,0);try{return f(Se,0)}catch(he){try{return f.call(null,Se,0)}catch(ge){return f.call(this,Se,0)}}}(function(){try{f=typeof setTimeout=="function"?setTimeout:t}catch(Se){f=t}try{p=typeof clearTimeout=="function"?clearTimeout:k}catch(Se){p=k}})();var N,C=[],U=!1,q=-1;function W(){U&&N&&(U=!1,N.length?C=N.concat(C):q=-1,C.length&&ne())}function ne(){if(!U){var Se=L(W);U=!0;for(var he=C.length;he;){for(N=C,C=[];++q1)for(var ge=1;gethis[k])return Oe(this,this[m].get($e)),!1;var at=this[m].get($e).value;return this[q]&&(this[W]||this[q]($e,at.value)),at.now=jt,at.maxAge=Ke,at.value=ft,this[L]+=$t-at.length,at.length=$t,this.get($e),pe(this),!0}var Q=new le($e,ft,$t,jt,Ke);return Q.length>this[k]?(this[q]&&this[q]($e,ft),!1):(this[L]+=Q.length,this[ne].unshift(Q),this[m].set($e,this[ne].head),pe(this),!0)}},{key:"has",value:function($e){if(!this[m].has($e))return!1;var ft=this[m].get($e).value;return!ze(this,ft)}},{key:"get",value:function($e){return ge(this,$e,!0)}},{key:"peek",value:function($e){return ge(this,$e,!1)}},{key:"pop",value:function(){var $e=this[ne].tail;return $e?(Oe(this,$e),$e.value):null}},{key:"del",value:function($e){Oe(this,this[m].get($e))}},{key:"load",value:function($e){this.reset();for(var ft=Date.now(),Ke=$e.length-1;Ke>=0;Ke--){var jt=$e[Ke],$t=jt.e||0;if($t===0)this.set(jt.k,jt.v);else{var at=$t-ft;at>0&&this.set(jt.k,jt.v,at)}}}},{key:"prune",value:function(){var $e=this;this[m].forEach(function(ft,Ke){return ge($e,Ke,!1)})}},{key:"max",set:function($e){if(typeof $e!="number"||$e<0)throw new TypeError("max must be a non-negative number");this[k]=$e||1/0,pe(this)},get:function(){return this[k]}},{key:"allowStale",set:function($e){this[C]=!!$e},get:function(){return this[C]}},{key:"maxAge",set:function($e){if(typeof $e!="number")throw new TypeError("maxAge must be a non-negative number");this[U]=$e,pe(this)},get:function(){return this[U]}},{key:"lengthCalculator",set:function($e){var ft=this;typeof $e!="function"&&($e=Se),$e!==this[N]&&(this[N]=$e,this[L]=0,this[ne].forEach(function(Ke){Ke.length=ft[N](Ke.value,Ke.key),ft[L]+=Ke.length})),pe(this)},get:function(){return this[N]}},{key:"length",get:function(){return this[L]}},{key:"itemCount",get:function(){return this[ne].length}}])&&E(rt.prototype,wt),xt&&E(rt,xt),Ge}(),ge=function(Ge,rt,wt){var xt=Ge[m].get(rt);if(xt){var $e=xt.value;if(ze(Ge,$e)){if(Oe(Ge,xt),!Ge[C])return}else wt&&(Ge[we]&&(xt.value.now=Date.now()),Ge[ne].unshiftNode(xt));return $e.value}},ze=function(Ge,rt){if(!rt||!rt.maxAge&&!Ge[U])return!1;var wt=Date.now()-rt.now;return rt.maxAge?wt>rt.maxAge:Ge[U]&&wt>Ge[U]},pe=function(Ge){if(Ge[L]>Ge[k])for(var rt=Ge[ne].tail;Ge[L]>Ge[k]&&rt!==null;){var wt=rt.prev;Oe(Ge,rt),rt=wt}},Oe=function(Ge,rt){if(rt){var wt=rt.value;Ge[q]&&Ge[q](wt.key,wt.value),Ge[L]-=wt.length,Ge[m].delete(wt.key),Ge[ne].removeNode(rt)}},le=function Ge(rt,wt,xt,$e,ft){p(this,Ge),this.key=rt,this.value=wt,this.length=xt,this.now=$e,this.maxAge=ft||0},Ue=function(Ge,rt,wt,xt){var $e=wt.value;ze(Ge,$e)&&(Oe(Ge,wt),Ge[C]||($e=void 0)),$e&&rt.call(xt,$e.value,$e.key,Ge)};i.exports=he},function(i,o,f){(function(p){function E(t){return(E=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(k){return typeof k}:function(k){return k&&typeof Symbol=="function"&&k.constructor===Symbol&&k!==Symbol.prototype?"symbol":typeof k})(t)}i.exports=function(){if(typeof document=="undefined"||!document.addEventListener)return null;var t,k,L,N={};return N.copy=function(){var C=!1,U=null,q=!1;function W(){C=!1,U=null,q&&window.getSelection().removeAllRanges(),q=!1}return document.addEventListener("copy",function(ne){if(C){for(var m in U)ne.clipboardData.setData(m,U[m]);ne.preventDefault()}}),function(ne){return new Promise(function(m,we){C=!0,typeof ne=="string"?U={"text/plain":ne}:ne instanceof Node?U={"text/html":new XMLSerializer().serializeToString(ne)}:ne instanceof Object?U=ne:we("Invalid data type. Must be string, DOM node, or an object mapping MIME types to strings."),function Se(he){try{if(document.execCommand("copy"))W(),m();else{if(he)throw W(),new Error("Unable to copy. Perhaps it's not available in your browser?");(function(){var ge=document.getSelection();if(!document.queryCommandEnabled("copy")&&ge.isCollapsed){var ze=document.createRange();ze.selectNodeContents(document.body),ge.removeAllRanges(),ge.addRange(ze),q=!0}})(),Se(!0)}}catch(ge){W(),we(ge)}}(!1)})}}(),N.paste=(L=!1,document.addEventListener("paste",function(C){if(L){L=!1,C.preventDefault();var U=t;t=null,U(C.clipboardData.getData(k))}}),function(C){return new Promise(function(U,q){L=!0,t=U,k=C||"text/plain";try{document.execCommand("paste")||(L=!1,q(new Error("Unable to paste. Pasting only works in Internet Explorer at the moment.")))}catch(W){L=!1,q(new Error(W))}})}),typeof ClipboardEvent=="undefined"&&window.clipboardData!==void 0&&window.clipboardData.setData!==void 0&&(function(C){function U(pe,Oe){return function(){pe.apply(Oe,arguments)}}function q(pe){if(E(this)!="object")throw new TypeError("Promises must be constructed via new");if(typeof pe!="function")throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],he(pe,U(ne,this),U(m,this))}function W(pe){var Oe=this;return this._state===null?void this._deferreds.push(pe):void ge(function(){var le=Oe._state?pe.onFulfilled:pe.onRejected;if(le!==null){var Ue;try{Ue=le(Oe._value)}catch(Ge){return void pe.reject(Ge)}pe.resolve(Ue)}else(Oe._state?pe.resolve:pe.reject)(Oe._value)})}function ne(pe){try{if(pe===this)throw new TypeError("A promise cannot be resolved with itself.");if(pe&&(E(pe)=="object"||typeof pe=="function")){var Oe=pe.then;if(typeof Oe=="function")return void he(U(Oe,pe),U(ne,this),U(m,this))}this._state=!0,this._value=pe,we.call(this)}catch(le){m.call(this,le)}}function m(pe){this._state=!1,this._value=pe,we.call(this)}function we(){for(var pe=0,Oe=this._deferreds.length;Oe>pe;pe++)W.call(this,this._deferreds[pe]);this._deferreds=null}function Se(pe,Oe,le,Ue){this.onFulfilled=typeof pe=="function"?pe:null,this.onRejected=typeof Oe=="function"?Oe:null,this.resolve=le,this.reject=Ue}function he(pe,Oe,le){var Ue=!1;try{pe(function(Ge){Ue||(Ue=!0,Oe(Ge))},function(Ge){Ue||(Ue=!0,le(Ge))})}catch(Ge){if(Ue)return;Ue=!0,le(Ge)}}var ge=q.immediateFn||typeof p=="function"&&p||function(pe){setTimeout(pe,1)},ze=Array.isArray||function(pe){return Object.prototype.toString.call(pe)==="[object Array]"};q.prototype.catch=function(pe){return this.then(null,pe)},q.prototype.then=function(pe,Oe){var le=this;return new q(function(Ue,Ge){W.call(le,new Se(pe,Oe,Ue,Ge))})},q.all=function(){var pe=Array.prototype.slice.call(arguments.length===1&&ze(arguments[0])?arguments[0]:arguments);return new q(function(Oe,le){function Ue(wt,xt){try{if(xt&&(E(xt)=="object"||typeof xt=="function")){var $e=xt.then;if(typeof $e=="function")return void $e.call(xt,function(ft){Ue(wt,ft)},le)}pe[wt]=xt,--Ge==0&&Oe(pe)}catch(ft){le(ft)}}if(pe.length===0)return Oe([]);for(var Ge=pe.length,rt=0;rtUe;Ue++)pe[Ue].then(Oe,le)})},i.exports?i.exports=q:C.Promise||(C.Promise=q)}(this),N.copy=function(C){return new Promise(function(U,q){if(typeof C!="string"&&!("text/plain"in C))throw new Error("You must provide a text/plain type.");var W=typeof C=="string"?C:C["text/plain"];window.clipboardData.setData("Text",W)?U():q(new Error("Copying was rejected."))})},N.paste=function(){return new Promise(function(C,U){var q=window.clipboardData.getData("Text");q?C(q):U(new Error("Pasting was rejected."))})}),N}()}).call(this,f(13).setImmediate)},function(i,o,f){"use strict";i.exports=f(15)},function(i,o,f){"use strict";f.r(o),o.default=`:root { + /** + * IMPORTANT: When new theme variables are added below\u2013 also add them to SettingsContext updateThemeVariables() + */ + + /* Light theme */ + --light-color-attribute-name: #ef6632; + --light-color-attribute-name-not-editable: #23272f; + --light-color-attribute-name-inverted: rgba(255, 255, 255, 0.7); + --light-color-attribute-value: #1a1aa6; + --light-color-attribute-value-inverted: #ffffff; + --light-color-attribute-editable-value: #1a1aa6; + --light-color-background: #ffffff; + --light-color-background-hover: rgba(0, 136, 250, 0.1); + --light-color-background-inactive: #e5e5e5; + --light-color-background-invalid: #fff0f0; + --light-color-background-selected: #0088fa; + --light-color-button-background: #ffffff; + --light-color-button-background-focus: #ededed; + --light-color-button: #5f6673; + --light-color-button-disabled: #cfd1d5; + --light-color-button-active: #0088fa; + --light-color-button-focus: #23272f; + --light-color-button-hover: #23272f; + --light-color-border: #eeeeee; + --light-color-commit-did-not-render-fill: #cfd1d5; + --light-color-commit-did-not-render-fill-text: #000000; + --light-color-commit-did-not-render-pattern: #cfd1d5; + --light-color-commit-did-not-render-pattern-text: #333333; + --light-color-commit-gradient-0: #37afa9; + --light-color-commit-gradient-1: #63b19e; + --light-color-commit-gradient-2: #80b393; + --light-color-commit-gradient-3: #97b488; + --light-color-commit-gradient-4: #abb67d; + --light-color-commit-gradient-5: #beb771; + --light-color-commit-gradient-6: #cfb965; + --light-color-commit-gradient-7: #dfba57; + --light-color-commit-gradient-8: #efbb49; + --light-color-commit-gradient-9: #febc38; + --light-color-commit-gradient-text: #000000; + --light-color-component-name: #6a51b2; + --light-color-component-name-inverted: #ffffff; + --light-color-component-badge-background: rgba(0, 0, 0, 0.1); + --light-color-component-badge-background-inverted: rgba(255, 255, 255, 0.25); + --light-color-component-badge-count: #777d88; + --light-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --light-color-context-background: rgba(0,0,0,.9); + --light-color-context-background-hover: rgba(255, 255, 255, 0.1); + --light-color-context-background-selected: #178fb9; + --light-color-context-border: #3d424a; + --light-color-context-text: #ffffff; + --light-color-context-text-selected: #ffffff; + --light-color-dim: #777d88; + --light-color-dimmer: #cfd1d5; + --light-color-dimmest: #eff0f1; + --light-color-error-background: hsl(0, 100%, 97%); + --light-color-error-border: hsl(0, 100%, 92%); + --light-color-error-text: #ff0000; + --light-color-expand-collapse-toggle: #777d88; + --light-color-link: #0000ff; + --light-color-modal-background: rgba(255, 255, 255, 0.75); + --light-color-record-active: #fc3a4b; + --light-color-record-hover: #3578e5; + --light-color-record-inactive: #0088fa; + --light-color-scroll-thumb: #c2c2c2; + --light-color-scroll-track: #fafafa; + --light-color-search-match: yellow; + --light-color-search-match-current: #f7923b; + --light-color-selected-tree-highlight-active: rgba(0, 136, 250, 0.1); + --light-color-selected-tree-highlight-inactive: rgba(0, 0, 0, 0.05); + --light-color-shadow: rgba(0, 0, 0, 0.25); + --light-color-tab-selected-border: #0088fa; + --light-color-text: #000000; + --light-color-text-invalid: #ff0000; + --light-color-text-selected: #ffffff; + --light-color-toggle-background-invalid: #fc3a4b; + --light-color-toggle-background-on: #0088fa; + --light-color-toggle-background-off: #cfd1d5; + --light-color-toggle-text: #ffffff; + --light-color-tooltip-background: rgba(0, 0, 0, 0.9); + --light-color-tooltip-text: #ffffff; + + /* Dark theme */ + --dark-color-attribute-name: #9d87d2; + --dark-color-attribute-name-not-editable: #ededed; + --dark-color-attribute-name-inverted: #282828; + --dark-color-attribute-value: #cedae0; + --dark-color-attribute-value-inverted: #ffffff; + --dark-color-attribute-editable-value: yellow; + --dark-color-background: #282c34; + --dark-color-background-hover: rgba(255, 255, 255, 0.1); + --dark-color-background-inactive: #3d424a; + --dark-color-background-invalid: #5c0000; + --dark-color-background-selected: #178fb9; + --dark-color-button-background: #282c34; + --dark-color-button-background-focus: #3d424a; + --dark-color-button: #afb3b9; + --dark-color-button-active: #61dafb; + --dark-color-button-disabled: #4f5766; + --dark-color-button-focus: #a2e9fc; + --dark-color-button-hover: #ededed; + --dark-color-border: #3d424a; + --dark-color-commit-did-not-render-fill: #777d88; + --dark-color-commit-did-not-render-fill-text: #000000; + --dark-color-commit-did-not-render-pattern: #666c77; + --dark-color-commit-did-not-render-pattern-text: #ffffff; + --dark-color-commit-gradient-0: #37afa9; + --dark-color-commit-gradient-1: #63b19e; + --dark-color-commit-gradient-2: #80b393; + --dark-color-commit-gradient-3: #97b488; + --dark-color-commit-gradient-4: #abb67d; + --dark-color-commit-gradient-5: #beb771; + --dark-color-commit-gradient-6: #cfb965; + --dark-color-commit-gradient-7: #dfba57; + --dark-color-commit-gradient-8: #efbb49; + --dark-color-commit-gradient-9: #febc38; + --dark-color-commit-gradient-text: #000000; + --dark-color-component-name: #61dafb; + --dark-color-component-name-inverted: #282828; + --dark-color-component-badge-background: rgba(255, 255, 255, 0.25); + --dark-color-component-badge-background-inverted: rgba(0, 0, 0, 0.25); + --dark-color-component-badge-count: #8f949d; + --dark-color-component-badge-count-inverted: rgba(255, 255, 255, 0.7); + --dark-color-context-background: rgba(255,255,255,.9); + --dark-color-context-background-hover: rgba(0, 136, 250, 0.1); + --dark-color-context-background-selected: #0088fa; + --dark-color-context-border: #eeeeee; + --dark-color-context-text: #000000; + --dark-color-context-text-selected: #ffffff; + --dark-color-dim: #8f949d; + --dark-color-dimmer: #777d88; + --dark-color-dimmest: #4f5766; + --dark-color-error-background: #200; + --dark-color-error-border: #900; + --dark-color-error-text: #f55; + --dark-color-expand-collapse-toggle: #8f949d; + --dark-color-link: #61dafb; + --dark-color-modal-background: rgba(0, 0, 0, 0.75); + --dark-color-record-active: #fc3a4b; + --dark-color-record-hover: #a2e9fc; + --dark-color-record-inactive: #61dafb; + --dark-color-scroll-thumb: #afb3b9; + --dark-color-scroll-track: #313640; + --dark-color-search-match: yellow; + --dark-color-search-match-current: #f7923b; + --dark-color-selected-tree-highlight-active: rgba(23, 143, 185, 0.15); + --dark-color-selected-tree-highlight-inactive: rgba(255, 255, 255, 0.05); + --dark-color-shadow: rgba(0, 0, 0, 0.5); + --dark-color-tab-selected-border: #178fb9; + --dark-color-text: #ffffff; + --dark-color-text-invalid: #ff8080; + --dark-color-text-selected: #ffffff; + --dark-color-toggle-background-invalid: #fc3a4b; + --dark-color-toggle-background-on: #178fb9; + --dark-color-toggle-background-off: #777d88; + --dark-color-toggle-text: #ffffff; + --dark-color-tooltip-background: rgba(255, 255, 255, 0.9); + --dark-color-tooltip-text: #000000; + + /* Font smoothing */ + --light-font-smoothing: auto; + --dark-font-smoothing: antialiased; + --font-smoothing: auto; + + /* Compact density */ + --compact-font-size-monospace-small: 9px; + --compact-font-size-monospace-normal: 11px; + --compact-font-size-monospace-large: 15px; + --compact-font-size-sans-small: 10px; + --compact-font-size-sans-normal: 12px; + --compact-font-size-sans-large: 14px; + --compact-line-height-data: 18px; + --compact-root-font-size: 16px; + + /* Comfortable density */ + --comfortable-font-size-monospace-small: 10px; + --comfortable-font-size-monospace-normal: 13px; + --comfortable-font-size-monospace-large: 17px; + --comfortable-font-size-sans-small: 12px; + --comfortable-font-size-sans-normal: 14px; + --comfortable-font-size-sans-large: 16px; + --comfortable-line-height-data: 22px; + --comfortable-root-font-size: 20px; + + /* GitHub.com system fonts */ + --font-family-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, + Courier, monospace; + --font-family-sans: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, + Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + + /* Constant values shared between JS and CSS */ + --interaction-commit-size: 10px; + --interaction-label-width: 200px; +} +`},function(i,o,f){"use strict";function p(N){var C=this;if(C instanceof p||(C=new p),C.tail=null,C.head=null,C.length=0,N&&typeof N.forEach=="function")N.forEach(function(W){C.push(W)});else if(arguments.length>0)for(var U=0,q=arguments.length;U1)U=C;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");q=this.head.next,U=this.head.value}for(var W=0;q!==null;W++)U=N(U,q.value,W),q=q.next;return U},p.prototype.reduceReverse=function(N,C){var U,q=this.tail;if(arguments.length>1)U=C;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");q=this.tail.prev,U=this.tail.value}for(var W=this.length-1;q!==null;W--)U=N(U,q.value,W),q=q.prev;return U},p.prototype.toArray=function(){for(var N=new Array(this.length),C=0,U=this.head;U!==null;C++)N[C]=U.value,U=U.next;return N},p.prototype.toArrayReverse=function(){for(var N=new Array(this.length),C=0,U=this.tail;U!==null;C++)N[C]=U.value,U=U.prev;return N},p.prototype.slice=function(N,C){(C=C||this.length)<0&&(C+=this.length),(N=N||0)<0&&(N+=this.length);var U=new p;if(Cthis.length&&(C=this.length);for(var q=0,W=this.head;W!==null&&qthis.length&&(C=this.length);for(var q=this.length,W=this.tail;W!==null&&q>C;q--)W=W.prev;for(;W!==null&&q>N;q--,W=W.prev)U.push(W.value);return U},p.prototype.splice=function(N,C){N>this.length&&(N=this.length-1),N<0&&(N=this.length+N);for(var U=0,q=this.head;q!==null&&U=0&&(L._idleTimeoutId=setTimeout(function(){L._onTimeout&&L._onTimeout()},N))},f(14),o.setImmediate=typeof self!="undefined"&&self.setImmediate||p!==void 0&&p.setImmediate||this&&this.setImmediate,o.clearImmediate=typeof self!="undefined"&&self.clearImmediate||p!==void 0&&p.clearImmediate||this&&this.clearImmediate}).call(this,f(4))},function(i,o,f){(function(p,E){(function(t,k){"use strict";if(!t.setImmediate){var L,N,C,U,q,W=1,ne={},m=!1,we=t.document,Se=Object.getPrototypeOf&&Object.getPrototypeOf(t);Se=Se&&Se.setTimeout?Se:t,{}.toString.call(t.process)==="[object process]"?L=function(ze){E.nextTick(function(){ge(ze)})}:function(){if(t.postMessage&&!t.importScripts){var ze=!0,pe=t.onmessage;return t.onmessage=function(){ze=!1},t.postMessage("","*"),t.onmessage=pe,ze}}()?(U="setImmediate$"+Math.random()+"$",q=function(ze){ze.source===t&&typeof ze.data=="string"&&ze.data.indexOf(U)===0&&ge(+ze.data.slice(U.length))},t.addEventListener?t.addEventListener("message",q,!1):t.attachEvent("onmessage",q),L=function(ze){t.postMessage(U+ze,"*")}):t.MessageChannel?((C=new MessageChannel).port1.onmessage=function(ze){ge(ze.data)},L=function(ze){C.port2.postMessage(ze)}):we&&"onreadystatechange"in we.createElement("script")?(N=we.documentElement,L=function(ze){var pe=we.createElement("script");pe.onreadystatechange=function(){ge(ze),pe.onreadystatechange=null,N.removeChild(pe),pe=null},N.appendChild(pe)}):L=function(ze){setTimeout(ge,0,ze)},Se.setImmediate=function(ze){typeof ze!="function"&&(ze=new Function(""+ze));for(var pe=new Array(arguments.length-1),Oe=0;Oeae;ae++)if((Q=he(at,jt,ae))!==-1){Se=ae,jt=Q;break e}jt=-1}}e:{if(at=$t,(Q=W().get(Ke.primitive))!==void 0){for(ae=0;aejt-at?null:$t.slice(at,jt-1))!==null){if(jt=0,rt!==null){for(;jt<$t.length&&jtjt;rt--)wt=$e.pop()}for(rt=$t.length-jt-1;1<=rt;rt--)jt=[],wt.push({id:null,isStateEditable:!1,name:ze($t[rt-1].functionName),value:void 0,subHooks:jt}),$e.push(wt),wt=jt;rt=$t}jt=($t=Ke.primitive)==="Context"||$t==="DebugValue"?null:xt++,wt.push({id:jt,isStateEditable:$t==="Reducer"||$t==="State",name:$t,value:Ke.value,subHooks:[]})}return function Ce(ue,je){for(var ct=[],At=0;At-1&&(ne=ne.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var m=ne.replace(/^\s+/,"").replace(/\(eval code/g,"("),we=m.match(/ (\((.+):(\d+):(\d+)\)$)/),Se=(m=we?m.replace(we[0],""):m).split(/\s+/).slice(1),he=this.extractLocation(we?we[1]:Se.pop()),ge=Se.join(" ")||void 0,ze=["eval",""].indexOf(he[0])>-1?void 0:he[0];return new N({functionName:ge,fileName:ze,lineNumber:he[1],columnNumber:he[2],source:ne})},this)},parseFFOrSafari:function(W){return W.stack.split(` +`).filter(function(ne){return!ne.match(q)},this).map(function(ne){if(ne.indexOf(" > eval")>-1&&(ne=ne.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),ne.indexOf("@")===-1&&ne.indexOf(":")===-1)return new N({functionName:ne});var m=/((.*".+"[^@]*)?[^@]*)(?:@)/,we=ne.match(m),Se=we&&we[1]?we[1]:void 0,he=this.extractLocation(ne.replace(m,""));return new N({functionName:Se,fileName:he[0],lineNumber:he[1],columnNumber:he[2],source:ne})},this)},parseOpera:function(W){return!W.stacktrace||W.message.indexOf(` +`)>-1&&W.message.split(` +`).length>W.stacktrace.split(` +`).length?this.parseOpera9(W):W.stack?this.parseOpera11(W):this.parseOpera10(W)},parseOpera9:function(W){for(var ne=/Line (\d+).*script (?:in )?(\S+)/i,m=W.message.split(` +`),we=[],Se=2,he=m.length;Se/,"$2").replace(/\([^)]*\)/g,"")||void 0;he.match(/\(([^)]*)\)/)&&(m=he.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var ze=m===void 0||m==="[arguments not available]"?void 0:m.split(",");return new N({functionName:ge,args:ze,fileName:Se[0],lineNumber:Se[1],columnNumber:Se[2],source:ne})},this)}}})=="function"?p.apply(o,E):p)===void 0||(i.exports=t)})()},function(i,o,f){var p,E,t;(function(k,L){"use strict";E=[],(t=typeof(p=function(){function N(ge){return ge.charAt(0).toUpperCase()+ge.substring(1)}function C(ge){return function(){return this[ge]}}var U=["isConstructor","isEval","isNative","isToplevel"],q=["columnNumber","lineNumber"],W=["fileName","functionName","source"],ne=U.concat(q,W,["args"]);function m(ge){if(ge)for(var ze=0;ze1?xe-1:0),ke=1;ke=0&&xe.splice(Z,1)}}}])&&p(z.prototype,G),$&&p(z,$),B}(),t=f(2),k=f.n(t);try{var L=f(9).default,N=function(B){var z=new RegExp("".concat(B,": ([0-9]+)")),G=L.match(z);return parseInt(G[1],10)};N("comfortable-line-height-data"),N("compact-line-height-data")}catch(B){}function C(B){try{return sessionStorage.getItem(B)}catch(z){return null}}function U(B){try{sessionStorage.removeItem(B)}catch(z){}}function q(B,z){try{return sessionStorage.setItem(B,z)}catch(G){}}var W=function(B,z){return B===z},ne=f(1),m=f.n(ne);function we(B){return B.ownerDocument?B.ownerDocument.defaultView:null}function Se(B){var z=we(B);return z?z.frameElement:null}function he(B){var z=pe(B);return ge([B.getBoundingClientRect(),{top:z.borderTop,left:z.borderLeft,bottom:z.borderBottom,right:z.borderRight,width:0,height:0}])}function ge(B){return B.reduce(function(z,G){return z==null?G:{top:z.top+G.top,left:z.left+G.left,width:z.width,height:z.height,bottom:z.bottom+G.bottom,right:z.right+G.right}})}function ze(B,z){var G=Se(B);if(G&&G!==z){for(var $=[B.getBoundingClientRect()],De=G,me=!1;De;){var xe=he(De);if($.push(xe),De=Se(De),me)break;De&&we(De)===z&&(me=!0)}return ge($)}return B.getBoundingClientRect()}function pe(B){var z=window.getComputedStyle(B);return{borderLeft:parseInt(z.borderLeftWidth,10),borderRight:parseInt(z.borderRightWidth,10),borderTop:parseInt(z.borderTopWidth,10),borderBottom:parseInt(z.borderBottomWidth,10),marginLeft:parseInt(z.marginLeft,10),marginRight:parseInt(z.marginRight,10),marginTop:parseInt(z.marginTop,10),marginBottom:parseInt(z.marginBottom,10),paddingLeft:parseInt(z.paddingLeft,10),paddingRight:parseInt(z.paddingRight,10),paddingTop:parseInt(z.paddingTop,10),paddingBottom:parseInt(z.paddingBottom,10)}}function Oe(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=function(ke,Xe){if(!!ke){if(typeof ke=="string")return le(ke,Xe);var ht=Object.prototype.toString.call(ke).slice(8,-1);if(ht==="Object"&&ke.constructor&&(ht=ke.constructor.name),ht==="Map"||ht==="Set")return Array.from(ke);if(ht==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ht))return le(ke,Xe)}}(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,De=function(){};return{s:De,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function le(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);Gxe.left+xe.width&&(ie=xe.left+xe.width-ht-5),{style:{top:ke+="px",left:ie+="px"}}}(z,G,{width:$.width,height:$.height});m()(this.tip.style,De.style)}}]),B}(),$e=function(){function B(){Ue(this,B);var z=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.window=z;var G=window.__REACT_DEVTOOLS_TARGET_WINDOW__||window;this.tipBoundsWindow=G;var $=z.document;this.container=$.createElement("div"),this.container.style.zIndex="10000000",this.tip=new xt($,this.container),this.rects=[],$.body.appendChild(this.container)}return rt(B,[{key:"remove",value:function(){this.tip.remove(),this.rects.forEach(function(z){z.remove()}),this.rects.length=0,this.container.parentNode&&this.container.parentNode.removeChild(this.container)}},{key:"inspect",value:function(z,G){for(var $=this,De=z.filter(function(Tt){return Tt.nodeType===Node.ELEMENT_NODE});this.rects.length>De.length;)this.rects.pop().remove();if(De.length!==0){for(;this.rects.length1&&arguments[1]!==void 0?arguments[1]:W,tt=void 0,Tt=[],kt=void 0,bt=!1,on=function(Lt,gn){return qe(Lt,Tt[gn])},tn=function(){for(var Lt=arguments.length,gn=Array(Lt),lr=0;lr5&&arguments[5]!==void 0?arguments[5]:0,Z=Co(B);switch(Z){case"html_element":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.tagName,type:Z};case"function":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:typeof B.name!="function"&&B.name?B.name:"function",type:Z};case"string":return B.length<=500?B:B.slice(0,500)+"...";case"bigint":case"symbol":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.toString(),type:Z};case"react_element":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:L0(B)||"Unknown",type:Z};case"array_buffer":case"data_view":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:Z==="data_view"?"DataView":"ArrayBuffer",size:B.byteLength,type:Z};case"array":return me=De($),xe>=2&&!me?a0(Z,!0,B,z,$):B.map(function(ht,ie){return So(ht,z,G,$.concat([ie]),De,me?1:xe+1)});case"html_all_collection":case"typed_array":case"iterator":if(me=De($),xe>=2&&!me)return a0(Z,!0,B,z,$);var ke={unserializable:!0,type:Z,readonly:!0,size:Z==="typed_array"?B.length:void 0,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.constructor&&B.constructor.name!=="Object"?B.constructor.name:""};return Kt(B[Symbol.iterator])&&Array.from(B).forEach(function(ht,ie){return ke[ie]=So(ht,z,G,$.concat([ie]),De,me?1:xe+1)}),G.push($),ke;case"opaque_iterator":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B[Symbol.toStringTag],type:Z};case"date":case"regexp":return z.push($),{inspectable:!1,preview_short:Si(B,!1),preview_long:Si(B,!0),name:B.toString(),type:Z};case"object":if(me=De($),xe>=2&&!me)return a0(Z,!0,B,z,$);var Xe={};return eu(B).forEach(function(ht){var ie=ht.toString();Xe[ie]=So(B[ht],z,G,$.concat([ie]),De,me?1:xe+1)}),Xe;case"infinity":case"nan":case"undefined":return z.push($),{type:Z};default:return B}}function Go(B){return(Go=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function Os(B){return function(z){if(Array.isArray(z))return Yo(z)}(B)||function(z){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(z))return Array.from(z)}(B)||function(z,G){if(!!z){if(typeof z=="string")return Yo(z,G);var $=Object.prototype.toString.call(z).slice(8,-1);if($==="Object"&&z.constructor&&($=z.constructor.name),$==="Map"||$==="Set")return Array.from(z);if($==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test($))return Yo(z,G)}}(B)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function Yo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);Gz.toString()?1:z.toString()>B.toString()?-1:0}function eu(B){for(var z=[],G=B,$=function(){var De=[].concat(Os(Object.keys(G)),Os(Object.getOwnPropertySymbols(G))),me=Object.getOwnPropertyDescriptors(G);De.forEach(function(xe){me[xe].enumerable&&z.push(xe)}),G=Object.getPrototypeOf(G)};G!=null;)$();return z}function ai(B){var z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Anonymous",G=Ko.get(B);if(G!=null)return G;var $=z;return typeof B.displayName=="string"?$=B.displayName:typeof B.name=="string"&&B.name!==""&&($=B.name),Ko.set(B,$),$}var mr=0;function Xo(){return++mr}function W0(B){var z=qt.get(B);if(z!==void 0)return z;for(var G=new Array(B.length),$=0;$1&&arguments[1]!==void 0?arguments[1]:50;return B.length>z?B.substr(0,z)+"\u2026":B}function Si(B,z){if(B!=null&&hasOwnProperty.call(B,vu.type))return z?B[vu.preview_long]:B[vu.preview_short];switch(Co(B)){case"html_element":return"<".concat(tu(B.tagName.toLowerCase())," />");case"function":return tu("\u0192 ".concat(typeof B.name=="function"?"":B.name,"() {}"));case"string":return'"'.concat(B,'"');case"bigint":return tu(B.toString()+"n");case"regexp":case"symbol":return tu(B.toString());case"react_element":return"<".concat(tu(L0(B)||"Unknown")," />");case"array_buffer":return"ArrayBuffer(".concat(B.byteLength,")");case"data_view":return"DataView(".concat(B.buffer.byteLength,")");case"array":if(z){for(var G="",$=0;$0&&(G+=", "),!((G+=Si(B[$],!1)).length>50));$++);return"[".concat(tu(G),"]")}var De=hasOwnProperty.call(B,vu.size)?B[vu.size]:B.length;return"Array(".concat(De,")");case"typed_array":var me="".concat(B.constructor.name,"(").concat(B.length,")");if(z){for(var xe="",Z=0;Z0&&(xe+=", "),!((xe+=B[Z]).length>50));Z++);return"".concat(me," [").concat(tu(xe),"]")}return me;case"iterator":var ke=B.constructor.name;if(z){for(var Xe=Array.from(B),ht="",ie=0;ie0&&(ht+=", "),Array.isArray(qe)){var tt=Si(qe[0],!0),Tt=Si(qe[1],!1);ht+="".concat(tt," => ").concat(Tt)}else ht+=Si(qe,!1);if(ht.length>50)break}return"".concat(ke,"(").concat(B.size,") {").concat(tu(ht),"}")}return"".concat(ke,"(").concat(B.size,")");case"opaque_iterator":return B[Symbol.toStringTag];case"date":return B.toString();case"object":if(z){for(var kt=eu(B).sort(_i),bt="",on=0;on0&&(bt+=", "),(bt+="".concat(tn.toString(),": ").concat(Si(B[tn],!1))).length>50)break}return"{".concat(tu(bt),"}")}return"{\u2026}";case"boolean":case"number":case"infinity":case"nan":case"null":case"undefined":return B;default:try{return tu(""+B)}catch(Lt){return"unserializable"}}}var ks=f(7);function Hl(B){return(Hl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function F0(B,z){var G=Object.keys(B);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(B);z&&($=$.filter(function(De){return Object.getOwnPropertyDescriptor(B,De).enumerable})),G.push.apply(G,$)}return G}function f0(B){for(var z=1;z2&&arguments[2]!==void 0?arguments[2]:[];if(B!==null){var $=[],De=[],me=So(B,$,De,G,z);return{data:me,cleaned:$,unserializable:De}}return null}function G0(B){var z,G,$=(z=B,G=new Set,JSON.stringify(z,function(xe,Z){if(Hl(Z)==="object"&&Z!==null){if(G.has(Z))return;G.add(Z)}return typeof Z=="bigint"?Z.toString()+"n":Z})),De=$===void 0?"undefined":$,me=window.__REACT_DEVTOOLS_GLOBAL_HOOK__.clipboardCopyText;typeof me=="function"?me(De).catch(function(xe){}):Object(ks.copy)(De)}function fi(B,z){var G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,$=z[G],De=Array.isArray(B)?B.slice():f0({},B);return G+1===z.length?Array.isArray(De)?De.splice($,1):delete De[$]:De[$]=fi(B[$],z,G+1),De}function Zt(B,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,De=z[$],me=Array.isArray(B)?B.slice():f0({},B);if($+1===z.length){var xe=G[$];me[xe]=me[De],Array.isArray(me)?me.splice(De,1):delete me[De]}else me[De]=Zt(B[De],z,G,$+1);return me}function Ln(B,z,G){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;if($>=z.length)return G;var De=z[$],me=Array.isArray(B)?B.slice():f0({},B);return me[De]=Ln(B[De],z,G,$+1),me}var Di=f(8);function ci(B,z){var G=Object.keys(B);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(B);z&&($=$.filter(function(De){return Object.getOwnPropertyDescriptor(B,De).enumerable})),G.push.apply(G,$)}return G}function Ht(B){for(var z=1;z=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function Wl(B,z){if(B){if(typeof B=="string")return xo(B,z);var G=Object.prototype.toString.call(B).slice(8,-1);return G==="Object"&&B.constructor&&(G=B.constructor.name),G==="Map"||G==="Set"?Array.from(B):G==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(G)?xo(B,z):void 0}}function xo(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G0){var vt=me(se);if(vt!=null){var Xt,xn=Ui(Mo);try{for(xn.s();!(Xt=xn.n()).done;)if(Xt.value.test(vt))return!0}catch(er){xn.e(er)}finally{xn.f()}}}if(re!=null&&ds.size>0){var _n,yn=re.fileName,En=Ui(ds);try{for(En.s();!(_n=En.n()).done;)if(_n.value.test(yn))return!0}catch(er){En.e(er)}finally{En.f()}}return!1}function yu(se){var re=se.type;switch(se.tag){case Tt:case _r:return 1;case tt:case Cn:return 5;case tn:return 6;case Lt:return 11;case lr:return 7;case gn:case Qn:case on:return 9;case Ar:case Rr:return 8;case nt:return 12;case _t:return 13;default:switch(xe(re)){case 60111:case"Symbol(react.concurrent_mode)":case"Symbol(react.async_mode)":return 9;case 60109:case"Symbol(react.provider)":return 2;case 60110:case"Symbol(react.context)":return 2;case 60108:case"Symbol(react.strict_mode)":return 9;case 60114:case"Symbol(react.profiler)":return 10;default:return 9}}}function pi(se){if(Fo.has(se))return se;var re=se.alternate;return re!=null&&Fo.has(re)?re:(Fo.add(se),se)}window.__REACT_DEVTOOLS_COMPONENT_FILTERS__!=null?ps(window.__REACT_DEVTOOLS_COMPONENT_FILTERS__):ps([{type:1,value:7,isEnabled:!0}]);var T0=new Map,Q0=new Map,Fo=new Set,ta=new Map,Kl=new Map,Ki=-1;function Yr(se){if(!T0.has(se)){var re=Xo();T0.set(se,re),Q0.set(re,se)}return T0.get(se)}function fo(se){switch(yu(se)){case 1:if(I0!==null){var re=Yr(pi(se)),Le=gi(se);Le!==null&&I0.set(re,Le)}}}var Oi={};function gi(se){switch(yu(se)){case 1:var re=se.stateNode,Le=Oi,Ae=Oi;return re!=null&&(re.constructor&&re.constructor.contextType!=null?Ae=re.context:(Le=re.context)&&Object.keys(Le).length===0&&(Le=Oi)),[Le,Ae];default:return null}}function ff(se){switch(yu(se)){case 1:if(I0!==null){var re=Yr(pi(se)),Le=I0.has(re)?I0.get(re):null,Ae=gi(se);if(Le==null||Ae==null)return null;var ot=Y0(Le,2),vt=ot[0],Xt=ot[1],xn=Y0(Ae,2),_n=xn[0],yn=xn[1];if(_n!==Oi)return J0(vt,_n);if(yn!==Oi)return Xt!==yn}}return null}function cf(se,re){if(se==null||re==null)return!1;if(re.hasOwnProperty("baseState")&&re.hasOwnProperty("memoizedState")&&re.hasOwnProperty("next")&&re.hasOwnProperty("queue"))for(;re!==null;){if(re.memoizedState!==se.memoizedState)return!0;re=re.next,se=se.next}return!1}function J0(se,re){if(se==null||re==null||re.hasOwnProperty("baseState")&&re.hasOwnProperty("memoizedState")&&re.hasOwnProperty("next")&&re.hasOwnProperty("queue"))return null;var Le,Ae=[],ot=Ui(new Set([].concat(Yi(Object.keys(se)),Yi(Object.keys(re)))));try{for(ot.s();!(Le=ot.n()).done;){var vt=Le.value;se[vt]!==re[vt]&&Ae.push(vt)}}catch(Xt){ot.e(Xt)}finally{ot.f()}return Ae}function Z0(se,re){switch(re.tag){case Tt:case tt:case kt:case Ar:case Rr:return(oo(re)&ie)===ie;default:return se.memoizedProps!==re.memoizedProps||se.memoizedState!==re.memoizedState||se.ref!==re.ref}}var Te=[],et=[],Ve=[],Gt=[],Yt=new Map,sr=0,Br=null;function wn(se){Te.push(se)}function fu(se){if(Te.length!==0||et.length!==0||Ve.length!==0||Br!==null||Ru){var re=et.length+Ve.length+(Br===null?0:1),Le=new Array(3+sr+(re>0?2+re:0)+Te.length),Ae=0;if(Le[Ae++]=z,Le[Ae++]=Ki,Le[Ae++]=sr,Yt.forEach(function(xn,_n){Le[Ae++]=_n.length;for(var yn=W0(_n),En=0;En0){Le[Ae++]=2,Le[Ae++]=re;for(var ot=et.length-1;ot>=0;ot--)Le[Ae++]=et[ot];for(var vt=0;vt0?se.forEach(function(re){B.emit("operations",re)}):(wr!==null&&(ru=!0),B.getFiberRoots(z).forEach(function(re){Xu(Ki=Yr(pi(re.current)),re.current),Ru&&re.memoizedInteractions!=null&&($o={changeDescriptions:Xl?new Map:null,durations:[],commitTime:Vl()-Yu,interactions:Array.from(re.memoizedInteractions).map(function(Le){return Ht(Ht({},Le),{},{timestamp:Le.timestamp-Yu})}),maxActualDuration:0,priorityLevel:null}),Vr(re.current,null,!1,!1),fu(),Ki=-1}))},getBestMatchForTrackedPath:function(){if(wr===null||$0===null)return null;for(var se=$0;se!==null&&Vu(se);)se=se.return;return se===null?null:{id:Yr(pi(se)),isFullMatch:Xi===wr.length-1}},getDisplayNameForFiberID:function(se){var re=Q0.get(se);return re!=null?me(re):null},getFiberIDForNative:function(se){var re=arguments.length>1&&arguments[1]!==void 0&&arguments[1],Le=G.findFiberByHostInstance(se);if(Le!=null){if(re)for(;Le!==null&&Vu(Le);)Le=Le.return;return Yr(pi(Le))}return null},getInstanceAndStyle:function(se){var re=null,Le=null,Ae=Uu(se);return Ae!==null&&(re=Ae.stateNode,Ae.memoizedProps!==null&&(Le=Ae.memoizedProps.style)),{instance:re,style:Le}},getOwnersList:function(se){var re=Uu(se);if(re==null)return null;var Le=re._debugOwner,Ae=[{displayName:me(re)||"Anonymous",id:se,type:yu(re)}];if(Le)for(var ot=Le;ot!==null;)Ae.unshift({displayName:me(ot)||"Anonymous",id:Yr(pi(ot)),type:yu(ot)}),ot=ot._debugOwner||null;return Ae},getPathForElement:function(se){var re=Q0.get(se);if(re==null)return null;for(var Le=[];re!==null;)Le.push(y0(re)),re=re.return;return Le.reverse(),Le},getProfilingData:function(){var se=[];if(hs===null)throw Error("getProfilingData() called before any profiling data was recorded");return hs.forEach(function(re,Le){var Ae=[],ot=[],vt=new Map,Xt=new Map,xn=El!==null&&El.get(Le)||"Unknown";R0!=null&&R0.forEach(function(_n,yn){co!=null&&co.get(yn)===Le&&ot.push([yn,_n])}),re.forEach(function(_n,yn){var En=_n.changeDescriptions,er=_n.durations,It=_n.interactions,xi=_n.maxActualDuration,Sr=_n.priorityLevel,cr=_n.commitTime,Y=[];It.forEach(function(hi){vt.has(hi.id)||vt.set(hi.id,hi),Y.push(hi.id);var Qi=Xt.get(hi.id);Qi!=null?Qi.push(yn):Xt.set(hi.id,[yn])});for(var Qr=[],Jr=[],Ur=0;Ur1?Wn.set(En,er-1):Wn.delete(En),Xr.delete(_n)}(Ki),Kr(Le,!1))}else Xu(Ki,Le),Vr(Le,null,!1,!1);if(Ru&&ot){var xn=hs.get(Ki);xn!=null?xn.push($o):hs.set(Ki,[$o])}fu(),No&&B.emit("traceUpdates",Lo),Ki=-1},handleCommitFiberUnmount:function(se){Kr(se,!1)},inspectElement:function(se,re){if(Li(se)){if(re!=null){A0(re);var Le=null;return re[0]==="hooks"&&(Le="hooks"),{id:se,type:"hydrated-path",path:re,value:Ei(Lu(zi,re),Fi(null,Le),re)}}return{id:se,type:"no-change"}}if(Is=!1,zi!==null&&zi.id===se||(x0={}),(zi=na(se))===null)return{id:se,type:"not-found"};re!=null&&A0(re),function(ot){var vt=ot.hooks,Xt=ot.id,xn=ot.props,_n=Q0.get(Xt);if(_n!=null){var yn=_n.elementType,En=_n.stateNode,er=_n.tag,It=_n.type;switch(er){case Tt:case _r:case Cn:$.$r=En;break;case tt:$.$r={hooks:vt,props:xn,type:It};break;case tn:$.$r={props:xn,type:It.render};break;case Ar:case Rr:$.$r={props:xn,type:yn!=null&&yn.type!=null?yn.type:It};break;default:$.$r=null}}else console.warn('Could not find Fiber with id "'.concat(Xt,'"'))}(zi);var Ae=Ht({},zi);return Ae.context=Ei(Ae.context,Fi("context",null)),Ae.hooks=Ei(Ae.hooks,Fi("hooks","hooks")),Ae.props=Ei(Ae.props,Fi("props",null)),Ae.state=Ei(Ae.state,Fi("state",null)),{id:se,type:"full-data",value:Ae}},logElementToConsole:function(se){var re=Li(se)?zi:na(se);if(re!==null){var Le=typeof console.groupCollapsed=="function";Le&&console.groupCollapsed("[Click to expand] %c<".concat(re.displayName||"Component"," />"),"color: var(--dom-tag-name-color); font-weight: normal;"),re.props!==null&&console.log("Props:",re.props),re.state!==null&&console.log("State:",re.state),re.hooks!==null&&console.log("Hooks:",re.hooks);var Ae=_l(se);Ae!==null&&console.log("Nodes:",Ae),re.source!==null&&console.log("Location:",re.source),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Le&&console.groupEnd()}else console.warn('Could not find Fiber with id "'.concat(se,'"'))},prepareViewAttributeSource:function(se,re){Li(se)&&(window.$attribute=Lu(zi,re))},prepareViewElementSource:function(se){var re=Q0.get(se);if(re!=null){var Le=re.elementType,Ae=re.tag,ot=re.type;switch(Ae){case Tt:case _r:case Cn:case tt:$.$type=ot;break;case tn:$.$type=ot.render;break;case Ar:case Rr:$.$type=Le!=null&&Le.type!=null?Le.type:ot;break;default:$.$type=null}}else console.warn('Could not find Fiber with id "'.concat(se,'"'))},overrideSuspense:function(se,re){if(typeof ko!="function"||typeof Zo!="function")throw new Error("Expected overrideSuspense() to not get called for earlier React versions.");re?(Ku.add(se),Ku.size===1&&ko(vs)):(Ku.delete(se),Ku.size===0&&ko(df));var Le=Q0.get(se);Le!=null&&Zo(Le)},overrideValueAtPath:function(se,re,Le,Ae,ot){var vt=Uu(re);if(vt!==null){var Xt=vt.stateNode;switch(se){case"context":switch(Ae=Ae.slice(1),vt.tag){case Tt:Ae.length===0?Xt.context=ot:To(Xt.context,Ae,ot),Xt.forceUpdate()}break;case"hooks":typeof nu=="function"&&nu(vt,Le,Ae,ot);break;case"props":switch(vt.tag){case Tt:vt.pendingProps=Ln(Xt.props,Ae,ot),Xt.forceUpdate();break;default:typeof X0=="function"&&X0(vt,Ae,ot)}break;case"state":switch(vt.tag){case Tt:To(Xt.state,Ae,ot),Xt.forceUpdate()}}}},renamePath:function(se,re,Le,Ae,ot){var vt=Uu(re);if(vt!==null){var Xt=vt.stateNode;switch(se){case"context":switch(Ae=Ae.slice(1),ot=ot.slice(1),vt.tag){case Tt:Ae.length===0||Hr(Xt.context,Ae,ot),Xt.forceUpdate()}break;case"hooks":typeof S0=="function"&&S0(vt,Le,Ae,ot);break;case"props":Xt===null?typeof di=="function"&&di(vt,Ae,ot):(vt.pendingProps=Zt(Xt.props,Ae,ot),Xt.forceUpdate());break;case"state":Hr(Xt.state,Ae,ot),Xt.forceUpdate()}}},renderer:G,setTraceUpdatesEnabled:function(se){No=se},setTrackedPath:Ci,startProfiling:ra,stopProfiling:function(){Ru=!1,Xl=!1},storeAsGlobal:function(se,re,Le){if(Li(se)){var Ae=Lu(zi,re),ot="$reactTemp".concat(Le);window[ot]=Ae,console.log(ot),console.log(Ae)}},updateComponentFilters:function(se){if(Ru)throw Error("Cannot modify filter preferences while profiling");B.getFiberRoots(z).forEach(function(re){Ki=Yr(pi(re.current)),Bu(re.current),Kr(re.current,!1),Ki=-1}),ps(se),Wn.clear(),B.getFiberRoots(z).forEach(function(re){Xu(Ki=Yr(pi(re.current)),re.current),Vr(re.current,null,!1,!1),fu(re),Ki=-1})}}}var Xn;function Qo(B){return(Qo=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function lo(B,z,G){if(Xn===void 0)try{throw Error()}catch(De){var $=De.stack.trim().match(/\n( *(at )?)/);Xn=$&&$[1]||""}return` +`+Xn+B}var b0=!1;function yl(B,z,G){if(!B||b0)return"";var $,De=Error.prepareStackTrace;Error.prepareStackTrace=void 0,b0=!0;var me=G.current;G.current=null;try{if(z){var xe=function(){throw Error()};if(Object.defineProperty(xe.prototype,"props",{set:function(){throw Error()}}),(typeof Reflect=="undefined"?"undefined":Qo(Reflect))==="object"&&Reflect.construct){try{Reflect.construct(xe,[])}catch(qe){$=qe}Reflect.construct(B,[],xe)}else{try{xe.call()}catch(qe){$=qe}B.call(xe.prototype)}}else{try{throw Error()}catch(qe){$=qe}B()}}catch(qe){if(qe&&$&&typeof qe.stack=="string"){for(var Z=qe.stack.split(` +`),ke=$.stack.split(` +`),Xe=Z.length-1,ht=ke.length-1;Xe>=1&&ht>=0&&Z[Xe]!==ke[ht];)ht--;for(;Xe>=1&&ht>=0;Xe--,ht--)if(Z[Xe]!==ke[ht]){if(Xe!==1||ht!==1)do if(Xe--,--ht<0||Z[Xe]!==ke[ht])return` +`+Z[Xe].replace(" at new "," at ");while(Xe>=1&&ht>=0);break}}}finally{b0=!1,Error.prepareStackTrace=De,G.current=me}var ie=B?B.displayName||B.name:"";return ie?lo(ie):""}function Ro(B,z,G,$){return yl(B,!1,$)}function Et(B,z,G){var $=B.HostComponent,De=B.LazyComponent,me=B.SuspenseComponent,xe=B.SuspenseListComponent,Z=B.FunctionComponent,ke=B.IndeterminateComponent,Xe=B.SimpleMemoComponent,ht=B.ForwardRef,ie=B.Block,qe=B.ClassComponent;switch(z.tag){case $:return lo(z.type);case De:return lo("Lazy");case me:return lo("Suspense");case xe:return lo("SuspenseList");case Z:case ke:case Xe:return Ro(z.type,0,0,G);case ht:return Ro(z.type.render,0,0,G);case ie:return Ro(z.type._render,0,0,G);case qe:return function(tt,Tt,kt,bt){return yl(tt,!0,bt)}(z.type,0,0,G);default:return""}}function Pt(B,z,G){try{var $="",De=z;do $+=Et(B,De,G),De=De.return;while(De);return $}catch(me){return` +Error generating stack: `+me.message+` +`+me.stack}}function Bn(B,z){var G;if(typeof Symbol=="undefined"||B[Symbol.iterator]==null){if(Array.isArray(B)||(G=function(ke,Xe){if(!!ke){if(typeof ke=="string")return Ir(ke,Xe);var ht=Object.prototype.toString.call(ke).slice(8,-1);if(ht==="Object"&&ke.constructor&&(ht=ke.constructor.name),ht==="Map"||ht==="Set")return Array.from(ke);if(ht==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ht))return Ir(ke,Xe)}}(B))||z&&B&&typeof B.length=="number"){G&&(B=G);var $=0,De=function(){};return{s:De,n:function(){return $>=B.length?{done:!0}:{done:!1,value:B[$++]}},e:function(ke){throw ke},f:De}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var me,xe=!0,Z=!1;return{s:function(){G=B[Symbol.iterator]()},n:function(){var ke=G.next();return xe=ke.done,ke},e:function(ke){Z=!0,me=ke},f:function(){try{xe||G.return==null||G.return()}finally{if(Z)throw me}}}}function Ir(B,z){(z==null||z>B.length)&&(z=B.length);for(var G=0,$=new Array(z);G0?Xe[Xe.length-1]:null,qe=ie!==null&&(Wr.test(ie)||wu.test(ie));if(!qe){var tt,Tt=Bn(c0.values());try{for(Tt.s();!(tt=Tt.n()).done;){var kt=tt.value,bt=kt.currentDispatcherRef,on=kt.getCurrentFiber,tn=kt.workTagMap,Lt=on();if(Lt!=null){var gn=Pt(tn,Lt,bt);gn!==""&&Xe.push(gn);break}}}catch(lr){Tt.e(lr)}finally{Tt.f()}}}catch(lr){}me.apply(void 0,Xe)};xe.__REACT_DEVTOOLS_ORIGINAL_METHOD__=me,Ti[De]=xe}catch(Z){}})}}function Fu(B){return(Fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(z){return typeof z}:function(z){return z&&typeof Symbol=="function"&&z.constructor===Symbol&&z!==Symbol.prototype?"symbol":typeof z})(B)}function fs(B,z){for(var G=0;GB.length)&&(z=B.length);for(var G=0,$=new Array(z);G1?Z-1:0),Xe=1;Xe0?ie[ie.length-1]:0),ie.push(nn),Z.set(Ze,Xe(Ft._topLevelWrapper));try{var sn=nt.apply(this,_t);return ie.pop(),sn}catch(yr){throw ie=[],yr}finally{if(ie.length===0){var Yn=Z.get(Ze);if(Yn===void 0)throw new Error("Expected to find root ID.");lr(Yn)}}},performUpdateIfNecessary:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);var nn=Gn(Ze);try{var sn=nt.apply(this,_t),Yn=Gn(Ze);return ht(nn,Yn)||Tt(Ze,Ft,Yn),ie.pop(),sn}catch(nu){throw ie=[],nu}finally{if(ie.length===0){var yr=Z.get(Ze);if(yr===void 0)throw new Error("Expected to find root ID.");lr(yr)}}},receiveComponent:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);var nn=Gn(Ze);try{var sn=nt.apply(this,_t),Yn=Gn(Ze);return ht(nn,Yn)||Tt(Ze,Ft,Yn),ie.pop(),sn}catch(nu){throw ie=[],nu}finally{if(ie.length===0){var yr=Z.get(Ze);if(yr===void 0)throw new Error("Expected to find root ID.");lr(yr)}}},unmountComponent:function(nt,_t){var Ze=_t[0];if(w0(Ze)===9)return nt.apply(this,_t);var Ft=Xe(Ze);ie.push(Ft);try{var nn=nt.apply(this,_t);return ie.pop(),function(Yn,yr){tn.push(yr),me.delete(yr)}(0,Ft),nn}catch(Yn){throw ie=[],Yn}finally{if(ie.length===0){var sn=Z.get(Ze);if(sn===void 0)throw new Error("Expected to find root ID.");lr(sn)}}}}));var bt=[],on=new Map,tn=[],Lt=0,gn=null;function lr(nt){if(bt.length!==0||tn.length!==0||gn!==null){var _t=tn.length+(gn===null?0:1),Ze=new Array(3+Lt+(_t>0?2+_t:0)+bt.length),Ft=0;if(Ze[Ft++]=z,Ze[Ft++]=nt,Ze[Ft++]=Lt,on.forEach(function(Yn,yr){Ze[Ft++]=yr.length;for(var nu=W0(yr),Cu=0;Cu0){Ze[Ft++]=2,Ze[Ft++]=_t;for(var nn=0;nn"),"color: var(--dom-tag-name-color); font-weight: normal;"),_t.props!==null&&console.log("Props:",_t.props),_t.state!==null&&console.log("State:",_t.state),_t.context!==null&&console.log("Context:",_t.context);var Ft=De(nt);Ft!==null&&console.log("Node:",Ft),(window.chrome||/firefox/i.test(navigator.userAgent))&&console.log("Right-click any value to save it as a global variable for further inspection."),Ze&&console.groupEnd()}else console.warn('Could not find element with id "'.concat(nt,'"'))},overrideSuspense:function(){throw new Error("overrideSuspense not supported by this renderer")},overrideValueAtPath:function(nt,_t,Ze,Ft,nn){var sn=me.get(_t);if(sn!=null){var Yn=sn._instance;if(Yn!=null)switch(nt){case"context":To(Yn.context,Ft,nn),p0(Yn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var yr=sn._currentElement;sn._currentElement=K0(K0({},yr),{},{props:Ln(yr.props,Ft,nn)}),p0(Yn);break;case"state":To(Yn.state,Ft,nn),p0(Yn)}}},renamePath:function(nt,_t,Ze,Ft,nn){var sn=me.get(_t);if(sn!=null){var Yn=sn._instance;if(Yn!=null)switch(nt){case"context":Hr(Yn.context,Ft,nn),p0(Yn);break;case"hooks":throw new Error("Hooks not supported by this renderer");case"props":var yr=sn._currentElement;sn._currentElement=K0(K0({},yr),{},{props:Zt(yr.props,Ft,nn)}),p0(Yn);break;case"state":Hr(Yn.state,Ft,nn),p0(Yn)}}},prepareViewAttributeSource:function(nt,_t){var Ze=Rr(nt);Ze!==null&&(window.$attribute=Lu(Ze,_t))},prepareViewElementSource:function(nt){var _t=me.get(nt);if(_t!=null){var Ze=_t._currentElement;Ze!=null?$.$type=Ze.type:console.warn('Could not find element with id "'.concat(nt,'"'))}else console.warn('Could not find instance with id "'.concat(nt,'"'))},renderer:G,setTraceUpdatesEnabled:function(nt){},setTrackedPath:function(nt){},startProfiling:function(){},stopProfiling:function(){},storeAsGlobal:function(nt,_t,Ze){var Ft=Rr(nt);if(Ft!==null){var nn=Lu(Ft,_t),sn="$reactTemp".concat(Ze);window[sn]=nn,console.log(sn),console.log(nn)}},updateComponentFilters:function(nt){}}}function ri(B,z){var G=!1,$={bottom:0,left:0,right:0,top:0},De=z[B];if(De!=null){for(var me=0,xe=Object.keys($);me0?"development":"production";var bt=Function.prototype.toString;if(kt.Mount&&kt.Mount._renderNewRootComponent){var on=bt.call(kt.Mount._renderNewRootComponent);return on.indexOf("function")!==0?"production":on.indexOf("storedMeasure")!==-1?"development":on.indexOf("should be a pure function")!==-1?on.indexOf("NODE_ENV")!==-1||on.indexOf("development")!==-1||on.indexOf("true")!==-1?"development":on.indexOf("nextElement")!==-1||on.indexOf("nextComponent")!==-1?"unminified":"development":on.indexOf("nextElement")!==-1||on.indexOf("nextComponent")!==-1?"unminified":"outdated"}}catch(tn){}return"production"}(ke);try{var ie=window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__!==!1,qe=window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__===!0;(ie||qe)&&(so(ke),Gl({appendComponentStack:ie,breakOnConsoleErrors:qe}))}catch(kt){}var tt=B.__REACT_DEVTOOLS_ATTACH__;if(typeof tt=="function"){var Tt=tt(Z,Xe,ke,B);Z.rendererInterfaces.set(Xe,Tt)}return Z.emit("renderer",{id:Xe,renderer:ke,reactBuildType:ht}),Xe},on:function(ke,Xe){me[ke]||(me[ke]=[]),me[ke].push(Xe)},off:function(ke,Xe){if(me[ke]){var ht=me[ke].indexOf(Xe);ht!==-1&&me[ke].splice(ht,1),me[ke].length||delete me[ke]}},sub:function(ke,Xe){return Z.on(ke,Xe),function(){return Z.off(ke,Xe)}},supportsFiber:!0,checkDCE:function(ke){try{Function.prototype.toString.call(ke).indexOf("^_^")>-1&&(G=!0,setTimeout(function(){throw new Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build")}))}catch(Xe){}},onCommitFiberUnmount:function(ke,Xe){var ht=De.get(ke);ht!=null&&ht.handleCommitFiberUnmount(Xe)},onCommitFiberRoot:function(ke,Xe,ht){var ie=Z.getFiberRoots(ke),qe=Xe.current,tt=ie.has(Xe),Tt=qe.memoizedState==null||qe.memoizedState.element==null;tt||Tt?tt&&Tt&&ie.delete(Xe):ie.add(Xe);var kt=De.get(ke);kt!=null&&kt.handleCommitFiberRoot(Xe,ht)}};Object.defineProperty(B,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!1,enumerable:!1,get:function(){return Z}})})(window);var h0=window.__REACT_DEVTOOLS_GLOBAL_HOOK__,Fs=[{type:1,value:7,isEnabled:!0}];function Ni(B){if(h0!=null){var z=B||{},G=z.host,$=G===void 0?"localhost":G,De=z.nativeStyleEditorValidAttributes,me=z.useHttps,xe=me!==void 0&&me,Z=z.port,ke=Z===void 0?8097:Z,Xe=z.websocket,ht=z.resolveRNStyle,ie=ht===void 0?null:ht,qe=z.isAppActive,tt=xe?"wss":"ws",Tt=null;if((qe===void 0?function(){return!0}:qe)()){var kt=null,bt=[],on=tt+"://"+$+":"+ke,tn=Xe||new window.WebSocket(on);tn.onclose=function(){kt!==null&&kt.emit("shutdown"),Lt()},tn.onerror=function(){Lt()},tn.onmessage=function(gn){var lr;try{if(typeof gn.data!="string")throw Error();lr=JSON.parse(gn.data)}catch(Qn){return void console.error("[React DevTools] Failed to parse JSON: "+gn.data)}bt.forEach(function(Qn){try{Qn(lr)}catch(_r){throw console.log("[React DevTools] Error calling listener",lr),console.log("error:",_r),_r}})},tn.onopen=function(){(kt=new ao({listen:function(Cn){return bt.push(Cn),function(){var Ar=bt.indexOf(Cn);Ar>=0&&bt.splice(Ar,1)}},send:function(Cn,Ar,v0){tn.readyState===tn.OPEN?tn.send(JSON.stringify({event:Cn,payload:Ar})):(kt!==null&&kt.shutdown(),Lt())}})).addListener("inspectElement",function(Cn){var Ar=Cn.id,v0=Cn.rendererID,Rr=gn.rendererInterfaces[v0];if(Rr!=null){var nt=Rr.findNativeNodesForFiberID(Ar);nt!=null&&nt[0]!=null&&gn.emit("showNativeHighlight",nt[0])}}),kt.addListener("updateComponentFilters",function(Cn){Fs=Cn}),window.__REACT_DEVTOOLS_COMPONENT_FILTERS__==null&&kt.send("overrideComponentFilters",Fs);var gn=new Hn(kt);if(gn.addListener("shutdown",function(){h0.emit("shutdown")}),function(Cn,Ar,v0){if(Cn==null)return function(){};var Rr=[Cn.sub("renderer-attached",function(Ze){var Ft=Ze.id,nn=(Ze.renderer,Ze.rendererInterface);Ar.setRendererInterface(Ft,nn),nn.flushInitialOperations()}),Cn.sub("unsupported-renderer-version",function(Ze){Ar.onUnsupportedRenderer(Ze)}),Cn.sub("operations",Ar.onHookOperations),Cn.sub("traceUpdates",Ar.onTraceUpdates)],nt=function(Ze,Ft){var nn=Cn.rendererInterfaces.get(Ze);nn==null&&(typeof Ft.findFiberByHostInstance=="function"?nn=Ms(Cn,Ze,Ft,v0):Ft.ComponentTree&&(nn=ic(Cn,Ze,Ft,v0)),nn!=null&&Cn.rendererInterfaces.set(Ze,nn)),nn!=null?Cn.emit("renderer-attached",{id:Ze,renderer:Ft,rendererInterface:nn}):Cn.emit("unsupported-renderer-version",Ze)};Cn.renderers.forEach(function(Ze,Ft){nt(Ft,Ze)}),Rr.push(Cn.sub("renderer",function(Ze){var Ft=Ze.id,nn=Ze.renderer;nt(Ft,nn)})),Cn.emit("react-devtools",Ar),Cn.reactDevtoolsAgent=Ar;var _t=function(){Rr.forEach(function(Ze){return Ze()}),Cn.rendererInterfaces.forEach(function(Ze){Ze.cleanup()}),Cn.reactDevtoolsAgent=null};Ar.addListener("shutdown",_t),Rr.push(function(){Ar.removeListener("shutdown",_t)})}(h0,gn,window),ie!=null||h0.resolveRNStyle!=null)ea(kt,gn,ie||h0.resolveRNStyle,De||h0.nativeStyleEditorValidAttributes||null);else{var lr,Qn,_r=function(){kt!==null&&ea(kt,gn,lr,Qn)};h0.hasOwnProperty("resolveRNStyle")||Object.defineProperty(h0,"resolveRNStyle",{enumerable:!1,get:function(){return lr},set:function(Cn){lr=Cn,_r()}}),h0.hasOwnProperty("nativeStyleEditorValidAttributes")||Object.defineProperty(h0,"nativeStyleEditorValidAttributes",{enumerable:!1,get:function(){return Qn},set:function(Cn){Qn=Cn,_r()}})}}}else Lt()}function Lt(){Tt===null&&(Tt=setTimeout(function(){return Ni(B)},2e3))}}}])})});var mR=ce(vR=>{"use strict";Object.defineProperty(vR,"__esModule",{value:!0});pR();var $Q=hR();$Q.connectToDevTools()});var DR=ce(kg=>{"use strict";var yR=kg&&kg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(kg,"__esModule",{value:!0});var gR=h4(),eJ=yR(D9()),_R=yR(eh()),ss=Lw();process.env.DEV==="true"&&mR();var ER=i=>{i==null||i.unsetMeasureFunc(),i==null||i.freeRecursive()};kg.default=eJ.default({schedulePassiveEffects:gR.unstable_scheduleCallback,cancelPassiveEffects:gR.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:i=>{if(i.isStaticDirty){i.isStaticDirty=!1,typeof i.onImmediateRender=="function"&&i.onImmediateRender();return}typeof i.onRender=="function"&&i.onRender()},getChildHostContext:(i,o)=>{let f=i.isInsideText,p=o==="ink-text"||o==="ink-virtual-text";return f===p?i:{isInsideText:p}},shouldSetTextContent:()=>!1,createInstance:(i,o,f,p)=>{if(p.isInsideText&&i==="ink-box")throw new Error(" can\u2019t be nested inside component");let E=i==="ink-text"&&p.isInsideText?"ink-virtual-text":i,t=ss.createNode(E);for(let[k,L]of Object.entries(o))k!=="children"&&(k==="style"?ss.setStyle(t,L):k==="internal_transform"?t.internal_transform=L:k==="internal_static"?t.internal_static=!0:ss.setAttribute(t,k,L));return t},createTextInstance:(i,o,f)=>{if(!f.isInsideText)throw new Error(`Text string "${i}" must be rendered inside component`);return ss.createTextNode(i)},resetTextContent:()=>{},hideTextInstance:i=>{ss.setTextNodeValue(i,"")},unhideTextInstance:(i,o)=>{ss.setTextNodeValue(i,o)},getPublicInstance:i=>i,hideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(_R.default.DISPLAY_NONE)},unhideInstance:i=>{var o;(o=i.yogaNode)===null||o===void 0||o.setDisplay(_R.default.DISPLAY_FLEX)},appendInitialChild:ss.appendChildNode,appendChild:ss.appendChildNode,insertBefore:ss.insertBeforeNode,finalizeInitialChildren:(i,o,f,p)=>(i.internal_static&&(p.isStaticDirty=!0,p.staticNode=i),!1),supportsMutation:!0,appendChildToContainer:ss.appendChildNode,insertInContainerBefore:ss.insertBeforeNode,removeChildFromContainer:(i,o)=>{ss.removeChildNode(i,o),ER(o.yogaNode)},prepareUpdate:(i,o,f,p,E)=>{i.internal_static&&(E.isStaticDirty=!0);let t={},k=Object.keys(p);for(let L of k)if(p[L]!==f[L]){if(L==="style"&&typeof p.style=="object"&&typeof f.style=="object"){let C=p.style,U=f.style,q=Object.keys(C);for(let W of q){if(W==="borderStyle"||W==="borderColor"){if(typeof t.style!="object"){let ne={};t.style=ne}t.style.borderStyle=C.borderStyle,t.style.borderColor=C.borderColor}if(C[W]!==U[W]){if(typeof t.style!="object"){let ne={};t.style=ne}t.style[W]=C[W]}}continue}t[L]=p[L]}return t},commitUpdate:(i,o)=>{for(let[f,p]of Object.entries(o))f!=="children"&&(f==="style"?ss.setStyle(i,p):f==="internal_transform"?i.internal_transform=p:f==="internal_static"?i.internal_static=!0:ss.setAttribute(i,f,p))},commitTextUpdate:(i,o,f)=>{ss.setTextNodeValue(i,f)},removeChild:(i,o)=>{ss.removeChildNode(i,o),ER(o.yogaNode)}})});var SR=ce((Are,wR)=>{"use strict";wR.exports=(i,o=1,f)=>{if(f=E0({indent:" ",includeEmptyLines:!1},f),typeof i!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof i}\``);if(typeof o!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof o}\``);if(typeof f.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof f.indent}\``);if(o===0)return i;let p=f.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return i.replace(p,f.indent.repeat(o))}});var TR=ce(Mg=>{"use strict";var tJ=Mg&&Mg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Mg,"__esModule",{value:!0});var k4=tJ(eh());Mg.default=i=>i.getComputedWidth()-i.getComputedPadding(k4.default.EDGE_LEFT)-i.getComputedPadding(k4.default.EDGE_RIGHT)-i.getComputedBorder(k4.default.EDGE_LEFT)-i.getComputedBorder(k4.default.EDGE_RIGHT)});var xR=ce((Ore,CR)=>{CR.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var RR=ce((kre,Zw)=>{"use strict";var AR=xR();Zw.exports=AR;Zw.exports.default=AR});var kR=ce((Mre,OR)=>{"use strict";OR.exports=(i,o=process.argv)=>{let f=i.startsWith("-")?"":i.length===1?"-":"--",p=o.indexOf(f+i),E=o.indexOf("--");return p!==-1&&(E===-1||p{"use strict";var nJ=require("os"),NR=require("tty"),of=kR(),{env:Wo}=process,md;of("no-color")||of("no-colors")||of("color=false")||of("color=never")?md=0:(of("color")||of("colors")||of("color=true")||of("color=always"))&&(md=1);"FORCE_COLOR"in Wo&&(Wo.FORCE_COLOR==="true"?md=1:Wo.FORCE_COLOR==="false"?md=0:md=Wo.FORCE_COLOR.length===0?1:Math.min(parseInt(Wo.FORCE_COLOR,10),3));function $w(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function e3(i,o){if(md===0)return 0;if(of("color=16m")||of("color=full")||of("color=truecolor"))return 3;if(of("color=256"))return 2;if(i&&!o&&md===void 0)return 0;let f=md||0;if(Wo.TERM==="dumb")return f;if(process.platform==="win32"){let p=nJ.release().split(".");return Number(p[0])>=10&&Number(p[2])>=10586?Number(p[2])>=14931?3:2:1}if("CI"in Wo)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(p=>p in Wo)||Wo.CI_NAME==="codeship"?1:f;if("TEAMCITY_VERSION"in Wo)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Wo.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Wo)return 1;if(Wo.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Wo){let p=parseInt((Wo.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Wo.TERM_PROGRAM){case"iTerm.app":return p>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Wo.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Wo.TERM)||"COLORTERM"in Wo?1:f}function rJ(i){let o=e3(i,i&&i.isTTY);return $w(o)}MR.exports={supportsColor:rJ,stdout:$w(e3(!0,NR.isatty(1))),stderr:$w(e3(!0,NR.isatty(2)))}});var bR=ce((Lre,FR)=>{"use strict";var iJ=(i,o,f)=>{let p=i.indexOf(o);if(p===-1)return i;let E=o.length,t=0,k="";do k+=i.substr(t,p-t)+o+f,t=p+E,p=i.indexOf(o,t);while(p!==-1);return k+=i.substr(t),k},uJ=(i,o,f,p)=>{let E=0,t="";do{let k=i[p-1]==="\r";t+=i.substr(E,(k?p-1:p)-E)+o+(k?`\r +`:` +`)+f,E=p+1,p=i.indexOf(` +`,E)}while(p!==-1);return t+=i.substr(E),t};FR.exports={stringReplaceAll:iJ,stringEncaseCRLFWithFirstIndex:uJ}});var jR=ce((Fre,PR)=>{"use strict";var oJ=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,IR=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,lJ=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,sJ=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,aJ=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function BR(i){let o=i[0]==="u",f=i[1]==="{";return o&&!f&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):o&&f?String.fromCodePoint(parseInt(i.slice(2,-1),16)):aJ.get(i)||i}function fJ(i,o){let f=[],p=o.trim().split(/\s*,\s*/g),E;for(let t of p){let k=Number(t);if(!Number.isNaN(k))f.push(k);else if(E=t.match(lJ))f.push(E[2].replace(sJ,(L,N,C)=>N?BR(N):C));else throw new Error(`Invalid Chalk template style argument: ${t} (in style '${i}')`)}return f}function cJ(i){IR.lastIndex=0;let o=[],f;for(;(f=IR.exec(i))!==null;){let p=f[1];if(f[2]){let E=fJ(p,f[2]);o.push([p].concat(E))}else o.push([p])}return o}function UR(i,o){let f={};for(let E of o)for(let t of E.styles)f[t[0]]=E.inverse?null:t.slice(1);let p=i;for(let[E,t]of Object.entries(f))if(!!Array.isArray(t)){if(!(E in p))throw new Error(`Unknown Chalk style: ${E}`);p=t.length>0?p[E](...t):p[E]}return p}PR.exports=(i,o)=>{let f=[],p=[],E=[];if(o.replace(oJ,(t,k,L,N,C,U)=>{if(k)E.push(BR(k));else if(N){let q=E.join("");E=[],p.push(f.length===0?q:UR(i,f)(q)),f.push({inverse:L,styles:cJ(N)})}else if(C){if(f.length===0)throw new Error("Found extraneous } in Chalk template literal");p.push(UR(i,f)(E.join(""))),E=[],f.pop()}else E.push(U)}),p.push(E.join("")),f.length>0){let t=`Chalk template literal is missing ${f.length} closing bracket${f.length===1?"":"s"} (\`}\`)`;throw new Error(t)}return p.join("")}});var u3=ce((bre,zR)=>{"use strict";var Ng=_4(),{stdout:t3,stderr:n3}=LR(),{stringReplaceAll:dJ,stringEncaseCRLFWithFirstIndex:pJ}=bR(),{isArray:M4}=Array,qR=["ansi","ansi","ansi256","ansi16m"],cm=Object.create(null),hJ=(i,o={})=>{if(o.level&&!(Number.isInteger(o.level)&&o.level>=0&&o.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let f=t3?t3.level:0;i.level=o.level===void 0?f:o.level},HR=class{constructor(o){return WR(o)}},WR=i=>{let o={};return hJ(o,i),o.template=(...f)=>VR(o.template,...f),Object.setPrototypeOf(o,N4.prototype),Object.setPrototypeOf(o.template,o),o.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},o.template.Instance=HR,o.template};function N4(i){return WR(i)}for(let[i,o]of Object.entries(Ng))cm[i]={get(){let f=L4(this,r3(o.open,o.close,this._styler),this._isEmpty);return Object.defineProperty(this,i,{value:f}),f}};cm.visible={get(){let i=L4(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:i}),i}};var GR=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let i of GR)cm[i]={get(){let{level:o}=this;return function(...f){let p=r3(Ng.color[qR[o]][i](...f),Ng.color.close,this._styler);return L4(this,p,this._isEmpty)}}};for(let i of GR){let o="bg"+i[0].toUpperCase()+i.slice(1);cm[o]={get(){let{level:f}=this;return function(...p){let E=r3(Ng.bgColor[qR[f]][i](...p),Ng.bgColor.close,this._styler);return L4(this,E,this._isEmpty)}}}}var vJ=Object.defineProperties(()=>{},Gf(E0({},cm),{level:{enumerable:!0,get(){return this._generator.level},set(i){this._generator.level=i}}})),r3=(i,o,f)=>{let p,E;return f===void 0?(p=i,E=o):(p=f.openAll+i,E=o+f.closeAll),{open:i,close:o,openAll:p,closeAll:E,parent:f}},L4=(i,o,f)=>{let p=(...E)=>M4(E[0])&&M4(E[0].raw)?YR(p,VR(p,...E)):YR(p,E.length===1?""+E[0]:E.join(" "));return Object.setPrototypeOf(p,vJ),p._generator=i,p._styler=o,p._isEmpty=f,p},YR=(i,o)=>{if(i.level<=0||!o)return i._isEmpty?"":o;let f=i._styler;if(f===void 0)return o;let{openAll:p,closeAll:E}=f;if(o.indexOf("")!==-1)for(;f!==void 0;)o=dJ(o,f.close,f.open),f=f.parent;let t=o.indexOf(` +`);return t!==-1&&(o=pJ(o,E,p,t)),p+o+E},i3,VR=(i,...o)=>{let[f]=o;if(!M4(f)||!M4(f.raw))return o.join(" ");let p=o.slice(1),E=[f.raw[0]];for(let t=1;t{"use strict";var mJ=Lg&&Lg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Lg,"__esModule",{value:!0});var Fg=mJ(u3()),yJ=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,gJ=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,b4=(i,o)=>o==="foreground"?i:"bg"+i[0].toUpperCase()+i.slice(1);Lg.default=(i,o,f)=>{if(!o)return i;if(o in Fg.default){let E=b4(o,f);return Fg.default[E](i)}if(o.startsWith("#")){let E=b4("hex",f);return Fg.default[E](o)(i)}if(o.startsWith("ansi")){let E=gJ.exec(o);if(!E)return i;let t=b4(E[1],f),k=Number(E[2]);return Fg.default[t](k)(i)}if(o.startsWith("rgb")||o.startsWith("hsl")||o.startsWith("hsv")||o.startsWith("hwb")){let E=yJ.exec(o);if(!E)return i;let t=b4(E[1],f),k=Number(E[2]),L=Number(E[3]),N=Number(E[4]);return Fg.default[t](k,L,N)(i)}return i}});var XR=ce(bg=>{"use strict";var KR=bg&&bg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(bg,"__esModule",{value:!0});var _J=KR(RR()),l3=KR(o3());bg.default=(i,o,f,p)=>{if(typeof f.style.borderStyle=="string"){let E=f.yogaNode.getComputedWidth(),t=f.yogaNode.getComputedHeight(),k=f.style.borderColor,L=_J.default[f.style.borderStyle],N=l3.default(L.topLeft+L.horizontal.repeat(E-2)+L.topRight,k,"foreground"),C=(l3.default(L.vertical,k,"foreground")+` +`).repeat(t-2),U=l3.default(L.bottomLeft+L.horizontal.repeat(E-2)+L.bottomRight,k,"foreground");p.write(i,o,N,{transformers:[]}),p.write(i,o+1,C,{transformers:[]}),p.write(i+E-1,o+1,C,{transformers:[]}),p.write(i,o+t-1,U,{transformers:[]})}}});var JR=ce(Pg=>{"use strict";var ih=Pg&&Pg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Pg,"__esModule",{value:!0});var EJ=ih(eh()),DJ=ih(Dw()),wJ=ih(SR()),SJ=ih(kw()),TJ=ih(TR()),CJ=ih(Nw()),xJ=ih(XR()),AJ=(i,o)=>{var f;let p=(f=i.childNodes[0])===null||f===void 0?void 0:f.yogaNode;if(p){let E=p.getComputedLeft(),t=p.getComputedTop();o=` +`.repeat(t)+wJ.default(o,E)}return o},QR=(i,o,f)=>{var p;let{offsetX:E=0,offsetY:t=0,transformers:k=[],skipStaticElements:L}=f;if(L&&i.internal_static)return;let{yogaNode:N}=i;if(N){if(N.getDisplay()===EJ.default.DISPLAY_NONE)return;let C=E+N.getComputedLeft(),U=t+N.getComputedTop(),q=k;if(typeof i.internal_transform=="function"&&(q=[i.internal_transform,...k]),i.nodeName==="ink-text"){let W=CJ.default(i);if(W.length>0){let ne=DJ.default(W),m=TJ.default(N);if(ne>m){let we=(p=i.style.textWrap)!==null&&p!==void 0?p:"wrap";W=SJ.default(W,m,we)}W=AJ(i,W),o.write(C,U,W,{transformers:q})}return}if(i.nodeName==="ink-box"&&xJ.default(C,U,i,o),i.nodeName==="ink-root"||i.nodeName==="ink-box")for(let W of i.childNodes)QR(W,o,{offsetX:C,offsetY:U,transformers:q,skipStaticElements:L})}};Pg.default=QR});var $R=ce((Ure,ZR)=>{"use strict";ZR.exports=i=>{i=Object.assign({onlyFirst:!1},i);let o=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(o,i.onlyFirst?void 0:"g")}});var t7=ce((jre,s3)=>{"use strict";var RJ=$R(),e7=i=>typeof i=="string"?i.replace(RJ(),""):i;s3.exports=e7;s3.exports.default=e7});var i7=ce((zre,n7)=>{"use strict";var r7="[\uD800-\uDBFF][\uDC00-\uDFFF]";n7.exports=i=>i&&i.exact?new RegExp(`^${r7}$`):new RegExp(r7,"g")});var o7=ce((qre,a3)=>{"use strict";var OJ=t7(),kJ=i7(),u7=i=>OJ(i).replace(kJ()," ").length;a3.exports=u7;a3.exports.default=u7});var f7=ce(Ig=>{"use strict";var l7=Ig&&Ig.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ig,"__esModule",{value:!0});var s7=l7(Rw()),MJ=l7(o7()),a7=class{constructor(o){this.writes=[];let{width:f,height:p}=o;this.width=f,this.height=p}write(o,f,p,E){let{transformers:t}=E;!p||this.writes.push({x:o,y:f,text:p,transformers:t})}get(){let o=[];for(let p=0;pp.trimRight()).join(` +`),height:o.length}}};Ig.default=a7});var p7=ce(Bg=>{"use strict";var f3=Bg&&Bg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Bg,"__esModule",{value:!0});var NJ=f3(eh()),c7=f3(JR()),d7=f3(f7());Bg.default=(i,o)=>{var f;if(i.yogaNode.setWidth(o),i.yogaNode){i.yogaNode.calculateLayout(void 0,void 0,NJ.default.DIRECTION_LTR);let p=new d7.default({width:i.yogaNode.getComputedWidth(),height:i.yogaNode.getComputedHeight()});c7.default(i,p,{skipStaticElements:!0});let E;((f=i.staticNode)===null||f===void 0?void 0:f.yogaNode)&&(E=new d7.default({width:i.staticNode.yogaNode.getComputedWidth(),height:i.staticNode.yogaNode.getComputedHeight()}),c7.default(i.staticNode,E,{skipStaticElements:!1}));let{output:t,height:k}=p.get();return{output:t,outputHeight:k,staticOutput:E?`${E.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var y7=ce((Vre,h7)=>{"use strict";var v7=require("stream"),m7=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],c3={},LJ=i=>{let o=new v7.PassThrough,f=new v7.PassThrough;o.write=E=>i("stdout",E),f.write=E=>i("stderr",E);let p=new console.Console(o,f);for(let E of m7)c3[E]=console[E],console[E]=p[E];return()=>{for(let E of m7)console[E]=c3[E];c3={}}};h7.exports=LJ});var p3=ce(d3=>{"use strict";Object.defineProperty(d3,"__esModule",{value:!0});d3.default=new WeakMap});var v3=ce(h3=>{"use strict";Object.defineProperty(h3,"__esModule",{value:!0});var FJ=su(),g7=FJ.createContext({exit:()=>{}});g7.displayName="InternalAppContext";h3.default=g7});var y3=ce(m3=>{"use strict";Object.defineProperty(m3,"__esModule",{value:!0});var bJ=su(),_7=bJ.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});_7.displayName="InternalStdinContext";m3.default=_7});var _3=ce(g3=>{"use strict";Object.defineProperty(g3,"__esModule",{value:!0});var PJ=su(),E7=PJ.createContext({stdout:void 0,write:()=>{}});E7.displayName="InternalStdoutContext";g3.default=E7});var D3=ce(E3=>{"use strict";Object.defineProperty(E3,"__esModule",{value:!0});var IJ=su(),D7=IJ.createContext({stderr:void 0,write:()=>{}});D7.displayName="InternalStderrContext";E3.default=D7});var P4=ce(w3=>{"use strict";Object.defineProperty(w3,"__esModule",{value:!0});var BJ=su(),w7=BJ.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});w7.displayName="InternalFocusContext";w3.default=w7});var T7=ce((Zre,S7)=>{"use strict";var UJ=/[|\\{}()[\]^$+*?.-]/g;S7.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(UJ,"\\$&")}});var R7=ce(($re,C7)=>{"use strict";var jJ=T7(),x7=[].concat(require("module").builtinModules,"bootstrap_node","node").map(i=>new RegExp(`(?:\\(${i}\\.js:\\d+:\\d+\\)$|^\\s*at ${i}\\.js:\\d+:\\d+$)`));x7.push(/\(internal\/[^:]+:\d+:\d+\)$/,/\s*at internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var I4=class{constructor(o){o=E0({ignoredPackages:[]},o),"internals"in o||(o.internals=I4.nodeInternals()),"cwd"in o||(o.cwd=process.cwd()),this._cwd=o.cwd.replace(/\\/g,"/"),this._internals=[].concat(o.internals,zJ(o.ignoredPackages)),this._wrapCallSite=o.wrapCallSite||!1}static nodeInternals(){return[...x7]}clean(o,f=0){f=" ".repeat(f),Array.isArray(o)||(o=o.split(` +`)),!/^\s*at /.test(o[0])&&/^\s*at /.test(o[1])&&(o=o.slice(1));let p=!1,E=null,t=[];return o.forEach(k=>{if(k=k.replace(/\\/g,"/"),this._internals.some(N=>N.test(k)))return;let L=/^\s*at /.test(k);p?k=k.trimEnd().replace(/^(\s+)at /,"$1"):(k=k.trim(),L&&(k=k.slice(3))),k=k.replace(`${this._cwd}/`,""),k&&(L?(E&&(t.push(E),E=null),t.push(k)):(p=!0,E=k))}),t.map(k=>`${f}${k} +`).join("")}captureString(o,f=this.captureString){typeof o=="function"&&(f=o,o=Infinity);let{stackTraceLimit:p}=Error;o&&(Error.stackTraceLimit=o);let E={};Error.captureStackTrace(E,f);let{stack:t}=E;return Error.stackTraceLimit=p,this.clean(t)}capture(o,f=this.capture){typeof o=="function"&&(f=o,o=Infinity);let{prepareStackTrace:p,stackTraceLimit:E}=Error;Error.prepareStackTrace=(L,N)=>this._wrapCallSite?N.map(this._wrapCallSite):N,o&&(Error.stackTraceLimit=o);let t={};Error.captureStackTrace(t,f);let{stack:k}=t;return Object.assign(Error,{prepareStackTrace:p,stackTraceLimit:E}),k}at(o=this.at){let[f]=this.capture(1,o);if(!f)return{};let p={line:f.getLineNumber(),column:f.getColumnNumber()};A7(p,f.getFileName(),this._cwd),f.isConstructor()&&(p.constructor=!0),f.isEval()&&(p.evalOrigin=f.getEvalOrigin()),f.isNative()&&(p.native=!0);let E;try{E=f.getTypeName()}catch(L){}E&&E!=="Object"&&E!=="[object Object]"&&(p.type=E);let t=f.getFunctionName();t&&(p.function=t);let k=f.getMethodName();return k&&t!==k&&(p.method=k),p}parseLine(o){let f=o&&o.match(qJ);if(!f)return null;let p=f[1]==="new",E=f[2],t=f[3],k=f[4],L=Number(f[5]),N=Number(f[6]),C=f[7],U=f[8],q=f[9],W=f[10]==="native",ne=f[11]===")",m,we={};if(U&&(we.line=Number(U)),q&&(we.column=Number(q)),ne&&C){let Se=0;for(let he=C.length-1;he>0;he--)if(C.charAt(he)===")")Se++;else if(C.charAt(he)==="("&&C.charAt(he-1)===" "&&(Se--,Se===-1&&C.charAt(he-1)===" ")){let ge=C.slice(0,he-1);C=C.slice(he+1),E+=` (${ge}`;break}}if(E){let Se=E.match(HJ);Se&&(E=Se[1],m=Se[2])}return A7(we,C,this._cwd),p&&(we.constructor=!0),t&&(we.evalOrigin=t,we.evalLine=L,we.evalColumn=N,we.evalFile=k&&k.replace(/\\/g,"/")),W&&(we.native=!0),E&&(we.function=E),m&&E!==m&&(we.method=m),we}};function A7(i,o,f){o&&(o=o.replace(/\\/g,"/"),o.startsWith(`${f}/`)&&(o=o.slice(f.length+1)),i.file=o)}function zJ(i){if(i.length===0)return[];let o=i.map(f=>jJ(f));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${o.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var qJ=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),HJ=/^(.*?) \[as (.*?)\]$/;C7.exports=I4});var k7=ce((eie,O7)=>{"use strict";O7.exports=(i,o)=>i.replace(/^\t+/gm,f=>" ".repeat(f.length*(o||2)))});var N7=ce((tie,M7)=>{"use strict";var WJ=k7(),VJ=(i,o)=>{let f=[],p=i-o,E=i+o;for(let t=p;t<=E;t++)f.push(t);return f};M7.exports=(i,o,f)=>{if(typeof i!="string")throw new TypeError("Source code is missing.");if(!o||o<1)throw new TypeError("Line number must start from `1`.");if(i=WJ(i).split(/\r?\n/),!(o>i.length))return f=E0({around:3},f),VJ(o,f.around).filter(p=>i[p-1]!==void 0).map(p=>({line:p,value:i[p-1]}))}});var B4=ce(Zf=>{"use strict";var GJ=Zf&&Zf.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),YJ=Zf&&Zf.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),KJ=Zf&&Zf.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&GJ(o,i,f);return YJ(o,i),o},XJ=Zf&&Zf.__rest||function(i,o){var f={};for(var p in i)Object.prototype.hasOwnProperty.call(i,p)&&o.indexOf(p)<0&&(f[p]=i[p]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var E=0,p=Object.getOwnPropertySymbols(i);E{var{children:f}=i,p=XJ(i,["children"]);let E=Object.assign(Object.assign({},p),{marginLeft:p.marginLeft||p.marginX||p.margin||0,marginRight:p.marginRight||p.marginX||p.margin||0,marginTop:p.marginTop||p.marginY||p.margin||0,marginBottom:p.marginBottom||p.marginY||p.margin||0,paddingLeft:p.paddingLeft||p.paddingX||p.padding||0,paddingRight:p.paddingRight||p.paddingX||p.padding||0,paddingTop:p.paddingTop||p.paddingY||p.padding||0,paddingBottom:p.paddingBottom||p.paddingY||p.padding||0});return L7.default.createElement("ink-box",{ref:o,style:E},f)});S3.displayName="Box";S3.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};Zf.default=S3});var x3=ce(Ug=>{"use strict";var T3=Ug&&Ug.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ug,"__esModule",{value:!0});var QJ=T3(su()),dm=T3(u3()),F7=T3(o3()),C3=({color:i,backgroundColor:o,dimColor:f,bold:p,italic:E,underline:t,strikethrough:k,inverse:L,wrap:N,children:C})=>{if(C==null)return null;let U=q=>(f&&(q=dm.default.dim(q)),i&&(q=F7.default(q,i,"foreground")),o&&(q=F7.default(q,o,"background")),p&&(q=dm.default.bold(q)),E&&(q=dm.default.italic(q)),t&&(q=dm.default.underline(q)),k&&(q=dm.default.strikethrough(q)),L&&(q=dm.default.inverse(q)),q);return QJ.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:N},internal_transform:U},C)};C3.displayName="Text";C3.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};Ug.default=C3});var B7=ce($f=>{"use strict";var JJ=$f&&$f.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),ZJ=$f&&$f.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),$J=$f&&$f.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&JJ(o,i,f);return ZJ(o,i),o},jg=$f&&$f.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty($f,"__esModule",{value:!0});var b7=$J(require("fs")),Vo=jg(su()),P7=jg(R7()),eZ=jg(N7()),Q1=jg(B4()),Ic=jg(x3()),I7=new P7.default({cwd:process.cwd(),internals:P7.default.nodeInternals()}),tZ=({error:i})=>{let o=i.stack?i.stack.split(` +`).slice(1):void 0,f=o?I7.parseLine(o[0]):void 0,p,E=0;if((f==null?void 0:f.file)&&(f==null?void 0:f.line)&&b7.existsSync(f.file)){let t=b7.readFileSync(f.file,"utf8");if(p=eZ.default(t,f.line),p)for(let{line:k}of p)E=Math.max(E,String(k).length)}return Vo.default.createElement(Q1.default,{flexDirection:"column",padding:1},Vo.default.createElement(Q1.default,null,Vo.default.createElement(Ic.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),Vo.default.createElement(Ic.default,null," ",i.message)),f&&Vo.default.createElement(Q1.default,{marginTop:1},Vo.default.createElement(Ic.default,{dimColor:!0},f.file,":",f.line,":",f.column)),f&&p&&Vo.default.createElement(Q1.default,{marginTop:1,flexDirection:"column"},p.map(({line:t,value:k})=>Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Q1.default,{width:E+1},Vo.default.createElement(Ic.default,{dimColor:t!==f.line,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0},String(t).padStart(E," "),":")),Vo.default.createElement(Ic.default,{key:t,backgroundColor:t===f.line?"red":void 0,color:t===f.line?"white":void 0}," "+k)))),i.stack&&Vo.default.createElement(Q1.default,{marginTop:1,flexDirection:"column"},i.stack.split(` +`).slice(1).map(t=>{let k=I7.parseLine(t);return k?Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Ic.default,{dimColor:!0},"- "),Vo.default.createElement(Ic.default,{dimColor:!0,bold:!0},k.function),Vo.default.createElement(Ic.default,{dimColor:!0,color:"gray"}," ","(",k.file,":",k.line,":",k.column,")")):Vo.default.createElement(Q1.default,{key:t},Vo.default.createElement(Ic.default,{dimColor:!0},"- "),Vo.default.createElement(Ic.default,{dimColor:!0,bold:!0},t))})))};$f.default=tZ});var j7=ce(ec=>{"use strict";var nZ=ec&&ec.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),rZ=ec&&ec.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),iZ=ec&&ec.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&nZ(o,i,f);return rZ(o,i),o},uh=ec&&ec.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(ec,"__esModule",{value:!0});var oh=iZ(su()),U7=uh(ZD()),uZ=uh(v3()),oZ=uh(y3()),lZ=uh(_3()),sZ=uh(D3()),aZ=uh(P4()),fZ=uh(B7()),cZ=" ",dZ="",pZ="",A3=class extends oh.PureComponent{constructor(){super(...arguments);this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=o=>{let{stdin:f}=this.props;if(!this.isRawModeSupported())throw f===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(f.setEncoding("utf8"),o){this.rawModeEnabledCount===0&&(f.addListener("data",this.handleInput),f.resume(),f.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount==0&&(f.setRawMode(!1),f.removeListener("data",this.handleInput),f.pause())},this.handleInput=o=>{o===""&&this.props.exitOnCtrlC&&this.handleExit(),o===pZ&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(o===cZ&&this.focusNext(),o===dZ&&this.focusPrevious())},this.handleExit=o=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(o)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(o=>{let f=o.focusables[0].id;return{activeFocusId:this.findNextFocusable(o)||f}})},this.focusPrevious=()=>{this.setState(o=>{let f=o.focusables[o.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(o)||f}})},this.addFocusable=(o,{autoFocus:f})=>{this.setState(p=>{let E=p.activeFocusId;return!E&&f&&(E=o),{activeFocusId:E,focusables:[...p.focusables,{id:o,isActive:!0}]}})},this.removeFocusable=o=>{this.setState(f=>({activeFocusId:f.activeFocusId===o?void 0:f.activeFocusId,focusables:f.focusables.filter(p=>p.id!==o)}))},this.activateFocusable=o=>{this.setState(f=>({focusables:f.focusables.map(p=>p.id!==o?p:{id:o,isActive:!0})}))},this.deactivateFocusable=o=>{this.setState(f=>({activeFocusId:f.activeFocusId===o?void 0:f.activeFocusId,focusables:f.focusables.map(p=>p.id!==o?p:{id:o,isActive:!1})}))},this.findNextFocusable=o=>{let f=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=f+1;p{let f=o.focusables.findIndex(p=>p.id===o.activeFocusId);for(let p=f-1;p>=0;p--)if(o.focusables[p].isActive)return o.focusables[p].id}}static getDerivedStateFromError(o){return{error:o}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return oh.default.createElement(uZ.default.Provider,{value:{exit:this.handleExit}},oh.default.createElement(oZ.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},oh.default.createElement(lZ.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},oh.default.createElement(sZ.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},oh.default.createElement(aZ.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?oh.default.createElement(fZ.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){U7.default.hide(this.props.stdout)}componentWillUnmount(){U7.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(o){this.handleExit(o)}};ec.default=A3;A3.displayName="InternalApp"});var W7=ce(tc=>{"use strict";var hZ=tc&&tc.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),vZ=tc&&tc.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),mZ=tc&&tc.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&hZ(o,i,f);return vZ(o,i),o},nc=tc&&tc.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(tc,"__esModule",{value:!0});var yZ=nc(su()),z7=B5(),gZ=nc(Z5()),_Z=nc(GD()),EZ=nc(u9()),DZ=nc(l9()),U4=nc(DR()),wZ=nc(p7()),SZ=nc(JD()),TZ=nc(y7()),CZ=mZ(Lw()),xZ=nc(p3()),AZ=nc(j7()),pm=process.env.CI==="false"?!1:EZ.default,q7=()=>{},H7=class{constructor(o){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:f,outputHeight:p,staticOutput:E}=wZ.default(this.rootNode,this.options.stdout.columns||80),t=E&&E!==` +`;if(this.options.debug){t&&(this.fullStaticOutput+=E),this.options.stdout.write(this.fullStaticOutput+f);return}if(pm){t&&this.options.stdout.write(E),this.lastOutput=f;return}if(t&&(this.fullStaticOutput+=E),p>=this.options.stdout.rows){this.options.stdout.write(_Z.default.clearTerminal+this.fullStaticOutput+f),this.lastOutput=f;return}t&&(this.log.clear(),this.options.stdout.write(E),this.log(f)),!t&&f!==this.lastOutput&&this.throttledLog(f),this.lastOutput=f},DZ.default(this),this.options=o,this.rootNode=CZ.createNode("ink-root"),this.rootNode.onRender=o.debug?this.onRender:z7.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=gZ.default.create(o.stdout),this.throttledLog=o.debug?this.log:z7.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=U4.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=SZ.default(this.unmount,{alwaysLast:!1}),process.env.DEV==="true"&&U4.default.injectIntoDevTools({bundleType:0,version:"16.13.1",rendererPackageName:"ink"}),o.patchConsole&&this.patchConsole(),pm||(o.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{o.stdout.off("resize",this.onRender)})}render(o){let f=yZ.default.createElement(AZ.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},o);U4.default.updateContainer(f,this.container,null,q7)}writeToStdout(o){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(o+this.fullStaticOutput+this.lastOutput);return}if(pm){this.options.stdout.write(o);return}this.log.clear(),this.options.stdout.write(o),this.log(this.lastOutput)}}writeToStderr(o){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(o),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(pm){this.options.stderr.write(o);return}this.log.clear(),this.options.stderr.write(o),this.log(this.lastOutput)}}unmount(o){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),pm?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,U4.default.updateContainer(null,this.container,null,q7),xZ.default.delete(this.options.stdout),o instanceof Error?this.rejectExitPromise(o):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((o,f)=>{this.resolveExitPromise=o,this.rejectExitPromise=f})),this.exitPromise}clear(){!pm&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=TZ.default((o,f)=>{o==="stdout"&&this.writeToStdout(f),o==="stderr"&&(f.startsWith("The above error occurred")||this.writeToStderr(f))}))}};tc.default=H7});var G7=ce(zg=>{"use strict";var V7=zg&&zg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(zg,"__esModule",{value:!0});var RZ=V7(W7()),j4=V7(p3()),OZ=require("stream"),NZ=(i,o)=>{let f=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},kZ(o)),p=MZ(f.stdout,()=>new RZ.default(f));return p.render(i),{rerender:p.render,unmount:()=>p.unmount(),waitUntilExit:p.waitUntilExit,cleanup:()=>j4.default.delete(f.stdout),clear:p.clear}};zg.default=NZ;var kZ=(i={})=>i instanceof OZ.Stream?{stdout:i,stdin:process.stdin}:i,MZ=(i,o)=>{let f;return j4.default.has(i)?f=j4.default.get(i):(f=o(),j4.default.set(i,f)),f}});var K7=ce(J1=>{"use strict";var LZ=J1&&J1.__createBinding||(Object.create?function(i,o,f,p){p===void 0&&(p=f),Object.defineProperty(i,p,{enumerable:!0,get:function(){return o[f]}})}:function(i,o,f,p){p===void 0&&(p=f),i[p]=o[f]}),FZ=J1&&J1.__setModuleDefault||(Object.create?function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}:function(i,o){i.default=o}),bZ=J1&&J1.__importStar||function(i){if(i&&i.__esModule)return i;var o={};if(i!=null)for(var f in i)f!=="default"&&Object.hasOwnProperty.call(i,f)&&LZ(o,i,f);return FZ(o,i),o};Object.defineProperty(J1,"__esModule",{value:!0});var qg=bZ(su()),Y7=i=>{let{items:o,children:f,style:p}=i,[E,t]=qg.useState(0),k=qg.useMemo(()=>o.slice(E),[o,E]);qg.useLayoutEffect(()=>{t(o.length)},[o.length]);let L=k.map((C,U)=>f(C,E+U)),N=qg.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},p),[p]);return qg.default.createElement("ink-box",{internal_static:!0,style:N},L)};Y7.displayName="Static";J1.default=Y7});var Q7=ce(Hg=>{"use strict";var PZ=Hg&&Hg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Hg,"__esModule",{value:!0});var IZ=PZ(su()),X7=({children:i,transform:o})=>i==null?null:IZ.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:o},i);X7.displayName="Transform";Hg.default=X7});var Z7=ce(Wg=>{"use strict";var BZ=Wg&&Wg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Wg,"__esModule",{value:!0});var UZ=BZ(su()),J7=({count:i=1})=>UZ.default.createElement("ink-text",null,` +`.repeat(i));J7.displayName="Newline";Wg.default=J7});var tO=ce(Vg=>{"use strict";var $7=Vg&&Vg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Vg,"__esModule",{value:!0});var jZ=$7(su()),zZ=$7(B4()),eO=()=>jZ.default.createElement(zZ.default,{flexGrow:1});eO.displayName="Spacer";Vg.default=eO});var z4=ce(Gg=>{"use strict";var qZ=Gg&&Gg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Gg,"__esModule",{value:!0});var HZ=su(),WZ=qZ(y3()),VZ=()=>HZ.useContext(WZ.default);Gg.default=VZ});var rO=ce(Yg=>{"use strict";var GZ=Yg&&Yg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Yg,"__esModule",{value:!0});var nO=su(),YZ=GZ(z4()),KZ=(i,o={})=>{let{stdin:f,setRawMode:p,internal_exitOnCtrlC:E}=YZ.default();nO.useEffect(()=>{if(o.isActive!==!1)return p(!0),()=>{p(!1)}},[o.isActive,p]),nO.useEffect(()=>{if(o.isActive===!1)return;let t=k=>{let L=String(k),N={upArrow:L==="",downArrow:L==="",leftArrow:L==="",rightArrow:L==="",pageDown:L==="[6~",pageUp:L==="[5~",return:L==="\r",escape:L==="",ctrl:!1,shift:!1,tab:L===" "||L==="",backspace:L==="\b",delete:L==="\x7F"||L==="[3~",meta:!1};L<=""&&!N.return&&(L=String.fromCharCode(L.charCodeAt(0)+"a".charCodeAt(0)-1),N.ctrl=!0),L.startsWith("")&&(L=L.slice(1),N.meta=!0);let C=L>="A"&&L<="Z",U=L>="\u0410"&&L<="\u042F";L.length===1&&(C||U)&&(N.shift=!0),N.tab&&L==="[Z"&&(N.shift=!0),(N.tab||N.backspace||N.delete)&&(L=""),(!(L==="c"&&N.ctrl)||!E)&&i(L,N)};return f==null||f.on("data",t),()=>{f==null||f.off("data",t)}},[o.isActive,f,E,i])};Yg.default=KZ});var iO=ce(Kg=>{"use strict";var XZ=Kg&&Kg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Kg,"__esModule",{value:!0});var QZ=su(),JZ=XZ(v3()),ZZ=()=>QZ.useContext(JZ.default);Kg.default=ZZ});var uO=ce(Xg=>{"use strict";var $Z=Xg&&Xg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Xg,"__esModule",{value:!0});var e$=su(),t$=$Z(_3()),n$=()=>e$.useContext(t$.default);Xg.default=n$});var oO=ce(Qg=>{"use strict";var r$=Qg&&Qg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Qg,"__esModule",{value:!0});var i$=su(),u$=r$(D3()),o$=()=>i$.useContext(u$.default);Qg.default=o$});var sO=ce(Jg=>{"use strict";var lO=Jg&&Jg.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Jg,"__esModule",{value:!0});var Zg=su(),l$=lO(P4()),s$=lO(z4()),a$=({isActive:i=!0,autoFocus:o=!1}={})=>{let{isRawModeSupported:f,setRawMode:p}=s$.default(),{activeId:E,add:t,remove:k,activate:L,deactivate:N}=Zg.useContext(l$.default),C=Zg.useMemo(()=>Math.random().toString().slice(2,7),[]);return Zg.useEffect(()=>(t(C,{autoFocus:o}),()=>{k(C)}),[C,o]),Zg.useEffect(()=>{i?L(C):N(C)},[i,C]),Zg.useEffect(()=>{if(!(!f||!i))return p(!0),()=>{p(!1)}},[i]),{isFocused:Boolean(C)&&E===C}};Jg.default=a$});var aO=ce($g=>{"use strict";var f$=$g&&$g.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty($g,"__esModule",{value:!0});var c$=su(),d$=f$(P4()),p$=()=>{let i=c$.useContext(d$.default);return{enableFocus:i.enableFocus,disableFocus:i.disableFocus,focusNext:i.focusNext,focusPrevious:i.focusPrevious}};$g.default=p$});var fO=ce(R3=>{"use strict";Object.defineProperty(R3,"__esModule",{value:!0});R3.default=i=>{var o,f,p,E;return{width:(f=(o=i.yogaNode)===null||o===void 0?void 0:o.getComputedWidth())!==null&&f!==void 0?f:0,height:(E=(p=i.yogaNode)===null||p===void 0?void 0:p.getComputedHeight())!==null&&E!==void 0?E:0}}});var lh=ce(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});var h$=G7();Object.defineProperty(ql,"render",{enumerable:!0,get:function(){return h$.default}});var v$=B4();Object.defineProperty(ql,"Box",{enumerable:!0,get:function(){return v$.default}});var m$=x3();Object.defineProperty(ql,"Text",{enumerable:!0,get:function(){return m$.default}});var y$=K7();Object.defineProperty(ql,"Static",{enumerable:!0,get:function(){return y$.default}});var g$=Q7();Object.defineProperty(ql,"Transform",{enumerable:!0,get:function(){return g$.default}});var _$=Z7();Object.defineProperty(ql,"Newline",{enumerable:!0,get:function(){return _$.default}});var E$=tO();Object.defineProperty(ql,"Spacer",{enumerable:!0,get:function(){return E$.default}});var D$=rO();Object.defineProperty(ql,"useInput",{enumerable:!0,get:function(){return D$.default}});var w$=iO();Object.defineProperty(ql,"useApp",{enumerable:!0,get:function(){return w$.default}});var S$=z4();Object.defineProperty(ql,"useStdin",{enumerable:!0,get:function(){return S$.default}});var T$=uO();Object.defineProperty(ql,"useStdout",{enumerable:!0,get:function(){return T$.default}});var C$=oO();Object.defineProperty(ql,"useStderr",{enumerable:!0,get:function(){return C$.default}});var x$=sO();Object.defineProperty(ql,"useFocus",{enumerable:!0,get:function(){return x$.default}});var A$=aO();Object.defineProperty(ql,"useFocusManager",{enumerable:!0,get:function(){return A$.default}});var R$=fO();Object.defineProperty(ql,"measureElement",{enumerable:!0,get:function(){return R$.default}})});var k$={};sS(k$,{default:()=>N$,versionUtils:()=>RD});var M3=Mi(require("@yarnpkg/core"));var X_=Mi(require("@yarnpkg/cli")),em=Mi(require("@yarnpkg/core")),Q_=Mi(require("@yarnpkg/core")),cd=Mi(require("clipanion"));var RD={};sS(RD,{Decision:()=>Nu,applyPrerelease:()=>v5,applyReleases:()=>ND,applyStrategy:()=>Y_,clearVersionFiles:()=>OD,fetchBase:()=>pK,fetchChangedFiles:()=>vK,fetchRoot:()=>hK,getUndecidedDependentWorkspaces:()=>Zy,getUndecidedWorkspaces:()=>K_,openVersionFile:()=>$v,requireMoreDecisions:()=>yK,resolveVersionFiles:()=>Jy,suggestStrategy:()=>MD,updateVersionFiles:()=>kD,validateReleaseDecision:()=>Zv});var Gi=Mi(require("@yarnpkg/core")),D0=Mi(require("@yarnpkg/fslib")),W1=Mi(require("@yarnpkg/parsers")),Zp=Mi(require("@yarnpkg/plugin-git")),Jv=Mi(require("clipanion")),h5=Mi(p5()),Fc=Mi(require("semver")),pK=Zp.gitUtils.fetchBase,hK=Zp.gitUtils.fetchRoot,vK=Zp.gitUtils.fetchChangedFiles,mK=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,Nu;(function(k){k.UNDECIDED="undecided",k.DECLINE="decline",k.MAJOR="major",k.MINOR="minor",k.PATCH="patch",k.PRERELEASE="prerelease"})(Nu||(Nu={}));function Zv(i){let o=Fc.default.valid(i);return o||Gi.miscUtils.validateEnum((0,h5.default)(Nu,"UNDECIDED"),i)}async function Jy(i,{prerelease:o=null}={}){var t;let f=new Map,p=i.configuration.get("deferredVersionFolder");if(!D0.xfs.existsSync(p))return new Map;let E=await D0.xfs.readdirPromise(p);for(let k of E){if(!k.endsWith(".yml"))continue;let L=D0.ppath.join(p,k),N=await D0.xfs.readFilePromise(L,"utf8"),C=(0,W1.parseSyml)(N);for(let[U,q]of Object.entries(C.releases||{})){if(q===Nu.DECLINE)continue;let W=Gi.structUtils.parseIdent(U),ne=i.tryWorkspaceByIdent(W);if(ne===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${D0.ppath.basename(L)} references ${U})`);if(ne.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${Gi.structUtils.prettyLocator(i.configuration,ne.anchoredLocator)})`);let m=(t=ne.manifest.raw.stableVersion)!=null?t:ne.manifest.version,we=f.get(ne),Se=Y_(m,Zv(q));if(Se===null)throw new Error(`Assertion failed: Expected ${m} to support being bumped via strategy ${q}`);let he=typeof we!="undefined"?Fc.default.gt(Se,we)?Se:we:Se;f.set(ne,he)}}return o&&(f=new Map([...f].map(([k,L])=>[k,v5(L,{current:k.manifest.version,prerelease:o})]))),f}async function OD(i){let o=i.configuration.get("deferredVersionFolder");!D0.xfs.existsSync(o)||await D0.xfs.removePromise(o)}async function kD(i){let o=i.configuration.get("deferredVersionFolder");if(!D0.xfs.existsSync(o))return;let f=await D0.xfs.readdirPromise(o);for(let p of f){if(!p.endsWith(".yml"))continue;let E=D0.ppath.join(o,p),t=await D0.xfs.readFilePromise(E,"utf8"),k=(0,W1.parseSyml)(t),L=k==null?void 0:k.releases;if(!!L){for(let N of Object.keys(L)){let C=Gi.structUtils.parseLocator(N);i.tryWorkspaceByLocator(C)===null&&delete k.releases[N]}await D0.xfs.changeFilePromise(E,(0,W1.stringifySyml)(new W1.stringifySyml.PreserveOrdering(k)))}}}async function $v(i,{allowEmpty:o=!1}={}){let f=i.configuration;if(f.projectCwd===null)throw new Jv.UsageError("This command can only be run from within a Yarn project");let p=await Zp.gitUtils.fetchRoot(f.projectCwd),E=p!==null?await Zp.gitUtils.fetchBase(p,{baseRefs:f.get("changesetBaseRefs")}):null,t=p!==null?await Zp.gitUtils.fetchChangedFiles(p,{base:E.hash,project:i}):[],k=f.get("deferredVersionFolder"),L=t.filter(ne=>D0.ppath.contains(k,ne)!==null);if(L.length>1)throw new Jv.UsageError(`Your current branch contains multiple versioning files; this isn't supported: +- ${L.map(ne=>D0.npath.fromPortablePath(ne)).join(` +- `)}`);let N=new Set(Gi.miscUtils.mapAndFilter(t,ne=>{let m=i.tryWorkspaceByFilePath(ne);return m===null?Gi.miscUtils.mapAndFilter.skip:m}));if(L.length===0&&N.size===0&&!o)return null;let C=L.length===1?L[0]:D0.ppath.join(k,`${Gi.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),U=D0.xfs.existsSync(C)?await D0.xfs.readFilePromise(C,"utf8"):"{}",q=(0,W1.parseSyml)(U),W=new Map;for(let ne of q.declined||[]){let m=Gi.structUtils.parseIdent(ne),we=i.getWorkspaceByIdent(m);W.set(we,Nu.DECLINE)}for(let[ne,m]of Object.entries(q.releases||{})){let we=Gi.structUtils.parseIdent(ne),Se=i.getWorkspaceByIdent(we);W.set(Se,Zv(m))}return{project:i,root:p,baseHash:E!==null?E.hash:null,baseTitle:E!==null?E.title:null,changedFiles:new Set(t),changedWorkspaces:N,releaseRoots:new Set([...N].filter(ne=>ne.manifest.version!==null)),releases:W,async saveAll(){let ne={},m=[],we=[];for(let Se of i.workspaces){if(Se.manifest.version===null)continue;let he=Gi.structUtils.stringifyIdent(Se.locator),ge=W.get(Se);ge===Nu.DECLINE?m.push(he):typeof ge!="undefined"?ne[he]=Zv(ge):N.has(Se)&&we.push(he)}await D0.xfs.mkdirPromise(D0.ppath.dirname(C),{recursive:!0}),await D0.xfs.changeFilePromise(C,(0,W1.stringifySyml)(new W1.stringifySyml.PreserveOrdering({releases:Object.keys(ne).length>0?ne:void 0,declined:m.length>0?m:void 0,undecided:we.length>0?we:void 0})))}}}function yK(i){return K_(i).size>0||Zy(i).length>0}function K_(i){let o=new Set;for(let f of i.changedWorkspaces)f.manifest.version!==null&&(i.releases.has(f)||o.add(f));return o}function Zy(i,{include:o=new Set}={}){let f=[],p=new Map(Gi.miscUtils.mapAndFilter([...i.releases],([t,k])=>k===Nu.DECLINE?Gi.miscUtils.mapAndFilter.skip:[t.anchoredLocator.locatorHash,t])),E=new Map(Gi.miscUtils.mapAndFilter([...i.releases],([t,k])=>k!==Nu.DECLINE?Gi.miscUtils.mapAndFilter.skip:[t.anchoredLocator.locatorHash,t]));for(let t of i.project.workspaces)if(!(!o.has(t)&&(E.has(t.anchoredLocator.locatorHash)||p.has(t.anchoredLocator.locatorHash)))&&t.manifest.version!==null)for(let k of Gi.Manifest.hardDependencies)for(let L of t.manifest.getForScope(k).values()){let N=i.project.tryWorkspaceByDescriptor(L);N!==null&&p.has(N.anchoredLocator.locatorHash)&&f.push([t,N])}return f}function MD(i,o){let f=Fc.default.clean(o);for(let p of Object.values(Nu))if(p!==Nu.UNDECIDED&&p!==Nu.DECLINE&&Fc.default.inc(i,p)===f)return p;return null}function Y_(i,o){if(Fc.default.valid(o))return o;if(i===null)throw new Jv.UsageError(`Cannot apply the release strategy "${o}" unless the workspace already has a valid version`);if(!Fc.default.valid(i))throw new Jv.UsageError(`Cannot apply the release strategy "${o}" on a non-semver version (${i})`);let f=Fc.default.inc(i,o);if(f===null)throw new Jv.UsageError(`Cannot apply the release strategy "${o}" on the specified version (${i})`);return f}function ND(i,o,{report:f}){let p=new Map;for(let E of i.workspaces)for(let t of Gi.Manifest.allDependencies)for(let k of E.manifest[t].values()){let L=i.tryWorkspaceByDescriptor(k);if(L===null||!o.has(L))continue;Gi.miscUtils.getArrayWithDefault(p,L).push([E,t,k.identHash])}for(let[E,t]of o){let k=E.manifest.version;E.manifest.version=t,Fc.default.prerelease(t)===null?delete E.manifest.raw.stableVersion:E.manifest.raw.stableVersion||(E.manifest.raw.stableVersion=k);let L=E.manifest.name!==null?Gi.structUtils.stringifyIdent(E.manifest.name):null;f.reportInfo(Gi.MessageName.UNNAMED,`${Gi.structUtils.prettyLocator(i.configuration,E.anchoredLocator)}: Bumped to ${t}`),f.reportJson({cwd:D0.npath.fromPortablePath(E.cwd),ident:L,oldVersion:k,newVersion:t});let N=p.get(E);if(typeof N!="undefined")for(let[C,U,q]of N){let W=C.manifest[U].get(q);if(typeof W=="undefined")throw new Error("Assertion failed: The dependency should have existed");let ne=W.range,m=!1;if(ne.startsWith(Gi.WorkspaceResolver.protocol)&&(ne=ne.slice(Gi.WorkspaceResolver.protocol.length),m=!0,ne===E.relativeCwd))continue;let we=ne.match(mK);if(!we){f.reportWarning(Gi.MessageName.UNNAMED,`Couldn't auto-upgrade range ${ne} (in ${Gi.structUtils.prettyLocator(i.configuration,C.anchoredLocator)})`);continue}let Se=`${we[1]}${t}`;m&&(Se=`${Gi.WorkspaceResolver.protocol}${Se}`);let he=Gi.structUtils.makeDescriptor(W,Se);C.manifest[U].set(q,he)}}}var gK=new Map([["%n",{extract:i=>i.length>=1?[i[0],i.slice(1)]:null,generate:(i=0)=>`${i+1}`}]]);function v5(i,{current:o,prerelease:f}){let p=new Fc.default.SemVer(o),E=p.prerelease.slice(),t=[];p.prerelease=[],p.format()!==i&&(E.length=0);let k=!0,L=f.split(/\./g);for(let N of L){let C=gK.get(N);if(typeof C=="undefined")t.push(N),E[0]===N?E.shift():k=!1;else{let U=k?C.extract(E):null;U!==null&&typeof U[0]=="number"?(t.push(C.generate(U[0])),E=U[1]):(t.push(C.generate()),k=!1)}}return p.prerelease&&(p.prerelease=[]),`${i}-${t.join(".")}`}var $y=class extends X_.BaseCommand{constructor(){super(...arguments);this.all=cd.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=cd.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=cd.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=cd.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=cd.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let o=await em.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await Q_.Project.find(o,this.context.cwd),E=await em.Cache.find(o);if(!p)throw new X_.WorkspaceRequiredError(f.cwd,this.context.cwd);return await f.restoreInstallState({restoreResolutions:!1}),(await Q_.StreamReport.start({configuration:o,json:this.json,stdout:this.context.stdout},async k=>{let L=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,N=await Jy(f,{prerelease:L}),C=new Map;if(this.all)C=N;else{let U=this.recursive?p.getRecursiveWorkspaceDependencies():[p];for(let q of U){let W=N.get(q);typeof W!="undefined"&&C.set(q,W)}}if(C.size===0){let U=N.size>0?" Did you want to add --all?":"";k.reportWarning(em.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${U}`);return}ND(f,C,{report:k}),this.dryRun||(L||(this.all?await OD(f):await kD(f)),k.reportSeparator(),await f.install({cache:E,report:k}))})).exitCode()}};$y.paths=[["version","apply"]],$y.usage=cd.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});var m5=$y;var e_=Mi(require("@yarnpkg/cli")),s0=Mi(require("@yarnpkg/core")),rc=Mi(require("@yarnpkg/fslib"));var cO=Mi(lh()),sh=Mi(su()),dO=(0,sh.memo)(({active:i})=>{let o=(0,sh.useMemo)(()=>i?"\u25C9":"\u25EF",[i]),f=(0,sh.useMemo)(()=>i?"green":"yellow",[i]);return sh.default.createElement(cO.Text,{color:f},o)});var yd=Mi(lh()),Js=Mi(su());var pO=Mi(lh()),q4=Mi(su());function hm({active:i},o,f){let{stdin:p}=(0,pO.useStdin)(),E=(0,q4.useCallback)((t,k)=>o(t,k),f);(0,q4.useEffect)(()=>{if(!(!i||!p))return p.on("keypress",E),()=>{p.off("keypress",E)}},[i,E,p])}var ah;(function(f){f.BEFORE="before",f.AFTER="after"})(ah||(ah={}));var hO=function({active:i},o,f){hm({active:i},(p,E)=>{E.name==="tab"&&(E.shift?o(ah.BEFORE):o(ah.AFTER))},f)};var H4=function(i,o,{active:f,minus:p,plus:E,set:t,loop:k=!0}){hm({active:f},(L,N)=>{let C=o.indexOf(i);switch(N.name){case p:{let U=C-1;if(k){t(o[(o.length+U)%o.length]);return}if(U<0)return;t(o[U])}break;case E:{let U=C+1;if(k){t(o[U%o.length]);return}if(U>=o.length)return;t(o[U])}break}},[o,i,E,t,k])};var O3=({active:i=!0,children:o=[],radius:f=10,size:p=1,loop:E=!0,onFocusRequest:t,willReachEnd:k})=>{let L=Se=>{if(Se.key===null)throw new Error("Expected all children to have a key");return Se.key},N=Js.default.Children.map(o,Se=>L(Se)),C=N[0],[U,q]=(0,Js.useState)(C),W=N.indexOf(U);(0,Js.useEffect)(()=>{N.includes(U)||q(C)},[o]),(0,Js.useEffect)(()=>{k&&W>=N.length-2&&k()},[W]),hO({active:i&&!!t},Se=>{t==null||t(Se)},[t]),H4(U,N,{active:i,minus:"up",plus:"down",set:q,loop:E});let ne=W-f,m=W+f;m>N.length&&(ne-=m-N.length,m=N.length),ne<0&&(m+=-ne,ne=0),m>=N.length&&(m=N.length-1);let we=[];for(let Se=ne;Se<=m;++Se){let he=N[Se],ge=i&&he===U;we.push(Js.default.createElement(yd.Box,{key:he,height:p},Js.default.createElement(yd.Box,{marginLeft:1,marginRight:1},Js.default.createElement(yd.Text,null,ge?Js.default.createElement(yd.Text,{color:"cyan",bold:!0},">"):" ")),Js.default.createElement(yd.Box,null,Js.default.cloneElement(o[Se],{active:ge}))))}return Js.default.createElement(yd.Box,{flexDirection:"column",width:"100%"},we)};var W4=Mi(lh()),k3=Mi(su());var vO=Mi(lh()),Z1=Mi(su()),mO=Mi(require("readline")),O$=Z1.default.createContext(null),yO=({children:i})=>{let{stdin:o,setRawMode:f}=(0,vO.useStdin)();(0,Z1.useEffect)(()=>{f&&f(!0),o&&(0,mO.emitKeypressEvents)(o)},[o,f]);let[p,E]=(0,Z1.useState)(new Map),t=(0,Z1.useMemo)(()=>({getAll:()=>p,get:k=>p.get(k),set:(k,L)=>E(new Map([...p,[k,L]]))}),[p,E]);return Z1.default.createElement(O$.Provider,{value:t,children:i})};async function gO(i,o,{stdin:f,stdout:p,stderr:E}={}){let t,k=N=>{let{exit:C}=(0,W4.useApp)();hm({active:!0},(U,q)=>{q.name==="return"&&(t=N,C())},[C,N])},{waitUntilExit:L}=(0,W4.render)(k3.default.createElement(yO,null,k3.default.createElement(i,Gf(E0({},o),{useSubmit:k}))),{stdin:f,stdout:p,stderr:E});return await L(),t}var fh=Mi(require("clipanion")),Dr=Mi(lh()),Tn=Mi(su()),V4=Mi(require("semver"));var t_=class extends e_.BaseCommand{constructor(){super(...arguments);this.interactive=fh.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){let o=await s0.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await s0.Project.find(o,this.context.cwd);if(!p)throw new e_.WorkspaceRequiredError(f.cwd,this.context.cwd);await f.restoreInstallState();let E=await $v(f);if(E===null||E.releaseRoots.size===0)return 0;if(E.root===null)throw new fh.UsageError("This command can only be run on Git repositories");let t=()=>Tn.default.createElement(Dr.Box,{flexDirection:"row",paddingBottom:1},Tn.default.createElement(Dr.Box,{flexDirection:"column",width:60},Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},""),"/",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},""),"/",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(Dr.Box,{marginLeft:1},Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to save.")),Tn.default.createElement(Dr.Box,{marginLeft:1},Tn.default.createElement(Dr.Text,null,"Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to abort.")))),k=({workspace:W,active:ne,decision:m,setDecision:we})=>{var ze;let Se=(ze=W.manifest.raw.stableVersion)!=null?ze:W.manifest.version;if(Se===null)throw new Error(`Assertion failed: The version should have been set (${s0.structUtils.prettyLocator(o,W.anchoredLocator)})`);if(V4.default.prerelease(Se)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${Se})`);let he=[Nu.UNDECIDED,Nu.DECLINE,Nu.PATCH,Nu.MINOR,Nu.MAJOR];H4(m,he,{active:ne,minus:"left",plus:"right",set:we});let ge=m===Nu.UNDECIDED?Tn.default.createElement(Dr.Text,{color:"yellow"},Se):m===Nu.DECLINE?Tn.default.createElement(Dr.Text,{color:"green"},Se):Tn.default.createElement(Dr.Text,null,Tn.default.createElement(Dr.Text,{color:"magenta"},Se)," \u2192 ",Tn.default.createElement(Dr.Text,{color:"green"},V4.default.valid(m)?m:V4.default.inc(Se,m)));return Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,s0.structUtils.prettyLocator(o,W.anchoredLocator)," - ",ge)),Tn.default.createElement(Dr.Box,null,he.map(pe=>Tn.default.createElement(Dr.Box,{key:pe,paddingLeft:2},Tn.default.createElement(Dr.Text,null,Tn.default.createElement(dO,{active:pe===m})," ",pe)))))},L=W=>{let ne=new Set(E.releaseRoots),m=new Map([...W].filter(([we])=>ne.has(we)));for(;;){let we=Zy({project:E.project,releases:m}),Se=!1;if(we.length>0){for(let[he]of we)if(!ne.has(he)){ne.add(he),Se=!0;let ge=W.get(he);typeof ge!="undefined"&&m.set(he,ge)}}if(!Se)break}return{relevantWorkspaces:ne,relevantReleases:m}},N=()=>{let[W,ne]=(0,Tn.useState)(()=>new Map(E.releases)),m=(0,Tn.useCallback)((we,Se)=>{let he=new Map(W);Se!==Nu.UNDECIDED?he.set(we,Se):he.delete(we);let{relevantReleases:ge}=L(he);ne(ge)},[W,ne]);return[W,m]},C=({workspaces:W,releases:ne})=>{let m=[];m.push(`${W.size} total`);let we=0,Se=0;for(let he of W){let ge=ne.get(he);typeof ge=="undefined"?Se+=1:ge!==Nu.DECLINE&&(we+=1)}return m.push(`${we} release${we===1?"":"s"}`),m.push(`${Se} remaining`),Tn.default.createElement(Dr.Text,{color:"yellow"},m.join(", "))},q=await gO(({useSubmit:W})=>{let[ne,m]=N();W(ne);let{relevantWorkspaces:we}=L(ne),Se=new Set([...we].filter(pe=>!E.releaseRoots.has(pe))),[he,ge]=(0,Tn.useState)(0),ze=(0,Tn.useCallback)(pe=>{switch(pe){case ah.BEFORE:ge(he-1);break;case ah.AFTER:ge(he+1);break}},[he,ge]);return Tn.default.createElement(Dr.Box,{flexDirection:"column"},Tn.default.createElement(t,null),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,{wrap:"wrap"},"The following files have been modified in your local checkout.")),Tn.default.createElement(Dr.Box,{flexDirection:"column",marginTop:1,paddingLeft:2},[...E.changedFiles].map(pe=>Tn.default.createElement(Dr.Box,{key:pe},Tn.default.createElement(Dr.Text,null,Tn.default.createElement(Dr.Text,{color:"grey"},rc.npath.fromPortablePath(E.root)),rc.npath.sep,rc.npath.relative(rc.npath.fromPortablePath(E.root),rc.npath.fromPortablePath(pe)))))),E.releaseRoots.size>0&&Tn.default.createElement(Tn.default.Fragment,null,Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(Dr.Text,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),Se.size>3?Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(C,{workspaces:E.releaseRoots,releases:ne})):null,Tn.default.createElement(Dr.Box,{marginTop:1,flexDirection:"column"},Tn.default.createElement(O3,{active:he%2==0,radius:1,size:2,onFocusRequest:ze},[...E.releaseRoots].map(pe=>Tn.default.createElement(k,{key:pe.cwd,workspace:pe,decision:ne.get(pe)||Nu.UNDECIDED,setDecision:Oe=>m(pe,Oe)}))))),Se.size>0?Tn.default.createElement(Tn.default.Fragment,null,Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(Dr.Text,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),Tn.default.createElement(Dr.Box,null,Tn.default.createElement(Dr.Text,null,"(Press ",Tn.default.createElement(Dr.Text,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),Se.size>5?Tn.default.createElement(Dr.Box,{marginTop:1},Tn.default.createElement(C,{workspaces:Se,releases:ne})):null,Tn.default.createElement(Dr.Box,{marginTop:1,flexDirection:"column"},Tn.default.createElement(O3,{active:he%2==1,radius:2,size:2,onFocusRequest:ze},[...Se].map(pe=>Tn.default.createElement(k,{key:pe.cwd,workspace:pe,decision:ne.get(pe)||Nu.UNDECIDED,setDecision:Oe=>m(pe,Oe)}))))):null)},{versionFile:E},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof q=="undefined")return 1;E.releases.clear();for(let[W,ne]of q)E.releases.set(W,ne);await E.saveAll()}async executeStandard(){let o=await s0.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await s0.Project.find(o,this.context.cwd);if(!p)throw new e_.WorkspaceRequiredError(f.cwd,this.context.cwd);return await f.restoreInstallState(),(await s0.StreamReport.start({configuration:o,stdout:this.context.stdout},async t=>{let k=await $v(f);if(k===null||k.releaseRoots.size===0)return;if(k.root===null)throw new fh.UsageError("This command can only be run on Git repositories");if(t.reportInfo(s0.MessageName.UNNAMED,`Your PR was started right after ${s0.formatUtils.pretty(o,k.baseHash.slice(0,7),"yellow")} ${s0.formatUtils.pretty(o,k.baseTitle,"magenta")}`),k.changedFiles.size>0){t.reportInfo(s0.MessageName.UNNAMED,"You have changed the following files since then:"),t.reportSeparator();for(let q of k.changedFiles)t.reportInfo(null,`${s0.formatUtils.pretty(o,rc.npath.fromPortablePath(k.root),"gray")}${rc.npath.sep}${rc.npath.relative(rc.npath.fromPortablePath(k.root),rc.npath.fromPortablePath(q))}`)}let L=!1,N=!1,C=K_(k);if(C.size>0){L||t.reportSeparator();for(let q of C)t.reportError(s0.MessageName.UNNAMED,`${s0.structUtils.prettyLocator(o,q.anchoredLocator)} has been modified but doesn't have a release strategy attached`);L=!0}let U=Zy(k);for(let[q,W]of U)N||t.reportSeparator(),t.reportError(s0.MessageName.UNNAMED,`${s0.structUtils.prettyLocator(o,q.anchoredLocator)} doesn't have a release strategy attached, but depends on ${s0.structUtils.prettyWorkspace(o,W)} which is planned for release.`),N=!0;(L||N)&&(t.reportSeparator(),t.reportInfo(s0.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),t.reportInfo(s0.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};t_.paths=[["version","check"]],t_.usage=fh.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});var _O=t_;var G4=Mi(require("@yarnpkg/cli")),Y4=Mi(require("@yarnpkg/core")),Bc=Mi(require("clipanion")),K4=Mi(require("semver"));var n_=class extends G4.BaseCommand{constructor(){super(...arguments);this.deferred=Bc.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=Bc.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=Bc.Option.String()}async execute(){let o=await Y4.Configuration.find(this.context.cwd,this.context.plugins),{project:f,workspace:p}=await Y4.Project.find(o,this.context.cwd);if(!p)throw new G4.WorkspaceRequiredError(f.cwd,this.context.cwd);let E=o.get("preferDeferredVersions");this.deferred&&(E=!0),this.immediate&&(E=!1);let t=K4.default.valid(this.strategy),k=this.strategy===Nu.DECLINE,L;if(t)if(p.manifest.version!==null){let C=MD(p.manifest.version,this.strategy);C!==null?L=C:L=this.strategy}else L=this.strategy;else{let C=p.manifest.version;if(!k){if(C===null)throw new Bc.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof C!="string"||!K4.default.valid(C))throw new Bc.UsageError(`Can't bump the version (${C}) if it's not valid semver`)}L=Zv(this.strategy)}if(!E){let U=(await Jy(f)).get(p);if(typeof U!="undefined"&&L!==Nu.DECLINE){let q=Y_(p.manifest.version,L);if(K4.default.lt(q,U))throw new Bc.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${U})`)}}let N=await $v(f,{allowEmpty:!0});return N.releases.set(p,L),await N.saveAll(),E?0:await this.cli.run(["version","apply"])}};n_.paths=[["version"]],n_.usage=Bc.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var EO=n_;var M$={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:M3.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:M3.SettingsType.BOOLEAN,default:!1}},commands:[m5,_O,EO]},N$=M$;return k$;})(); +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-debug-tools.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react-is.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.0.0-experimental-51a3aa6af + * react.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler-tracing.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.18.0 + * scheduler.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v0.24.0 + * react-reconciler.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.development.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/** @license React v16.13.1 + * react.production.min.js + * + * Copyright (c) Meta Platforms and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +return plugin; +} +}; diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 000000000..799c5be98 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs @@ -0,0 +1,28 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-workspace-tools", +factory: function (require) { +var plugin=(()=>{var Cr=Object.create,ge=Object.defineProperty,wr=Object.defineProperties,Sr=Object.getOwnPropertyDescriptor,vr=Object.getOwnPropertyDescriptors,Hr=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,$r=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty,Tr=Object.prototype.propertyIsEnumerable;var tt=(e,t,r)=>t in e?ge(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,N=(e,t)=>{for(var r in t||(t={}))et.call(t,r)&&tt(e,r,t[r]);if(Je)for(var r of Je(t))Tr.call(t,r)&&tt(e,r,t[r]);return e},Q=(e,t)=>wr(e,vr(t)),kr=e=>ge(e,"__esModule",{value:!0});var q=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Lr=(e,t)=>{for(var r in t)ge(e,r,{get:t[r],enumerable:!0})},Or=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Hr(t))!et.call(e,n)&&n!=="default"&&ge(e,n,{get:()=>t[n],enumerable:!(r=Sr(t,n))||r.enumerable});return e},Y=e=>Or(kr(ge(e!=null?Cr($r(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var He=q(J=>{"use strict";J.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;J.find=(e,t)=>e.nodes.find(r=>r.type===t);J.exceedsLimit=(e,t,r=1,n)=>n===!1||!J.isInteger(e)||!J.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;J.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];!n||(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};J.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0==0?(e.invalid=!0,!0):!1;J.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0==0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;J.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;J.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);J.flatten=(...e)=>{let t=[],r=n=>{for(let s=0;s{"use strict";var at=He();st.exports=(e,t={})=>{let r=(n,s={})=>{let a=t.escapeInvalid&&at.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o="";if(n.value)return(a||i)&&at.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let h of n.nodes)o+=r(h);return o};return r(e)}});var ot=q((is,it)=>{"use strict";it.exports=function(e){return typeof e=="number"?e-e==0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var At=q((os,ut)=>{"use strict";var ct=ot(),pe=(e,t,r)=>{if(ct(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(ct(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n=N({relaxZeros:!0},r);typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),a=String(n.shorthand),i=String(n.capture),o=String(n.wrap),h=e+":"+t+"="+s+a+i+o;if(pe.cache.hasOwnProperty(h))return pe.cache[h].result;let A=Math.min(e,t),f=Math.max(e,t);if(Math.abs(A-f)===1){let R=e+"|"+t;return n.capture?`(${R})`:n.wrap===!1?R:`(?:${R})`}let m=pt(e)||pt(t),p={min:e,max:t,a:A,b:f},H=[],_=[];if(m&&(p.isPadded=m,p.maxLen=String(p.max).length),A<0){let R=f<0?Math.abs(f):1;_=lt(R,Math.abs(A),p,n),A=p.a=0}return f>=0&&(H=lt(A,f,p,n)),p.negatives=_,p.positives=H,p.result=Nr(_,H,n),n.capture===!0?p.result=`(${p.result})`:n.wrap!==!1&&H.length+_.length>1&&(p.result=`(?:${p.result})`),pe.cache[h]=p,p.result};function Nr(e,t,r){let n=Pe(e,t,"-",!1,r)||[],s=Pe(t,e,"",!1,r)||[],a=Pe(e,t,"-?",!0,r)||[];return n.concat(a).concat(s).join("|")}function Br(e,t){let r=1,n=1,s=ft(e,r),a=new Set([t]);for(;e<=s&&s<=t;)a.add(s),r+=1,s=ft(e,r);for(s=ht(t+1,n)-1;e1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+dt(o.count),i=A+1;continue}r.isPadded&&(m=Gr(A,r,n)),f.string=m+f.pattern+dt(f.count),a.push(f),i=A+1,o=f}return a}function Pe(e,t,r,n,s){let a=[];for(let i of e){let{string:o}=i;!n&&!gt(t,"string",o)&&a.push(r+o),n&>(t,"string",o)&&a.push(r+o)}return a}function Mr(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function gt(e,t,r){return e.some(n=>n[t]===r)}function ft(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function ht(e,t){return e-e%Math.pow(10,t)}function dt(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function Pr(e,t,r){return`[${e}${t-e==1?"":"-"}${t}]`}function pt(e){return/^-?(0+)\d/.test(e)}function Gr(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),s=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}pe.cache={};pe.clearCache=()=>pe.cache={};ut.exports=pe});var Ue=q((us,mt)=>{"use strict";var Ur=require("util"),Rt=At(),yt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),qr=e=>t=>e===!0?Number(t):String(t),De=e=>typeof e=="number"||typeof e=="string"&&e!=="",me=e=>Number.isInteger(+e),Ge=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},Kr=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,Wr=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},_t=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((i,o)=>io?1:0),e.positives.sort((i,o)=>io?1:0);let r=t.capture?"":"?:",n="",s="",a;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${r}${e.negatives.join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,t.wrap?`(${r}${a})`:a},Et=(e,t,r,n)=>{if(r)return Rt(e,t,N({wrap:!1},n));let s=String.fromCharCode(e);if(e===t)return s;let a=String.fromCharCode(t);return`[${s}-${a}]`},xt=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,s=r.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return Rt(e,t,r)},bt=(...e)=>new RangeError("Invalid range arguments: "+Ur.inspect(...e)),Ct=(e,t,r)=>{if(r.strictRanges===!0)throw bt([e,t]);return[]},Fr=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Qr=(e,t,r=1,n={})=>{let s=Number(e),a=Number(t);if(!Number.isInteger(s)||!Number.isInteger(a)){if(n.strictRanges===!0)throw bt([e,t]);return[]}s===0&&(s=0),a===0&&(a=0);let i=s>a,o=String(e),h=String(t),A=String(r);r=Math.max(Math.abs(r),1);let f=Ge(o)||Ge(h)||Ge(A),m=f?Math.max(o.length,h.length,A.length):0,p=f===!1&&Kr(e,t,n)===!1,H=n.transform||qr(p);if(n.toRegex&&r===1)return Et(_t(e,m),_t(t,m),!0,n);let _={negatives:[],positives:[]},R=T=>_[T<0?"negatives":"positives"].push(Math.abs(T)),b=[],C=0;for(;i?s>=a:s<=a;)n.toRegex===!0&&r>1?R(s):b.push(Wr(H(s,C),m,p)),s=i?s-r:s+r,C++;return n.toRegex===!0?r>1?jr(_,n):xt(b,null,N({wrap:!1},n)):b},Xr=(e,t,r=1,n={})=>{if(!me(e)&&e.length>1||!me(t)&&t.length>1)return Ct(e,t,n);let s=n.transform||(p=>String.fromCharCode(p)),a=`${e}`.charCodeAt(0),i=`${t}`.charCodeAt(0),o=a>i,h=Math.min(a,i),A=Math.max(a,i);if(n.toRegex&&r===1)return Et(h,A,!1,n);let f=[],m=0;for(;o?a>=i:a<=i;)f.push(s(a,m)),a=o?a-r:a+r,m++;return n.toRegex===!0?xt(f,null,{wrap:!1,options:n}):f},Te=(e,t,r,n={})=>{if(t==null&&De(e))return[e];if(!De(e)||!De(t))return Ct(e,t,n);if(typeof r=="function")return Te(e,t,1,{transform:r});if(yt(r))return Te(e,t,0,r);let s=N({},n);return s.capture===!0&&(s.wrap=!0),r=r||s.step||1,me(r)?me(e)&&me(t)?Qr(e,t,r,s):Xr(e,t,Math.max(Math.abs(r),1),s):r!=null&&!yt(r)?Fr(r,s):Te(e,t,1,r)};mt.exports=Te});var vt=q((cs,wt)=>{"use strict";var Zr=Ue(),St=He(),Yr=(e,t={})=>{let r=(n,s={})=>{let a=St.isInvalidBrace(s),i=n.invalid===!0&&t.escapeInvalid===!0,o=a===!0||i===!0,h=t.escapeInvalid===!0?"\\":"",A="";if(n.isOpen===!0||n.isClose===!0)return h+n.value;if(n.type==="open")return o?h+n.value:"(";if(n.type==="close")return o?h+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":o?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let f=St.reduce(n.nodes),m=Zr(...f,Q(N({},t),{wrap:!1,toRegex:!0}));if(m.length!==0)return f.length>1&&m.length>1?`(${m})`:m}if(n.nodes)for(let f of n.nodes)A+=r(f,n);return A};return r(e)};wt.exports=Yr});var Tt=q((ls,Ht)=>{"use strict";var zr=Ue(),$t=$e(),he=He(),fe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?he.flatten(t).map(s=>`{${s}}`):t;for(let s of e)if(Array.isArray(s))for(let a of s)n.push(fe(a,t,r));else for(let a of t)r===!0&&typeof a=="string"&&(a=`{${a}}`),n.push(Array.isArray(a)?fe(s,a,r):s+a);return he.flatten(n)},Vr=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(s,a={})=>{s.queue=[];let i=a,o=a.queue;for(;i.type!=="brace"&&i.type!=="root"&&i.parent;)i=i.parent,o=i.queue;if(s.invalid||s.dollar){o.push(fe(o.pop(),$t(s,t)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){o.push(fe(o.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let m=he.reduce(s.nodes);if(he.exceedsLimit(...m,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=zr(...m,t);p.length===0&&(p=$t(s,t)),o.push(fe(o.pop(),p)),s.nodes=[];return}let h=he.encloseBrace(s),A=s.queue,f=s;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,A=f.queue;for(let m=0;m{"use strict";kt.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Mt=q((fs,Ot)=>{"use strict";var Jr=$e(),{MAX_LENGTH:Nt,CHAR_BACKSLASH:qe,CHAR_BACKTICK:en,CHAR_COMMA:tn,CHAR_DOT:rn,CHAR_LEFT_PARENTHESES:nn,CHAR_RIGHT_PARENTHESES:sn,CHAR_LEFT_CURLY_BRACE:an,CHAR_RIGHT_CURLY_BRACE:on,CHAR_LEFT_SQUARE_BRACKET:It,CHAR_RIGHT_SQUARE_BRACKET:Bt,CHAR_DOUBLE_QUOTE:un,CHAR_SINGLE_QUOTE:cn,CHAR_NO_BREAK_SPACE:ln,CHAR_ZERO_WIDTH_NOBREAK_SPACE:pn}=Lt(),fn=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(Nt,r.maxLength):Nt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},a=[s],i=s,o=s,h=0,A=e.length,f=0,m=0,p,H={},_=()=>e[f++],R=b=>{if(b.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&b.type==="text"){o.value+=b.value;return}return i.nodes.push(b),b.parent=i,b.prev=o,o=b,b};for(R({type:"bos"});f0){if(i.ranges>0){i.ranges=0;let b=i.nodes.shift();i.nodes=[b,{type:"text",value:Jr(i)}]}R({type:"comma",value:p}),i.commas++;continue}if(p===rn&&m>0&&i.commas===0){let b=i.nodes;if(m===0||b.length===0){R({type:"text",value:p});continue}if(o.type==="dot"){if(i.range=[],o.value+=p,o.type="range",i.nodes.length!==3&&i.nodes.length!==5){i.invalid=!0,i.ranges=0,o.type="text";continue}i.ranges++,i.args=[];continue}if(o.type==="range"){b.pop();let C=b[b.length-1];C.value+=o.value+p,o=C,i.ranges--;continue}R({type:"dot",value:p});continue}R({type:"text",value:p})}do if(i=a.pop(),i.type!=="root"){i.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let b=a[a.length-1],C=b.nodes.indexOf(i);b.nodes.splice(C,1,...i.nodes)}while(a.length>0);return R({type:"eos"}),s};Ot.exports=fn});var Gt=q((hs,Pt)=>{"use strict";var Dt=$e(),hn=vt(),dn=Tt(),gn=Mt(),z=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let s=z.create(n,t);Array.isArray(s)?r.push(...s):r.push(s)}else r=[].concat(z.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};z.parse=(e,t={})=>gn(e,t);z.stringify=(e,t={})=>typeof e=="string"?Dt(z.parse(e,t),t):Dt(e,t);z.compile=(e,t={})=>(typeof e=="string"&&(e=z.parse(e,t)),hn(e,t));z.expand=(e,t={})=>{typeof e=="string"&&(e=z.parse(e,t));let r=dn(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};z.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?z.compile(e,t):z.expand(e,t);Pt.exports=z});var Re=q((ds,Ut)=>{"use strict";var An=require("path"),se="\\\\/",qt=`[^${se}]`,oe="\\.",mn="\\+",Rn="\\?",ke="\\/",yn="(?=.)",Kt="[^/]",Ke=`(?:${ke}|$)`,Wt=`(?:^|${ke})`,We=`${oe}{1,2}${Ke}`,_n=`(?!${oe})`,En=`(?!${Wt}${We})`,xn=`(?!${oe}{0,1}${Ke})`,bn=`(?!${We})`,Cn=`[^.${ke}]`,wn=`${Kt}*?`,jt={DOT_LITERAL:oe,PLUS_LITERAL:mn,QMARK_LITERAL:Rn,SLASH_LITERAL:ke,ONE_CHAR:yn,QMARK:Kt,END_ANCHOR:Ke,DOTS_SLASH:We,NO_DOT:_n,NO_DOTS:En,NO_DOT_SLASH:xn,NO_DOTS_SLASH:bn,QMARK_NO_DOT:Cn,STAR:wn,START_ANCHOR:Wt},Sn=Q(N({},jt),{SLASH_LITERAL:`[${se}]`,QMARK:qt,STAR:`${qt}*?`,DOTS_SLASH:`${oe}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${oe})`,NO_DOTS:`(?!(?:^|[${se}])${oe}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${oe}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${oe}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`}),vn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Ut.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:vn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:An.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Sn:jt}}});var ye=q(X=>{"use strict";var Hn=require("path"),$n=process.platform==="win32",{REGEX_BACKSLASH:Tn,REGEX_REMOVE_BACKSLASH:kn,REGEX_SPECIAL_CHARS:Ln,REGEX_SPECIAL_CHARS_GLOBAL:On}=Re();X.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);X.hasRegexChars=e=>Ln.test(e);X.isRegexChar=e=>e.length===1&&X.hasRegexChars(e);X.escapeRegex=e=>e.replace(On,"\\$1");X.toPosixSlashes=e=>e.replace(Tn,"/");X.removeBackslashes=e=>e.replace(kn,t=>t==="\\"?"":t);X.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};X.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:$n===!0||Hn.sep==="\\";X.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?X.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};X.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};X.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",s=r.contains?"":"$",a=`${n}(?:${e})${s}`;return t.negated===!0&&(a=`(?:^(?!${a}).*$)`),a}});var er=q((As,Ft)=>{"use strict";var Qt=ye(),{CHAR_ASTERISK:je,CHAR_AT:Nn,CHAR_BACKWARD_SLASH:_e,CHAR_COMMA:In,CHAR_DOT:Fe,CHAR_EXCLAMATION_MARK:Xt,CHAR_FORWARD_SLASH:Zt,CHAR_LEFT_CURLY_BRACE:Qe,CHAR_LEFT_PARENTHESES:Xe,CHAR_LEFT_SQUARE_BRACKET:Bn,CHAR_PLUS:Mn,CHAR_QUESTION_MARK:Yt,CHAR_RIGHT_CURLY_BRACE:Pn,CHAR_RIGHT_PARENTHESES:zt,CHAR_RIGHT_SQUARE_BRACKET:Dn}=Re(),Vt=e=>e===Zt||e===_e,Jt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?Infinity:1)},Gn=(e,t)=>{let r=t||{},n=e.length-1,s=r.parts===!0||r.scanToEnd===!0,a=[],i=[],o=[],h=e,A=-1,f=0,m=0,p=!1,H=!1,_=!1,R=!1,b=!1,C=!1,T=!1,k=!1,E=!1,ee=0,j,y,x={value:"",depth:0,isGlob:!1},M=()=>A>=n,$=()=>h.charCodeAt(A+1),u=()=>(j=y,h.charCodeAt(++A));for(;A0&&(W=h.slice(0,f),h=h.slice(f),m-=f),w&&_===!0&&m>0?(w=h.slice(0,m),P=h.slice(m)):_===!0?(w="",P=h):w=h,w&&w!==""&&w!=="/"&&w!==h&&Vt(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),r.unescape===!0&&(P&&(P=Qt.removeBackslashes(P)),w&&T===!0&&(w=Qt.removeBackslashes(w)));let l={prefix:W,input:e,start:f,base:w,glob:P,isBrace:p,isBracket:H,isGlob:_,isExtglob:R,isGlobstar:b,negated:k};if(r.tokens===!0&&(l.maxDepth=0,Vt(y)||i.push(x),l.tokens=i),r.parts===!0||r.tokens===!0){let c;for(let D=0;D{"use strict";var Le=Re(),V=ye(),{MAX_LENGTH:Oe,POSIX_REGEX_SOURCE:Un,REGEX_NON_SPECIAL_CHARS:qn,REGEX_SPECIAL_CHARS_BACKREF:Kn,REPLACEMENTS:rr}=Le,Wn=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch(n){return e.map(s=>V.escapeRegex(s)).join("..")}return r},de=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,nr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=rr[e]||e;let r=N({},t),n=typeof r.maxLength=="number"?Math.min(Oe,r.maxLength):Oe,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let a={type:"bos",value:"",output:r.prepend||""},i=[a],o=r.capture?"":"?:",h=V.isWindows(t),A=Le.globChars(h),f=Le.extglobChars(A),{DOT_LITERAL:m,PLUS_LITERAL:p,SLASH_LITERAL:H,ONE_CHAR:_,DOTS_SLASH:R,NO_DOT:b,NO_DOT_SLASH:C,NO_DOTS_SLASH:T,QMARK:k,QMARK_NO_DOT:E,STAR:ee,START_ANCHOR:j}=A,y=g=>`(${o}(?:(?!${j}${g.dot?R:m}).)*?)`,x=r.dot?"":b,M=r.dot?k:E,$=r.bash===!0?y(r):ee;r.capture&&($=`(${$})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let u={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:i};e=V.removePrefix(e,u),s=e.length;let w=[],W=[],P=[],l=a,c,D=()=>u.index===s-1,G=u.peek=(g=1)=>e[u.index+g],te=u.advance=()=>e[++u.index],re=()=>e.slice(u.index+1),ie=(g="",L=0)=>{u.consumed+=g,u.index+=L},be=g=>{u.output+=g.output!=null?g.output:g.value,ie(g.value)},xr=()=>{let g=1;for(;G()==="!"&&(G(2)!=="("||G(3)==="?");)te(),u.start++,g++;return g%2==0?!1:(u.negated=!0,u.start++,!0)},Ce=g=>{u[g]++,P.push(g)},ce=g=>{u[g]--,P.pop()},S=g=>{if(l.type==="globstar"){let L=u.braces>0&&(g.type==="comma"||g.type==="brace"),d=g.extglob===!0||w.length&&(g.type==="pipe"||g.type==="paren");g.type!=="slash"&&g.type!=="paren"&&!L&&!d&&(u.output=u.output.slice(0,-l.output.length),l.type="star",l.value="*",l.output=$,u.output+=l.output)}if(w.length&&g.type!=="paren"&&!f[g.value]&&(w[w.length-1].inner+=g.value),(g.value||g.output)&&be(g),l&&l.type==="text"&&g.type==="text"){l.value+=g.value,l.output=(l.output||"")+g.value;return}g.prev=l,i.push(g),l=g},we=(g,L)=>{let d=Q(N({},f[L]),{conditions:1,inner:""});d.prev=l,d.parens=u.parens,d.output=u.output;let v=(r.capture?"(":"")+d.open;Ce("parens"),S({type:g,value:L,output:u.output?"":_}),S({type:"paren",extglob:!0,value:te(),output:v}),w.push(d)},br=g=>{let L=g.close+(r.capture?")":"");if(g.type==="negate"){let d=$;g.inner&&g.inner.length>1&&g.inner.includes("/")&&(d=y(r)),(d!==$||D()||/^\)+$/.test(re()))&&(L=g.close=`)$))${d}`),g.prev.type==="bos"&&(u.negatedExtglob=!0)}S({type:"paren",extglob:!0,value:c,output:L}),ce("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let g=!1,L=e.replace(Kn,(d,v,I,F,U,Me)=>F==="\\"?(g=!0,d):F==="?"?v?v+F+(U?k.repeat(U.length):""):Me===0?M+(U?k.repeat(U.length):""):k.repeat(I.length):F==="."?m.repeat(I.length):F==="*"?v?v+F+(U?$:""):$:v?d:`\\${d}`);return g===!0&&(r.unescape===!0?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,d=>d.length%2==0?"\\\\":d?"\\":"")),L===e&&r.contains===!0?(u.output=e,u):(u.output=V.wrapOutput(L,u,t),u)}for(;!D();){if(c=te(),c==="\0")continue;if(c==="\\"){let d=G();if(d==="/"&&r.bash!==!0||d==="."||d===";")continue;if(!d){c+="\\",S({type:"text",value:c});continue}let v=/^\\+/.exec(re()),I=0;if(v&&v[0].length>2&&(I=v[0].length,u.index+=I,I%2!=0&&(c+="\\")),r.unescape===!0?c=te()||"":c+=te()||"",u.brackets===0){S({type:"text",value:c});continue}}if(u.brackets>0&&(c!=="]"||l.value==="["||l.value==="[^")){if(r.posix!==!1&&c===":"){let d=l.value.slice(1);if(d.includes("[")&&(l.posix=!0,d.includes(":"))){let v=l.value.lastIndexOf("["),I=l.value.slice(0,v),F=l.value.slice(v+2),U=Un[F];if(U){l.value=I+U,u.backtrack=!0,te(),!a.output&&i.indexOf(l)===1&&(a.output=_);continue}}}(c==="["&&G()!==":"||c==="-"&&G()==="]")&&(c=`\\${c}`),c==="]"&&(l.value==="["||l.value==="[^")&&(c=`\\${c}`),r.posix===!0&&c==="!"&&l.value==="["&&(c="^"),l.value+=c,be({value:c});continue}if(u.quotes===1&&c!=='"'){c=V.escapeRegex(c),l.value+=c,be({value:c});continue}if(c==='"'){u.quotes=u.quotes===1?0:1,r.keepQuotes===!0&&S({type:"text",value:c});continue}if(c==="("){Ce("parens"),S({type:"paren",value:c});continue}if(c===")"){if(u.parens===0&&r.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=w[w.length-1];if(d&&u.parens===d.parens+1){br(w.pop());continue}S({type:"paren",value:c,output:u.parens?")":"\\)"}),ce("parens");continue}if(c==="["){if(r.nobracket===!0||!re().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));c=`\\${c}`}else Ce("brackets");S({type:"bracket",value:c});continue}if(c==="]"){if(r.nobracket===!0||l&&l.type==="bracket"&&l.value.length===1){S({type:"text",value:c,output:`\\${c}`});continue}if(u.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(de("opening","["));S({type:"text",value:c,output:`\\${c}`});continue}ce("brackets");let d=l.value.slice(1);if(l.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(c=`/${c}`),l.value+=c,be({value:c}),r.literalBrackets===!1||V.hasRegexChars(d))continue;let v=V.escapeRegex(l.value);if(u.output=u.output.slice(0,-l.value.length),r.literalBrackets===!0){u.output+=v,l.value=v;continue}l.value=`(${o}${v}|${l.value})`,u.output+=l.value;continue}if(c==="{"&&r.nobrace!==!0){Ce("braces");let d={type:"brace",value:c,output:"(",outputIndex:u.output.length,tokensIndex:u.tokens.length};W.push(d),S(d);continue}if(c==="}"){let d=W[W.length-1];if(r.nobrace===!0||!d){S({type:"text",value:c,output:c});continue}let v=")";if(d.dots===!0){let I=i.slice(),F=[];for(let U=I.length-1;U>=0&&(i.pop(),I[U].type!=="brace");U--)I[U].type!=="dots"&&F.unshift(I[U].value);v=Wn(F,r),u.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let I=u.output.slice(0,d.outputIndex),F=u.tokens.slice(d.tokensIndex);d.value=d.output="\\{",c=v="\\}",u.output=I;for(let U of F)u.output+=U.output||U.value}S({type:"brace",value:c,output:v}),ce("braces"),W.pop();continue}if(c==="|"){w.length>0&&w[w.length-1].conditions++,S({type:"text",value:c});continue}if(c===","){let d=c,v=W[W.length-1];v&&P[P.length-1]==="braces"&&(v.comma=!0,d="|"),S({type:"comma",value:c,output:d});continue}if(c==="/"){if(l.type==="dot"&&u.index===u.start+1){u.start=u.index+1,u.consumed="",u.output="",i.pop(),l=a;continue}S({type:"slash",value:c,output:H});continue}if(c==="."){if(u.braces>0&&l.type==="dot"){l.value==="."&&(l.output=m);let d=W[W.length-1];l.type="dots",l.output+=c,l.value+=c,d.dots=!0;continue}if(u.braces+u.parens===0&&l.type!=="bos"&&l.type!=="slash"){S({type:"text",value:c,output:m});continue}S({type:"dot",value:c,output:m});continue}if(c==="?"){if(!(l&&l.value==="(")&&r.noextglob!==!0&&G()==="("&&G(2)!=="?"){we("qmark",c);continue}if(l&&l.type==="paren"){let v=G(),I=c;if(v==="<"&&!V.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(l.value==="("&&!/[!=<:]/.test(v)||v==="<"&&!/<([!=]|\w+>)/.test(re()))&&(I=`\\${c}`),S({type:"text",value:c,output:I});continue}if(r.dot!==!0&&(l.type==="slash"||l.type==="bos")){S({type:"qmark",value:c,output:E});continue}S({type:"qmark",value:c,output:k});continue}if(c==="!"){if(r.noextglob!==!0&&G()==="("&&(G(2)!=="?"||!/[!=<:]/.test(G(3)))){we("negate",c);continue}if(r.nonegate!==!0&&u.index===0){xr();continue}}if(c==="+"){if(r.noextglob!==!0&&G()==="("&&G(2)!=="?"){we("plus",c);continue}if(l&&l.value==="("||r.regex===!1){S({type:"plus",value:c,output:p});continue}if(l&&(l.type==="bracket"||l.type==="paren"||l.type==="brace")||u.parens>0){S({type:"plus",value:c});continue}S({type:"plus",value:p});continue}if(c==="@"){if(r.noextglob!==!0&&G()==="("&&G(2)!=="?"){S({type:"at",extglob:!0,value:c,output:""});continue}S({type:"text",value:c});continue}if(c!=="*"){(c==="$"||c==="^")&&(c=`\\${c}`);let d=qn.exec(re());d&&(c+=d[0],u.index+=d[0].length),S({type:"text",value:c});continue}if(l&&(l.type==="globstar"||l.star===!0)){l.type="star",l.star=!0,l.value+=c,l.output=$,u.backtrack=!0,u.globstar=!0,ie(c);continue}let g=re();if(r.noextglob!==!0&&/^\([^?]/.test(g)){we("star",c);continue}if(l.type==="star"){if(r.noglobstar===!0){ie(c);continue}let d=l.prev,v=d.prev,I=d.type==="slash"||d.type==="bos",F=v&&(v.type==="star"||v.type==="globstar");if(r.bash===!0&&(!I||g[0]&&g[0]!=="/")){S({type:"star",value:c,output:""});continue}let U=u.braces>0&&(d.type==="comma"||d.type==="brace"),Me=w.length&&(d.type==="pipe"||d.type==="paren");if(!I&&d.type!=="paren"&&!U&&!Me){S({type:"star",value:c,output:""});continue}for(;g.slice(0,3)==="/**";){let Se=e[u.index+4];if(Se&&Se!=="/")break;g=g.slice(3),ie("/**",3)}if(d.type==="bos"&&D()){l.type="globstar",l.value+=c,l.output=y(r),u.output=l.output,u.globstar=!0,ie(c);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!F&&D()){u.output=u.output.slice(0,-(d.output+l.output).length),d.output=`(?:${d.output}`,l.type="globstar",l.output=y(r)+(r.strictSlashes?")":"|$)"),l.value+=c,u.globstar=!0,u.output+=d.output+l.output,ie(c);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&g[0]==="/"){let Se=g[1]!==void 0?"|$":"";u.output=u.output.slice(0,-(d.output+l.output).length),d.output=`(?:${d.output}`,l.type="globstar",l.output=`${y(r)}${H}|${H}${Se})`,l.value+=c,u.output+=d.output+l.output,u.globstar=!0,ie(c+te()),S({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&g[0]==="/"){l.type="globstar",l.value+=c,l.output=`(?:^|${H}|${y(r)}${H})`,u.output=l.output,u.globstar=!0,ie(c+te()),S({type:"slash",value:"/",output:""});continue}u.output=u.output.slice(0,-l.output.length),l.type="globstar",l.output=y(r),l.value+=c,u.output+=l.output,u.globstar=!0,ie(c);continue}let L={type:"star",value:c,output:$};if(r.bash===!0){L.output=".*?",(l.type==="bos"||l.type==="slash")&&(L.output=x+L.output),S(L);continue}if(l&&(l.type==="bracket"||l.type==="paren")&&r.regex===!0){L.output=c,S(L);continue}(u.index===u.start||l.type==="slash"||l.type==="dot")&&(l.type==="dot"?(u.output+=C,l.output+=C):r.dot===!0?(u.output+=T,l.output+=T):(u.output+=x,l.output+=x),G()!=="*"&&(u.output+=_,l.output+=_)),S(L)}for(;u.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u.output=V.escapeLast(u.output,"["),ce("brackets")}for(;u.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing",")"));u.output=V.escapeLast(u.output,"("),ce("parens")}for(;u.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(de("closing","}"));u.output=V.escapeLast(u.output,"{"),ce("braces")}if(r.strictSlashes!==!0&&(l.type==="star"||l.type==="bracket")&&S({type:"maybe_slash",value:"",output:`${H}?`}),u.backtrack===!0){u.output="";for(let g of u.tokens)u.output+=g.output!=null?g.output:g.value,g.suffix&&(u.output+=g.suffix)}return u};nr.fastpaths=(e,t)=>{let r=N({},t),n=typeof r.maxLength=="number"?Math.min(Oe,r.maxLength):Oe,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=rr[e]||e;let a=V.isWindows(t),{DOT_LITERAL:i,SLASH_LITERAL:o,ONE_CHAR:h,DOTS_SLASH:A,NO_DOT:f,NO_DOTS:m,NO_DOTS_SLASH:p,STAR:H,START_ANCHOR:_}=Le.globChars(a),R=r.dot?m:f,b=r.dot?p:f,C=r.capture?"":"?:",T={negated:!1,prefix:""},k=r.bash===!0?".*?":H;r.capture&&(k=`(${k})`);let E=x=>x.noglobstar===!0?k:`(${C}(?:(?!${_}${x.dot?A:i}).)*?)`,ee=x=>{switch(x){case"*":return`${R}${h}${k}`;case".*":return`${i}${h}${k}`;case"*.*":return`${R}${k}${i}${h}${k}`;case"*/*":return`${R}${k}${o}${h}${b}${k}`;case"**":return R+E(r);case"**/*":return`(?:${R}${E(r)}${o})?${b}${h}${k}`;case"**/*.*":return`(?:${R}${E(r)}${o})?${b}${k}${i}${h}${k}`;case"**/.*":return`(?:${R}${E(r)}${o})?${i}${h}${k}`;default:{let M=/^(.*?)\.(\w+)$/.exec(x);if(!M)return;let $=ee(M[1]);return $?$+i+M[2]:void 0}}},j=V.removePrefix(e,T),y=ee(j);return y&&r.strictSlashes!==!0&&(y+=`${o}?`),y};tr.exports=nr});var ir=q((Rs,ar)=>{"use strict";var jn=require("path"),Fn=er(),Ze=sr(),Ye=ye(),Qn=Re(),Xn=e=>e&&typeof e=="object"&&!Array.isArray(e),B=(e,t,r=!1)=>{if(Array.isArray(e)){let f=e.map(p=>B(p,t,r));return p=>{for(let H of f){let _=H(p);if(_)return _}return!1}}let n=Xn(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=t||{},a=Ye.isWindows(t),i=n?B.compileRe(e,t):B.makeRe(e,t,!1,!0),o=i.state;delete i.state;let h=()=>!1;if(s.ignore){let f=Q(N({},t),{ignore:null,onMatch:null,onResult:null});h=B(s.ignore,f,r)}let A=(f,m=!1)=>{let{isMatch:p,match:H,output:_}=B.test(f,i,t,{glob:e,posix:a}),R={glob:e,state:o,regex:i,posix:a,input:f,output:_,match:H,isMatch:p};return typeof s.onResult=="function"&&s.onResult(R),p===!1?(R.isMatch=!1,m?R:!1):h(f)?(typeof s.onIgnore=="function"&&s.onIgnore(R),R.isMatch=!1,m?R:!1):(typeof s.onMatch=="function"&&s.onMatch(R),m?R:!0)};return r&&(A.state=o),A};B.test=(e,t,r,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let a=r||{},i=a.format||(s?Ye.toPosixSlashes:null),o=e===n,h=o&&i?i(e):e;return o===!1&&(h=i?i(e):e,o=h===n),(o===!1||a.capture===!0)&&(a.matchBase===!0||a.basename===!0?o=B.matchBase(e,t,r,s):o=t.exec(h)),{isMatch:Boolean(o),match:o,output:h}};B.matchBase=(e,t,r,n=Ye.isWindows(r))=>(t instanceof RegExp?t:B.makeRe(t,r)).test(jn.basename(e));B.isMatch=(e,t,r)=>B(t,r)(e);B.parse=(e,t)=>Array.isArray(e)?e.map(r=>B.parse(r,t)):Ze(e,Q(N({},t),{fastpaths:!1}));B.scan=(e,t)=>Fn(e,t);B.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let s=t||{},a=s.contains?"":"^",i=s.contains?"":"$",o=`${a}(?:${e.output})${i}`;e&&e.negated===!0&&(o=`^(?!${o}).*$`);let h=B.toRegex(o,t);return n===!0&&(h.state=e),h};B.makeRe=(e,t,r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s=t||{},a={negated:!1,fastpaths:!0},i="",o;return e.startsWith("./")&&(e=e.slice(2),i=a.prefix="./"),s.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(o=Ze.fastpaths(e,t)),o===void 0?(a=Ze(e,t),a.prefix=i+(a.prefix||"")):a.output=o,B.compileRe(a,t,r,n)};B.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};B.constants=Qn;ar.exports=B});var ur=q((ys,or)=>{"use strict";or.exports=ir()});var hr=q((_s,cr)=>{"use strict";var lr=require("util"),pr=Gt(),ae=ur(),ze=ye(),fr=e=>typeof e=="string"&&(e===""||e==="./"),O=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,s=new Set,a=new Set,i=0,o=f=>{a.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f!n.has(f));if(r&&A.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(f=>f.replace(/\\/g,"")):t}return A};O.match=O;O.matcher=(e,t)=>ae(e,t);O.isMatch=(e,t,r)=>ae(t,r)(e);O.any=O.isMatch;O.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,s=[],a=o=>{r.onResult&&r.onResult(o),s.push(o.output)},i=O(e,t,Q(N({},r),{onResult:a}));for(let o of s)i.includes(o)||n.add(o);return[...n]};O.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>O.contains(e,n,r));if(typeof t=="string"){if(fr(e)||fr(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return O.isMatch(e,t,Q(N({},r),{contains:!0}))};O.matchKeys=(e,t,r)=>{if(!ze.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=O(Object.keys(e),t,r),s={};for(let a of n)s[a]=e[a];return s};O.some=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=ae(String(s),r);if(n.some(i=>a(i)))return!0}return!1};O.every=(e,t,r)=>{let n=[].concat(e);for(let s of[].concat(t)){let a=ae(String(s),r);if(!n.every(i=>a(i)))return!1}return!0};O.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${lr.inspect(e)}"`);return[].concat(t).every(n=>ae(n,r)(e))};O.capture=(e,t,r)=>{let n=ze.isWindows(r),a=ae.makeRe(String(e),Q(N({},r),{capture:!0})).exec(n?ze.toPosixSlashes(t):t);if(a)return a.slice(1).map(i=>i===void 0?"":i)};O.makeRe=(...e)=>ae.makeRe(...e);O.scan=(...e)=>ae.scan(...e);O.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let s of pr(String(n),t))r.push(ae.parse(s,t));return r};O.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!/\{.*\}/.test(e)?[e]:pr(e,t)};O.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return O.braces(e,Q(N({},t),{expand:!0}))};cr.exports=O});var gr=q((Es,dr)=>{"use strict";dr.exports=(e,...t)=>new Promise(r=>{r(e(...t))})});var mr=q((xs,Ve)=>{"use strict";var Zn=gr(),Ar=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},s=(o,h,...A)=>{r++;let f=Zn(o,...A);h(f),f.then(n,n)},a=(o,h,...A)=>{rnew Promise(A=>a(o,A,...h));return Object.defineProperties(i,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length}}),i};Ve.exports=Ar;Ve.exports.default=Ar});var zn={};Lr(zn,{default:()=>Jn});var ve=Y(require("@yarnpkg/cli")),ne=Y(require("@yarnpkg/core")),rt=Y(require("@yarnpkg/core")),le=Y(require("clipanion")),Ae=class extends ve.BaseCommand{constructor(){super(...arguments);this.json=le.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=le.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=le.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=le.Option.Rest()}async execute(){let t=await ne.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await ne.Project.find(t,this.context.cwd),s=await ne.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new ve.WorkspaceRequiredError(r.cwd,this.context.cwd);a=new Set([n])}else a=new Set(this.workspaces.map(o=>r.getWorkspaceByIdent(rt.structUtils.parseIdent(o))));for(let o of a)for(let h of this.production?["dependencies"]:ne.Manifest.hardDependencies)for(let A of o.manifest.getForScope(h).values()){let f=r.tryWorkspaceByDescriptor(A);f!==null&&a.add(f)}for(let o of r.workspaces)a.has(o)?this.production&&o.manifest.devDependencies.clear():(o.manifest.dependencies.clear(),o.manifest.devDependencies.clear(),o.manifest.peerDependencies.clear(),o.manifest.scripts.clear());return(await ne.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async o=>{await r.install({cache:s,report:o,persistProject:!1})})).exitCode()}};Ae.paths=[["workspaces","focus"]],Ae.usage=le.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var nt=Ae;var Ne=Y(require("@yarnpkg/cli")),Ie=Y(require("@yarnpkg/core")),Ee=Y(require("@yarnpkg/core")),Z=Y(require("@yarnpkg/core")),K=Y(require("clipanion")),Be=Y(hr()),Rr=Y(require("os")),yr=Y(mr()),ue=Y(require("typanion")),xe=class extends Ne.BaseCommand{constructor(){super(...arguments);this.recursive=K.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=K.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=K.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=K.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=K.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=K.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=K.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to",validator:ue.applyCascade(ue.isNumber(),[ue.isInteger(),ue.isAtLeast(2)])});this.topological=K.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=K.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=K.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=K.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=K.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.commandName=K.Option.String();this.args=K.Option.Proxy()}async execute(){let t=await Ie.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ie.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new Ne.WorkspaceRequiredError(r.cwd,this.context.cwd);let s=this.cli.process([this.commandName,...this.args]),a=s.path.length===1&&s.path[0]==="run"&&typeof s.scriptName!="undefined"?s.scriptName:null;if(s.path.length===0)throw new K.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let i=this.all?r.topLevelWorkspace:n,o=E=>Be.default.isMatch(Z.structUtils.stringifyIdent(E.locator),this.from),h=this.from.length>0?[i,...i.getRecursiveWorkspaceChildren()].filter(o):[i],A=this.recursive?[...h,...h.map(E=>[...E.getRecursiveWorkspaceDependencies()]).flat()]:[...h,...h.map(E=>[...E.getRecursiveWorkspaceChildren()]).flat()],f=[];for(let E of A)a&&!E.manifest.scripts.has(a)&&!a.includes(":")||a===process.env.npm_lifecycle_event&&E.cwd===n.cwd||this.include.length>0&&!Be.default.isMatch(Z.structUtils.stringifyIdent(E.locator),this.include)||this.exclude.length>0&&Be.default.isMatch(Z.structUtils.stringifyIdent(E.locator),this.exclude)||this.publicOnly&&E.manifest.private===!0||f.push(E);let m=this.interlaced;this.parallel||(m=!0);let p=new Map,H=new Set,_=this.parallel?Math.max(1,(0,Rr.cpus)().length/2):1,R=(0,yr.default)(this.jobs||_),b=0,C=null,T=!1,k=await Ee.StreamReport.start({configuration:t,stdout:this.context.stdout},async E=>{let ee=async(j,{commandIndex:y})=>{if(T)return-1;!this.parallel&&this.verbose&&y>1&&E.reportSeparator();let x=Yn(j,{configuration:t,verbose:this.verbose,commandIndex:y}),[M,$]=_r(E,{prefix:x,interlaced:m}),[u,w]=_r(E,{prefix:x,interlaced:m});try{this.verbose&&E.reportInfo(null,`${x} Process started`);let W=Date.now(),P=await this.cli.run([this.commandName,...this.args],{cwd:j.cwd,stdout:M,stderr:u})||0;M.end(),u.end(),await $,await w;let l=Date.now();if(this.verbose){let c=t.get("enableTimers")?`, completed in ${Z.formatUtils.pretty(t,l-W,Z.formatUtils.Type.DURATION)}`:"";E.reportInfo(null,`${x} Process exited (exit code ${P})${c}`)}return P===130&&(T=!0,C=P),P}catch(W){throw M.end(),u.end(),await $,await w,W}};for(let j of f)p.set(j.anchoredLocator.locatorHash,j);for(;p.size>0&&!E.hasErrors();){let j=[];for(let[M,$]of p){if(H.has($.anchoredDescriptor.descriptorHash))continue;let u=!0;if(this.topological||this.topologicalDev){let w=this.topologicalDev?new Map([...$.manifest.dependencies,...$.manifest.devDependencies]):$.manifest.dependencies;for(let W of w.values()){let P=r.tryWorkspaceByDescriptor(W);if(u=P===null||!p.has(P.anchoredLocator.locatorHash),!u)break}}if(!!u&&(H.add($.anchoredDescriptor.descriptorHash),j.push(R(async()=>{let w=await ee($,{commandIndex:++b});return p.delete(M),H.delete($.anchoredDescriptor.descriptorHash),w})),!this.parallel))break}if(j.length===0){let M=Array.from(p.values()).map($=>Z.structUtils.prettyLocator(t,$.anchoredLocator)).join(", ");E.reportError(Ee.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${M})`);return}let x=(await Promise.all(j)).find(M=>M!==0);C===null&&(C=typeof x!="undefined"?1:C),(this.topological||this.topologicalDev)&&typeof x!="undefined"&&E.reportError(Ee.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return C!==null?C:k.exitCode()}};xe.paths=[["workspaces","foreach"]],xe.usage=K.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});var Er=xe;function _r(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),s=new Z.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let a=new Promise(o=>{n.on("finish",()=>{o(s.active)})});if(r)return[s,a];let i=new Z.miscUtils.BufferStream;return i.pipe(s,{end:!1}),i.on("finish",()=>{s.end()}),[i,a]}function Yn(e,{configuration:t,commandIndex:r,verbose:n}){if(!n)return null;let s=Z.structUtils.convertToIdent(e.locator),i=`[${Z.structUtils.stringifyIdent(s)}]:`,o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],h=o[r%o.length];return Z.formatUtils.pretty(t,i,h)}var Vn={commands:[nt,Er]},Jn=Vn;return zn;})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +return plugin; +} +}; diff --git a/.yarn/releases/yarn-3.2.3.cjs b/.yarn/releases/yarn-3.2.3.cjs new file mode 100755 index 000000000..12bde0351 --- /dev/null +++ b/.yarn/releases/yarn-3.2.3.cjs @@ -0,0 +1,783 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var age=Object.create,Uh=Object.defineProperty,Age=Object.defineProperties,lge=Object.getOwnPropertyDescriptor,cge=Object.getOwnPropertyDescriptors,uge=Object.getOwnPropertyNames,RE=Object.getOwnPropertySymbols,gge=Object.getPrototypeOf,tQ=Object.prototype.hasOwnProperty,HO=Object.prototype.propertyIsEnumerable;var jO=(r,e,t)=>e in r?Uh(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,N=(r,e)=>{for(var t in e||(e={}))tQ.call(e,t)&&jO(r,t,e[t]);if(RE)for(var t of RE(e))HO.call(e,t)&&jO(r,t,e[t]);return r},te=(r,e)=>Age(r,cge(e)),fge=r=>Uh(r,"__esModule",{value:!0});var Or=(r,e)=>{var t={};for(var i in r)tQ.call(r,i)&&e.indexOf(i)<0&&(t[i]=r[i]);if(r!=null&&RE)for(var i of RE(r))e.indexOf(i)<0&&HO.call(r,i)&&(t[i]=r[i]);return t},hge=(r,e)=>()=>(r&&(e=r(r=0)),e),w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ft=(r,e)=>{for(var t in e)Uh(r,t,{get:e[t],enumerable:!0})},pge=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of uge(e))!tQ.call(r,i)&&i!=="default"&&Uh(r,i,{get:()=>e[i],enumerable:!(t=lge(e,i))||t.enumerable});return r},ge=r=>pge(fge(Uh(r!=null?age(gge(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var hM=w((s7e,cM)=>{cM.exports=uM;uM.sync=Dge;var gM=require("fs");function Rge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{pM.exports=dM;dM.sync=Fge;var CM=require("fs");function dM(r,e,t){CM.stat(r,function(i,n){t(i,i?!1:mM(n,e))})}function Fge(r,e){return mM(CM.statSync(r),e)}function mM(r,e){return r.isFile()&&Nge(r,e)}function Nge(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var yM=w((A7e,IM)=>{var a7e=require("fs"),_E;process.platform==="win32"||global.TESTING_WINDOWS?_E=hM():_E=EM();IM.exports=mQ;mQ.sync=Lge;function mQ(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){mQ(r,e||{},function(s,o){s?n(s):i(o)})})}_E(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function Lge(r,e){try{return _E.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var kM=w((l7e,wM)=>{var Zu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",BM=require("path"),Tge=Zu?";":":",bM=yM(),QM=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),SM=(r,e)=>{let t=e.colon||Tge,i=r.match(/\//)||Zu&&r.match(/\\/)?[""]:[...Zu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Zu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Zu?n.split(t):[""];return Zu&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},vM=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=SM(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(QM(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=BM.join(h,r),m=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(m,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];bM(c+p,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Oge=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=SM(r,e),s=[];for(let o=0;o{"use strict";var xM=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};EQ.exports=xM;EQ.exports.default=xM});var NM=w((u7e,DM)=>{"use strict";var RM=require("path"),Mge=kM(),Uge=PM();function FM(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch(a){}let o;try{o=Mge.sync(r.command,{path:t[Uge({env:t})],pathExt:e?RM.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=RM.resolve(n?r.options.cwd:"",o)),o}function Kge(r){return FM(r)||FM(r,!0)}DM.exports=Kge});var LM=w((g7e,IQ)=>{"use strict";var yQ=/([()\][%!^"`<>&|;, *?])/g;function Hge(r){return r=r.replace(yQ,"^$1"),r}function jge(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(yQ,"^$1"),e&&(r=r.replace(yQ,"^$1")),r}IQ.exports.command=Hge;IQ.exports.argument=jge});var OM=w((f7e,TM)=>{"use strict";TM.exports=/^#!(.*)/});var UM=w((h7e,MM)=>{"use strict";var Gge=OM();MM.exports=(r="")=>{let e=r.match(Gge);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var HM=w((p7e,KM)=>{"use strict";var wQ=require("fs"),Yge=UM();function qge(r){let e=150,t=Buffer.alloc(e),i;try{i=wQ.openSync(r,"r"),wQ.readSync(i,t,0,e,0),wQ.closeSync(i)}catch(n){}return Yge(t.toString())}KM.exports=qge});var qM=w((d7e,jM)=>{"use strict";var Jge=require("path"),GM=NM(),YM=LM(),Wge=HM(),zge=process.platform==="win32",_ge=/\.(?:com|exe)$/i,Vge=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Xge(r){r.file=GM(r);let e=r.file&&Wge(r.file);return e?(r.args.unshift(r.file),r.command=e,GM(r)):r.file}function Zge(r){if(!zge)return r;let e=Xge(r),t=!_ge.test(e);if(r.options.forceShell||t){let i=Vge.test(e);r.command=Jge.normalize(r.command),r.command=YM.command(r.command),r.args=r.args.map(s=>YM.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function $ge(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Zge(i)}jM.exports=$ge});var zM=w((C7e,JM)=>{"use strict";var BQ=process.platform==="win32";function bQ(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function efe(r,e){if(!BQ)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=WM(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function WM(r,e){return BQ&&r===1&&!e.file?bQ(e.original,"spawn"):null}function tfe(r,e){return BQ&&r===1&&!e.file?bQ(e.original,"spawnSync"):null}JM.exports={hookChildProcess:efe,verifyENOENT:WM,verifyENOENTSync:tfe,notFoundError:bQ}});var vQ=w((m7e,$u)=>{"use strict";var _M=require("child_process"),QQ=qM(),SQ=zM();function VM(r,e,t){let i=QQ(r,e,t),n=_M.spawn(i.command,i.args,i.options);return SQ.hookChildProcess(n,i),n}function rfe(r,e,t){let i=QQ(r,e,t),n=_M.spawnSync(i.command,i.args,i.options);return n.error=n.error||SQ.verifyENOENTSync(n.status,i),n}$u.exports=VM;$u.exports.spawn=VM;$u.exports.sync=rfe;$u.exports._parse=QQ;$u.exports._enoent=SQ});var ZM=w((E7e,XM)=>{"use strict";function ife(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function uc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,uc)}ife(uc,Error);uc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",le=me(">>",!1),fe=">&",gt=me(">&",!1),Ht=">",Mt=me(">",!1),Ei="<<<",jt=me("<<<",!1),Qr="<&",Oi=me("<&",!1),$s="<",Hn=me("<",!1),jn=function(C){return{type:"argument",segments:[].concat(...C)}},Sr=function(C){return C},Gn="$'",fs=me("$'",!1),Qa="'",RA=me("'",!1),Lu=function(C){return[{type:"text",text:C}]},hs='""',FA=me('""',!1),Sa=function(){return{type:"text",text:""}},Tu='"',NA=me('"',!1),LA=function(C){return C},vr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},_l=function(C){return{type:"shell",shell:C,quoted:!0}},Ou=function(C){return te(N({type:"variable"},C),{quoted:!0})},Po=function(C){return{type:"text",text:C}},Mu=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},vh=function(C){return{type:"shell",shell:C,quoted:!1}},kh=function(C){return te(N({type:"variable"},C),{quoted:!1})},Dr=function(C){return{type:"glob",pattern:C}},Ae=/^[^']/,Do=_e(["'"],!0,!1),Yn=function(C){return C.join("")},Uu=/^[^$"]/,St=_e(["$",'"'],!0,!1),Vl=`\\ +`,qn=me(`\\ +`,!1),ps=function(){return""},ds="\\",pt=me("\\",!1),Ro=/^[\\$"`]/,lt=_e(["\\","$",'"',"`"],!1,!1),mn=function(C){return C},S="\\a",Tt=me("\\a",!1),Ku=function(){return"a"},Xl="\\b",xh=me("\\b",!1),Ph=function(){return"\b"},Dh=/^[Ee]/,Rh=_e(["E","e"],!1,!1),Fh=function(){return""},j="\\f",wt=me("\\f",!1),TA=function(){return"\f"},$i="\\n",Zl=me("\\n",!1),$e=function(){return` +`},va="\\r",Hu=me("\\r",!1),wE=function(){return"\r"},Nh="\\t",BE=me("\\t",!1),gr=function(){return" "},Jn="\\v",$l=me("\\v",!1),Lh=function(){return"\v"},eo=/^[\\'"?]/,ka=_e(["\\","'",'"',"?"],!1,!1),En=function(C){return String.fromCharCode(parseInt(C,16))},Oe="\\x",ju=me("\\x",!1),ec="\\u",to=me("\\u",!1),tc="\\U",OA=me("\\U",!1),Gu=function(C){return String.fromCodePoint(parseInt(C,16))},Yu=/^[0-7]/,xa=_e([["0","7"]],!1,!1),Pa=/^[0-9a-fA-f]/,nt=_e([["0","9"],["a","f"],["A","f"]],!1,!1),Fo=ot(),MA="-",rc=me("-",!1),ro="+",ic=me("+",!1),bE=".",Th=me(".",!1),qu=function(C,Q,F){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+F.join(""))}},Oh=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},QE=function(C){return N({type:"variable"},C)},nc=function(C){return{type:"variable",name:C}},SE=function(C){return C},Ju="*",UA=me("*",!1),Tr="/",vE=me("/",!1),io=function(C,Q,F){return{type:Q==="*"?"multiplication":"division",right:F}},no=function(C,Q){return Q.reduce((F,K)=>N({left:F},K),C)},Wu=function(C,Q,F){return{type:Q==="+"?"addition":"subtraction",right:F}},KA="$((",R=me("$((",!1),G="))",Ce=me("))",!1),je=function(C){return C},Te="$(",Xe=me("$(",!1),Et=function(C){return C},Rt="${",Wn=me("${",!1),Mb=":-",fO=me(":-",!1),hO=function(C,Q){return{name:C,defaultValue:Q}},Ub=":-}",pO=me(":-}",!1),dO=function(C){return{name:C,defaultValue:[]}},Kb=":+",CO=me(":+",!1),mO=function(C,Q){return{name:C,alternativeValue:Q}},Hb=":+}",EO=me(":+}",!1),IO=function(C){return{name:C,alternativeValue:[]}},jb=function(C){return{name:C}},yO="$",wO=me("$",!1),BO=function(C){return e.isGlobPattern(C)},bO=function(C){return C},Gb=/^[a-zA-Z0-9_]/,Yb=_e([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),qb=function(){return M()},Jb=/^[$@*?#a-zA-Z0-9_\-]/,Wb=_e(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),QO=/^[(){}<>$|&; \t"']/,zu=_e(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),zb=/^[<>&; \t"']/,_b=_e(["<",">","&",";"," "," ",'"',"'"],!1,!1),kE=/^[ \t]/,xE=_e([" "," "],!1,!1),B=0,Ke=0,HA=[{line:1,column:1}],d=0,E=[],I=0,D;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function M(){return r.substring(Ke,B)}function _(){return yt(Ke,B)}function ie(C,Q){throw Q=Q!==void 0?Q:yt(Ke,B),Mi([ut(C)],r.substring(Ke,B),Q)}function we(C,Q){throw Q=Q!==void 0?Q:yt(Ke,B),zn(C,Q)}function me(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function _e(C,Q,F){return{type:"class",parts:C,inverted:Q,ignoreCase:F}}function ot(){return{type:"any"}}function Bt(){return{type:"end"}}function ut(C){return{type:"other",description:C}}function st(C){var Q=HA[C],F;if(Q)return Q;for(F=C-1;!HA[F];)F--;for(Q=HA[F],Q={line:Q.line,column:Q.column};Fd&&(d=B,E=[]),E.push(C))}function zn(C,Q){return new uc(C,null,null,Q)}function Mi(C,Q,F){return new uc(uc.buildMessage(C,Q),C,Q,F)}function jA(){var C,Q;return C=B,Q=Yr(),Q===t&&(Q=null),Q!==t&&(Ke=C,Q=s(Q)),C=Q,C}function Yr(){var C,Q,F,K,ue;if(C=B,Q=qr(),Q!==t){for(F=[],K=qe();K!==t;)F.push(K),K=qe();F!==t?(K=Da(),K!==t?(ue=Cs(),ue===t&&(ue=null),ue!==t?(Ke=C,Q=o(Q,K,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;if(C===t)if(C=B,Q=qr(),Q!==t){for(F=[],K=qe();K!==t;)F.push(K),K=qe();F!==t?(K=Da(),K===t&&(K=null),K!==t?(Ke=C,Q=a(Q,K),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;return C}function Cs(){var C,Q,F,K,ue;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t)if(F=Yr(),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();K!==t?(Ke=C,Q=l(F),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;return C}function Da(){var C;return r.charCodeAt(B)===59?(C=c,B++):(C=t,I===0&&ke(u)),C===t&&(r.charCodeAt(B)===38?(C=g,B++):(C=t,I===0&&ke(f))),C}function qr(){var C,Q,F;return C=B,Q=SO(),Q!==t?(F=Yue(),F===t&&(F=null),F!==t?(Ke=C,Q=h(Q,F),C=Q):(B=C,C=t)):(B=C,C=t),C}function Yue(){var C,Q,F,K,ue,De,Ct;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t)if(F=que(),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();if(K!==t)if(ue=qr(),ue!==t){for(De=[],Ct=qe();Ct!==t;)De.push(Ct),Ct=qe();De!==t?(Ke=C,Q=p(F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;return C}function que(){var C;return r.substr(B,2)===m?(C=m,B+=2):(C=t,I===0&&ke(y)),C===t&&(r.substr(B,2)===b?(C=b,B+=2):(C=t,I===0&&ke(v))),C}function SO(){var C,Q,F;return C=B,Q=zue(),Q!==t?(F=Jue(),F===t&&(F=null),F!==t?(Ke=C,Q=k(Q,F),C=Q):(B=C,C=t)):(B=C,C=t),C}function Jue(){var C,Q,F,K,ue,De,Ct;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t)if(F=Wue(),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();if(K!==t)if(ue=SO(),ue!==t){for(De=[],Ct=qe();Ct!==t;)De.push(Ct),Ct=qe();De!==t?(Ke=C,Q=T(F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;return C}function Wue(){var C;return r.substr(B,2)===Y?(C=Y,B+=2):(C=t,I===0&&ke(q)),C===t&&(r.charCodeAt(B)===124?(C=$,B++):(C=t,I===0&&ke(z))),C}function PE(){var C,Q,F,K,ue,De;if(C=B,Q=MO(),Q!==t)if(r.charCodeAt(B)===61?(F=ne,B++):(F=t,I===0&&ke(ee)),F!==t)if(K=xO(),K!==t){for(ue=[],De=qe();De!==t;)ue.push(De),De=qe();ue!==t?(Ke=C,Q=A(Q,K),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;else B=C,C=t;if(C===t)if(C=B,Q=MO(),Q!==t)if(r.charCodeAt(B)===61?(F=ne,B++):(F=t,I===0&&ke(ee)),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();K!==t?(Ke=C,Q=oe(Q),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t;return C}function zue(){var C,Q,F,K,ue,De,Ct,bt,$r,Ii,ms;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t)if(r.charCodeAt(B)===40?(F=ce,B++):(F=t,I===0&&ke(Z)),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();if(K!==t)if(ue=Yr(),ue!==t){for(De=[],Ct=qe();Ct!==t;)De.push(Ct),Ct=qe();if(De!==t)if(r.charCodeAt(B)===41?(Ct=O,B++):(Ct=t,I===0&&ke(L)),Ct!==t){for(bt=[],$r=qe();$r!==t;)bt.push($r),$r=qe();if(bt!==t){for($r=[],Ii=Mh();Ii!==t;)$r.push(Ii),Ii=Mh();if($r!==t){for(Ii=[],ms=qe();ms!==t;)Ii.push(ms),ms=qe();Ii!==t?(Ke=C,Q=de(ue,$r),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;if(C===t){for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t)if(r.charCodeAt(B)===123?(F=Be,B++):(F=t,I===0&&ke(Ge)),F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();if(K!==t)if(ue=Yr(),ue!==t){for(De=[],Ct=qe();Ct!==t;)De.push(Ct),Ct=qe();if(De!==t)if(r.charCodeAt(B)===125?(Ct=re,B++):(Ct=t,I===0&&ke(se)),Ct!==t){for(bt=[],$r=qe();$r!==t;)bt.push($r),$r=qe();if(bt!==t){for($r=[],Ii=Mh();Ii!==t;)$r.push(Ii),Ii=Mh();if($r!==t){for(Ii=[],ms=qe();ms!==t;)Ii.push(ms),ms=qe();Ii!==t?(Ke=C,Q=be(ue,$r),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t}else B=C,C=t;else B=C,C=t;if(C===t){for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t){for(F=[],K=PE();K!==t;)F.push(K),K=PE();if(F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();if(K!==t){if(ue=[],De=kO(),De!==t)for(;De!==t;)ue.push(De),De=kO();else ue=t;if(ue!==t){for(De=[],Ct=qe();Ct!==t;)De.push(Ct),Ct=qe();De!==t?(Ke=C,Q=he(F,ue),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}else B=C,C=t}else B=C,C=t;if(C===t){for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t){if(F=[],K=PE(),K!==t)for(;K!==t;)F.push(K),K=PE();else F=t;if(F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();K!==t?(Ke=C,Q=Fe(F),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t}}}return C}function vO(){var C,Q,F,K,ue;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t){if(F=[],K=DE(),K!==t)for(;K!==t;)F.push(K),K=DE();else F=t;if(F!==t){for(K=[],ue=qe();ue!==t;)K.push(ue),ue=qe();K!==t?(Ke=C,Q=Ue(F),C=Q):(B=C,C=t)}else B=C,C=t}else B=C,C=t;return C}function kO(){var C,Q,F;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();if(Q!==t?(F=Mh(),F!==t?(Ke=C,Q=xe(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t){for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();Q!==t?(F=DE(),F!==t?(Ke=C,Q=xe(F),C=Q):(B=C,C=t)):(B=C,C=t)}return C}function Mh(){var C,Q,F,K,ue;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();return Q!==t?(ve.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(pe)),F===t&&(F=null),F!==t?(K=_ue(),K!==t?(ue=DE(),ue!==t?(Ke=C,Q=V(F,K,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function _ue(){var C;return r.substr(B,2)===Qe?(C=Qe,B+=2):(C=t,I===0&&ke(le)),C===t&&(r.substr(B,2)===fe?(C=fe,B+=2):(C=t,I===0&&ke(gt)),C===t&&(r.charCodeAt(B)===62?(C=Ht,B++):(C=t,I===0&&ke(Mt)),C===t&&(r.substr(B,3)===Ei?(C=Ei,B+=3):(C=t,I===0&&ke(jt)),C===t&&(r.substr(B,2)===Qr?(C=Qr,B+=2):(C=t,I===0&&ke(Oi)),C===t&&(r.charCodeAt(B)===60?(C=$s,B++):(C=t,I===0&&ke(Hn))))))),C}function DE(){var C,Q,F;for(C=B,Q=[],F=qe();F!==t;)Q.push(F),F=qe();return Q!==t?(F=xO(),F!==t?(Ke=C,Q=xe(F),C=Q):(B=C,C=t)):(B=C,C=t),C}function xO(){var C,Q,F;if(C=B,Q=[],F=PO(),F!==t)for(;F!==t;)Q.push(F),F=PO();else Q=t;return Q!==t&&(Ke=C,Q=jn(Q)),C=Q,C}function PO(){var C,Q;return C=B,Q=Vue(),Q!==t&&(Ke=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=Xue(),Q!==t&&(Ke=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=Zue(),Q!==t&&(Ke=C,Q=Sr(Q)),C=Q,C===t&&(C=B,Q=$ue(),Q!==t&&(Ke=C,Q=Sr(Q)),C=Q))),C}function Vue(){var C,Q,F,K;return C=B,r.substr(B,2)===Gn?(Q=Gn,B+=2):(Q=t,I===0&&ke(fs)),Q!==t?(F=rge(),F!==t?(r.charCodeAt(B)===39?(K=Qa,B++):(K=t,I===0&&ke(RA)),K!==t?(Ke=C,Q=Lu(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function Xue(){var C,Q,F,K;return C=B,r.charCodeAt(B)===39?(Q=Qa,B++):(Q=t,I===0&&ke(RA)),Q!==t?(F=ege(),F!==t?(r.charCodeAt(B)===39?(K=Qa,B++):(K=t,I===0&&ke(RA)),K!==t?(Ke=C,Q=Lu(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function Zue(){var C,Q,F,K;if(C=B,r.substr(B,2)===hs?(Q=hs,B+=2):(Q=t,I===0&&ke(FA)),Q!==t&&(Ke=C,Q=Sa()),C=Q,C===t)if(C=B,r.charCodeAt(B)===34?(Q=Tu,B++):(Q=t,I===0&&ke(NA)),Q!==t){for(F=[],K=DO();K!==t;)F.push(K),K=DO();F!==t?(r.charCodeAt(B)===34?(K=Tu,B++):(K=t,I===0&&ke(NA)),K!==t?(Ke=C,Q=LA(F),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;return C}function $ue(){var C,Q,F;if(C=B,Q=[],F=RO(),F!==t)for(;F!==t;)Q.push(F),F=RO();else Q=t;return Q!==t&&(Ke=C,Q=LA(Q)),C=Q,C}function DO(){var C,Q;return C=B,Q=TO(),Q!==t&&(Ke=C,Q=vr(Q)),C=Q,C===t&&(C=B,Q=OO(),Q!==t&&(Ke=C,Q=_l(Q)),C=Q,C===t&&(C=B,Q=$b(),Q!==t&&(Ke=C,Q=Ou(Q)),C=Q,C===t&&(C=B,Q=tge(),Q!==t&&(Ke=C,Q=Po(Q)),C=Q))),C}function RO(){var C,Q;return C=B,Q=TO(),Q!==t&&(Ke=C,Q=Mu(Q)),C=Q,C===t&&(C=B,Q=OO(),Q!==t&&(Ke=C,Q=vh(Q)),C=Q,C===t&&(C=B,Q=$b(),Q!==t&&(Ke=C,Q=kh(Q)),C=Q,C===t&&(C=B,Q=sge(),Q!==t&&(Ke=C,Q=Dr(Q)),C=Q,C===t&&(C=B,Q=nge(),Q!==t&&(Ke=C,Q=Po(Q)),C=Q)))),C}function ege(){var C,Q,F;for(C=B,Q=[],Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Do));F!==t;)Q.push(F),Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Do));return Q!==t&&(Ke=C,Q=Yn(Q)),C=Q,C}function tge(){var C,Q,F;if(C=B,Q=[],F=FO(),F===t&&(Uu.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(St))),F!==t)for(;F!==t;)Q.push(F),F=FO(),F===t&&(Uu.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(St)));else Q=t;return Q!==t&&(Ke=C,Q=Yn(Q)),C=Q,C}function FO(){var C,Q,F;return C=B,r.substr(B,2)===Vl?(Q=Vl,B+=2):(Q=t,I===0&&ke(qn)),Q!==t&&(Ke=C,Q=ps()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&ke(pt)),Q!==t?(Ro.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(lt)),F!==t?(Ke=C,Q=mn(F),C=Q):(B=C,C=t)):(B=C,C=t)),C}function rge(){var C,Q,F;for(C=B,Q=[],F=NO(),F===t&&(Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Do)));F!==t;)Q.push(F),F=NO(),F===t&&(Ae.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Do)));return Q!==t&&(Ke=C,Q=Yn(Q)),C=Q,C}function NO(){var C,Q,F;return C=B,r.substr(B,2)===S?(Q=S,B+=2):(Q=t,I===0&&ke(Tt)),Q!==t&&(Ke=C,Q=Ku()),C=Q,C===t&&(C=B,r.substr(B,2)===Xl?(Q=Xl,B+=2):(Q=t,I===0&&ke(xh)),Q!==t&&(Ke=C,Q=Ph()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&ke(pt)),Q!==t?(Dh.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Rh)),F!==t?(Ke=C,Q=Fh(),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===j?(Q=j,B+=2):(Q=t,I===0&&ke(wt)),Q!==t&&(Ke=C,Q=TA()),C=Q,C===t&&(C=B,r.substr(B,2)===$i?(Q=$i,B+=2):(Q=t,I===0&&ke(Zl)),Q!==t&&(Ke=C,Q=$e()),C=Q,C===t&&(C=B,r.substr(B,2)===va?(Q=va,B+=2):(Q=t,I===0&&ke(Hu)),Q!==t&&(Ke=C,Q=wE()),C=Q,C===t&&(C=B,r.substr(B,2)===Nh?(Q=Nh,B+=2):(Q=t,I===0&&ke(BE)),Q!==t&&(Ke=C,Q=gr()),C=Q,C===t&&(C=B,r.substr(B,2)===Jn?(Q=Jn,B+=2):(Q=t,I===0&&ke($l)),Q!==t&&(Ke=C,Q=Lh()),C=Q,C===t&&(C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&ke(pt)),Q!==t?(eo.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(ka)),F!==t?(Ke=C,Q=mn(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=ige()))))))))),C}function ige(){var C,Q,F,K,ue,De,Ct,bt,$r,Ii,ms,eQ;return C=B,r.charCodeAt(B)===92?(Q=ds,B++):(Q=t,I===0&&ke(pt)),Q!==t?(F=Vb(),F!==t?(Ke=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Oe?(Q=Oe,B+=2):(Q=t,I===0&&ke(ju)),Q!==t?(F=B,K=B,ue=Vb(),ue!==t?(De=_n(),De!==t?(ue=[ue,De],K=ue):(B=K,K=t)):(B=K,K=t),K===t&&(K=Vb()),K!==t?F=r.substring(F,B):F=K,F!==t?(Ke=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===ec?(Q=ec,B+=2):(Q=t,I===0&&ke(to)),Q!==t?(F=B,K=B,ue=_n(),ue!==t?(De=_n(),De!==t?(Ct=_n(),Ct!==t?(bt=_n(),bt!==t?(ue=[ue,De,Ct,bt],K=ue):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t),K!==t?F=r.substring(F,B):F=K,F!==t?(Ke=C,Q=En(F),C=Q):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===tc?(Q=tc,B+=2):(Q=t,I===0&&ke(OA)),Q!==t?(F=B,K=B,ue=_n(),ue!==t?(De=_n(),De!==t?(Ct=_n(),Ct!==t?(bt=_n(),bt!==t?($r=_n(),$r!==t?(Ii=_n(),Ii!==t?(ms=_n(),ms!==t?(eQ=_n(),eQ!==t?(ue=[ue,De,Ct,bt,$r,Ii,ms,eQ],K=ue):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t)):(B=K,K=t),K!==t?F=r.substring(F,B):F=K,F!==t?(Ke=C,Q=Gu(F),C=Q):(B=C,C=t)):(B=C,C=t)))),C}function Vb(){var C;return Yu.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&ke(xa)),C}function _n(){var C;return Pa.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&ke(nt)),C}function nge(){var C,Q,F,K,ue;if(C=B,Q=[],F=B,r.charCodeAt(B)===92?(K=ds,B++):(K=t,I===0&&ke(pt)),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t),F===t&&(F=B,K=B,I++,ue=UO(),I--,ue===t?K=void 0:(B=K,K=t),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t)),F!==t)for(;F!==t;)Q.push(F),F=B,r.charCodeAt(B)===92?(K=ds,B++):(K=t,I===0&&ke(pt)),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t),F===t&&(F=B,K=B,I++,ue=UO(),I--,ue===t?K=void 0:(B=K,K=t),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t));else Q=t;return Q!==t&&(Ke=C,Q=Yn(Q)),C=Q,C}function Xb(){var C,Q,F,K,ue,De;if(C=B,r.charCodeAt(B)===45?(Q=MA,B++):(Q=t,I===0&&ke(rc)),Q===t&&(r.charCodeAt(B)===43?(Q=ro,B++):(Q=t,I===0&&ke(ic))),Q===t&&(Q=null),Q!==t){if(F=[],ve.test(r.charAt(B))?(K=r.charAt(B),B++):(K=t,I===0&&ke(pe)),K!==t)for(;K!==t;)F.push(K),ve.test(r.charAt(B))?(K=r.charAt(B),B++):(K=t,I===0&&ke(pe));else F=t;if(F!==t)if(r.charCodeAt(B)===46?(K=bE,B++):(K=t,I===0&&ke(Th)),K!==t){if(ue=[],ve.test(r.charAt(B))?(De=r.charAt(B),B++):(De=t,I===0&&ke(pe)),De!==t)for(;De!==t;)ue.push(De),ve.test(r.charAt(B))?(De=r.charAt(B),B++):(De=t,I===0&&ke(pe));else ue=t;ue!==t?(Ke=C,Q=qu(Q,F,ue),C=Q):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;if(C===t){if(C=B,r.charCodeAt(B)===45?(Q=MA,B++):(Q=t,I===0&&ke(rc)),Q===t&&(r.charCodeAt(B)===43?(Q=ro,B++):(Q=t,I===0&&ke(ic))),Q===t&&(Q=null),Q!==t){if(F=[],ve.test(r.charAt(B))?(K=r.charAt(B),B++):(K=t,I===0&&ke(pe)),K!==t)for(;K!==t;)F.push(K),ve.test(r.charAt(B))?(K=r.charAt(B),B++):(K=t,I===0&&ke(pe));else F=t;F!==t?(Ke=C,Q=Oh(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;if(C===t&&(C=B,Q=$b(),Q!==t&&(Ke=C,Q=QE(Q)),C=Q,C===t&&(C=B,Q=sc(),Q!==t&&(Ke=C,Q=nc(Q)),C=Q,C===t)))if(C=B,r.charCodeAt(B)===40?(Q=ce,B++):(Q=t,I===0&&ke(Z)),Q!==t){for(F=[],K=qe();K!==t;)F.push(K),K=qe();if(F!==t)if(K=LO(),K!==t){for(ue=[],De=qe();De!==t;)ue.push(De),De=qe();ue!==t?(r.charCodeAt(B)===41?(De=O,B++):(De=t,I===0&&ke(L)),De!==t?(Ke=C,Q=SE(K),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t}return C}function Zb(){var C,Q,F,K,ue,De,Ct,bt;if(C=B,Q=Xb(),Q!==t){for(F=[],K=B,ue=[],De=qe();De!==t;)ue.push(De),De=qe();if(ue!==t)if(r.charCodeAt(B)===42?(De=Ju,B++):(De=t,I===0&&ke(UA)),De===t&&(r.charCodeAt(B)===47?(De=Tr,B++):(De=t,I===0&&ke(vE))),De!==t){for(Ct=[],bt=qe();bt!==t;)Ct.push(bt),bt=qe();Ct!==t?(bt=Xb(),bt!==t?(Ke=K,ue=io(Q,De,bt),K=ue):(B=K,K=t)):(B=K,K=t)}else B=K,K=t;else B=K,K=t;for(;K!==t;){for(F.push(K),K=B,ue=[],De=qe();De!==t;)ue.push(De),De=qe();if(ue!==t)if(r.charCodeAt(B)===42?(De=Ju,B++):(De=t,I===0&&ke(UA)),De===t&&(r.charCodeAt(B)===47?(De=Tr,B++):(De=t,I===0&&ke(vE))),De!==t){for(Ct=[],bt=qe();bt!==t;)Ct.push(bt),bt=qe();Ct!==t?(bt=Xb(),bt!==t?(Ke=K,ue=io(Q,De,bt),K=ue):(B=K,K=t)):(B=K,K=t)}else B=K,K=t;else B=K,K=t}F!==t?(Ke=C,Q=no(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;return C}function LO(){var C,Q,F,K,ue,De,Ct,bt;if(C=B,Q=Zb(),Q!==t){for(F=[],K=B,ue=[],De=qe();De!==t;)ue.push(De),De=qe();if(ue!==t)if(r.charCodeAt(B)===43?(De=ro,B++):(De=t,I===0&&ke(ic)),De===t&&(r.charCodeAt(B)===45?(De=MA,B++):(De=t,I===0&&ke(rc))),De!==t){for(Ct=[],bt=qe();bt!==t;)Ct.push(bt),bt=qe();Ct!==t?(bt=Zb(),bt!==t?(Ke=K,ue=Wu(Q,De,bt),K=ue):(B=K,K=t)):(B=K,K=t)}else B=K,K=t;else B=K,K=t;for(;K!==t;){for(F.push(K),K=B,ue=[],De=qe();De!==t;)ue.push(De),De=qe();if(ue!==t)if(r.charCodeAt(B)===43?(De=ro,B++):(De=t,I===0&&ke(ic)),De===t&&(r.charCodeAt(B)===45?(De=MA,B++):(De=t,I===0&&ke(rc))),De!==t){for(Ct=[],bt=qe();bt!==t;)Ct.push(bt),bt=qe();Ct!==t?(bt=Zb(),bt!==t?(Ke=K,ue=Wu(Q,De,bt),K=ue):(B=K,K=t)):(B=K,K=t)}else B=K,K=t;else B=K,K=t}F!==t?(Ke=C,Q=no(Q,F),C=Q):(B=C,C=t)}else B=C,C=t;return C}function TO(){var C,Q,F,K,ue,De;if(C=B,r.substr(B,3)===KA?(Q=KA,B+=3):(Q=t,I===0&&ke(R)),Q!==t){for(F=[],K=qe();K!==t;)F.push(K),K=qe();if(F!==t)if(K=LO(),K!==t){for(ue=[],De=qe();De!==t;)ue.push(De),De=qe();ue!==t?(r.substr(B,2)===G?(De=G,B+=2):(De=t,I===0&&ke(Ce)),De!==t?(Ke=C,Q=je(K),C=Q):(B=C,C=t)):(B=C,C=t)}else B=C,C=t;else B=C,C=t}else B=C,C=t;return C}function OO(){var C,Q,F,K;return C=B,r.substr(B,2)===Te?(Q=Te,B+=2):(Q=t,I===0&&ke(Xe)),Q!==t?(F=Yr(),F!==t?(r.charCodeAt(B)===41?(K=O,B++):(K=t,I===0&&ke(L)),K!==t?(Ke=C,Q=Et(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C}function $b(){var C,Q,F,K,ue,De;return C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&ke(Wn)),Q!==t?(F=sc(),F!==t?(r.substr(B,2)===Mb?(K=Mb,B+=2):(K=t,I===0&&ke(fO)),K!==t?(ue=vO(),ue!==t?(r.charCodeAt(B)===125?(De=re,B++):(De=t,I===0&&ke(se)),De!==t?(Ke=C,Q=hO(F,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&ke(Wn)),Q!==t?(F=sc(),F!==t?(r.substr(B,3)===Ub?(K=Ub,B+=3):(K=t,I===0&&ke(pO)),K!==t?(Ke=C,Q=dO(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&ke(Wn)),Q!==t?(F=sc(),F!==t?(r.substr(B,2)===Kb?(K=Kb,B+=2):(K=t,I===0&&ke(CO)),K!==t?(ue=vO(),ue!==t?(r.charCodeAt(B)===125?(De=re,B++):(De=t,I===0&&ke(se)),De!==t?(Ke=C,Q=mO(F,ue),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&ke(Wn)),Q!==t?(F=sc(),F!==t?(r.substr(B,3)===Hb?(K=Hb,B+=3):(K=t,I===0&&ke(EO)),K!==t?(Ke=C,Q=IO(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.substr(B,2)===Rt?(Q=Rt,B+=2):(Q=t,I===0&&ke(Wn)),Q!==t?(F=sc(),F!==t?(r.charCodeAt(B)===125?(K=re,B++):(K=t,I===0&&ke(se)),K!==t?(Ke=C,Q=jb(F),C=Q):(B=C,C=t)):(B=C,C=t)):(B=C,C=t),C===t&&(C=B,r.charCodeAt(B)===36?(Q=yO,B++):(Q=t,I===0&&ke(wO)),Q!==t?(F=sc(),F!==t?(Ke=C,Q=jb(F),C=Q):(B=C,C=t)):(B=C,C=t)))))),C}function sge(){var C,Q,F;return C=B,Q=oge(),Q!==t?(Ke=B,F=BO(Q),F?F=void 0:F=t,F!==t?(Ke=C,Q=bO(Q),C=Q):(B=C,C=t)):(B=C,C=t),C}function oge(){var C,Q,F,K,ue;if(C=B,Q=[],F=B,K=B,I++,ue=KO(),I--,ue===t?K=void 0:(B=K,K=t),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t),F!==t)for(;F!==t;)Q.push(F),F=B,K=B,I++,ue=KO(),I--,ue===t?K=void 0:(B=K,K=t),K!==t?(r.length>B?(ue=r.charAt(B),B++):(ue=t,I===0&&ke(Fo)),ue!==t?(Ke=F,K=mn(ue),F=K):(B=F,F=t)):(B=F,F=t);else Q=t;return Q!==t&&(Ke=C,Q=Yn(Q)),C=Q,C}function MO(){var C,Q,F;if(C=B,Q=[],Gb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Yb)),F!==t)for(;F!==t;)Q.push(F),Gb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Yb));else Q=t;return Q!==t&&(Ke=C,Q=qb()),C=Q,C}function sc(){var C,Q,F;if(C=B,Q=[],Jb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Wb)),F!==t)for(;F!==t;)Q.push(F),Jb.test(r.charAt(B))?(F=r.charAt(B),B++):(F=t,I===0&&ke(Wb));else Q=t;return Q!==t&&(Ke=C,Q=qb()),C=Q,C}function UO(){var C;return QO.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&ke(zu)),C}function KO(){var C;return zb.test(r.charAt(B))?(C=r.charAt(B),B++):(C=t,I===0&&ke(_b)),C}function qe(){var C,Q;if(C=[],kE.test(r.charAt(B))?(Q=r.charAt(B),B++):(Q=t,I===0&&ke(xE)),Q!==t)for(;Q!==t;)C.push(Q),kE.test(r.charAt(B))?(Q=r.charAt(B),B++):(Q=t,I===0&&ke(xE));else C=t;return C}if(D=n(),D!==t&&B===r.length)return D;throw D!==t&&B{"use strict";function sfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function fc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,fc)}sfe(fc,Error);fc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gY&&(Y=v,q=[]),q.push(pe))}function se(pe,V){return new fc(pe,null,null,V)}function be(pe,V,Qe){return new fc(fc.buildMessage(pe,V),pe,V,Qe)}function he(){var pe,V,Qe,le;return pe=v,V=Fe(),V!==t?(r.charCodeAt(v)===47?(Qe=s,v++):(Qe=t,$===0&&re(o)),Qe!==t?(le=Fe(),le!==t?(k=pe,V=a(V,le),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=Fe(),V!==t&&(k=pe,V=l(V)),pe=V),pe}function Fe(){var pe,V,Qe,le;return pe=v,V=Ue(),V!==t?(r.charCodeAt(v)===64?(Qe=c,v++):(Qe=t,$===0&&re(u)),Qe!==t?(le=ve(),le!==t?(k=pe,V=g(V,le),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=Ue(),V!==t&&(k=pe,V=f(V)),pe=V),pe}function Ue(){var pe,V,Qe,le,fe;return pe=v,r.charCodeAt(v)===64?(V=c,v++):(V=t,$===0&&re(u)),V!==t?(Qe=xe(),Qe!==t?(r.charCodeAt(v)===47?(le=s,v++):(le=t,$===0&&re(o)),le!==t?(fe=xe(),fe!==t?(k=pe,V=h(),pe=V):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t)):(v=pe,pe=t),pe===t&&(pe=v,V=xe(),V!==t&&(k=pe,V=h()),pe=V),pe}function xe(){var pe,V,Qe;if(pe=v,V=[],p.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(m)),Qe!==t)for(;Qe!==t;)V.push(Qe),p.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(m));else V=t;return V!==t&&(k=pe,V=h()),pe=V,pe}function ve(){var pe,V,Qe;if(pe=v,V=[],y.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(b)),Qe!==t)for(;Qe!==t;)V.push(Qe),y.test(r.charAt(v))?(Qe=r.charAt(v),v++):(Qe=t,$===0&&re(b));else V=t;return V!==t&&(k=pe,V=h()),pe=V,pe}if(z=n(),z!==t&&v===r.length)return z;throw z!==t&&v{"use strict";function i1(r){return typeof r=="undefined"||r===null}function afe(r){return typeof r=="object"&&r!==null}function Afe(r){return Array.isArray(r)?r:i1(r)?[]:[r]}function lfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function tp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}tp.prototype=Object.create(Error.prototype);tp.prototype.constructor=tp;tp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};n1.exports=tp});var a1=w((O7e,s1)=>{"use strict";var o1=pc();function FQ(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}FQ.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),o1.repeat(" ",e)+i+a+s+` +`+o1.repeat(" ",e+this.position-n+i.length)+"^"};FQ.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};s1.exports=FQ});var ci=w((M7e,A1)=>{"use strict";var l1=rg(),gfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],ffe=["scalar","sequence","mapping"];function hfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function pfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(gfe.indexOf(t)===-1)throw new l1('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=hfe(e.styleAliases||null),ffe.indexOf(this.kind)===-1)throw new l1('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}A1.exports=pfe});var dc=w((U7e,c1)=>{"use strict";var u1=pc(),rI=rg(),dfe=ci();function NQ(r,e,t){var i=[];return r.include.forEach(function(n){t=NQ(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Cfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var mfe=ci();g1.exports=new mfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var p1=w((H7e,h1)=>{"use strict";var Efe=ci();h1.exports=new Efe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var C1=w((j7e,d1)=>{"use strict";var Ife=ci();d1.exports=new Ife("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var iI=w((G7e,m1)=>{"use strict";var yfe=dc();m1.exports=new yfe({explicit:[f1(),p1(),C1()]})});var I1=w((Y7e,E1)=>{"use strict";var wfe=ci();function Bfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function bfe(){return null}function Qfe(r){return r===null}E1.exports=new wfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:Bfe,construct:bfe,predicate:Qfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var w1=w((q7e,y1)=>{"use strict";var Sfe=ci();function vfe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function kfe(r){return r==="true"||r==="True"||r==="TRUE"}function xfe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}y1.exports=new Sfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:vfe,construct:kfe,predicate:xfe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var b1=w((J7e,B1)=>{"use strict";var Pfe=pc(),Dfe=ci();function Rfe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function Ffe(r){return 48<=r&&r<=55}function Nfe(r){return 48<=r&&r<=57}function Lfe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var v1=w((W7e,Q1)=>{"use strict";var S1=pc(),Mfe=ci(),Ufe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Kfe(r){return!(r===null||!Ufe.test(r)||r[r.length-1]==="_")}function Hfe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var jfe=/^[-+]?[0-9]+e/;function Gfe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(S1.isNegativeZero(r))return"-0.0";return t=r.toString(10),jfe.test(t)?t.replace("e",".e"):t}function Yfe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!=0||S1.isNegativeZero(r))}Q1.exports=new Mfe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Kfe,construct:Hfe,predicate:Yfe,represent:Gfe,defaultStyle:"lowercase"})});var LQ=w((z7e,k1)=>{"use strict";var qfe=dc();k1.exports=new qfe({include:[iI()],implicit:[I1(),w1(),b1(),v1()]})});var TQ=w((_7e,x1)=>{"use strict";var Jfe=dc();x1.exports=new Jfe({include:[LQ()]})});var F1=w((V7e,P1)=>{"use strict";var Wfe=ci(),D1=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),R1=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function zfe(r){return r===null?!1:D1.exec(r)!==null||R1.exec(r)!==null}function _fe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=D1.exec(r),e===null&&(e=R1.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Vfe(r){return r.toISOString()}P1.exports=new Wfe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:zfe,construct:_fe,instanceOf:Date,represent:Vfe})});var L1=w((X7e,N1)=>{"use strict";var Xfe=ci();function Zfe(r){return r==="<<"||r===null}N1.exports=new Xfe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Zfe})});var M1=w((Z7e,T1)=>{"use strict";var Cc;try{O1=require,Cc=O1("buffer").Buffer}catch(r){}var O1,$fe=ci(),OQ=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function ehe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=OQ;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8==0}function the(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=OQ,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),Cc?Cc.from?Cc.from(a):new Cc(a):a}function rhe(r){var e="",t=0,i,n,s=r.length,o=OQ;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function ihe(r){return Cc&&Cc.isBuffer(r)}T1.exports=new $fe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ehe,construct:the,predicate:ihe,represent:rhe})});var K1=w(($7e,U1)=>{"use strict";var nhe=ci(),she=Object.prototype.hasOwnProperty,ohe=Object.prototype.toString;function ahe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var lhe=ci(),che=Object.prototype.toString;function uhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var fhe=ci(),hhe=Object.prototype.hasOwnProperty;function phe(r){if(r===null)return!0;var e,t=r;for(e in t)if(hhe.call(t,e)&&t[e]!==null)return!1;return!0}function dhe(r){return r!==null?r:{}}G1.exports=new fhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:phe,construct:dhe})});var ng=w((rXe,q1)=>{"use strict";var Che=dc();q1.exports=new Che({include:[TQ()],implicit:[F1(),L1()],explicit:[M1(),K1(),j1(),Y1()]})});var W1=w((iXe,J1)=>{"use strict";var mhe=ci();function Ehe(){return!0}function Ihe(){}function yhe(){return""}function whe(r){return typeof r=="undefined"}J1.exports=new mhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:whe,represent:yhe})});var _1=w((nXe,z1)=>{"use strict";var Bhe=ci();function bhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Qhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function She(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function vhe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}z1.exports=new Bhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:bhe,construct:Qhe,predicate:vhe,represent:She})});var Z1=w((sXe,V1)=>{"use strict";var nI;try{X1=require,nI=X1("esprima")}catch(r){typeof window!="undefined"&&(nI=window.esprima)}var X1,khe=ci();function xhe(r){if(r===null)return!1;try{var e="("+r+")",t=nI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function Phe(r){var e="("+r+")",t=nI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Dhe(r){return r.toString()}function Rhe(r){return Object.prototype.toString.call(r)==="[object Function]"}V1.exports=new khe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:xhe,construct:Phe,predicate:Rhe,represent:Dhe})});var rp=w((oXe,$1)=>{"use strict";var eU=dc();$1.exports=eU.DEFAULT=new eU({include:[ng()],explicit:[W1(),_1(),Z1()]})});var EU=w((aXe,ip)=>{"use strict";var Ma=pc(),tU=rg(),Fhe=a1(),rU=ng(),Nhe=rp(),WA=Object.prototype.hasOwnProperty,sI=1,iU=2,nU=3,oI=4,MQ=1,Lhe=2,sU=3,The=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ohe=/[\x85\u2028\u2029]/,Mhe=/[,\[\]\{\}]/,oU=/^(?:!|!!|![a-z\-]+!)$/i,aU=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function AU(r){return Object.prototype.toString.call(r)}function Oo(r){return r===10||r===13}function mc(r){return r===9||r===32}function yn(r){return r===9||r===32||r===10||r===13}function sg(r){return r===44||r===91||r===93||r===123||r===125}function Uhe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Khe(r){return r===120?2:r===117?4:r===85?8:0}function Hhe(r){return 48<=r&&r<=57?r-48:-1}function lU(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function jhe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var cU=new Array(256),uU=new Array(256);for(var og=0;og<256;og++)cU[og]=lU(og)?1:0,uU[og]=lU(og);function Ghe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||Nhe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function gU(r,e){return new tU(e,new Fhe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function dt(r,e){throw gU(r,e)}function aI(r,e){r.onWarning&&r.onWarning.call(null,gU(r,e))}var fU={YAML:function(e,t,i){var n,s,o;e.version!==null&&dt(e,"duplication of %YAML directive"),i.length!==1&&dt(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&dt(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&dt(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&aI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&dt(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],oU.test(n)||dt(e,"ill-formed tag handle (first argument) of the TAG directive"),WA.call(e.tagMap,n)&&dt(e,'there is a previously declared suffix for "'+n+'" tag handle'),aU.test(s)||dt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function zA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Ma.repeat(` +`,e-1))}function Yhe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),yn(h)||sg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),yn(n)||t&&sg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),yn(n)||t&&sg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),yn(i))break}else{if(r.position===r.lineStart&&AI(r)||t&&sg(h))break;if(Oo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,ei(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(zA(r,s,o,!1),KQ(r,r.line-l),s=o=r.position,a=!1),mc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return zA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function qhe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(zA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else Oo(t)?(zA(r,i,n,!0),KQ(r,ei(r,!1,e)),i=n=r.position):r.position===r.lineStart&&AI(r)?dt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);dt(r,"unexpected end of the stream within a single quoted scalar")}function Jhe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return zA(r,t,r.position,!0),r.position++,!0;if(a===92){if(zA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),Oo(a))ei(r,!1,e);else if(a<256&&cU[a])r.result+=uU[a],r.position++;else if((o=Khe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Uhe(a))>=0?s=(s<<4)+o:dt(r,"expected hexadecimal character");r.result+=jhe(s),r.position++}else dt(r,"unknown escape sequence");t=i=r.position}else Oo(a)?(zA(r,t,i,!0),KQ(r,ei(r,!1,e)),t=i=r.position):r.position===r.lineStart&&AI(r)?dt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}dt(r,"unexpected end of the stream within a double quoted scalar")}function Whe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(ei(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||dt(r,"missed comma between flow collection entries"),p=h=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),yn(a)&&(c=u=!0,r.position++,ei(r,!0,e))),i=r.line,Ag(r,e,sI,!1,!0),p=r.tag,h=r.result,ei(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),ei(r,!0,e),Ag(r,e,sI,!1,!0),m=r.result),g?ag(r,s,f,p,h,m):c?s.push(ag(r,null,f,p,h,m)):s.push(h),ei(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}dt(r,"unexpected end of the stream within a flow collection")}function zhe(r,e){var t,i,n=MQ,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)MQ===n?n=g===43?sU:Lhe:dt(r,"repeat of a chomping mode identifier");else if((u=Hhe(g))>=0)u===0?dt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?dt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(mc(g)){do g=r.input.charCodeAt(++r.position);while(mc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!Oo(g)&&g!==0)}for(;g!==0;){for(UQ(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),Oo(g)){l++;continue}if(r.lineIndente)&&l!==0)dt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Ag(r,e,oI,!0,n)&&(p?f=r.result:h=r.result),p||(ag(r,c,u,g,f,h,s,o),g=f=h=null),ei(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)dt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):dt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):dt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function $he(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(ei(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!yn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&dt(r,"directive name must not be less than one character in length");o!==0;){for(;mc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!Oo(o));break}if(Oo(o))break;for(t=r.position;o!==0&&!yn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&UQ(r),WA.call(fU,i)?fU[i](r,i,n):aI(r,'unknown document directive "'+i+'"')}if(ei(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,ei(r,!0,-1)):s&&dt(r,"directives end mark is expected"),Ag(r,r.lineIndent-1,oI,!1,!0),ei(r,!0,-1),r.checkLineBreaks&&Ohe.test(r.input.slice(e,r.position))&&aI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&AI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,ei(r,!0,-1));return}if(r.position{"use strict";var np=pc(),sp=rg(),rpe=rp(),ipe=ng(),IU=Object.prototype.toString,yU=Object.prototype.hasOwnProperty,npe=9,op=10,spe=13,ope=32,ape=33,Ape=34,wU=35,lpe=37,cpe=38,upe=39,gpe=42,BU=44,fpe=45,bU=58,hpe=61,ppe=62,dpe=63,Cpe=64,QU=91,SU=93,mpe=96,vU=123,Epe=124,kU=125,Ui={};Ui[0]="\\0";Ui[7]="\\a";Ui[8]="\\b";Ui[9]="\\t";Ui[10]="\\n";Ui[11]="\\v";Ui[12]="\\f";Ui[13]="\\r";Ui[27]="\\e";Ui[34]='\\"';Ui[92]="\\\\";Ui[133]="\\N";Ui[160]="\\_";Ui[8232]="\\L";Ui[8233]="\\P";var Ipe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ype(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&DU(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!lg(o))return lI;a=s>0?r.charCodeAt(s-1):null,f=f&&DU(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?FU:NU:t>9&&RU(r)?lI:c?TU:LU}function xpe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&Ipe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return Bpe(r,l)}switch(Spe(e,o,r.indent,s,a)){case FU:return e;case NU:return"'"+e.replace(/'/g,"''")+"'";case LU:return"|"+OU(e,r.indent)+MU(PU(e,n));case TU:return">"+OU(e,r.indent)+MU(PU(vpe(e,s),n));case lI:return'"'+kpe(e,s)+'"';default:throw new sp("impossible error: invalid scalar style")}}()}function OU(r,e){var t=RU(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function MU(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function vpe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,UU(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+UU(l,e),n=s}return i}function UU(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function kpe(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=xU((t-55296)*1024+i-56320+65536),s++;continue}n=Ui[t],e+=!n&&lg(t)?r[s]:n||xU(t)}return e}function Ppe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),!!Ec(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function Fpe(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new sp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&op===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=jQ(r,e)),!!Ec(r,e+1,u,!0,g)&&(r.dump&&op===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function KU(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ec(r,e,t,i,n,s){r.tag=null,r.dump=t,KU(r,t,!1)||KU(r,t,!0);var o=IU.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(Fpe(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Rpe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Dpe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Ppe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&xpe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new sp("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function Npe(r,e){var t=[],i=[],n,s;for(YQ(r,t,i),n=0,s=i.length;n{"use strict";var cI=EU(),GU=jU();function uI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Mr.exports.Type=ci();Mr.exports.Schema=dc();Mr.exports.FAILSAFE_SCHEMA=iI();Mr.exports.JSON_SCHEMA=LQ();Mr.exports.CORE_SCHEMA=TQ();Mr.exports.DEFAULT_SAFE_SCHEMA=ng();Mr.exports.DEFAULT_FULL_SCHEMA=rp();Mr.exports.load=cI.load;Mr.exports.loadAll=cI.loadAll;Mr.exports.safeLoad=cI.safeLoad;Mr.exports.safeLoadAll=cI.safeLoadAll;Mr.exports.dump=GU.dump;Mr.exports.safeDump=GU.safeDump;Mr.exports.YAMLException=rg();Mr.exports.MINIMAL_SCHEMA=iI();Mr.exports.SAFE_SCHEMA=ng();Mr.exports.DEFAULT_SCHEMA=rp();Mr.exports.scan=uI("scan");Mr.exports.parse=uI("parse");Mr.exports.compose=uI("compose");Mr.exports.addConstructor=uI("addConstructor")});var JU=w((cXe,qU)=>{"use strict";var Tpe=YU();qU.exports=Tpe});var zU=w((uXe,WU)=>{"use strict";function Ope(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ic(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ic)}Ope(Ic,Error);Ic.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[je]:Ce})))},Y=function(R){return R},q=function(R){return R},$=eo("correct indentation"),z=" ",ne=gr(" ",!1),ee=function(R){return R.length===KA*Wu},A=function(R){return R.length===(KA+1)*Wu},oe=function(){return KA++,!0},ce=function(){return KA--,!0},Z=function(){return Hu()},O=eo("pseudostring"),L=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,de=Jn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Be=/^[^\r\n\t ,\][{}:#"']/,Ge=Jn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),re=function(){return Hu().replace(/^ *| *$/g,"")},se="--",be=gr("--",!1),he=/^[a-zA-Z\/0-9]/,Fe=Jn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ue=/^[^\r\n\t :,]/,xe=Jn(["\r",` +`," "," ",":",","],!0,!1),ve="null",pe=gr("null",!1),V=function(){return null},Qe="true",le=gr("true",!1),fe=function(){return!0},gt="false",Ht=gr("false",!1),Mt=function(){return!1},Ei=eo("string"),jt='"',Qr=gr('"',!1),Oi=function(){return""},$s=function(R){return R},Hn=function(R){return R.join("")},jn=/^[^"\\\0-\x1F\x7F]/,Sr=Jn(['"',"\\",["\0",""],"\x7F"],!0,!1),Gn='\\"',fs=gr('\\"',!1),Qa=function(){return'"'},RA="\\\\",Lu=gr("\\\\",!1),hs=function(){return"\\"},FA="\\/",Sa=gr("\\/",!1),Tu=function(){return"/"},NA="\\b",LA=gr("\\b",!1),vr=function(){return"\b"},_l="\\f",Ou=gr("\\f",!1),Po=function(){return"\f"},Mu="\\n",vh=gr("\\n",!1),kh=function(){return` +`},Dr="\\r",Ae=gr("\\r",!1),Do=function(){return"\r"},Yn="\\t",Uu=gr("\\t",!1),St=function(){return" "},Vl="\\u",qn=gr("\\u",!1),ps=function(R,G,Ce,je){return String.fromCharCode(parseInt(`0x${R}${G}${Ce}${je}`))},ds=/^[0-9a-fA-F]/,pt=Jn([["0","9"],["a","f"],["A","F"]],!1,!1),Ro=eo("blank space"),lt=/^[ \t]/,mn=Jn([" "," "],!1,!1),S=eo("white space"),Tt=/^[ \t\n\r]/,Ku=Jn([" "," ",` +`,"\r"],!1,!1),Xl=`\r +`,xh=gr(`\r +`,!1),Ph=` +`,Dh=gr(` +`,!1),Rh="\r",Fh=gr("\r",!1),j=0,wt=0,TA=[{line:1,column:1}],$i=0,Zl=[],$e=0,va;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Hu(){return r.substring(wt,j)}function wE(){return En(wt,j)}function Nh(R,G){throw G=G!==void 0?G:En(wt,j),ec([eo(R)],r.substring(wt,j),G)}function BE(R,G){throw G=G!==void 0?G:En(wt,j),ju(R,G)}function gr(R,G){return{type:"literal",text:R,ignoreCase:G}}function Jn(R,G,Ce){return{type:"class",parts:R,inverted:G,ignoreCase:Ce}}function $l(){return{type:"any"}}function Lh(){return{type:"end"}}function eo(R){return{type:"other",description:R}}function ka(R){var G=TA[R],Ce;if(G)return G;for(Ce=R-1;!TA[Ce];)Ce--;for(G=TA[Ce],G={line:G.line,column:G.column};Ce$i&&($i=j,Zl=[]),Zl.push(R))}function ju(R,G){return new Ic(R,null,null,G)}function ec(R,G,Ce){return new Ic(Ic.buildMessage(R,G),R,G,Ce)}function to(){var R;return R=Gu(),R}function tc(){var R,G,Ce;for(R=j,G=[],Ce=OA();Ce!==t;)G.push(Ce),Ce=OA();return G!==t&&(wt=R,G=s(G)),R=G,R}function OA(){var R,G,Ce,je,Te;return R=j,G=Pa(),G!==t?(r.charCodeAt(j)===45?(Ce=o,j++):(Ce=t,$e===0&&Oe(a)),Ce!==t?(je=Tr(),je!==t?(Te=xa(),Te!==t?(wt=R,G=l(Te),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R}function Gu(){var R,G,Ce;for(R=j,G=[],Ce=Yu();Ce!==t;)G.push(Ce),Ce=Yu();return G!==t&&(wt=R,G=c(G)),R=G,R}function Yu(){var R,G,Ce,je,Te,Xe,Et,Rt,Wn;if(R=j,G=Tr(),G===t&&(G=null),G!==t){if(Ce=j,r.charCodeAt(j)===35?(je=u,j++):(je=t,$e===0&&Oe(g)),je!==t){if(Te=[],Xe=j,Et=j,$e++,Rt=no(),$e--,Rt===t?Et=void 0:(j=Et,Et=t),Et!==t?(r.length>j?(Rt=r.charAt(j),j++):(Rt=t,$e===0&&Oe(f)),Rt!==t?(Et=[Et,Rt],Xe=Et):(j=Xe,Xe=t)):(j=Xe,Xe=t),Xe!==t)for(;Xe!==t;)Te.push(Xe),Xe=j,Et=j,$e++,Rt=no(),$e--,Rt===t?Et=void 0:(j=Et,Et=t),Et!==t?(r.length>j?(Rt=r.charAt(j),j++):(Rt=t,$e===0&&Oe(f)),Rt!==t?(Et=[Et,Rt],Xe=Et):(j=Xe,Xe=t)):(j=Xe,Xe=t);else Te=t;Te!==t?(je=[je,Te],Ce=je):(j=Ce,Ce=t)}else j=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(je=[],Te=io(),Te!==t)for(;Te!==t;)je.push(Te),Te=io();else je=t;je!==t?(wt=R,G=h(),R=G):(j=R,R=t)}else j=R,R=t}else j=R,R=t;if(R===t&&(R=j,G=Pa(),G!==t?(Ce=rc(),Ce!==t?(je=Tr(),je===t&&(je=null),je!==t?(r.charCodeAt(j)===58?(Te=p,j++):(Te=t,$e===0&&Oe(m)),Te!==t?(Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(Et=xa(),Et!==t?(wt=R,G=y(Ce,Et),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,G=Pa(),G!==t?(Ce=ro(),Ce!==t?(je=Tr(),je===t&&(je=null),je!==t?(r.charCodeAt(j)===58?(Te=p,j++):(Te=t,$e===0&&Oe(m)),Te!==t?(Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(Et=xa(),Et!==t?(wt=R,G=y(Ce,Et),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t))){if(R=j,G=Pa(),G!==t)if(Ce=ro(),Ce!==t)if(je=Tr(),je!==t)if(Te=bE(),Te!==t){if(Xe=[],Et=io(),Et!==t)for(;Et!==t;)Xe.push(Et),Et=io();else Xe=t;Xe!==t?(wt=R,G=y(Ce,Te),R=G):(j=R,R=t)}else j=R,R=t;else j=R,R=t;else j=R,R=t;else j=R,R=t;if(R===t)if(R=j,G=Pa(),G!==t)if(Ce=ro(),Ce!==t){if(je=[],Te=j,Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(r.charCodeAt(j)===44?(Et=b,j++):(Et=t,$e===0&&Oe(v)),Et!==t?(Rt=Tr(),Rt===t&&(Rt=null),Rt!==t?(Wn=ro(),Wn!==t?(wt=Te,Xe=k(Ce,Wn),Te=Xe):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t),Te!==t)for(;Te!==t;)je.push(Te),Te=j,Xe=Tr(),Xe===t&&(Xe=null),Xe!==t?(r.charCodeAt(j)===44?(Et=b,j++):(Et=t,$e===0&&Oe(v)),Et!==t?(Rt=Tr(),Rt===t&&(Rt=null),Rt!==t?(Wn=ro(),Wn!==t?(wt=Te,Xe=k(Ce,Wn),Te=Xe):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t)):(j=Te,Te=t);else je=t;je!==t?(Te=Tr(),Te===t&&(Te=null),Te!==t?(r.charCodeAt(j)===58?(Xe=p,j++):(Xe=t,$e===0&&Oe(m)),Xe!==t?(Et=Tr(),Et===t&&(Et=null),Et!==t?(Rt=xa(),Rt!==t?(wt=R,G=T(Ce,je,Rt),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)}else j=R,R=t;else j=R,R=t}return R}function xa(){var R,G,Ce,je,Te,Xe,Et;if(R=j,G=j,$e++,Ce=j,je=no(),je!==t?(Te=nt(),Te!==t?(r.charCodeAt(j)===45?(Xe=o,j++):(Xe=t,$e===0&&Oe(a)),Xe!==t?(Et=Tr(),Et!==t?(je=[je,Te,Xe,Et],Ce=je):(j=Ce,Ce=t)):(j=Ce,Ce=t)):(j=Ce,Ce=t)):(j=Ce,Ce=t),$e--,Ce!==t?(j=G,G=void 0):G=t,G!==t?(Ce=io(),Ce!==t?(je=Fo(),je!==t?(Te=tc(),Te!==t?(Xe=MA(),Xe!==t?(wt=R,G=Y(Te),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,G=no(),G!==t?(Ce=Fo(),Ce!==t?(je=Gu(),je!==t?(Te=MA(),Te!==t?(wt=R,G=Y(je),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t),R===t))if(R=j,G=ic(),G!==t){if(Ce=[],je=io(),je!==t)for(;je!==t;)Ce.push(je),je=io();else Ce=t;Ce!==t?(wt=R,G=q(G),R=G):(j=R,R=t)}else j=R,R=t;return R}function Pa(){var R,G,Ce;for($e++,R=j,G=[],r.charCodeAt(j)===32?(Ce=z,j++):(Ce=t,$e===0&&Oe(ne));Ce!==t;)G.push(Ce),r.charCodeAt(j)===32?(Ce=z,j++):(Ce=t,$e===0&&Oe(ne));return G!==t?(wt=j,Ce=ee(G),Ce?Ce=void 0:Ce=t,Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)):(j=R,R=t),$e--,R===t&&(G=t,$e===0&&Oe($)),R}function nt(){var R,G,Ce;for(R=j,G=[],r.charCodeAt(j)===32?(Ce=z,j++):(Ce=t,$e===0&&Oe(ne));Ce!==t;)G.push(Ce),r.charCodeAt(j)===32?(Ce=z,j++):(Ce=t,$e===0&&Oe(ne));return G!==t?(wt=j,Ce=A(G),Ce?Ce=void 0:Ce=t,Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)):(j=R,R=t),R}function Fo(){var R;return wt=j,R=oe(),R?R=void 0:R=t,R}function MA(){var R;return wt=j,R=ce(),R?R=void 0:R=t,R}function rc(){var R;return R=nc(),R===t&&(R=Th()),R}function ro(){var R,G,Ce;if(R=nc(),R===t){if(R=j,G=[],Ce=qu(),Ce!==t)for(;Ce!==t;)G.push(Ce),Ce=qu();else G=t;G!==t&&(wt=R,G=Z()),R=G}return R}function ic(){var R;return R=Oh(),R===t&&(R=QE(),R===t&&(R=nc(),R===t&&(R=Th()))),R}function bE(){var R;return R=Oh(),R===t&&(R=nc(),R===t&&(R=qu())),R}function Th(){var R,G,Ce,je,Te,Xe;if($e++,R=j,L.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(de)),G!==t){for(Ce=[],je=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Be.test(r.charAt(j))?(Xe=r.charAt(j),j++):(Xe=t,$e===0&&Oe(Ge)),Xe!==t?(Te=[Te,Xe],je=Te):(j=je,je=t)):(j=je,je=t);je!==t;)Ce.push(je),je=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Be.test(r.charAt(j))?(Xe=r.charAt(j),j++):(Xe=t,$e===0&&Oe(Ge)),Xe!==t?(Te=[Te,Xe],je=Te):(j=je,je=t)):(j=je,je=t);Ce!==t?(wt=R,G=re(),R=G):(j=R,R=t)}else j=R,R=t;return $e--,R===t&&(G=t,$e===0&&Oe(O)),R}function qu(){var R,G,Ce,je,Te;if(R=j,r.substr(j,2)===se?(G=se,j+=2):(G=t,$e===0&&Oe(be)),G===t&&(G=null),G!==t)if(he.test(r.charAt(j))?(Ce=r.charAt(j),j++):(Ce=t,$e===0&&Oe(Fe)),Ce!==t){for(je=[],Ue.test(r.charAt(j))?(Te=r.charAt(j),j++):(Te=t,$e===0&&Oe(xe));Te!==t;)je.push(Te),Ue.test(r.charAt(j))?(Te=r.charAt(j),j++):(Te=t,$e===0&&Oe(xe));je!==t?(wt=R,G=re(),R=G):(j=R,R=t)}else j=R,R=t;else j=R,R=t;return R}function Oh(){var R,G;return R=j,r.substr(j,4)===ve?(G=ve,j+=4):(G=t,$e===0&&Oe(pe)),G!==t&&(wt=R,G=V()),R=G,R}function QE(){var R,G;return R=j,r.substr(j,4)===Qe?(G=Qe,j+=4):(G=t,$e===0&&Oe(le)),G!==t&&(wt=R,G=fe()),R=G,R===t&&(R=j,r.substr(j,5)===gt?(G=gt,j+=5):(G=t,$e===0&&Oe(Ht)),G!==t&&(wt=R,G=Mt()),R=G),R}function nc(){var R,G,Ce,je;return $e++,R=j,r.charCodeAt(j)===34?(G=jt,j++):(G=t,$e===0&&Oe(Qr)),G!==t?(r.charCodeAt(j)===34?(Ce=jt,j++):(Ce=t,$e===0&&Oe(Qr)),Ce!==t?(wt=R,G=Oi(),R=G):(j=R,R=t)):(j=R,R=t),R===t&&(R=j,r.charCodeAt(j)===34?(G=jt,j++):(G=t,$e===0&&Oe(Qr)),G!==t?(Ce=SE(),Ce!==t?(r.charCodeAt(j)===34?(je=jt,j++):(je=t,$e===0&&Oe(Qr)),je!==t?(wt=R,G=$s(Ce),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)),$e--,R===t&&(G=t,$e===0&&Oe(Ei)),R}function SE(){var R,G,Ce;if(R=j,G=[],Ce=Ju(),Ce!==t)for(;Ce!==t;)G.push(Ce),Ce=Ju();else G=t;return G!==t&&(wt=R,G=Hn(G)),R=G,R}function Ju(){var R,G,Ce,je,Te,Xe;return jn.test(r.charAt(j))?(R=r.charAt(j),j++):(R=t,$e===0&&Oe(Sr)),R===t&&(R=j,r.substr(j,2)===Gn?(G=Gn,j+=2):(G=t,$e===0&&Oe(fs)),G!==t&&(wt=R,G=Qa()),R=G,R===t&&(R=j,r.substr(j,2)===RA?(G=RA,j+=2):(G=t,$e===0&&Oe(Lu)),G!==t&&(wt=R,G=hs()),R=G,R===t&&(R=j,r.substr(j,2)===FA?(G=FA,j+=2):(G=t,$e===0&&Oe(Sa)),G!==t&&(wt=R,G=Tu()),R=G,R===t&&(R=j,r.substr(j,2)===NA?(G=NA,j+=2):(G=t,$e===0&&Oe(LA)),G!==t&&(wt=R,G=vr()),R=G,R===t&&(R=j,r.substr(j,2)===_l?(G=_l,j+=2):(G=t,$e===0&&Oe(Ou)),G!==t&&(wt=R,G=Po()),R=G,R===t&&(R=j,r.substr(j,2)===Mu?(G=Mu,j+=2):(G=t,$e===0&&Oe(vh)),G!==t&&(wt=R,G=kh()),R=G,R===t&&(R=j,r.substr(j,2)===Dr?(G=Dr,j+=2):(G=t,$e===0&&Oe(Ae)),G!==t&&(wt=R,G=Do()),R=G,R===t&&(R=j,r.substr(j,2)===Yn?(G=Yn,j+=2):(G=t,$e===0&&Oe(Uu)),G!==t&&(wt=R,G=St()),R=G,R===t&&(R=j,r.substr(j,2)===Vl?(G=Vl,j+=2):(G=t,$e===0&&Oe(qn)),G!==t?(Ce=UA(),Ce!==t?(je=UA(),je!==t?(Te=UA(),Te!==t?(Xe=UA(),Xe!==t?(wt=R,G=ps(Ce,je,Te,Xe),R=G):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)):(j=R,R=t)))))))))),R}function UA(){var R;return ds.test(r.charAt(j))?(R=r.charAt(j),j++):(R=t,$e===0&&Oe(pt)),R}function Tr(){var R,G;if($e++,R=[],lt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(mn)),G!==t)for(;G!==t;)R.push(G),lt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(mn));else R=t;return $e--,R===t&&(G=t,$e===0&&Oe(Ro)),R}function vE(){var R,G;if($e++,R=[],Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(Ku)),G!==t)for(;G!==t;)R.push(G),Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,$e===0&&Oe(Ku));else R=t;return $e--,R===t&&(G=t,$e===0&&Oe(S)),R}function io(){var R,G,Ce,je,Te,Xe;if(R=j,G=no(),G!==t){for(Ce=[],je=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Xe=no(),Xe!==t?(Te=[Te,Xe],je=Te):(j=je,je=t)):(j=je,je=t);je!==t;)Ce.push(je),je=j,Te=Tr(),Te===t&&(Te=null),Te!==t?(Xe=no(),Xe!==t?(Te=[Te,Xe],je=Te):(j=je,je=t)):(j=je,je=t);Ce!==t?(G=[G,Ce],R=G):(j=R,R=t)}else j=R,R=t;return R}function no(){var R;return r.substr(j,2)===Xl?(R=Xl,j+=2):(R=t,$e===0&&Oe(xh)),R===t&&(r.charCodeAt(j)===10?(R=Ph,j++):(R=t,$e===0&&Oe(Dh)),R===t&&(r.charCodeAt(j)===13?(R=Rh,j++):(R=t,$e===0&&Oe(Fh)))),R}let Wu=2,KA=0;if(va=n(),va!==t&&j===r.length)return va;throw va!==t&&j{"use strict";var Gpe=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=Gpe(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};WQ.exports=$U;WQ.exports.default=$U});var rK=w((CXe,tK)=>{tK.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var yc=w(Zn=>{"use strict";var iK=rK(),Mo=process.env;Object.defineProperty(Zn,"_vendors",{value:iK.map(function(r){return r.constant})});Zn.name=null;Zn.isPR=null;iK.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return nK(i)});if(Zn[r.constant]=t,t)switch(Zn.name=r.name,typeof r.pr){case"string":Zn.isPR=!!Mo[r.pr];break;case"object":"env"in r.pr?Zn.isPR=r.pr.env in Mo&&Mo[r.pr.env]!==r.pr.ne:"any"in r.pr?Zn.isPR=r.pr.any.some(function(i){return!!Mo[i]}):Zn.isPR=nK(r.pr);break;default:Zn.isPR=null}});Zn.isCI=!!(Mo.CI||Mo.CONTINUOUS_INTEGRATION||Mo.BUILD_NUMBER||Mo.RUN_ID||Zn.name);function nK(r){return typeof r=="string"?!!Mo[r]:Object.keys(r).every(function(e){return Mo[e]===r[e]})}});var ug={};ft(ug,{KeyRelationship:()=>bc,applyCascade:()=>hp,base64RegExp:()=>lK,colorStringAlphaRegExp:()=>AK,colorStringRegExp:()=>aK,computeKey:()=>_A,getPrintable:()=>ti,hasExactLength:()=>hK,hasForbiddenKeys:()=>yde,hasKeyRelationship:()=>tS,hasMaxLength:()=>nde,hasMinLength:()=>ide,hasMutuallyExclusiveKeys:()=>wde,hasRequiredKeys:()=>Ide,hasUniqueItems:()=>sde,isArray:()=>_pe,isAtLeast:()=>Ade,isAtMost:()=>lde,isBase64:()=>mde,isBoolean:()=>Jpe,isDate:()=>zpe,isDict:()=>Xpe,isEnum:()=>nn,isHexColor:()=>Cde,isISO8601:()=>dde,isInExclusiveRange:()=>ude,isInInclusiveRange:()=>cde,isInstanceOf:()=>$pe,isInteger:()=>gde,isJSON:()=>Ede,isLiteral:()=>Ype,isLowerCase:()=>fde,isNegative:()=>ode,isNullable:()=>rde,isNumber:()=>Wpe,isObject:()=>Zpe,isOneOf:()=>ede,isOptional:()=>tde,isPositive:()=>ade,isString:()=>fp,isTuple:()=>Vpe,isUUID4:()=>pde,isUnknown:()=>fK,isUpperCase:()=>hde,iso8601RegExp:()=>eS,makeCoercionFn:()=>Bc,makeSetter:()=>gK,makeTrait:()=>uK,makeValidator:()=>vt,matchesRegExp:()=>pp,plural:()=>pI,pushError:()=>mt,simpleKeyRegExp:()=>oK,uuid4RegExp:()=>cK});function vt({test:r}){return uK(r)()}function ti(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function _A(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:oK.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function Bc(r,e){return t=>{let i=r[e];return r[e]=t,Bc(r,e).bind(null,i)}}function gK(r,e){return t=>{r[e]=t}}function pI(r,e,t){return r===1?e:t}function mt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Ype(r){return vt({test:(e,t)=>e!==r?mt(t,`Expected a literal (got ${ti(r)})`):!0})}function nn(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return vt({test:(i,n)=>t.has(i)?!0:mt(n,`Expected a valid enumeration value (got ${ti(i)})`)})}var oK,aK,AK,lK,cK,eS,uK,fK,fp,qpe,Jpe,Wpe,zpe,_pe,Vpe,Xpe,Zpe,$pe,ede,hp,tde,rde,ide,nde,hK,sde,ode,ade,Ade,lde,cde,ude,gde,pp,fde,hde,pde,dde,Cde,mde,Ede,Ide,yde,wde,bc,Bde,tS,ws=hge(()=>{oK=/^[a-zA-Z_][a-zA-Z0-9_]*$/,aK=/^#[0-9a-f]{6}$/i,AK=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,lK=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,cK=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,eS=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,uK=r=>()=>r;fK=()=>vt({test:(r,e)=>!0});fp=()=>vt({test:(r,e)=>typeof r!="string"?mt(e,`Expected a string (got ${ti(r)})`):!0});qpe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Jpe=()=>vt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i=qpe.get(r);if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a boolean (got ${ti(r)})`)}return!0}}),Wpe=()=>vt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return mt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a number (got ${ti(r)})`)}return!0}}),zpe=()=>vt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return mt(e,"Unbound coercion result");let i;if(typeof r=="string"&&eS.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch(o){}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return mt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i!="undefined")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return mt(e,`Expected a date (got ${ti(r)})`)}return!0}}),_pe=(r,{delimiter:e}={})=>vt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return mt(i,`Expected an array (got ${ti(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=hK(r.length);return vt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return mt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return mt(n,`Expected a tuple (got ${ti(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;avt({test:(t,i)=>{if(typeof t!="object"||t===null)return mt(i,`Expected an object (got ${ti(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return vt({test:(i,n)=>{if(typeof i!="object"||i===null)return mt(n,`Expected an object (got ${ti(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=mt(Object.assign(Object.assign({},n),{p:_A(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:_A(n,l),coercion:Bc(i,l)}))&&a:e===null?a=mt(Object.assign(Object.assign({},n),{p:_A(n,l)}),`Extraneous property (got ${ti(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:gK(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},$pe=r=>vt({test:(e,t)=>e instanceof r?!0:mt(t,`Expected an instance of ${r.name} (got ${ti(e)})`)}),ede=(r,{exclusive:e=!1}={})=>vt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=r.length;c1?mt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),hp=(r,e)=>vt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)!="undefined"?Bc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)=="undefined")return mt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),tde=r=>vt({test:(e,t)=>typeof e=="undefined"?!0:r(e,t)}),rde=r=>vt({test:(e,t)=>e===null?!0:r(e,t)}),ide=r=>vt({test:(e,t)=>e.length>=r?!0:mt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),nde=r=>vt({test:(e,t)=>e.length<=r?!0:mt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),hK=r=>vt({test:(e,t)=>e.length!==r?mt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),sde=({map:r}={})=>vt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;svt({test:(r,e)=>r<=0?!0:mt(e,`Expected to be negative (got ${r})`)}),ade=()=>vt({test:(r,e)=>r>=0?!0:mt(e,`Expected to be positive (got ${r})`)}),Ade=r=>vt({test:(e,t)=>e>=r?!0:mt(t,`Expected to be at least ${r} (got ${e})`)}),lde=r=>vt({test:(e,t)=>e<=r?!0:mt(t,`Expected to be at most ${r} (got ${e})`)}),cde=(r,e)=>vt({test:(t,i)=>t>=r&&t<=e?!0:mt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),ude=(r,e)=>vt({test:(t,i)=>t>=r&&tvt({test:(e,t)=>e!==Math.round(e)?mt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:mt(t,`Expected to be a safe integer (got ${e})`)}),pp=r=>vt({test:(e,t)=>r.test(e)?!0:mt(t,`Expected to match the pattern ${r.toString()} (got ${ti(e)})`)}),fde=()=>vt({test:(r,e)=>r!==r.toLowerCase()?mt(e,`Expected to be all-lowercase (got ${r})`):!0}),hde=()=>vt({test:(r,e)=>r!==r.toUpperCase()?mt(e,`Expected to be all-uppercase (got ${r})`):!0}),pde=()=>vt({test:(r,e)=>cK.test(r)?!0:mt(e,`Expected to be a valid UUID v4 (got ${ti(r)})`)}),dde=()=>vt({test:(r,e)=>eS.test(r)?!1:mt(e,`Expected to be a valid ISO 8601 date string (got ${ti(r)})`)}),Cde=({alpha:r=!1})=>vt({test:(e,t)=>(r?aK.test(e):AK.test(e))?!0:mt(t,`Expected to be a valid hexadecimal color string (got ${ti(e)})`)}),mde=()=>vt({test:(r,e)=>lK.test(r)?!0:mt(e,`Expected to be a valid base 64 string (got ${ti(r)})`)}),Ede=(r=fK())=>vt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch(n){return mt(t,`Expected to be a valid JSON string (got ${ti(e)})`)}return r(i,t)}}),Ide=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?mt(i,`Missing required ${pI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},yde=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?mt(i,`Forbidden ${pI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},wde=r=>{let e=new Set(r);return vt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?mt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(bc||(bc={}));Bde={[bc.Forbids]:{expect:!1,message:"forbids using"},[bc.Requires]:{expect:!0,message:"requires using"}},tS=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Bde[e];return vt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?mt(l,`Property "${r}" ${o.message} ${pI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var FK=w((mZe,RK)=>{"use strict";RK.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var fg=w((EZe,AS)=>{"use strict";var Kde=FK(),NK=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Kde(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};AS.exports=NK;AS.exports.default=NK});var Ep=w((yZe,LK)=>{var Hde="2.0.0",jde=256,Gde=Number.MAX_SAFE_INTEGER||9007199254740991,Yde=16;LK.exports={SEMVER_SPEC_VERSION:Hde,MAX_LENGTH:jde,MAX_SAFE_INTEGER:Gde,MAX_SAFE_COMPONENT_LENGTH:Yde}});var Ip=w((wZe,TK)=>{var qde=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};TK.exports=qde});var Qc=w((XA,OK)=>{var{MAX_SAFE_COMPONENT_LENGTH:lS}=Ep(),Jde=Ip();XA=OK.exports={};var Wde=XA.re=[],rt=XA.src=[],it=XA.t={},zde=0,kt=(r,e,t)=>{let i=zde++;Jde(i,e),it[r]=i,rt[i]=e,Wde[i]=new RegExp(e,t?"g":void 0)};kt("NUMERICIDENTIFIER","0|[1-9]\\d*");kt("NUMERICIDENTIFIERLOOSE","[0-9]+");kt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");kt("MAINVERSION",`(${rt[it.NUMERICIDENTIFIER]})\\.(${rt[it.NUMERICIDENTIFIER]})\\.(${rt[it.NUMERICIDENTIFIER]})`);kt("MAINVERSIONLOOSE",`(${rt[it.NUMERICIDENTIFIERLOOSE]})\\.(${rt[it.NUMERICIDENTIFIERLOOSE]})\\.(${rt[it.NUMERICIDENTIFIERLOOSE]})`);kt("PRERELEASEIDENTIFIER",`(?:${rt[it.NUMERICIDENTIFIER]}|${rt[it.NONNUMERICIDENTIFIER]})`);kt("PRERELEASEIDENTIFIERLOOSE",`(?:${rt[it.NUMERICIDENTIFIERLOOSE]}|${rt[it.NONNUMERICIDENTIFIER]})`);kt("PRERELEASE",`(?:-(${rt[it.PRERELEASEIDENTIFIER]}(?:\\.${rt[it.PRERELEASEIDENTIFIER]})*))`);kt("PRERELEASELOOSE",`(?:-?(${rt[it.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${rt[it.PRERELEASEIDENTIFIERLOOSE]})*))`);kt("BUILDIDENTIFIER","[0-9A-Za-z-]+");kt("BUILD",`(?:\\+(${rt[it.BUILDIDENTIFIER]}(?:\\.${rt[it.BUILDIDENTIFIER]})*))`);kt("FULLPLAIN",`v?${rt[it.MAINVERSION]}${rt[it.PRERELEASE]}?${rt[it.BUILD]}?`);kt("FULL",`^${rt[it.FULLPLAIN]}$`);kt("LOOSEPLAIN",`[v=\\s]*${rt[it.MAINVERSIONLOOSE]}${rt[it.PRERELEASELOOSE]}?${rt[it.BUILD]}?`);kt("LOOSE",`^${rt[it.LOOSEPLAIN]}$`);kt("GTLT","((?:<|>)?=?)");kt("XRANGEIDENTIFIERLOOSE",`${rt[it.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);kt("XRANGEIDENTIFIER",`${rt[it.NUMERICIDENTIFIER]}|x|X|\\*`);kt("XRANGEPLAIN",`[v=\\s]*(${rt[it.XRANGEIDENTIFIER]})(?:\\.(${rt[it.XRANGEIDENTIFIER]})(?:\\.(${rt[it.XRANGEIDENTIFIER]})(?:${rt[it.PRERELEASE]})?${rt[it.BUILD]}?)?)?`);kt("XRANGEPLAINLOOSE",`[v=\\s]*(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:\\.(${rt[it.XRANGEIDENTIFIERLOOSE]})(?:${rt[it.PRERELEASELOOSE]})?${rt[it.BUILD]}?)?)?`);kt("XRANGE",`^${rt[it.GTLT]}\\s*${rt[it.XRANGEPLAIN]}$`);kt("XRANGELOOSE",`^${rt[it.GTLT]}\\s*${rt[it.XRANGEPLAINLOOSE]}$`);kt("COERCE",`(^|[^\\d])(\\d{1,${lS}})(?:\\.(\\d{1,${lS}}))?(?:\\.(\\d{1,${lS}}))?(?:$|[^\\d])`);kt("COERCERTL",rt[it.COERCE],!0);kt("LONETILDE","(?:~>?)");kt("TILDETRIM",`(\\s*)${rt[it.LONETILDE]}\\s+`,!0);XA.tildeTrimReplace="$1~";kt("TILDE",`^${rt[it.LONETILDE]}${rt[it.XRANGEPLAIN]}$`);kt("TILDELOOSE",`^${rt[it.LONETILDE]}${rt[it.XRANGEPLAINLOOSE]}$`);kt("LONECARET","(?:\\^)");kt("CARETTRIM",`(\\s*)${rt[it.LONECARET]}\\s+`,!0);XA.caretTrimReplace="$1^";kt("CARET",`^${rt[it.LONECARET]}${rt[it.XRANGEPLAIN]}$`);kt("CARETLOOSE",`^${rt[it.LONECARET]}${rt[it.XRANGEPLAINLOOSE]}$`);kt("COMPARATORLOOSE",`^${rt[it.GTLT]}\\s*(${rt[it.LOOSEPLAIN]})$|^$`);kt("COMPARATOR",`^${rt[it.GTLT]}\\s*(${rt[it.FULLPLAIN]})$|^$`);kt("COMPARATORTRIM",`(\\s*)${rt[it.GTLT]}\\s*(${rt[it.LOOSEPLAIN]}|${rt[it.XRANGEPLAIN]})`,!0);XA.comparatorTrimReplace="$1$2$3";kt("HYPHENRANGE",`^\\s*(${rt[it.XRANGEPLAIN]})\\s+-\\s+(${rt[it.XRANGEPLAIN]})\\s*$`);kt("HYPHENRANGELOOSE",`^\\s*(${rt[it.XRANGEPLAINLOOSE]})\\s+-\\s+(${rt[it.XRANGEPLAINLOOSE]})\\s*$`);kt("STAR","(<|>)?=?\\s*\\*");kt("GTE0","^\\s*>=\\s*0.0.0\\s*$");kt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var yp=w((BZe,MK)=>{var _de=["includePrerelease","loose","rtl"],Vde=r=>r?typeof r!="object"?{loose:!0}:_de.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};MK.exports=Vde});var wI=w((bZe,UK)=>{var KK=/^[0-9]+$/,HK=(r,e)=>{let t=KK.test(r),i=KK.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rHK(e,r);UK.exports={compareIdentifiers:HK,rcompareIdentifiers:Xde}});var Hi=w((QZe,jK)=>{var BI=Ip(),{MAX_LENGTH:GK,MAX_SAFE_INTEGER:bI}=Ep(),{re:YK,t:qK}=Qc(),Zde=yp(),{compareIdentifiers:wp}=wI(),bs=class{constructor(e,t){if(t=Zde(t),e instanceof bs){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>GK)throw new TypeError(`version is longer than ${GK} characters`);BI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?YK[qK.LOOSE]:YK[qK.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>bI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>bI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>bI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};jK.exports=bs});var Sc=w((SZe,JK)=>{var{MAX_LENGTH:$de}=Ep(),{re:WK,t:zK}=Qc(),_K=Hi(),eCe=yp(),tCe=(r,e)=>{if(e=eCe(e),r instanceof _K)return r;if(typeof r!="string"||r.length>$de||!(e.loose?WK[zK.LOOSE]:WK[zK.FULL]).test(r))return null;try{return new _K(r,e)}catch(i){return null}};JK.exports=tCe});var XK=w((vZe,VK)=>{var rCe=Sc(),iCe=(r,e)=>{let t=rCe(r,e);return t?t.version:null};VK.exports=iCe});var $K=w((kZe,ZK)=>{var nCe=Sc(),sCe=(r,e)=>{let t=nCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};ZK.exports=sCe});var t2=w((xZe,e2)=>{var oCe=Hi(),aCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new oCe(r,t).inc(e,i).version}catch(n){return null}};e2.exports=aCe});var Qs=w((PZe,r2)=>{var i2=Hi(),ACe=(r,e,t)=>new i2(r,t).compare(new i2(e,t));r2.exports=ACe});var QI=w((DZe,n2)=>{var lCe=Qs(),cCe=(r,e,t)=>lCe(r,e,t)===0;n2.exports=cCe});var a2=w((RZe,s2)=>{var o2=Sc(),uCe=QI(),gCe=(r,e)=>{if(uCe(r,e))return null;{let t=o2(r),i=o2(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};s2.exports=gCe});var l2=w((FZe,A2)=>{var fCe=Hi(),hCe=(r,e)=>new fCe(r,e).major;A2.exports=hCe});var u2=w((NZe,c2)=>{var pCe=Hi(),dCe=(r,e)=>new pCe(r,e).minor;c2.exports=dCe});var f2=w((LZe,g2)=>{var CCe=Hi(),mCe=(r,e)=>new CCe(r,e).patch;g2.exports=mCe});var p2=w((TZe,h2)=>{var ECe=Sc(),ICe=(r,e)=>{let t=ECe(r,e);return t&&t.prerelease.length?t.prerelease:null};h2.exports=ICe});var C2=w((OZe,d2)=>{var yCe=Qs(),wCe=(r,e,t)=>yCe(e,r,t);d2.exports=wCe});var E2=w((MZe,m2)=>{var BCe=Qs(),bCe=(r,e)=>BCe(r,e,!0);m2.exports=bCe});var SI=w((UZe,I2)=>{var y2=Hi(),QCe=(r,e,t)=>{let i=new y2(r,t),n=new y2(e,t);return i.compare(n)||i.compareBuild(n)};I2.exports=QCe});var B2=w((KZe,w2)=>{var SCe=SI(),vCe=(r,e)=>r.sort((t,i)=>SCe(t,i,e));w2.exports=vCe});var Q2=w((HZe,b2)=>{var kCe=SI(),xCe=(r,e)=>r.sort((t,i)=>kCe(i,t,e));b2.exports=xCe});var Bp=w((jZe,S2)=>{var PCe=Qs(),DCe=(r,e,t)=>PCe(r,e,t)>0;S2.exports=DCe});var vI=w((GZe,v2)=>{var RCe=Qs(),FCe=(r,e,t)=>RCe(r,e,t)<0;v2.exports=FCe});var cS=w((YZe,k2)=>{var NCe=Qs(),LCe=(r,e,t)=>NCe(r,e,t)!==0;k2.exports=LCe});var kI=w((qZe,x2)=>{var TCe=Qs(),OCe=(r,e,t)=>TCe(r,e,t)>=0;x2.exports=OCe});var xI=w((JZe,P2)=>{var MCe=Qs(),UCe=(r,e,t)=>MCe(r,e,t)<=0;P2.exports=UCe});var uS=w((WZe,D2)=>{var KCe=QI(),HCe=cS(),jCe=Bp(),GCe=kI(),YCe=vI(),qCe=xI(),JCe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return KCe(r,t,i);case"!=":return HCe(r,t,i);case">":return jCe(r,t,i);case">=":return GCe(r,t,i);case"<":return YCe(r,t,i);case"<=":return qCe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};D2.exports=JCe});var F2=w((zZe,R2)=>{var WCe=Hi(),zCe=Sc(),{re:PI,t:DI}=Qc(),_Ce=(r,e)=>{if(r instanceof WCe)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(PI[DI.COERCE]);else{let i;for(;(i=PI[DI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),PI[DI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;PI[DI.COERCERTL].lastIndex=-1}return t===null?null:zCe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};R2.exports=_Ce});var L2=w((_Ze,N2)=>{"use strict";N2.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var bp=w((VZe,T2)=>{"use strict";T2.exports=Gt;Gt.Node=vc;Gt.create=Gt;function Gt(r){var e=this;if(e instanceof Gt||(e=new Gt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Gt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Gt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Gt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Gt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Gt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Gt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var $Ce=bp(),kc=Symbol("max"),Ha=Symbol("length"),hg=Symbol("lengthCalculator"),Qp=Symbol("allowStale"),xc=Symbol("maxAge"),ja=Symbol("dispose"),M2=Symbol("noDisposeOnSet"),yi=Symbol("lruList"),Ao=Symbol("cache"),U2=Symbol("updateAgeOnGet"),gS=()=>1,K2=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[kc]=e.max||Infinity,i=e.length||gS;if(this[hg]=typeof i!="function"?gS:i,this[Qp]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[xc]=e.maxAge||0,this[ja]=e.dispose,this[M2]=e.noDisposeOnSet||!1,this[U2]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[kc]=e||Infinity,Sp(this)}get max(){return this[kc]}set allowStale(e){this[Qp]=!!e}get allowStale(){return this[Qp]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[xc]=e,Sp(this)}get maxAge(){return this[xc]}set lengthCalculator(e){typeof e!="function"&&(e=gS),e!==this[hg]&&(this[hg]=e,this[Ha]=0,this[yi].forEach(t=>{t.length=this[hg](t.value,t.key),this[Ha]+=t.length})),Sp(this)}get lengthCalculator(){return this[hg]}get length(){return this[Ha]}get itemCount(){return this[yi].length}rforEach(e,t){t=t||this;for(let i=this[yi].tail;i!==null;){let n=i.prev;j2(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[yi].head;i!==null;){let n=i.next;j2(this,e,i,t),i=n}}keys(){return this[yi].toArray().map(e=>e.key)}values(){return this[yi].toArray().map(e=>e.value)}reset(){this[ja]&&this[yi]&&this[yi].length&&this[yi].forEach(e=>this[ja](e.key,e.value)),this[Ao]=new Map,this[yi]=new $Ce,this[Ha]=0}dump(){return this[yi].map(e=>RI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[yi]}set(e,t,i){if(i=i||this[xc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[hg](t,e);if(this[Ao].has(e)){if(s>this[kc])return pg(this,this[Ao].get(e)),!1;let l=this[Ao].get(e).value;return this[ja]&&(this[M2]||this[ja](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Ha]+=s-l.length,l.length=s,this.get(e),Sp(this),!0}let o=new H2(e,t,s,n,i);return o.length>this[kc]?(this[ja]&&this[ja](e,t),!1):(this[Ha]+=o.length,this[yi].unshift(o),this[Ao].set(e,this[yi].head),Sp(this),!0)}has(e){if(!this[Ao].has(e))return!1;let t=this[Ao].get(e).value;return!RI(this,t)}get(e){return fS(this,e,!0)}peek(e){return fS(this,e,!1)}pop(){let e=this[yi].tail;return e?(pg(this,e),e.value):null}del(e){pg(this,this[Ao].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Ao].forEach((e,t)=>fS(this,t,!1))}},fS=(r,e,t)=>{let i=r[Ao].get(e);if(i){let n=i.value;if(RI(r,n)){if(pg(r,i),!r[Qp])return}else t&&(r[U2]&&(i.value.now=Date.now()),r[yi].unshiftNode(i));return n.value}},RI=(r,e)=>{if(!e||!e.maxAge&&!r[xc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[xc]&&t>r[xc]},Sp=r=>{if(r[Ha]>r[kc])for(let e=r[yi].tail;r[Ha]>r[kc]&&e!==null;){let t=e.prev;pg(r,e),e=t}},pg=(r,e)=>{if(e){let t=e.value;r[ja]&&r[ja](t.key,t.value),r[Ha]-=t.length,r[Ao].delete(t.key),r[yi].removeNode(e)}},H2=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},j2=(r,e,t,i)=>{let n=t.value;RI(r,n)&&(pg(r,t),r[Qp]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};O2.exports=K2});var Ss=w((ZZe,Y2)=>{var dg=class{constructor(e,t){if(t=eme(t),e instanceof dg)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dg(e.raw,t);if(e instanceof hS)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!J2(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&sme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=q2.get(i);if(n)return n;let s=this.options.loose,o=s?ji[xi.HYPHENRANGELOOSE]:ji[xi.HYPHENRANGE];e=e.replace(o,Ame(this.options.includePrerelease)),zr("hyphen replace",e),e=e.replace(ji[xi.COMPARATORTRIM],rme),zr("comparator trim",e,ji[xi.COMPARATORTRIM]),e=e.replace(ji[xi.TILDETRIM],ime),e=e.replace(ji[xi.CARETTRIM],nme),e=e.split(/\s+/).join(" ");let a=s?ji[xi.COMPARATORLOOSE]:ji[xi.COMPARATOR],l=e.split(" ").map(f=>ome(f,this.options)).join(" ").split(/\s+/).map(f=>ame(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new hS(f,this.options)),c=l.length,u=new Map;for(let f of l){if(J2(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return q2.set(i,g),g}intersects(e,t){if(!(e instanceof dg))throw new TypeError("a Range is required");return this.set.some(i=>W2(i,t)&&e.set.some(n=>W2(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new tme(e,this.options)}catch(t){return!1}for(let t=0;tr.value==="<0.0.0-0",sme=r=>r.value==="",W2=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},ome=(r,e)=>(zr("comp",r,e),r=gme(r,e),zr("caret",r),r=ume(r,e),zr("tildes",r),r=fme(r,e),zr("xrange",r),r=hme(r,e),zr("stars",r),r),on=r=>!r||r.toLowerCase()==="x"||r==="*",ume=(r,e)=>r.trim().split(/\s+/).map(t=>pme(t,e)).join(" "),pme=(r,e)=>{let t=e.loose?ji[xi.TILDELOOSE]:ji[xi.TILDE];return r.replace(t,(i,n,s,o,a)=>{zr("tilde",r,i,n,s,o,a);let l;return on(n)?l="":on(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:on(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(zr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,zr("tilde return",l),l})},gme=(r,e)=>r.trim().split(/\s+/).map(t=>dme(t,e)).join(" "),dme=(r,e)=>{zr("caret",r,e);let t=e.loose?ji[xi.CARETLOOSE]:ji[xi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{zr("caret",r,n,s,o,a,l);let c;return on(s)?c="":on(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:on(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(zr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(zr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),zr("caret return",c),c})},fme=(r,e)=>(zr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Cme(t,e)).join(" ")),Cme=(r,e)=>{r=r.trim();let t=e.loose?ji[xi.XRANGELOOSE]:ji[xi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{zr("xRange",r,i,n,s,o,a,l);let c=on(s),u=c||on(o),g=u||on(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),zr("xRange return",i),i})},hme=(r,e)=>(zr("replaceStars",r,e),r.trim().replace(ji[xi.STAR],"")),ame=(r,e)=>(zr("replaceGTE0",r,e),r.trim().replace(ji[e.includePrerelease?xi.GTE0PRE:xi.GTE0],"")),Ame=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(on(i)?t="":on(n)?t=`>=${i}.0.0${r?"-0":""}`:on(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,on(c)?l="":on(u)?l=`<${+c+1}.0.0-0`:on(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),lme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var vp=w(($Ze,z2)=>{var kp=Symbol("SemVer ANY"),xp=class{static get ANY(){return kp}constructor(e,t){if(t=mme(t),e instanceof xp){if(e.loose===!!t.loose)return e;e=e.value}dS("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===kp?this.value="":this.value=this.operator+this.semver.version,dS("comp",this)}parse(e){let t=this.options.loose?_2[V2.COMPARATORLOOSE]:_2[V2.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new X2(i[2],this.options.loose):this.semver=kp}toString(){return this.value}test(e){if(dS("Comparator.test",e,this.options.loose),this.semver===kp||e===kp)return!0;if(typeof e=="string")try{e=new X2(e,this.options)}catch(t){return!1}return pS(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof xp))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new Z2(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new Z2(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=pS(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=pS(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};z2.exports=xp;var mme=yp(),{re:_2,t:V2}=Qc(),pS=uS(),dS=Ip(),X2=Hi(),Z2=Ss()});var Pp=w((e$e,$2)=>{var Eme=Ss(),Ime=(r,e,t)=>{try{e=new Eme(e,t)}catch(i){return!1}return e.test(r)};$2.exports=Ime});var tH=w((t$e,eH)=>{var yme=Ss(),wme=(r,e)=>new yme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));eH.exports=wme});var iH=w((r$e,rH)=>{var Bme=Hi(),bme=Ss(),Qme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new bme(e,t)}catch(o){return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new Bme(i,t))}),i};rH.exports=Qme});var sH=w((i$e,nH)=>{var Sme=Hi(),vme=Ss(),kme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new vme(e,t)}catch(o){return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Sme(i,t))}),i};nH.exports=kme});var AH=w((n$e,oH)=>{var CS=Hi(),xme=Ss(),aH=Bp(),Pme=(r,e)=>{r=new xme(r,e);let t=new CS("0.0.0");if(r.test(t)||(t=new CS("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new CS(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||aH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||aH(t,s))&&(t=s)}return t&&r.test(t)?t:null};oH.exports=Pme});var cH=w((s$e,lH)=>{var Dme=Ss(),Rme=(r,e)=>{try{return new Dme(r,e).range||"*"}catch(t){return null}};lH.exports=Rme});var FI=w((o$e,uH)=>{var Fme=Hi(),gH=vp(),{ANY:Nme}=gH,Lme=Ss(),Tme=Pp(),fH=Bp(),hH=vI(),Ome=xI(),Mme=kI(),Ume=(r,e,t,i)=>{r=new Fme(r,i),e=new Lme(e,i);let n,s,o,a,l;switch(t){case">":n=fH,s=Ome,o=hH,a=">",l=">=";break;case"<":n=hH,s=Mme,o=fH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Tme(r,e,i))return!1;for(let c=0;c{h.semver===Nme&&(h=new gH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};uH.exports=Ume});var dH=w((a$e,pH)=>{var Kme=FI(),Hme=(r,e,t)=>Kme(r,e,">",t);pH.exports=Hme});var mH=w((A$e,CH)=>{var jme=FI(),Gme=(r,e,t)=>jme(r,e,"<",t);CH.exports=Gme});var yH=w((l$e,EH)=>{var IH=Ss(),Yme=(r,e,t)=>(r=new IH(r,t),e=new IH(e,t),r.intersects(e));EH.exports=Yme});var BH=w((c$e,wH)=>{var qme=Pp(),Jme=Qs();wH.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>Jme(u,g,t));for(let u of o)qme(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var QH=Ss(),NI=vp(),{ANY:mS}=NI,Dp=Pp(),ES=Qs(),zme=(r,e,t={})=>{if(r===e)return!0;r=new QH(r,t),e=new QH(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=Wme(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},Wme=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===mS){if(e.length===1&&e[0].semver===mS)return!0;t.includePrerelease?r=[new NI(">=0.0.0-0")]:r=[new NI(">=0.0.0")]}if(e.length===1&&e[0].semver===mS){if(t.includePrerelease)return!0;e=[new NI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=SH(n,h,t):h.operator==="<"||h.operator==="<="?s=vH(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=ES(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Dp(h,String(n),t)||s&&!Dp(h,String(s),t))return null;for(let p of e)if(!Dp(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=SH(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!Dp(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=vH(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Dp(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},SH=(r,e,t)=>{if(!r)return e;let i=ES(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},vH=(r,e,t)=>{if(!r)return e;let i=ES(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};bH.exports=zme});var ri=w((g$e,xH)=>{var IS=Qc();xH.exports={re:IS.re,src:IS.src,tokens:IS.t,SEMVER_SPEC_VERSION:Ep().SEMVER_SPEC_VERSION,SemVer:Hi(),compareIdentifiers:wI().compareIdentifiers,rcompareIdentifiers:wI().rcompareIdentifiers,parse:Sc(),valid:XK(),clean:$K(),inc:t2(),diff:a2(),major:l2(),minor:u2(),patch:f2(),prerelease:p2(),compare:Qs(),rcompare:C2(),compareLoose:E2(),compareBuild:SI(),sort:B2(),rsort:Q2(),gt:Bp(),lt:vI(),eq:QI(),neq:cS(),gte:kI(),lte:xI(),cmp:uS(),coerce:F2(),Comparator:vp(),Range:Ss(),satisfies:Pp(),toComparators:tH(),maxSatisfying:iH(),minSatisfying:sH(),minVersion:AH(),validRange:cH(),outside:FI(),gtr:dH(),ltr:mH(),intersects:yH(),simplifyRange:BH(),subset:kH()}});var yS=w(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.VERSION=void 0;LI.VERSION="9.1.0"});var Yt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof TI=="object"&&TI.exports?TI.exports=e():r.regexpToAst=e()})(typeof self!="undefined"?self:PH,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],m=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(m)}},r.prototype.alternative=function(){for(var p=[],m=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:Infinity};break;case"+":m={atLeast:1,atMost:Infinity};break;case"?":m={atLeast:0,atMost:1};break;case"{":var b=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:b,atMost:b};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),m={atLeast:b,atMost:v}):m={atLeast:b,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&m===void 0)return;a(m);break}if(!(p===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var p,m=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(m),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,m=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,m=!0;break;case"s":p=f;break;case"S":p=f,m=!0;break;case"w":p=g;break;case"W":p=g,m=!0;break}return a(p),{type:"Set",value:p,complement:m}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var m=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),b=y.type==="Character";if(b&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),k=v.type==="Character";if(k){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,m){p.length!==void 0?p.forEach(function(y){m.push(y)}):m.push(p)}function o(p,m){if(p[m]===!0)throw"duplicate flag "+m;p[m]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var m in p){var y=p[m];p.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(b){this.visit(b)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var UI=w(Cg=>{"use strict";Object.defineProperty(Cg,"__esModule",{value:!0});Cg.clearRegExpParserCache=Cg.getRegExpAst=void 0;var _me=OI(),MI={},Vme=new _me.RegExpParser;function Xme(r){var e=r.toString();if(MI.hasOwnProperty(e))return MI[e];var t=Vme.pattern(e);return MI[e]=t,t}Cg.getRegExpAst=Xme;function Zme(){MI={}}Cg.clearRegExpParserCache=Zme});var LH=w(Bn=>{"use strict";var $me=Bn&&Bn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Bn,"__esModule",{value:!0});Bn.canMatchCharCode=Bn.firstCharOptimizedIndices=Bn.getOptimizedStartCodesIndices=Bn.failedOptimizationPrefixMsg=void 0;var DH=OI(),vs=Yt(),RH=UI(),Ga=wS(),FH="Complement Sets are not supported for first char optimization";Bn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function eEe(r,e){e===void 0&&(e=!1);try{var t=(0,RH.getRegExpAst)(r),i=KI(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===FH)e&&(0,vs.PRINT_WARNING)(""+Bn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,vs.PRINT_ERROR)(Bn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+DH.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Bn.getOptimizedStartCodesIndices=eEe;function KI(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Ga.minOptimizationVal)for(var f=u.from>=Ga.minOptimizationVal?u.from:Ga.minOptimizationVal,h=u.to,p=(0,Ga.charCodeToOptimizedIndex)(f),m=(0,Ga.charCodeToOptimizedIndex)(h),y=p;y<=m;y++)e[y]=y}}});break;case"Group":KI(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&BS(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,vs.values)(e)}Bn.firstCharOptimizedIndices=KI;function HI(r,e,t){var i=(0,Ga.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&tEe(r,e)}function tEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Ga.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Ga.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function NH(r,e){return(0,vs.find)(r.value,function(t){if(typeof t=="number")return(0,vs.contains)(e,t);var i=t;return(0,vs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function BS(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,vs.isArray)(r.value)?(0,vs.every)(r.value,BS):BS(r.value):!1}var rEe=function(r){$me(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,vs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?NH(t,this.targetCharCodes)===void 0&&(this.found=!0):NH(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(DH.BaseRegExpVisitor);function iEe(r,e){if(e instanceof RegExp){var t=(0,RH.getRegExpAst)(e),i=new rEe(r);return i.visit(t),i.found}else return(0,vs.find)(e,function(n){return(0,vs.contains)(r,n.charCodeAt(0))})!==void 0}Bn.canMatchCharCode=iEe});var wS=w(Ze=>{"use strict";var TH=Ze&&Ze.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ze,"__esModule",{value:!0});Ze.charCodeToOptimizedIndex=Ze.minOptimizationVal=Ze.buildLineBreakIssueMessage=Ze.LineTerminatorOptimizedTester=Ze.isShortPattern=Ze.isCustomPattern=Ze.cloneEmptyGroups=Ze.performWarningRuntimeChecks=Ze.performRuntimeChecks=Ze.addStickyFlag=Ze.addStartOfInput=Ze.findUnreachablePatterns=Ze.findModesThatDoNotExist=Ze.findInvalidGroupType=Ze.findDuplicatePatterns=Ze.findUnsupportedFlags=Ze.findStartOfInputAnchor=Ze.findEmptyMatchRegExps=Ze.findEndOfInputAnchor=Ze.findInvalidPatterns=Ze.findMissingPatterns=Ze.validatePatterns=Ze.analyzeTokenTypes=Ze.enableSticky=Ze.disableSticky=Ze.SUPPORT_STICKY=Ze.MODES=Ze.DEFAULT_MODE=void 0;var OH=OI(),Ar=Rp(),Ne=Yt(),mg=LH(),MH=UI(),Ko="PATTERN";Ze.DEFAULT_MODE="defaultMode";Ze.MODES="modes";Ze.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function nEe(){Ze.SUPPORT_STICKY=!1}Ze.disableSticky=nEe;function sEe(){Ze.SUPPORT_STICKY=!0}Ze.enableSticky=sEe;function aEe(r,e){e=(0,Ne.defaults)(e,{useSticky:Ze.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,k){return k()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){oEe()});var i;t("Reject Lexer.NA",function(){i=(0,Ne.reject)(r,function(v){return v[Ko]===Ar.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Ne.map)(i,function(v){var k=v[Ko];if((0,Ne.isRegExp)(k)){var T=k.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!k.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,Ne.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?QS(k):bS(k)}else{if((0,Ne.isFunction)(k))return n=!0,{exec:k};if((0,Ne.has)(k,"exec"))return n=!0,k;if(typeof k=="string"){if(k.length===1)return k;var Y=k.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(Y);return e.useSticky?QS(q):bS(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Ne.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Ne.map)(i,function(v){var k=v.GROUP;if(k!==Ar.Lexer.SKIPPED){if((0,Ne.isString)(k))return k;if((0,Ne.isUndefined)(k))return!1;throw Error("non exhaustive match")}}),l=(0,Ne.map)(i,function(v){var k=v.LONGER_ALT;if(k){var T=(0,Ne.isArray)(k)?(0,Ne.map)(k,function(Y){return(0,Ne.indexOf)(i,Y)}):[(0,Ne.indexOf)(i,k)];return T}}),c=(0,Ne.map)(i,function(v){return v.PUSH_MODE}),u=(0,Ne.map)(i,function(v){return(0,Ne.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=HH(e.lineTerminatorCharacters);g=(0,Ne.map)(i,function(k){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ne.map)(i,function(k){if((0,Ne.has)(k,"LINE_BREAKS"))return k.LINE_BREAKS;if(KH(k,v)===!1)return(0,mg.canMatchCharCode)(v,k.PATTERN)}))});var f,h,p,m;t("Misc Mapping #2",function(){f=(0,Ne.map)(i,SS),h=(0,Ne.map)(s,UH),p=(0,Ne.reduce)(i,function(v,k){var T=k.GROUP;return(0,Ne.isString)(T)&&T!==Ar.Lexer.SKIPPED&&(v[T]=[]),v},{}),m=(0,Ne.map)(s,function(v,k){return{pattern:s[k],longerAlt:l[k],canLineTerminator:g[k],isCustom:f[k],short:h[k],group:a[k],push:c[k],pop:u[k],tokenTypeIdx:o[k],tokenType:i[k]}})});var y=!0,b=[];return e.safeMode||t("First Char Optimization",function(){b=(0,Ne.reduce)(i,function(v,k,T){if(typeof k.PATTERN=="string"){var Y=k.PATTERN.charCodeAt(0),q=kS(Y);vS(v,q,m[T])}else if((0,Ne.isArray)(k.START_CHARS_HINT)){var $;(0,Ne.forEach)(k.START_CHARS_HINT,function(ne){var ee=typeof ne=="string"?ne.charCodeAt(0):ne,A=kS(ee);$!==A&&($=A,vS(v,A,m[T]))})}else if((0,Ne.isRegExp)(k.PATTERN))if(k.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+mg.failedOptimizationPrefixMsg+(" Unable to analyze < "+k.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var z=(0,mg.getOptimizedStartCodesIndices)(k.PATTERN,e.ensureOptimizations);(0,Ne.isEmpty)(z)&&(y=!1),(0,Ne.forEach)(z,function(ne){vS(v,ne,m[T])})}else e.ensureOptimizations&&(0,Ne.PRINT_ERROR)(""+mg.failedOptimizationPrefixMsg+(" TokenType: <"+k.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){b=(0,Ne.packArray)(b)}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:b,hasCustom:n,canBeOptimized:y}}Ze.analyzeTokenTypes=aEe;function lEe(r,e){var t=[],i=jH(r);t=t.concat(i.errors);var n=GH(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(AEe(s)),t=t.concat(YH(s)),t=t.concat(qH(s,e)),t=t.concat(JH(s)),t}Ze.validatePatterns=lEe;function AEe(r){var e=[],t=(0,Ne.filter)(r,function(i){return(0,Ne.isRegExp)(i[Ko])});return e=e.concat(WH(t)),e=e.concat(_H(t)),e=e.concat(VH(t)),e=e.concat(XH(t)),e=e.concat(zH(t)),e}function jH(r){var e=(0,Ne.filter)(r,function(n){return!(0,Ne.has)(n,Ko)}),t=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:Ar.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(r,e);return{errors:t,valid:i}}Ze.findMissingPatterns=jH;function GH(r){var e=(0,Ne.filter)(r,function(n){var s=n[Ko];return!(0,Ne.isRegExp)(s)&&!(0,Ne.isFunction)(s)&&!(0,Ne.has)(s,"exec")&&!(0,Ne.isString)(s)}),t=(0,Ne.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ar.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ne.difference)(r,e);return{errors:t,valid:i}}Ze.findInvalidPatterns=GH;var cEe=/[^\\][\$]/;function WH(r){var e=function(n){TH(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(OH.BaseRegExpVisitor),t=(0,Ne.filter)(r,function(n){var s=n[Ko];try{var o=(0,MH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return cEe.test(s.source)}}),i=(0,Ne.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findEndOfInputAnchor=WH;function zH(r){var e=(0,Ne.filter)(r,function(i){var n=i[Ko];return n.test("")}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:Ar.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ze.findEmptyMatchRegExps=zH;var uEe=/[^\\[][\^]|^\^/;function _H(r){var e=function(n){TH(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(OH.BaseRegExpVisitor),t=(0,Ne.filter)(r,function(n){var s=n[Ko];try{var o=(0,MH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return uEe.test(s.source)}}),i=(0,Ne.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Ar.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ze.findStartOfInputAnchor=_H;function VH(r){var e=(0,Ne.filter)(r,function(i){var n=i[Ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ar.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ze.findUnsupportedFlags=VH;function XH(r){var e=[],t=(0,Ne.map)(r,function(s){return(0,Ne.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ne.contains)(e,a)&&a.PATTERN!==Ar.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Ne.compact)(t);var i=(0,Ne.filter)(t,function(s){return s.length>1}),n=(0,Ne.map)(i,function(s){var o=(0,Ne.map)(s,function(l){return l.name}),a=(0,Ne.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:Ar.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ze.findDuplicatePatterns=XH;function YH(r){var e=(0,Ne.filter)(r,function(i){if(!(0,Ne.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==Ar.Lexer.SKIPPED&&n!==Ar.Lexer.NA&&!(0,Ne.isString)(n)}),t=(0,Ne.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ar.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ze.findInvalidGroupType=YH;function qH(r,e){var t=(0,Ne.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Ne.contains)(e,n.PUSH_MODE)}),i=(0,Ne.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:Ar.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ze.findModesThatDoNotExist=qH;function JH(r){var e=[],t=(0,Ne.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===Ar.Lexer.NA||((0,Ne.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ne.isRegExp)(o)&&fEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ne.forEach)(r,function(i,n){(0,Ne.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:Ar.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ze.findUnreachablePatterns=JH;function gEe(r,e){if((0,Ne.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Ne.isFunction)(e))return e(r,0,[],{});if((0,Ne.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function fEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ne.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function bS(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ze.addStartOfInput=bS;function QS(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ze.addStickyFlag=QS;function hEe(r,e,t){var i=[];return(0,Ne.has)(r,Ze.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.DEFAULT_MODE+`> property in its definition +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ne.has)(r,Ze.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ze.MODES+`> property in its definition +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ne.has)(r,Ze.MODES)&&(0,Ne.has)(r,Ze.DEFAULT_MODE)&&!(0,Ne.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ze.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:Ar.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ne.has)(r,Ze.MODES)&&(0,Ne.forEach)(r.modes,function(n,s){(0,Ne.forEach)(n,function(o,a){(0,Ne.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:Ar.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ze.performRuntimeChecks=hEe;function pEe(r,e,t){var i=[],n=!1,s=(0,Ne.compact)((0,Ne.flatten)((0,Ne.mapValues)(r.modes,function(l){return l}))),o=(0,Ne.reject)(s,function(l){return l[Ko]===Ar.Lexer.NA}),a=HH(t);return e&&(0,Ne.forEach)(o,function(l){var c=KH(l,a);if(c!==!1){var u=ZH(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ne.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,mg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:Ar.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ze.performWarningRuntimeChecks=pEe;function dEe(r){var e={},t=(0,Ne.keys)(r);return(0,Ne.forEach)(t,function(i){var n=r[i];if((0,Ne.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ze.cloneEmptyGroups=dEe;function SS(r){var e=r.PATTERN;if((0,Ne.isRegExp)(e))return!1;if((0,Ne.isFunction)(e))return!0;if((0,Ne.has)(e,"exec"))return!0;if((0,Ne.isString)(e))return!1;throw Error("non exhaustive match")}Ze.isCustomPattern=SS;function UH(r){return(0,Ne.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ze.isShortPattern=UH;Ze.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===Ar.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ze.buildLineBreakIssueMessage=ZH;function HH(r){var e=(0,Ne.map)(r,function(t){return(0,Ne.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function vS(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ze.minOptimizationVal=256;var jI=[];function kS(r){return r255?255+~~(r/255):r}}});var Eg=w(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});Ft.isTokenType=Ft.hasExtendingTokensTypesMapProperty=Ft.hasExtendingTokensTypesProperty=Ft.hasCategoriesProperty=Ft.hasShortKeyProperty=Ft.singleAssignCategoriesToksMap=Ft.assignCategoriesMapProp=Ft.assignCategoriesTokensProp=Ft.assignTokenDefaultProps=Ft.expandCategories=Ft.augmentTokenTypes=Ft.tokenIdxToClass=Ft.tokenShortNameIdx=Ft.tokenStructuredMatcherNoCategories=Ft.tokenStructuredMatcher=void 0;var ii=Yt();function CEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Ft.tokenStructuredMatcher=CEe;function mEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Ft.tokenStructuredMatcherNoCategories=mEe;Ft.tokenShortNameIdx=1;Ft.tokenIdxToClass={};function EEe(r){var e=$H(r);ej(e),rj(e),tj(e),(0,ii.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Ft.augmentTokenTypes=EEe;function $H(r){for(var e=(0,ii.cloneArr)(r),t=r,i=!0;i;){t=(0,ii.compact)((0,ii.flatten)((0,ii.map)(t,function(s){return s.CATEGORIES})));var n=(0,ii.difference)(t,e);e=e.concat(n),(0,ii.isEmpty)(n)?i=!1:t=n}return e}Ft.expandCategories=$H;function ej(r){(0,ii.forEach)(r,function(e){ij(e)||(Ft.tokenIdxToClass[Ft.tokenShortNameIdx]=e,e.tokenTypeIdx=Ft.tokenShortNameIdx++),xS(e)&&!(0,ii.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),xS(e)||(e.CATEGORIES=[]),nj(e)||(e.categoryMatches=[]),sj(e)||(e.categoryMatchesMap={})})}Ft.assignTokenDefaultProps=ej;function tj(r){(0,ii.forEach)(r,function(e){e.categoryMatches=[],(0,ii.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Ft.tokenIdxToClass[i].tokenTypeIdx)})})}Ft.assignCategoriesTokensProp=tj;function rj(r){(0,ii.forEach)(r,function(e){PS([],e)})}Ft.assignCategoriesMapProp=rj;function PS(r,e){(0,ii.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ii.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ii.contains)(i,t)||PS(i,t)})}Ft.singleAssignCategoriesToksMap=PS;function ij(r){return(0,ii.has)(r,"tokenTypeIdx")}Ft.hasShortKeyProperty=ij;function xS(r){return(0,ii.has)(r,"CATEGORIES")}Ft.hasCategoriesProperty=xS;function nj(r){return(0,ii.has)(r,"categoryMatches")}Ft.hasExtendingTokensTypesProperty=nj;function sj(r){return(0,ii.has)(r,"categoryMatchesMap")}Ft.hasExtendingTokensTypesMapProperty=sj;function IEe(r){return(0,ii.has)(r,"tokenTypeIdx")}Ft.isTokenType=IEe});var DS=w(GI=>{"use strict";Object.defineProperty(GI,"__esModule",{value:!0});GI.defaultLexerErrorProvider=void 0;GI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Rp=w(Pc=>{"use strict";Object.defineProperty(Pc,"__esModule",{value:!0});Pc.Lexer=Pc.LexerDefinitionErrorType=void 0;var lo=wS(),lr=Yt(),yEe=Eg(),wEe=DS(),BEe=UI(),bEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(bEe=Pc.LexerDefinitionErrorType||(Pc.LexerDefinitionErrorType={}));var Fp={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:wEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Fp);var QEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Fp),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,lr.merge)(Fp,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Fp.lineTerminatorsPattern)i.config.lineTerminatorsPattern=lo.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Fp.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,lr.isArray)(e)?(s={modes:{}},s.modes[lo.DEFAULT_MODE]=(0,lr.cloneArr)(e),s[lo.DEFAULT_MODE]=lo.DEFAULT_MODE):(o=!1,s=(0,lr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,lo.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,lo.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,lr.forEach)(s.modes,function(u,g){s.modes[g]=(0,lr.reject)(u,function(f){return(0,lr.isUndefined)(f)})});var a=(0,lr.keys)(s.modes);if((0,lr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,lo.validatePatterns)(u,a))}),(0,lr.isEmpty)(i.lexerDefinitionErrors)){(0,yEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,lo.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,lr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,lr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,lr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,lr.forEach)(i.lexerDefinitionWarning,function(u){(0,lr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(lo.SUPPORT_STICKY?(i.chopInput=lr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=lr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=lr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=lr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=lr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,lr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,lr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,BEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,lr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,lr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,lr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,m,y,b,v,k,T=e,Y=T.length,q=0,$=0,z=this.hasCustom?0:Math.floor(e.length/10),ne=new Array(z),ee=[],A=this.trackStartLines?1:void 0,oe=this.trackStartLines?1:void 0,ce=(0,lo.cloneEmptyGroups)(this.emptyGroups),Z=this.trackStartLines,O=this.config.lineTerminatorsPattern,L=0,de=[],Be=[],Ge=[],re=[];Object.freeze(re);var se=void 0;function be(){return de}function he(Sr){var Gn=(0,lo.charCodeToOptimizedIndex)(Sr),fs=Be[Gn];return fs===void 0?re:fs}var Fe=function(Sr){if(Ge.length===1&&Sr.tokenType.PUSH_MODE===void 0){var Gn=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(Sr);ee.push({offset:Sr.startOffset,line:Sr.startLine!==void 0?Sr.startLine:void 0,column:Sr.startColumn!==void 0?Sr.startColumn:void 0,length:Sr.image.length,message:Gn})}else{Ge.pop();var fs=(0,lr.last)(Ge);de=i.patternIdxToConfig[fs],Be=i.charCodeToPatternIdxToConfig[fs],L=de.length;var Qa=i.canModeBeOptimized[fs]&&i.config.safeMode===!1;Be&&Qa?se=he:se=be}};function Ue(Sr){Ge.push(Sr),Be=this.charCodeToPatternIdxToConfig[Sr],de=this.patternIdxToConfig[Sr],L=de.length,L=de.length;var Gn=this.canModeBeOptimized[Sr]&&this.config.safeMode===!1;Be&&Gn?se=he:se=be}Ue.call(this,t);for(var xe;qc.length){c=a,u=g,xe=gt;break}}}break}}if(c!==null){if(f=c.length,h=xe.group,h!==void 0&&(p=xe.tokenTypeIdx,m=this.createTokenInstance(c,q,p,xe.tokenType,A,oe,f),this.handlePayload(m,u),h===!1?$=this.addToken(ne,$,m):ce[h].push(m)),e=this.chopInput(e,f),q=q+f,oe=this.computeNewColumn(oe,f),Z===!0&&xe.canLineTerminator===!0){var Mt=0,Ei=void 0,jt=void 0;O.lastIndex=0;do Ei=O.test(c),Ei===!0&&(jt=O.lastIndex-1,Mt++);while(Ei===!0);Mt!==0&&(A=A+Mt,oe=f-jt,this.updateTokenEndLineColumnLocation(m,h,jt,Mt,A,oe,f))}this.handleModes(xe,Fe,Ue,m)}else{for(var Qr=q,Oi=A,$s=oe,Hn=!1;!Hn&&q <"+e+">");var n=(0,lr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Pc.Lexer=QEe});var ZA=w(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.tokenMatcher=Pi.createTokenInstance=Pi.EOF=Pi.createToken=Pi.hasTokenLabel=Pi.tokenName=Pi.tokenLabel=void 0;var co=Yt(),SEe=Rp(),RS=Eg();function vEe(r){return oj(r)?r.LABEL:r.name}Pi.tokenLabel=vEe;function kEe(r){return r.name}Pi.tokenName=kEe;function oj(r){return(0,co.isString)(r.LABEL)&&r.LABEL!==""}Pi.hasTokenLabel=oj;var xEe="parent",aj="categories",Aj="label",lj="group",cj="push_mode",uj="pop_mode",gj="longer_alt",fj="line_breaks",hj="start_chars_hint";function pj(r){return PEe(r)}Pi.createToken=pj;function PEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,co.isUndefined)(e)||(t.PATTERN=e),(0,co.has)(r,xEe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,co.has)(r,aj)&&(t.CATEGORIES=r[aj]),(0,RS.augmentTokenTypes)([t]),(0,co.has)(r,Aj)&&(t.LABEL=r[Aj]),(0,co.has)(r,lj)&&(t.GROUP=r[lj]),(0,co.has)(r,uj)&&(t.POP_MODE=r[uj]),(0,co.has)(r,cj)&&(t.PUSH_MODE=r[cj]),(0,co.has)(r,gj)&&(t.LONGER_ALT=r[gj]),(0,co.has)(r,fj)&&(t.LINE_BREAKS=r[fj]),(0,co.has)(r,hj)&&(t.START_CHARS_HINT=r[hj]),t}Pi.EOF=pj({name:"EOF",pattern:SEe.Lexer.NA});(0,RS.augmentTokenTypes)([Pi.EOF]);function DEe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Pi.createTokenInstance=DEe;function REe(r,e){return(0,RS.tokenStructuredMatcher)(r,e)}Pi.tokenMatcher=REe});var bn=w(Vt=>{"use strict";var Ya=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.serializeProduction=Vt.serializeGrammar=Vt.Terminal=Vt.Alternation=Vt.RepetitionWithSeparator=Vt.Repetition=Vt.RepetitionMandatoryWithSeparator=Vt.RepetitionMandatory=Vt.Option=Vt.Alternative=Vt.Rule=Vt.NonTerminal=Vt.AbstractProduction=void 0;var fr=Yt(),FEe=ZA(),Ho=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,fr.forEach)(this.definition,function(t){t.accept(e)})},r}();Vt.AbstractProduction=Ho;var dj=function(r){Ya(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ho);Vt.NonTerminal=dj;var Cj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.Rule=Cj;var mj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.Alternative=mj;var Ej=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.Option=Ej;var Ij=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.RepetitionMandatory=Ij;var yj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.RepetitionMandatoryWithSeparator=yj;var wj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.Repetition=wj;var Bj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return e}(Ho);Vt.RepetitionWithSeparator=Bj;var bj=function(r){Ya(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,fr.assign)(i,(0,fr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ho);Vt.Alternation=bj;var YI=function(){function r(e){this.idx=1,(0,fr.assign)(this,(0,fr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Vt.Terminal=YI;function NEe(r){return(0,fr.map)(r,Np)}Vt.serializeGrammar=NEe;function Np(r){function e(s){return(0,fr.map)(s,Np)}if(r instanceof dj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,fr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof mj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Ej)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Ij)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof yj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Np(new YI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Bj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Np(new YI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof wj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof bj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof YI){var i={type:"Terminal",name:r.terminalType.name,label:(0,FEe.tokenLabel)(r.terminalType),idx:r.idx};(0,fr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,fr.isRegExp)(n)?n.source:n),i}else{if(r instanceof Cj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Vt.serializeProduction=Np});var JI=w(qI=>{"use strict";Object.defineProperty(qI,"__esModule",{value:!0});qI.RestWalker=void 0;var FS=Yt(),Qn=bn(),LEe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,FS.forEach)(e.definition,function(n,s){var o=(0,FS.drop)(e.definition,s+1);if(n instanceof Qn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof Qn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof Qn.Alternative)i.walkFlat(n,o,t);else if(n instanceof Qn.Option)i.walkOption(n,o,t);else if(n instanceof Qn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof Qn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof Qn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof Qn.Repetition)i.walkMany(n,o,t);else if(n instanceof Qn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new Qn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Qj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new Qn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Qj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,FS.forEach)(e.definition,function(o){var a=new Qn.Alternative({definition:[o]});n.walk(a,s)})},r}();qI.RestWalker=LEe;function Qj(r,e,t){var i=[new Qn.Option({definition:[new Qn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Ig=w(WI=>{"use strict";Object.defineProperty(WI,"__esModule",{value:!0});WI.GAstVisitor=void 0;var jo=bn(),TEe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case jo.NonTerminal:return this.visitNonTerminal(t);case jo.Alternative:return this.visitAlternative(t);case jo.Option:return this.visitOption(t);case jo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case jo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case jo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case jo.Repetition:return this.visitRepetition(t);case jo.Alternation:return this.visitAlternation(t);case jo.Terminal:return this.visitTerminal(t);case jo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();WI.GAstVisitor=TEe});var Tp=w(Gi=>{"use strict";var OEe=Gi&&Gi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Gi,"__esModule",{value:!0});Gi.collectMethods=Gi.DslMethodsCollectorVisitor=Gi.getProductionDslName=Gi.isBranchingProd=Gi.isOptionalProd=Gi.isSequenceProd=void 0;var Lp=Yt(),kr=bn(),MEe=Ig();function UEe(r){return r instanceof kr.Alternative||r instanceof kr.Option||r instanceof kr.Repetition||r instanceof kr.RepetitionMandatory||r instanceof kr.RepetitionMandatoryWithSeparator||r instanceof kr.RepetitionWithSeparator||r instanceof kr.Terminal||r instanceof kr.Rule}Gi.isSequenceProd=UEe;function NS(r,e){e===void 0&&(e=[]);var t=r instanceof kr.Option||r instanceof kr.Repetition||r instanceof kr.RepetitionWithSeparator;return t?!0:r instanceof kr.Alternation?(0,Lp.some)(r.definition,function(i){return NS(i,e)}):r instanceof kr.NonTerminal&&(0,Lp.contains)(e,r)?!1:r instanceof kr.AbstractProduction?(r instanceof kr.NonTerminal&&e.push(r),(0,Lp.every)(r.definition,function(i){return NS(i,e)})):!1}Gi.isOptionalProd=NS;function KEe(r){return r instanceof kr.Alternation}Gi.isBranchingProd=KEe;function HEe(r){if(r instanceof kr.NonTerminal)return"SUBRULE";if(r instanceof kr.Option)return"OPTION";if(r instanceof kr.Alternation)return"OR";if(r instanceof kr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof kr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof kr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof kr.Repetition)return"MANY";if(r instanceof kr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Gi.getProductionDslName=HEe;var Sj=function(r){OEe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Lp.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(MEe.GAstVisitor);Gi.DslMethodsCollectorVisitor=Sj;var zI=new Sj;function jEe(r){zI.reset(),r.accept(zI);var e=zI.dslMethods;return zI.reset(),e}Gi.collectMethods=jEe});var TS=w(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.firstForTerminal=Go.firstForBranching=Go.firstForSequence=Go.first=void 0;var _I=Yt(),vj=bn(),LS=Tp();function VI(r){if(r instanceof vj.NonTerminal)return VI(r.referencedRule);if(r instanceof vj.Terminal)return Pj(r);if((0,LS.isSequenceProd)(r))return kj(r);if((0,LS.isBranchingProd)(r))return xj(r);throw Error("non exhaustive match")}Go.first=VI;function kj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,LS.isOptionalProd)(s),e=e.concat(VI(s)),i=i+1,n=t.length>i;return(0,_I.uniq)(e)}Go.firstForSequence=kj;function xj(r){var e=(0,_I.map)(r.definition,function(t){return VI(t)});return(0,_I.uniq)((0,_I.flatten)(e))}Go.firstForBranching=xj;function Pj(r){return[r.terminalType]}Go.firstForTerminal=Pj});var OS=w(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.IN=void 0;XI.IN="_~IN~_"});var Lj=w(ks=>{"use strict";var GEe=ks&&ks.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ks,"__esModule",{value:!0});ks.buildInProdFollowPrefix=ks.buildBetweenProdsFollowPrefix=ks.computeAllProdsFollows=ks.ResyncFollowsWalker=void 0;var YEe=JI(),qEe=TS(),Dj=Yt(),Rj=OS(),JEe=bn(),Nj=function(r){GEe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Fj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new JEe.Alternative({definition:o}),l=(0,qEe.first)(a);this.follows[s]=l},e}(YEe.RestWalker);ks.ResyncFollowsWalker=Nj;function WEe(r){var e={};return(0,Dj.forEach)(r,function(t){var i=new Nj(t).startWalking();(0,Dj.assign)(e,i)}),e}ks.computeAllProdsFollows=WEe;function Fj(r,e){return r.name+e+Rj.IN}ks.buildBetweenProdsFollowPrefix=Fj;function zEe(r){var e=r.terminalType.name;return e+r.idx+Rj.IN}ks.buildInProdFollowPrefix=zEe});var Op=w(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.defaultGrammarValidatorErrorProvider=qa.defaultGrammarResolverErrorProvider=qa.defaultParserErrorProvider=void 0;var yg=ZA(),_Ee=Yt(),uo=Yt(),MS=bn(),Tj=Tp();qa.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,yg.hasTokenLabel)(e),o=s?"--> "+(0,yg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,uo.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,uo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,uo.map)(c,function(h){return"["+(0,uo.map)(h,function(p){return(0,yg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,uo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,uo.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,uo.map)(e,function(u){return"["+(0,uo.map)(u,function(g){return(0,yg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(qa.defaultParserErrorProvider);qa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};qa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof MS.Terminal?u.terminalType.name:u instanceof MS.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,uo.first)(e),s=n.idx,o=(0,Tj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,uo.map)(r.prefixPath,function(n){return(0,yg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,uo.map)(r.prefixPath,function(n){return(0,yg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Tj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=_Ee.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof MS.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Uj=w($A=>{"use strict";var VEe=$A&&$A.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty($A,"__esModule",{value:!0});$A.GastRefResolverVisitor=$A.resolveGrammar=void 0;var XEe=es(),Oj=Yt(),ZEe=Ig();function $Ee(r,e){var t=new Mj(r,e);return t.resolveRefs(),t.errors}$A.resolveGrammar=$Ee;var Mj=function(r){VEe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Oj.forEach)((0,Oj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:XEe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(ZEe.GAstVisitor);$A.GastRefResolverVisitor=Mj});var Up=w(Ur=>{"use strict";var Dc=Ur&&Ur.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ur,"__esModule",{value:!0});Ur.nextPossibleTokensAfter=Ur.possiblePathsFrom=Ur.NextTerminalAfterAtLeastOneSepWalker=Ur.NextTerminalAfterAtLeastOneWalker=Ur.NextTerminalAfterManySepWalker=Ur.NextTerminalAfterManyWalker=Ur.AbstractNextTerminalAfterProductionWalker=Ur.NextAfterTokenWalker=Ur.AbstractNextPossibleTokensWalker=void 0;var Kj=JI(),Ut=Yt(),eIe=TS(),Dt=bn(),Hj=function(r){Dc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Ut.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Ut.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Ut.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Kj.RestWalker);Ur.AbstractNextPossibleTokensWalker=Hj;var tIe=function(r){Dc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,eIe.first)(o),this.found=!0}},e}(Hj);Ur.NextAfterTokenWalker=tIe;var Mp=function(r){Dc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Kj.RestWalker);Ur.AbstractNextTerminalAfterProductionWalker=Mp;var rIe=function(r){Dc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Mp);Ur.NextTerminalAfterManyWalker=rIe;var iIe=function(r){Dc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Mp);Ur.NextTerminalAfterManySepWalker=iIe;var nIe=function(r){Dc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Mp);Ur.NextTerminalAfterAtLeastOneWalker=nIe;var sIe=function(r){Dc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Ut.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Mp);Ur.NextTerminalAfterAtLeastOneSepWalker=sIe;function jj(r,e,t){t===void 0&&(t=[]),t=(0,Ut.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Ut.drop)(r,n+1))}function o(c){var u=jj(s(c),e,t);return i.concat(u)}for(;t.length=0;ce--){var Z=b.definition[ce],O={idx:p,def:Z.definition.concat((0,Ut.drop)(h)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(b instanceof Dt.Alternative)g.push({idx:p,def:b.definition.concat((0,Ut.drop)(h)),ruleStack:m,occurrenceStack:y});else if(b instanceof Dt.Rule)g.push(oIe(b,p,m,y));else throw Error("non exhaustive match")}}return u}Ur.nextPossibleTokensAfter=aIe;function oIe(r,e,t,i){var n=(0,Ut.cloneArr)(t);n.push(r.name);var s=(0,Ut.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Kp=w(tr=>{"use strict";var Gj=tr&&tr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(tr,"__esModule",{value:!0});tr.areTokenCategoriesNotUsed=tr.isStrictPrefixOfPath=tr.containsPath=tr.getLookaheadPathsForOptionalProd=tr.getLookaheadPathsForOr=tr.lookAheadSequenceFromAlternatives=tr.buildSingleAlternativeLookaheadFunction=tr.buildAlternativesLookAheadFunc=tr.buildLookaheadFuncForOptionalProd=tr.buildLookaheadFuncForOr=tr.getProdType=tr.PROD_TYPE=void 0;var cr=Yt(),Yj=Up(),AIe=JI(),ZI=Eg(),el=bn(),lIe=Ig(),ui;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(ui=tr.PROD_TYPE||(tr.PROD_TYPE={}));function cIe(r){if(r instanceof el.Option)return ui.OPTION;if(r instanceof el.Repetition)return ui.REPETITION;if(r instanceof el.RepetitionMandatory)return ui.REPETITION_MANDATORY;if(r instanceof el.RepetitionMandatoryWithSeparator)return ui.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof el.RepetitionWithSeparator)return ui.REPETITION_WITH_SEPARATOR;if(r instanceof el.Alternation)return ui.ALTERNATION;throw Error("non exhaustive match")}tr.getProdType=cIe;function uIe(r,e,t,i,n,s){var o=qj(r,e,t),a=US(o)?ZI.tokenStructuredMatcherNoCategories:ZI.tokenStructuredMatcher;return s(o,i,a,n)}tr.buildLookaheadFuncForOr=uIe;function gIe(r,e,t,i,n,s){var o=Jj(r,e,n,t),a=US(o)?ZI.tokenStructuredMatcherNoCategories:ZI.tokenStructuredMatcher;return s(o[0],a,i)}tr.buildLookaheadFuncForOptionalProd=gIe;function fIe(r,e,t,i){var n=r.length,s=(0,cr.every)(r,function(l){return(0,cr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,cr.map)(l,function(k){return k.GATE}),u=0;u{"use strict";var jS=Xt&&Xt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Xt,"__esModule",{value:!0});Xt.checkPrefixAlternativesAmbiguities=Xt.validateSomeNonEmptyLookaheadPath=Xt.validateTooManyAlts=Xt.RepetionCollector=Xt.validateAmbiguousAlternationAlternatives=Xt.validateEmptyOrAlternative=Xt.getFirstNoneTerminal=Xt.validateNoLeftRecursion=Xt.validateRuleIsOverridden=Xt.validateRuleDoesNotAlreadyExist=Xt.OccurrenceValidationCollector=Xt.identifyProductionForDuplicates=Xt.validateGrammar=void 0;var nr=Yt(),xr=Yt(),Yo=es(),GS=Tp(),wg=Kp(),mIe=Up(),go=bn(),YS=Ig();function yIe(r,e,t,i,n){var s=nr.map(r,function(h){return EIe(h,i)}),o=nr.map(r,function(h){return qS(h,h,i)}),a=[],l=[],c=[];(0,xr.every)(o,xr.isEmpty)&&(a=(0,xr.map)(r,function(h){return Xj(h,i)}),l=(0,xr.map)(r,function(h){return Zj(h,e,i)}),c=eG(r,e,i));var u=IIe(r,t,i),g=(0,xr.map)(r,function(h){return $j(h,i)}),f=(0,xr.map)(r,function(h){return Vj(h,r,n,i)});return nr.flatten(s.concat(c,o,a,l,u,g,f))}Xt.validateGrammar=yIe;function EIe(r,e){var t=new iG;r.accept(t);var i=t.allProductions,n=nr.groupBy(i,tG),s=nr.pick(n,function(a){return a.length>1}),o=nr.map(nr.values(s),function(a){var l=nr.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,GS.getProductionDslName)(l),g={message:c,type:Yo.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=rG(l);return f&&(g.parameter=f),g});return o}function tG(r){return(0,GS.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+rG(r)}Xt.identifyProductionForDuplicates=tG;function rG(r){return r instanceof go.Terminal?r.terminalType.name:r instanceof go.NonTerminal?r.nonTerminalName:""}var iG=function(r){jS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(YS.GAstVisitor);Xt.OccurrenceValidationCollector=iG;function Vj(r,e,t,i){var n=[],s=(0,xr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:Yo.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Xt.validateRuleDoesNotAlreadyExist=Vj;function wIe(r,e,t){var i=[],n;return nr.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Yo.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Xt.validateRuleIsOverridden=wIe;function qS(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Hp(e.definition);if(nr.isEmpty(s))return[];var o=r.name,a=nr.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:Yo.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=nr.difference(s,i.concat([r])),c=nr.map(l,function(u){var g=nr.cloneArr(i);return g.push(u),qS(r,u,t,g)});return n.concat(nr.flatten(c))}Xt.validateNoLeftRecursion=qS;function Hp(r){var e=[];if(nr.isEmpty(r))return e;var t=nr.first(r);if(t instanceof go.NonTerminal)e.push(t.referencedRule);else if(t instanceof go.Alternative||t instanceof go.Option||t instanceof go.RepetitionMandatory||t instanceof go.RepetitionMandatoryWithSeparator||t instanceof go.RepetitionWithSeparator||t instanceof go.Repetition)e=e.concat(Hp(t.definition));else if(t instanceof go.Alternation)e=nr.flatten(nr.map(t.definition,function(o){return Hp(o.definition)}));else if(!(t instanceof go.Terminal))throw Error("non exhaustive match");var i=(0,GS.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=nr.drop(r);return e.concat(Hp(s))}else return e}Xt.getFirstNoneTerminal=Hp;var JS=function(r){jS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(YS.GAstVisitor);function Xj(r,e){var t=new JS;r.accept(t);var i=t.alternations,n=nr.reduce(i,function(s,o){var a=nr.dropRight(o.definition),l=nr.map(a,function(c,u){var g=(0,mIe.nextPossibleTokensAfter)([c],[],null,1);return nr.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:Yo.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(nr.compact(l))},[]);return n}Xt.validateEmptyOrAlternative=Xj;function Zj(r,e,t){var i=new JS;r.accept(i);var n=i.alternations;n=(0,xr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=nr.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,wg.getLookaheadPathsForOr)(l,r,c,a),g=BIe(u,a,r,t),f=nG(u,a,r,t);return o.concat(g,f)},[]);return s}Xt.validateAmbiguousAlternationAlternatives=Zj;var sG=function(r){jS(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(YS.GAstVisitor);Xt.RepetionCollector=sG;function $j(r,e){var t=new JS;r.accept(t);var i=t.alternations,n=nr.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:Yo.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Xt.validateTooManyAlts=$j;function eG(r,e,t){var i=[];return(0,xr.forEach)(r,function(n){var s=new sG;n.accept(s);var o=s.allProductions;(0,xr.forEach)(o,function(a){var l=(0,wg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,wg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,xr.isEmpty)((0,xr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Yo.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Xt.validateSomeNonEmptyLookaheadPath=eG;function BIe(r,e,t,i){var n=[],s=(0,xr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,xr.forEach)(l,function(u){var g=[c];(0,xr.forEach)(r,function(f,h){c!==h&&(0,wg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,wg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=nr.map(s,function(a){var l=(0,xr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Yo.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function nG(r,e,t,i){var n=[],s=(0,xr.reduce)(r,function(o,a,l){var c=(0,xr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,xr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,xr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});Bg.validateGrammar=Bg.resolveGrammar=void 0;var zS=Yt(),bIe=Uj(),QIe=WS(),oG=Op();function SIe(r){r=(0,zS.defaults)(r,{errMsgProvider:oG.defaultGrammarResolverErrorProvider});var e={};return(0,zS.forEach)(r.rules,function(t){e[t.name]=t}),(0,bIe.resolveGrammar)(e,r.errMsgProvider)}Bg.resolveGrammar=SIe;function vIe(r){return r=(0,zS.defaults)(r,{errMsgProvider:oG.defaultGrammarValidatorErrorProvider}),(0,QIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}Bg.validateGrammar=vIe});var bg=w(Sn=>{"use strict";var jp=Sn&&Sn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Sn,"__esModule",{value:!0});Sn.EarlyExitException=Sn.NotAllInputParsedException=Sn.NoViableAltException=Sn.MismatchedTokenException=Sn.isRecognitionException=void 0;var kIe=Yt(),AG="MismatchedTokenException",lG="NoViableAltException",cG="EarlyExitException",uG="NotAllInputParsedException",gG=[AG,lG,cG,uG];Object.freeze(gG);function xIe(r){return(0,kIe.contains)(gG,r.name)}Sn.isRecognitionException=xIe;var $I=function(r){jp(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),PIe=function(r){jp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=AG,s}return e}($I);Sn.MismatchedTokenException=PIe;var DIe=function(r){jp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=lG,s}return e}($I);Sn.NoViableAltException=DIe;var RIe=function(r){jp(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=uG,n}return e}($I);Sn.NotAllInputParsedException=RIe;var FIe=function(r){jp(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=cG,s}return e}($I);Sn.EarlyExitException=FIe});var VS=w(Yi=>{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.attemptInRepetitionRecovery=Yi.Recoverable=Yi.InRuleRecoveryException=Yi.IN_RULE_RECOVERY_EXCEPTION=Yi.EOF_FOLLOW_KEY=void 0;var ey=ZA(),xs=Yt(),NIe=bg(),LIe=OS(),TIe=es();Yi.EOF_FOLLOW_KEY={};Yi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function _S(r){this.name=Yi.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Yi.InRuleRecoveryException=_S;_S.prototype=Error.prototype;var OIe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,xs.has)(e,"recoveryEnabled")?e.recoveryEnabled:TIe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=fG)},r.prototype.getTokenToInsert=function(e){var t=(0,ey.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),m=new NIe.MismatchedTokenException(p,u,s.LA(0));m.resyncedTokens=(0,xs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new _S("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,xs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,xs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,xs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,xs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Yi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,xs.map)(t,function(n,s){return s===0?Yi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,xs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,xs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Yi.EOF_FOLLOW_KEY)return[ey.EOF];var t=e.ruleName+e.idxInCallingRule+LIe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,ey.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,xs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,xs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,xs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Yi.Recoverable=OIe;function fG(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=ey.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Yi.attemptInRepetitionRecovery=fG});var ty=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.LooksAhead=void 0;var Ja=Kp(),fo=Yt(),hG=es(),Wa=ty(),Rc=Tp(),UIe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,fo.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:hG.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,fo.has)(e,"maxLookahead")?e.maxLookahead:hG.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,fo.isES2015MapSupported)()?new Map:[],(0,fo.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,fo.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Rc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,fo.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Rc.getProductionDslName)(g)+f,function(){var h=(0,Ja.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Wa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Wa.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,fo.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Wa.MANY_IDX,Ja.PROD_TYPE.REPETITION,g.maxLookahead,(0,Rc.getProductionDslName)(g))}),(0,fo.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Wa.OPTION_IDX,Ja.PROD_TYPE.OPTION,g.maxLookahead,(0,Rc.getProductionDslName)(g))}),(0,fo.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Wa.AT_LEAST_ONE_IDX,Ja.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Rc.getProductionDslName)(g))}),(0,fo.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Wa.AT_LEAST_ONE_SEP_IDX,Ja.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Rc.getProductionDslName)(g))}),(0,fo.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Wa.MANY_SEP_IDX,Ja.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Rc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ja.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Wa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ja.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ja.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Wa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();ry.LooksAhead=UIe});var dG=w(qo=>{"use strict";Object.defineProperty(qo,"__esModule",{value:!0});qo.addNoneTerminalToCst=qo.addTerminalToCst=qo.setNodeLocationFull=qo.setNodeLocationOnlyOffset=void 0;function KIe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(tl,"__esModule",{value:!0});tl.defineNameProp=tl.functionName=tl.classNameFromInstance=void 0;var YIe=Yt();function qIe(r){return CG(r.constructor)}tl.classNameFromInstance=qIe;var mG="name";function CG(r){var e=r.name;return e||"anonymous"}tl.functionName=CG;function JIe(r,e){var t=Object.getOwnPropertyDescriptor(r,mG);return(0,YIe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,mG,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}tl.defineNameProp=JIe});var BG=w(Di=>{"use strict";Object.defineProperty(Di,"__esModule",{value:!0});Di.validateRedundantMethods=Di.validateMissingCstMethods=Di.validateVisitor=Di.CstVisitorDefinitionError=Di.createBaseVisitorConstructorWithDefaults=Di.createBaseSemanticVisitorConstructor=Di.defaultVisit=void 0;var Ps=Yt(),Gp=XS();function EG(r,e){for(var t=(0,Ps.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Di.createBaseSemanticVisitorConstructor=WIe;function zIe(r,e,t){var i=function(){};(0,Gp.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,Ps.forEach)(e,function(s){n[s]=EG}),i.prototype=n,i.prototype.constructor=i,i}Di.createBaseVisitorConstructorWithDefaults=zIe;var ZS;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ZS=Di.CstVisitorDefinitionError||(Di.CstVisitorDefinitionError={}));function IG(r,e){var t=yG(r,e),i=wG(r,e);return t.concat(i)}Di.validateVisitor=IG;function yG(r,e){var t=(0,Ps.map)(e,function(i){if(!(0,Ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Gp.functionName)(r.constructor)+" CST Visitor.",type:ZS.MISSING_METHOD,methodName:i}});return(0,Ps.compact)(t)}Di.validateMissingCstMethods=yG;var _Ie=["constructor","visit","validateVisitor"];function wG(r,e){var t=[];for(var i in r)(0,Ps.isFunction)(r[i])&&!(0,Ps.contains)(_Ie,i)&&!(0,Ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Gp.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:ZS.REDUNDANT_METHOD,methodName:i});return t}Di.validateRedundantMethods=wG});var QG=w(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.TreeBuilder=void 0;var Qg=dG(),ni=Yt(),bG=BG(),VIe=es(),XIe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ni.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:VIe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ni.NOOP,this.cstFinallyStateUpdate=ni.NOOP,this.cstPostTerminal=ni.NOOP,this.cstPostNonTerminal=ni.NOOP,this.cstPostRule=ni.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Qg.setNodeLocationFull,this.setNodeLocationFromNode=Qg.setNodeLocationFull,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Qg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=Qg.setNodeLocationOnlyOffset,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ni.NOOP,this.setNodeLocationFromNode=ni.NOOP,this.cstPostRule=ni.NOOP,this.setInitialNodeLocation=ni.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Qg.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Qg.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ni.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,bG.createBaseSemanticVisitorConstructor)(this.className,(0,ni.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ni.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,bG.createBaseVisitorConstructorWithDefaults)(this.className,(0,ni.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();iy.TreeBuilder=XIe});var vG=w(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.LexerAdapter=void 0;var SG=es(),ZIe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):SG.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?SG.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();ny.LexerAdapter=ZIe});var xG=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.RecognizerApi=void 0;var kG=Yt(),$Ie=bg(),$S=es(),eye=Op(),tye=WS(),rye=bn(),iye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=$S.DEFAULT_RULE_CONFIG),(0,kG.contains)(this.definedRulesNames,e)){var n=eye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:$S.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=$S.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,tye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,$Ie.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,rye.serializeGrammar)((0,kG.values)(this.gastProductionsCache))},r}();sy.RecognizerApi=iye});var FG=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RecognizerEngine=void 0;var Fr=Yt(),ts=ty(),ay=bg(),PG=Kp(),Sg=Up(),DG=es(),nye=VS(),RG=ZA(),Yp=Eg(),sye=XS(),oye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,sye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Yp.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Fr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Fr.isArray)(e)){if((0,Fr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Fr.isArray)(e))this.tokensMap=(0,Fr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Fr.has)(e,"modes")&&(0,Fr.every)((0,Fr.flatten)((0,Fr.values)(e.modes)),Yp.isTokenType)){var i=(0,Fr.flatten)((0,Fr.values)(e.modes)),n=(0,Fr.uniq)(i);this.tokensMap=(0,Fr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Fr.isObject)(e))this.tokensMap=(0,Fr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=RG.EOF;var s=(0,Fr.every)((0,Fr.values)(e),function(o){return(0,Fr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Yp.tokenStructuredMatcherNoCategories:Yp.tokenStructuredMatcher,(0,Yp.augmentTokenTypes)((0,Fr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Fr.has)(i,"resyncEnabled")?i.resyncEnabled:DG.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Fr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:DG.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(ts.OR_IDX,t),n=(0,Fr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ay.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,ay.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ay.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===nye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Fr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),RG.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();oy.RecognizerEngine=oye});var LG=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.ErrorHandler=void 0;var ev=bg(),tv=Yt(),NG=Kp(),aye=es(),Aye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,tv.has)(e,"errorMessageProvider")?e.errorMessageProvider:aye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,ev.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,tv.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,tv.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,NG.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new ev.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,NG.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new ev.NoViableAltException(c,this.LA(1),l))},r}();Ay.ErrorHandler=Aye});var MG=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.ContentAssist=void 0;var TG=Up(),OG=Yt(),lye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,OG.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,TG.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,OG.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new TG.NextAfterTokenWalker(n,e).startWalking();return s},r}();ly.ContentAssist=lye});var JG=w(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.GastRecorder=void 0;var vn=Yt(),Jo=bn(),cye=Rp(),UG=Eg(),KG=ZA(),uye=es(),gye=ty(),uy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(uy);var HG=!0,jG=Math.pow(2,gye.BITS_FOR_OCCURRENCE_IDX)-1,GG=(0,KG.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:cye.Lexer.NA});(0,UG.augmentTokenTypes)([GG]);var YG=(0,KG.createTokenInstance)(GG,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(YG);var fye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},pye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return uye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Jo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return qp.call(this,Jo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){qp.call(this,Jo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){qp.call(this,Jo.RepetitionMandatoryWithSeparator,t,e,HG)},r.prototype.manyInternalRecord=function(e,t){qp.call(this,Jo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){qp.call(this,Jo.RepetitionWithSeparator,t,e,HG)},r.prototype.orInternalRecord=function(e,t){return hye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(gy(t),!e||(0,vn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,vn.peek)(this.recordingProdStack),o=e.ruleName,a=new Jo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?fye:uy},r.prototype.consumeInternalRecord=function(e,t,i){if(gy(t),!(0,UG.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,vn.peek)(this.recordingProdStack),o=new Jo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),YG},r}();cy.GastRecorder=pye;function qp(r,e,t,i){i===void 0&&(i=!1),gy(t);var n=(0,vn.peek)(this.recordingProdStack),s=(0,vn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,vn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),uy}function hye(r,e){var t=this;gy(e);var i=(0,vn.peek)(this.recordingProdStack),n=(0,vn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Jo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,vn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,vn.some)(s,function(l){return(0,vn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,vn.forEach)(s,function(l){var c=new Jo.Alternative({definition:[]});o.definition.push(c),(0,vn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,vn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),uy}function qG(r){return r===0?"":""+r}function gy(r){if(r<0||r>jG){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(jG+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var zG=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.PerformanceTracer=void 0;var WG=Yt(),dye=es(),Cye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,WG.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:Infinity,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=dye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,WG.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();fy.PerformanceTracer=Cye});var _G=w(hy=>{"use strict";Object.defineProperty(hy,"__esModule",{value:!0});hy.applyMixins=void 0;function mye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}hy.applyMixins=mye});var es=w(Er=>{"use strict";var VG=Er&&Er.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Er,"__esModule",{value:!0});Er.EmbeddedActionsParser=Er.CstParser=Er.Parser=Er.EMPTY_ALT=Er.ParserDefinitionErrorType=Er.DEFAULT_RULE_CONFIG=Er.DEFAULT_PARSER_CONFIG=Er.END_OF_FILE=void 0;var an=Yt(),Eye=Lj(),XG=ZA(),ZG=Op(),$G=aG(),Iye=VS(),yye=pG(),wye=QG(),Bye=vG(),bye=xG(),Qye=FG(),Sye=LG(),vye=MG(),kye=JG(),xye=zG(),Pye=_G();Er.END_OF_FILE=(0,XG.createTokenInstance)(XG.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Er.END_OF_FILE);Er.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:ZG.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Er.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var Dye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Dye=Er.ParserDefinitionErrorType||(Er.ParserDefinitionErrorType={}));function Rye(r){return r===void 0&&(r=void 0),function(){return r}}Er.EMPTY_ALT=Rye;var py=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,an.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,an.has)(t,"skipValidations")?t.skipValidations:Er.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,an.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,an.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,$G.resolveGrammar)({rules:(0,an.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,an.isEmpty)(n)&&e.skipValidations===!1){var s=(0,$G.validateGrammar)({rules:(0,an.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,an.values)(e.tokensMap),errMsgProvider:ZG.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,an.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,Eye.computeAllProdsFollows)((0,an.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,an.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,an.isEmpty)(e.definitionErrors))throw t=(0,an.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Er.Parser=py;(0,Pye.applyMixins)(py,[Iye.Recoverable,yye.LooksAhead,wye.TreeBuilder,Bye.LexerAdapter,Qye.RecognizerEngine,bye.RecognizerApi,Sye.ErrorHandler,vye.ContentAssist,kye.GastRecorder,xye.PerformanceTracer]);var Fye=function(r){VG(e,r);function e(t,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(py);Er.CstParser=Fye;var Nye=function(r){VG(e,r);function e(t,i){i===void 0&&(i=Er.DEFAULT_PARSER_CONFIG);var n=this,s=(0,an.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(py);Er.EmbeddedActionsParser=Nye});var tY=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.createSyntaxDiagramsCode=void 0;var eY=yS();function Lye(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+eY.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+eY.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + + + + +`,u=` +

+`,g=` + +`,f=` + +`;return a+l+c+u+g+f}dy.createSyntaxDiagramsCode=Lye});var nY=w(Ve=>{"use strict";Object.defineProperty(Ve,"__esModule",{value:!0});Ve.Parser=Ve.createSyntaxDiagramsCode=Ve.clearCache=Ve.GAstVisitor=Ve.serializeProduction=Ve.serializeGrammar=Ve.Terminal=Ve.Rule=Ve.RepetitionWithSeparator=Ve.RepetitionMandatoryWithSeparator=Ve.RepetitionMandatory=Ve.Repetition=Ve.Option=Ve.NonTerminal=Ve.Alternative=Ve.Alternation=Ve.defaultLexerErrorProvider=Ve.NoViableAltException=Ve.NotAllInputParsedException=Ve.MismatchedTokenException=Ve.isRecognitionException=Ve.EarlyExitException=Ve.defaultParserErrorProvider=Ve.tokenName=Ve.tokenMatcher=Ve.tokenLabel=Ve.EOF=Ve.createTokenInstance=Ve.createToken=Ve.LexerDefinitionErrorType=Ve.Lexer=Ve.EMPTY_ALT=Ve.ParserDefinitionErrorType=Ve.EmbeddedActionsParser=Ve.CstParser=Ve.VERSION=void 0;var Tye=yS();Object.defineProperty(Ve,"VERSION",{enumerable:!0,get:function(){return Tye.VERSION}});var Cy=es();Object.defineProperty(Ve,"CstParser",{enumerable:!0,get:function(){return Cy.CstParser}});Object.defineProperty(Ve,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Cy.EmbeddedActionsParser}});Object.defineProperty(Ve,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Cy.ParserDefinitionErrorType}});Object.defineProperty(Ve,"EMPTY_ALT",{enumerable:!0,get:function(){return Cy.EMPTY_ALT}});var rY=Rp();Object.defineProperty(Ve,"Lexer",{enumerable:!0,get:function(){return rY.Lexer}});Object.defineProperty(Ve,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return rY.LexerDefinitionErrorType}});var vg=ZA();Object.defineProperty(Ve,"createToken",{enumerable:!0,get:function(){return vg.createToken}});Object.defineProperty(Ve,"createTokenInstance",{enumerable:!0,get:function(){return vg.createTokenInstance}});Object.defineProperty(Ve,"EOF",{enumerable:!0,get:function(){return vg.EOF}});Object.defineProperty(Ve,"tokenLabel",{enumerable:!0,get:function(){return vg.tokenLabel}});Object.defineProperty(Ve,"tokenMatcher",{enumerable:!0,get:function(){return vg.tokenMatcher}});Object.defineProperty(Ve,"tokenName",{enumerable:!0,get:function(){return vg.tokenName}});var Oye=Op();Object.defineProperty(Ve,"defaultParserErrorProvider",{enumerable:!0,get:function(){return Oye.defaultParserErrorProvider}});var Jp=bg();Object.defineProperty(Ve,"EarlyExitException",{enumerable:!0,get:function(){return Jp.EarlyExitException}});Object.defineProperty(Ve,"isRecognitionException",{enumerable:!0,get:function(){return Jp.isRecognitionException}});Object.defineProperty(Ve,"MismatchedTokenException",{enumerable:!0,get:function(){return Jp.MismatchedTokenException}});Object.defineProperty(Ve,"NotAllInputParsedException",{enumerable:!0,get:function(){return Jp.NotAllInputParsedException}});Object.defineProperty(Ve,"NoViableAltException",{enumerable:!0,get:function(){return Jp.NoViableAltException}});var Mye=DS();Object.defineProperty(Ve,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Mye.defaultLexerErrorProvider}});var Wo=bn();Object.defineProperty(Ve,"Alternation",{enumerable:!0,get:function(){return Wo.Alternation}});Object.defineProperty(Ve,"Alternative",{enumerable:!0,get:function(){return Wo.Alternative}});Object.defineProperty(Ve,"NonTerminal",{enumerable:!0,get:function(){return Wo.NonTerminal}});Object.defineProperty(Ve,"Option",{enumerable:!0,get:function(){return Wo.Option}});Object.defineProperty(Ve,"Repetition",{enumerable:!0,get:function(){return Wo.Repetition}});Object.defineProperty(Ve,"RepetitionMandatory",{enumerable:!0,get:function(){return Wo.RepetitionMandatory}});Object.defineProperty(Ve,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Wo.RepetitionMandatoryWithSeparator}});Object.defineProperty(Ve,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Wo.RepetitionWithSeparator}});Object.defineProperty(Ve,"Rule",{enumerable:!0,get:function(){return Wo.Rule}});Object.defineProperty(Ve,"Terminal",{enumerable:!0,get:function(){return Wo.Terminal}});var iY=bn();Object.defineProperty(Ve,"serializeGrammar",{enumerable:!0,get:function(){return iY.serializeGrammar}});Object.defineProperty(Ve,"serializeProduction",{enumerable:!0,get:function(){return iY.serializeProduction}});var Uye=Ig();Object.defineProperty(Ve,"GAstVisitor",{enumerable:!0,get:function(){return Uye.GAstVisitor}});function Kye(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. + It performs no action other than printing this message. + Please avoid using it as it will be completely removed in the future`)}Ve.clearCache=Kye;var Hye=tY();Object.defineProperty(Ve,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Hye.createSyntaxDiagramsCode}});var jye=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();Ve.Parser=jye});var aY=w((eet,sY)=>{var my=nY(),za=my.createToken,oY=my.tokenMatcher,rv=my.Lexer,Gye=my.EmbeddedActionsParser;sY.exports=r=>{let e=za({name:"LogicalOperator",pattern:rv.NA}),t=za({name:"Or",pattern:/\|/,categories:e}),i=za({name:"Xor",pattern:/\^/,categories:e}),n=za({name:"And",pattern:/&/,categories:e}),s=za({name:"Not",pattern:/!/}),o=za({name:"LParen",pattern:/\(/}),a=za({name:"RParen",pattern:/\)/}),l=za({name:"Query",pattern:r}),u=[za({name:"WhiteSpace",pattern:/\s+/,group:rv.SKIPPED}),t,i,n,o,a,s,e,l],g=new rv(u);class f extends Gye{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let b=y,v=this.CONSUME(e),k=this.SUBRULE2(this.atomicExpression);oY(v,t)?y=T=>b(T)||k(T):oY(v,i)?y=T=>!!(b(T)^k(T)):y=T=>b(T)&&k(T)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var AY=w(Ey=>{var Yye=aY();Ey.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Yye(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ey.parse=Ey.makeParser()});var cY=w((ret,lY)=>{"use strict";lY.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var iv=w((iet,uY)=>{var Wp=cY(),gY={};for(let r of Object.keys(Wp))gY[Wp[r]]=r;var at={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};uY.exports=at;for(let r of Object.keys(at)){if(!("channels"in at[r]))throw new Error("missing channels property: "+r);if(!("labels"in at[r]))throw new Error("missing channel labels property: "+r);if(at[r].labels.length!==at[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=at[r];delete at[r].channels,delete at[r].labels,Object.defineProperty(at[r],"channels",{value:e}),Object.defineProperty(at[r],"labels",{value:t})}at.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};at.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};at.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=at.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};at.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function qye(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}at.rgb.keyword=function(r){let e=gY[r];if(e)return e;let t=Infinity,i;for(let n of Object.keys(Wp)){let s=Wp[n],o=qye(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};at.rgb.lab=function(r){let e=at.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};at.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};at.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};at.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};at.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};at.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};at.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};at.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};at.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};at.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};at.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};at.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};at.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?at.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};at.hsv.ansi16=function(r){return at.rgb.ansi16(at.hsv.rgb(r),r[2])};at.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};at.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};at.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};at.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};at.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};at.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};at.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};at.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};at.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};at.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};at.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};at.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};at.hwb.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=1-t,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};at.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};at.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};at.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};at.gray.hsl=function(r){return[0,0,r[0]]};at.gray.hsv=at.gray.hsl;at.gray.hwb=function(r){return[0,100,r[0]]};at.gray.cmyk=function(r){return[0,0,0,r[0]]};at.gray.lab=function(r){return[r[0],0,0]};at.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};at.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var hY=w((net,fY)=>{var Iy=iv();function Jye(){let r={},e=Object.keys(Iy);for(let t=e.length,i=0;i{var nv=iv(),Vye=hY(),kg={},Xye=Object.keys(nv);function Zye(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function $ye(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{kg[r]={},Object.defineProperty(kg[r],"channels",{value:nv[r].channels}),Object.defineProperty(kg[r],"labels",{value:nv[r].labels});let e=Vye(r);Object.keys(e).forEach(i=>{let n=e[i];kg[r][i]=$ye(n),kg[r][i].raw=Zye(n)})});pY.exports=kg});var wY=w((oet,CY)=>{"use strict";var mY=(r,e)=>(...t)=>`[${r(...t)+e}m`,EY=(r,e)=>(...t)=>{let i=r(...t);return`[${38+e};5;${i}m`},IY=(r,e)=>(...t)=>{let i=r(...t);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},yy=r=>r,yY=(r,e,t)=>[r,e,t],xg=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},sv,Pg=(r,e,t,i)=>{sv===void 0&&(sv=dY());let n=i?10:0,s={};for(let[o,a]of Object.entries(sv)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function ewe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="",e.bgColor.close="",xg(e.color,"ansi",()=>Pg(mY,"ansi16",yy,!1)),xg(e.color,"ansi256",()=>Pg(EY,"ansi256",yy,!1)),xg(e.color,"ansi16m",()=>Pg(IY,"rgb",yY,!1)),xg(e.bgColor,"ansi",()=>Pg(mY,"ansi16",yy,!0)),xg(e.bgColor,"ansi256",()=>Pg(EY,"ansi256",yy,!0)),xg(e.bgColor,"ansi16m",()=>Pg(IY,"rgb",yY,!0)),e}Object.defineProperty(CY,"exports",{enumerable:!0,get:ewe})});var bY=w((aet,BY)=>{"use strict";BY.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var twe=require("os"),SY=require("tty"),Ds=bY(),{env:gi}=process,rl;Ds("no-color")||Ds("no-colors")||Ds("color=false")||Ds("color=never")?rl=0:(Ds("color")||Ds("colors")||Ds("color=true")||Ds("color=always"))&&(rl=1);"FORCE_COLOR"in gi&&(gi.FORCE_COLOR==="true"?rl=1:gi.FORCE_COLOR==="false"?rl=0:rl=gi.FORCE_COLOR.length===0?1:Math.min(parseInt(gi.FORCE_COLOR,10),3));function ov(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function av(r,e){if(rl===0)return 0;if(Ds("color=16m")||Ds("color=full")||Ds("color=truecolor"))return 3;if(Ds("color=256"))return 2;if(r&&!e&&rl===void 0)return 0;let t=rl||0;if(gi.TERM==="dumb")return t;if(process.platform==="win32"){let i=twe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in gi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in gi)||gi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in gi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(gi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in gi)return 1;if(gi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in gi){let i=parseInt((gi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(gi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(gi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(gi.TERM)||"COLORTERM"in gi?1:t}function rwe(r){let e=av(r,r&&r.isTTY);return ov(e)}QY.exports={supportsColor:rwe,stdout:ov(av(!0,SY.isatty(1))),stderr:ov(av(!0,SY.isatty(2)))}});var xY=w((cet,kY)=>{"use strict";var iwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},nwe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +`:` +`)+t,n=i+1,i=r.indexOf(` +`,n)}while(i!==-1);return s+=r.substr(n),s};kY.exports={stringReplaceAll:iwe,stringEncaseCRLFWithFirstIndex:nwe}});var NY=w((uet,PY)=>{"use strict";var swe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,DY=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,owe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,awe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Awe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function RY(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Awe.get(r)||r}function lwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(owe))t.push(n[2].replace(awe,(a,l,c)=>l?RY(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function cwe(r){DY.lastIndex=0;let e=[],t;for(;(t=DY.exec(r))!==null;){let i=t[1];if(t[2]){let n=lwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function FY(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}PY.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(swe,(s,o,a,l,c,u)=>{if(o)n.push(RY(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:FY(r,t)(g)),t.push({inverse:a,styles:cwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(FY(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var gv=w((get,LY)=>{"use strict";var zp=wY(),{stdout:Av,stderr:lv}=vY(),{stringReplaceAll:uwe,stringEncaseCRLFWithFirstIndex:gwe}=xY(),TY=["ansi","ansi","ansi256","ansi16m"],Dg=Object.create(null),fwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=Av?Av.level:0;r.level=e.level===void 0?t:e.level},OY=class{constructor(e){return MY(e)}},MY=r=>{let e={};return fwe(e,r),e.template=(...t)=>hwe(e.template,...t),Object.setPrototypeOf(e,wy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=OY,e.template};function wy(r){return MY(r)}for(let[r,e]of Object.entries(zp))Dg[r]={get(){let t=By(this,cv(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};Dg.visible={get(){let r=By(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var UY=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of UY)Dg[r]={get(){let{level:e}=this;return function(...t){let i=cv(zp.color[TY[e]][r](...t),zp.color.close,this._styler);return By(this,i,this._isEmpty)}}};for(let r of UY){let e="bg"+r[0].toUpperCase()+r.slice(1);Dg[e]={get(){let{level:t}=this;return function(...i){let n=cv(zp.bgColor[TY[t]][r](...i),zp.bgColor.close,this._styler);return By(this,n,this._isEmpty)}}}}var pwe=Object.defineProperties(()=>{},te(N({},Dg),{level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}})),cv=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},By=(r,e,t)=>{let i=(...n)=>dwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=pwe,i._generator=r,i._styler=e,i._isEmpty=t,i},dwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("")!==-1)for(;t!==void 0;)e=uwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=gwe(e,n,i,s)),i+e+n},uv,hwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";Rs.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Rs.find=(r,e)=>r.nodes.find(t=>t.type===e);Rs.exceedsLimit=(r,e,t=1,i)=>i===!1||!Rs.isInteger(r)||!Rs.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Rs.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Rs.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0==0?(r.invalid=!0,!0):!1;Rs.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0==0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Rs.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Rs.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Rs.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var HY=by();KY.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&HY.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&HY.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var GY=w((pet,jY)=>{"use strict";jY.exports=function(r){return typeof r=="number"?r-r==0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var ZY=w((det,YY)=>{"use strict";var qY=GY(),Fc=(r,e,t)=>{if(qY(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(qY(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=N({relaxZeros:!0},t);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(Fc.cache.hasOwnProperty(l))return Fc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=WY(r)||WY(e),f={min:r,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let m=u<0?Math.abs(u):1;p=JY(m,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=JY(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Cwe(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),Fc.cache[l]=f,f.result};function Cwe(r,e,t){let i=fv(r,e,"-",!1,t)||[],n=fv(e,r,"",!1,t)||[],s=fv(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Ewe(r,e){let t=1,i=1,n=zY(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=zY(r,t);for(n=_Y(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+VY(a.count),o=c+1;continue}t.isPadded&&(g=Bwe(c,t,i)),u.string=g+u.pattern+VY(u.count),s.push(u),o=c+1,a=u}return s}function fv(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!XY(e,"string",a)&&s.push(t+a),i&&XY(e,"string",a)&&s.push(t+a)}return s}function Iwe(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function XY(r,e,t){return r.some(i=>i[e]===t)}function zY(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function _Y(r,e){return r-r%Math.pow(10,e)}function VY(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function ywe(r,e,t){return`[${r}${e-r==1?"":"-"}${e}]`}function WY(r){return/^-?(0+)\d/.test(r)}function Bwe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Fc.cache={};Fc.clearCache=()=>Fc.cache={};YY.exports=Fc});var dv=w((Cet,$Y)=>{"use strict";var bwe=require("util"),eq=ZY(),tq=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),Qwe=r=>e=>r===!0?Number(e):String(e),hv=r=>typeof r=="number"||typeof r=="string"&&r!=="",Vp=r=>Number.isInteger(+r),pv=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},Swe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,vwe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},rq=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},iq=(r,e,t,i)=>{if(t)return eq(r,e,N({wrap:!1},i));let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},nq=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return eq(r,e,t)},sq=(...r)=>new RangeError("Invalid range arguments: "+bwe.inspect(...r)),oq=(r,e,t)=>{if(t.strictRanges===!0)throw sq([r,e]);return[]},xwe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},Pwe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw sq([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=pv(a)||pv(l)||pv(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Swe(r,e,i)===!1,h=i.transform||Qwe(f);if(i.toRegex&&t===1)return iq(rq(r,g),rq(e,g),!0,i);let p={negatives:[],positives:[]},m=v=>p[v<0?"negatives":"positives"].push(Math.abs(v)),y=[],b=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(vwe(h(n,b),g,f)),n=o?n-t:n+t,b++;return i.toRegex===!0?t>1?kwe(p,i):nq(y,null,N({wrap:!1},i)):y},Dwe=(r,e,t=1,i={})=>{if(!Vp(r)&&r.length>1||!Vp(e)&&e.length>1)return oq(r,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return iq(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?nq(u,null,{wrap:!1,options:i}):u},Sy=(r,e,t,i={})=>{if(e==null&&hv(r))return[r];if(!hv(r)||!hv(e))return oq(r,e,i);if(typeof t=="function")return Sy(r,e,1,{transform:t});if(tq(t))return Sy(r,e,0,t);let n=N({},i);return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Vp(t)?Vp(r)&&Vp(e)?Pwe(r,e,t,n):Dwe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!tq(t)?xwe(t,n):Sy(r,e,1,t)};$Y.exports=Sy});var lq=w((met,aq)=>{"use strict";var Rwe=dv(),Aq=by(),Fwe=(r,e={})=>{let t=(i,n={})=>{let s=Aq.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=Aq.reduce(i.nodes),g=Rwe(...u,te(N({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};aq.exports=Fwe});var gq=w((Eet,cq)=>{"use strict";var Nwe=dv(),uq=Qy(),Rg=by(),Nc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?Rg.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Nc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Nc(n,s,t):n+s);return Rg.flatten(i)},Lwe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Nc(a.pop(),uq(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Nc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=Rg.reduce(n.nodes);if(Rg.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=Nwe(...g,e);f.length===0&&(f=uq(n,e)),a.push(Nc(a.pop(),f)),n.nodes=[];return}let l=Rg.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";fq.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Eq=w((yet,pq)=>{"use strict";var Twe=Qy(),{MAX_LENGTH:dq,CHAR_BACKSLASH:Cv,CHAR_BACKTICK:Owe,CHAR_COMMA:Mwe,CHAR_DOT:Uwe,CHAR_LEFT_PARENTHESES:Kwe,CHAR_RIGHT_PARENTHESES:Hwe,CHAR_LEFT_CURLY_BRACE:jwe,CHAR_RIGHT_CURLY_BRACE:Gwe,CHAR_LEFT_SQUARE_BRACKET:Cq,CHAR_RIGHT_SQUARE_BRACKET:mq,CHAR_DOUBLE_QUOTE:Ywe,CHAR_SINGLE_QUOTE:qwe,CHAR_NO_BREAK_SPACE:Jwe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Wwe}=hq(),zwe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(dq,t.maxLength):dq;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,f,h={},p=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:Twe(o)}]}m({type:"comma",value:f}),o.commas++;continue}if(f===Uwe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let b=y[y.length-1];b.value+=a.value+f,a=b,o.ranges--;continue}m({type:"dot",value:f});continue}m({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=s[s.length-1],b=y.nodes.indexOf(o);y.nodes.splice(b,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};pq.exports=zwe});var wq=w((wet,Iq)=>{"use strict";var yq=Qy(),_we=lq(),Vwe=gq(),Xwe=Eq(),rs=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=rs.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(rs.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};rs.parse=(r,e={})=>Xwe(r,e);rs.stringify=(r,e={})=>typeof r=="string"?yq(rs.parse(r,e),e):yq(r,e);rs.compile=(r,e={})=>(typeof r=="string"&&(r=rs.parse(r,e)),_we(r,e));rs.expand=(r,e={})=>{typeof r=="string"&&(r=rs.parse(r,e));let t=Vwe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};rs.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?rs.compile(r,e):rs.expand(r,e);Iq.exports=rs});var Xp=w((Bet,Bq)=>{"use strict";var Zwe=require("path"),zo="\\\\/",bq=`[^${zo}]`,_a="\\.",$we="\\+",eBe="\\?",vy="\\/",tBe="(?=.)",Qq="[^/]",mv=`(?:${vy}|$)`,Sq=`(?:^|${vy})`,Ev=`${_a}{1,2}${mv}`,rBe=`(?!${_a})`,iBe=`(?!${Sq}${Ev})`,nBe=`(?!${_a}{0,1}${mv})`,sBe=`(?!${Ev})`,oBe=`[^.${vy}]`,aBe=`${Qq}*?`,vq={DOT_LITERAL:_a,PLUS_LITERAL:$we,QMARK_LITERAL:eBe,SLASH_LITERAL:vy,ONE_CHAR:tBe,QMARK:Qq,END_ANCHOR:mv,DOTS_SLASH:Ev,NO_DOT:rBe,NO_DOTS:iBe,NO_DOT_SLASH:nBe,NO_DOTS_SLASH:sBe,QMARK_NO_DOT:oBe,STAR:aBe,START_ANCHOR:Sq},ABe=te(N({},vq),{SLASH_LITERAL:`[${zo}]`,QMARK:bq,STAR:`${bq}*?`,DOTS_SLASH:`${_a}{1,2}(?:[${zo}]|$)`,NO_DOT:`(?!${_a})`,NO_DOTS:`(?!(?:^|[${zo}])${_a}{1,2}(?:[${zo}]|$))`,NO_DOT_SLASH:`(?!${_a}{0,1}(?:[${zo}]|$))`,NO_DOTS_SLASH:`(?!${_a}{1,2}(?:[${zo}]|$))`,QMARK_NO_DOT:`[^.${zo}]`,START_ANCHOR:`(?:^|[${zo}])`,END_ANCHOR:`(?:[${zo}]|$)`}),lBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Bq.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:lBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Zwe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?ABe:vq}}});var Zp=w(kn=>{"use strict";var cBe=require("path"),uBe=process.platform==="win32",{REGEX_BACKSLASH:gBe,REGEX_REMOVE_BACKSLASH:fBe,REGEX_SPECIAL_CHARS:hBe,REGEX_SPECIAL_CHARS_GLOBAL:pBe}=Xp();kn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);kn.hasRegexChars=r=>hBe.test(r);kn.isRegexChar=r=>r.length===1&&kn.hasRegexChars(r);kn.escapeRegex=r=>r.replace(pBe,"\\$1");kn.toPosixSlashes=r=>r.replace(gBe,"/");kn.removeBackslashes=r=>r.replace(fBe,e=>e==="\\"?"":e);kn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};kn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:uBe===!0||cBe.sep==="\\";kn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?kn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};kn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};kn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var Lq=w((Qet,kq)=>{"use strict";var xq=Zp(),{CHAR_ASTERISK:Iv,CHAR_AT:dBe,CHAR_BACKWARD_SLASH:$p,CHAR_COMMA:CBe,CHAR_DOT:yv,CHAR_EXCLAMATION_MARK:wv,CHAR_FORWARD_SLASH:Pq,CHAR_LEFT_CURLY_BRACE:Bv,CHAR_LEFT_PARENTHESES:bv,CHAR_LEFT_SQUARE_BRACKET:mBe,CHAR_PLUS:EBe,CHAR_QUESTION_MARK:Dq,CHAR_RIGHT_CURLY_BRACE:IBe,CHAR_RIGHT_PARENTHESES:Rq,CHAR_RIGHT_SQUARE_BRACKET:yBe}=Xp(),Fq=r=>r===Pq||r===$p,Nq=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?Infinity:1)},wBe=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,f=!1,h=!1,p=!1,m=!1,y=!1,b=!1,v=!1,k=!1,T=!1,Y=!1,q=0,$,z,ne={value:"",depth:0,isGlob:!1},ee=()=>c>=i,A=()=>l.charCodeAt(c+1),oe=()=>($=z,l.charCodeAt(++c));for(;c0&&(Z=l.slice(0,u),l=l.slice(u),g-=u),ce&&p===!0&&g>0?(ce=l.slice(0,g),O=l.slice(g)):p===!0?(ce="",O=l):ce=l,ce&&ce!==""&&ce!=="/"&&ce!==l&&Fq(ce.charCodeAt(ce.length-1))&&(ce=ce.slice(0,-1)),t.unescape===!0&&(O&&(O=xq.removeBackslashes(O)),ce&&v===!0&&(ce=xq.removeBackslashes(ce)));let L={prefix:Z,input:r,start:u,base:ce,glob:O,isBrace:f,isBracket:h,isGlob:p,isExtglob:m,isGlobstar:y,negated:k,negatedExtglob:T};if(t.tokens===!0&&(L.maxDepth=0,Fq(z)||o.push(ne),L.tokens=o),t.parts===!0||t.tokens===!0){let de;for(let Be=0;Be{"use strict";var ky=Xp(),is=Zp(),{MAX_LENGTH:xy,POSIX_REGEX_SOURCE:BBe,REGEX_NON_SPECIAL_CHARS:bBe,REGEX_SPECIAL_CHARS_BACKREF:QBe,REPLACEMENTS:Oq}=ky,SBe=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch(i){return r.map(n=>is.escapeRegex(n)).join("..")}return t},Fg=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Mq=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=Oq[r]||r;let t=N({},e),i=typeof t.maxLength=="number"?Math.min(xy,t.maxLength):xy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=is.isWindows(e),c=ky.globChars(l),u=ky.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:b,NO_DOTS_SLASH:v,QMARK:k,QMARK_NO_DOT:T,STAR:Y,START_ANCHOR:q}=c,$=V=>`(${a}(?:(?!${q}${V.dot?m:g}).)*?)`,z=t.dot?"":y,ne=t.dot?k:T,ee=t.bash===!0?$(t):Y;t.capture&&(ee=`(${ee})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=is.removePrefix(r,A),n=r.length;let oe=[],ce=[],Z=[],O=s,L,de=()=>A.index===n-1,Be=A.peek=(V=1)=>r[A.index+V],Ge=A.advance=()=>r[++A.index]||"",re=()=>r.slice(A.index+1),se=(V="",Qe=0)=>{A.consumed+=V,A.index+=Qe},be=V=>{A.output+=V.output!=null?V.output:V.value,se(V.value)},he=()=>{let V=1;for(;Be()==="!"&&(Be(2)!=="("||Be(3)==="?");)Ge(),A.start++,V++;return V%2==0?!1:(A.negated=!0,A.start++,!0)},Fe=V=>{A[V]++,Z.push(V)},Ue=V=>{A[V]--,Z.pop()},xe=V=>{if(O.type==="globstar"){let Qe=A.braces>0&&(V.type==="comma"||V.type==="brace"),le=V.extglob===!0||oe.length&&(V.type==="pipe"||V.type==="paren");V.type!=="slash"&&V.type!=="paren"&&!Qe&&!le&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=ee,A.output+=O.output)}if(oe.length&&V.type!=="paren"&&(oe[oe.length-1].inner+=V.value),(V.value||V.output)&&be(V),O&&O.type==="text"&&V.type==="text"){O.value+=V.value,O.output=(O.output||"")+V.value;return}V.prev=O,o.push(V),O=V},ve=(V,Qe)=>{let le=te(N({},u[Qe]),{conditions:1,inner:""});le.prev=O,le.parens=A.parens,le.output=A.output;let fe=(t.capture?"(":"")+le.open;Fe("parens"),xe({type:V,value:Qe,output:A.output?"":p}),xe({type:"paren",extglob:!0,value:Ge(),output:fe}),oe.push(le)},pe=V=>{let Qe=V.close+(t.capture?")":""),le;if(V.type==="negate"){let fe=ee;V.inner&&V.inner.length>1&&V.inner.includes("/")&&(fe=$(t)),(fe!==ee||de()||/^\)+$/.test(re()))&&(Qe=V.close=`)$))${fe}`),V.inner.includes("*")&&(le=re())&&/^\.[^\\/.]+$/.test(le)&&(Qe=V.close=`)${le})${fe})`),V.prev.type==="bos"&&(A.negatedExtglob=!0)}xe({type:"paren",extglob:!0,value:L,output:Qe}),Ue("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let V=!1,Qe=r.replace(QBe,(le,fe,gt,Ht,Mt,Ei)=>Ht==="\\"?(V=!0,le):Ht==="?"?fe?fe+Ht+(Mt?k.repeat(Mt.length):""):Ei===0?ne+(Mt?k.repeat(Mt.length):""):k.repeat(gt.length):Ht==="."?g.repeat(gt.length):Ht==="*"?fe?fe+Ht+(Mt?ee:""):ee:fe?le:`\\${le}`);return V===!0&&(t.unescape===!0?Qe=Qe.replace(/\\/g,""):Qe=Qe.replace(/\\+/g,le=>le.length%2==0?"\\\\":le?"\\":"")),Qe===r&&t.contains===!0?(A.output=r,A):(A.output=is.wrapOutput(Qe,A,e),A)}for(;!de();){if(L=Ge(),L==="\0")continue;if(L==="\\"){let le=Be();if(le==="/"&&t.bash!==!0||le==="."||le===";")continue;if(!le){L+="\\",xe({type:"text",value:L});continue}let fe=/^\\+/.exec(re()),gt=0;if(fe&&fe[0].length>2&&(gt=fe[0].length,A.index+=gt,gt%2!=0&&(L+="\\")),t.unescape===!0?L=Ge():L+=Ge(),A.brackets===0){xe({type:"text",value:L});continue}}if(A.brackets>0&&(L!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&L===":"){let le=O.value.slice(1);if(le.includes("[")&&(O.posix=!0,le.includes(":"))){let fe=O.value.lastIndexOf("["),gt=O.value.slice(0,fe),Ht=O.value.slice(fe+2),Mt=BBe[Ht];if(Mt){O.value=gt+Mt,A.backtrack=!0,Ge(),!s.output&&o.indexOf(O)===1&&(s.output=p);continue}}}(L==="["&&Be()!==":"||L==="-"&&Be()==="]")&&(L=`\\${L}`),L==="]"&&(O.value==="["||O.value==="[^")&&(L=`\\${L}`),t.posix===!0&&L==="!"&&O.value==="["&&(L="^"),O.value+=L,be({value:L});continue}if(A.quotes===1&&L!=='"'){L=is.escapeRegex(L),O.value+=L,be({value:L});continue}if(L==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&xe({type:"text",value:L});continue}if(L==="("){Fe("parens"),xe({type:"paren",value:L});continue}if(L===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(Fg("opening","("));let le=oe[oe.length-1];if(le&&A.parens===le.parens+1){pe(oe.pop());continue}xe({type:"paren",value:L,output:A.parens?")":"\\)"}),Ue("parens");continue}if(L==="["){if(t.nobracket===!0||!re().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(Fg("closing","]"));L=`\\${L}`}else Fe("brackets");xe({type:"bracket",value:L});continue}if(L==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){xe({type:"text",value:L,output:`\\${L}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(Fg("opening","["));xe({type:"text",value:L,output:`\\${L}`});continue}Ue("brackets");let le=O.value.slice(1);if(O.posix!==!0&&le[0]==="^"&&!le.includes("/")&&(L=`/${L}`),O.value+=L,be({value:L}),t.literalBrackets===!1||is.hasRegexChars(le))continue;let fe=is.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=fe,O.value=fe;continue}O.value=`(${a}${fe}|${O.value})`,A.output+=O.value;continue}if(L==="{"&&t.nobrace!==!0){Fe("braces");let le={type:"brace",value:L,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ce.push(le),xe(le);continue}if(L==="}"){let le=ce[ce.length-1];if(t.nobrace===!0||!le){xe({type:"text",value:L,output:L});continue}let fe=")";if(le.dots===!0){let gt=o.slice(),Ht=[];for(let Mt=gt.length-1;Mt>=0&&(o.pop(),gt[Mt].type!=="brace");Mt--)gt[Mt].type!=="dots"&&Ht.unshift(gt[Mt].value);fe=SBe(Ht,t),A.backtrack=!0}if(le.comma!==!0&&le.dots!==!0){let gt=A.output.slice(0,le.outputIndex),Ht=A.tokens.slice(le.tokensIndex);le.value=le.output="\\{",L=fe="\\}",A.output=gt;for(let Mt of Ht)A.output+=Mt.output||Mt.value}xe({type:"brace",value:L,output:fe}),Ue("braces"),ce.pop();continue}if(L==="|"){oe.length>0&&oe[oe.length-1].conditions++,xe({type:"text",value:L});continue}if(L===","){let le=L,fe=ce[ce.length-1];fe&&Z[Z.length-1]==="braces"&&(fe.comma=!0,le="|"),xe({type:"comma",value:L,output:le});continue}if(L==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}xe({type:"slash",value:L,output:h});continue}if(L==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let le=ce[ce.length-1];O.type="dots",O.output+=L,O.value+=L,le.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){xe({type:"text",value:L,output:g});continue}xe({type:"dot",value:L,output:g});continue}if(L==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){ve("qmark",L);continue}if(O&&O.type==="paren"){let fe=Be(),gt=L;if(fe==="<"&&!is.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(fe)||fe==="<"&&!/<([!=]|\w+>)/.test(re()))&&(gt=`\\${L}`),xe({type:"text",value:L,output:gt});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){xe({type:"qmark",value:L,output:T});continue}xe({type:"qmark",value:L,output:k});continue}if(L==="!"){if(t.noextglob!==!0&&Be()==="("&&(Be(2)!=="?"||!/[!=<:]/.test(Be(3)))){ve("negate",L);continue}if(t.nonegate!==!0&&A.index===0){he();continue}}if(L==="+"){if(t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){ve("plus",L);continue}if(O&&O.value==="("||t.regex===!1){xe({type:"plus",value:L,output:f});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){xe({type:"plus",value:L});continue}xe({type:"plus",value:f});continue}if(L==="@"){if(t.noextglob!==!0&&Be()==="("&&Be(2)!=="?"){xe({type:"at",extglob:!0,value:L,output:""});continue}xe({type:"text",value:L});continue}if(L!=="*"){(L==="$"||L==="^")&&(L=`\\${L}`);let le=bBe.exec(re());le&&(L+=le[0],A.index+=le[0].length),xe({type:"text",value:L});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=L,O.output=ee,A.backtrack=!0,A.globstar=!0,se(L);continue}let V=re();if(t.noextglob!==!0&&/^\([^?]/.test(V)){ve("star",L);continue}if(O.type==="star"){if(t.noglobstar===!0){se(L);continue}let le=O.prev,fe=le.prev,gt=le.type==="slash"||le.type==="bos",Ht=fe&&(fe.type==="star"||fe.type==="globstar");if(t.bash===!0&&(!gt||V[0]&&V[0]!=="/")){xe({type:"star",value:L,output:""});continue}let Mt=A.braces>0&&(le.type==="comma"||le.type==="brace"),Ei=oe.length&&(le.type==="pipe"||le.type==="paren");if(!gt&&le.type!=="paren"&&!Mt&&!Ei){xe({type:"star",value:L,output:""});continue}for(;V.slice(0,3)==="/**";){let jt=r[A.index+4];if(jt&&jt!=="/")break;V=V.slice(3),se("/**",3)}if(le.type==="bos"&&de()){O.type="globstar",O.value+=L,O.output=$(t),A.output=O.output,A.globstar=!0,se(L);continue}if(le.type==="slash"&&le.prev.type!=="bos"&&!Ht&&de()){A.output=A.output.slice(0,-(le.output+O.output).length),le.output=`(?:${le.output}`,O.type="globstar",O.output=$(t)+(t.strictSlashes?")":"|$)"),O.value+=L,A.globstar=!0,A.output+=le.output+O.output,se(L);continue}if(le.type==="slash"&&le.prev.type!=="bos"&&V[0]==="/"){let jt=V[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(le.output+O.output).length),le.output=`(?:${le.output}`,O.type="globstar",O.output=`${$(t)}${h}|${h}${jt})`,O.value+=L,A.output+=le.output+O.output,A.globstar=!0,se(L+Ge()),xe({type:"slash",value:"/",output:""});continue}if(le.type==="bos"&&V[0]==="/"){O.type="globstar",O.value+=L,O.output=`(?:^|${h}|${$(t)}${h})`,A.output=O.output,A.globstar=!0,se(L+Ge()),xe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=$(t),O.value+=L,A.output+=O.output,A.globstar=!0,se(L);continue}let Qe={type:"star",value:L,output:ee};if(t.bash===!0){Qe.output=".*?",(O.type==="bos"||O.type==="slash")&&(Qe.output=z+Qe.output),xe(Qe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){Qe.output=L,xe(Qe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=b,O.output+=b):t.dot===!0?(A.output+=v,O.output+=v):(A.output+=z,O.output+=z),Be()!=="*"&&(A.output+=p,O.output+=p)),xe(Qe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(Fg("closing","]"));A.output=is.escapeLast(A.output,"["),Ue("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(Fg("closing",")"));A.output=is.escapeLast(A.output,"("),Ue("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(Fg("closing","}"));A.output=is.escapeLast(A.output,"{"),Ue("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&xe({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let V of A.tokens)A.output+=V.output!=null?V.output:V.value,V.suffix&&(A.output+=V.suffix)}return A};Mq.fastpaths=(r,e)=>{let t=N({},e),i=typeof t.maxLength=="number"?Math.min(xy,t.maxLength):xy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=Oq[r]||r;let s=is.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=ky.globChars(s),m=t.dot?g:u,y=t.dot?f:u,b=t.capture?"":"?:",v={negated:!1,prefix:""},k=t.bash===!0?".*?":h;t.capture&&(k=`(${k})`);let T=z=>z.noglobstar===!0?k:`(${b}(?:(?!${p}${z.dot?c:o}).)*?)`,Y=z=>{switch(z){case"*":return`${m}${l}${k}`;case".*":return`${o}${l}${k}`;case"*.*":return`${m}${k}${o}${l}${k}`;case"*/*":return`${m}${k}${a}${l}${y}${k}`;case"**":return m+T(t);case"**/*":return`(?:${m}${T(t)}${a})?${y}${l}${k}`;case"**/*.*":return`(?:${m}${T(t)}${a})?${y}${k}${o}${l}${k}`;case"**/.*":return`(?:${m}${T(t)}${a})?${o}${l}${k}`;default:{let ne=/^(.*?)\.(\w+)$/.exec(z);if(!ne)return;let ee=Y(ne[1]);return ee?ee+o+ne[2]:void 0}}},q=is.removePrefix(r,v),$=Y(q);return $&&t.strictSlashes!==!0&&($+=`${a}?`),$};Tq.exports=Mq});var Hq=w((ket,Kq)=>{"use strict";var vBe=require("path"),kBe=Lq(),Qv=Uq(),Sv=Zp(),xBe=Xp(),PBe=r=>r&&typeof r=="object"&&!Array.isArray(r),_r=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(f=>_r(f,e,t));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=PBe(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Sv.isWindows(e),o=i?_r.compileRe(r,e):_r.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=te(N({},e),{ignore:null,onMatch:null,onResult:null});l=_r(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=_r.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(m),f===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};_r.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Sv.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=_r.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};_r.matchBase=(r,e,t,i=Sv.isWindows(t))=>(e instanceof RegExp?e:_r.makeRe(e,t)).test(vBe.basename(r));_r.isMatch=(r,e,t)=>_r(e,t)(r);_r.parse=(r,e)=>Array.isArray(r)?r.map(t=>_r.parse(t,e)):Qv(r,te(N({},e),{fastpaths:!1}));_r.scan=(r,e)=>kBe(r,e);_r.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=_r.toRegex(a,e);return i===!0&&(l.state=r),l};_r.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Qv.fastpaths(r,e)),n.output||(n=Qv(r,e)),_r.compileRe(n,e,t,i)};_r.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};_r.constants=xBe;Kq.exports=_r});var vv=w((xet,jq)=>{"use strict";jq.exports=Hq()});var ns=w((Pet,Gq)=>{"use strict";var Yq=require("util"),qq=wq(),_o=vv(),kv=Zp(),Jq=r=>r===""||r==="./",Pr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Pr.match=Pr;Pr.matcher=(r,e)=>_o(r,e);Pr.isMatch=(r,e,t)=>_o(e,t)(r);Pr.any=Pr.isMatch;Pr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{t.onResult&&t.onResult(a),n.push(a.output)},o=Pr(r,e,te(N({},t),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};Pr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${Yq.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Pr.contains(r,i,t));if(typeof e=="string"){if(Jq(r)||Jq(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Pr.isMatch(r,e,te(N({},t),{contains:!0}))};Pr.matchKeys=(r,e,t)=>{if(!kv.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Pr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Pr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=_o(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Pr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=_o(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Pr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${Yq.inspect(r)}"`);return[].concat(e).every(i=>_o(i,t)(r))};Pr.capture=(r,e,t)=>{let i=kv.isWindows(t),s=_o.makeRe(String(r),te(N({},t),{capture:!0})).exec(i?kv.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Pr.makeRe=(...r)=>_o.makeRe(...r);Pr.scan=(...r)=>_o.scan(...r);Pr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of qq(String(i),e))t.push(_o.parse(n,e));return t};Pr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:qq(r,e)};Pr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Pr.braces(r,te(N({},e),{expand:!0}))};Gq.exports=Pr});var zq=w((Det,Wq)=>{"use strict";Wq.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var Vq=w((Ret,_q)=>{"use strict";var DBe=zq();_q.exports=r=>typeof r=="string"?r.replace(DBe(),""):r});var gJ=w((Vet,uJ)=>{"use strict";uJ.exports=(...r)=>[...new Set([].concat(...r))]});var Gv=w((Xet,fJ)=>{"use strict";var GBe=require("stream"),hJ=GBe.PassThrough,YBe=Array.prototype.slice;fJ.exports=qBe;function qBe(){let r=[],e=!1,t=YBe.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=hJ(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(Ny,"__esModule",{value:!0});function JBe(r){return r.reduce((e,t)=>[].concat(e,t),[])}Ny.flatten=JBe;function WBe(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Ny.splitWhen=WBe});var CJ=w(Yv=>{"use strict";Object.defineProperty(Yv,"__esModule",{value:!0});function zBe(r){return r.code==="ENOENT"}Yv.isEnoentCodeError=zBe});var EJ=w(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});var mJ=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function _Be(r,e){return new mJ(r,e)}qv.createDirentFromStats=_Be});var IJ=w(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});var VBe=require("path"),XBe=2,ZBe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function $Be(r){return r.replace(/\\/g,"/")}Kg.unixify=$Be;function e0e(r,e){return VBe.resolve(r,e)}Kg.makeAbsolute=e0e;function t0e(r){return r.replace(ZBe,"\\$2")}Kg.escape=t0e;function r0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(XBe)}return r}Kg.removeLeadingDotSegment=r0e});var wJ=w((rtt,yJ)=>{yJ.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var QJ=w((itt,BJ)=>{var i0e=wJ(),bJ={"{":"}","(":")","[":"]"},n0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=bJ[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},s0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var o0e=QJ(),a0e=require("path").posix.dirname,A0e=require("os").platform()==="win32",Jv="/",l0e=/\\/g,c0e=/[\{\[].*[\}\]]$/,u0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,g0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;SJ.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&A0e&&e.indexOf(Jv)<0&&(e=e.replace(l0e,Jv)),c0e.test(e)&&(e+=Jv),e+="a";do e=a0e(e);while(o0e(e)||u0e.test(e));return e.replace(g0e,"$1")}});var TJ=w(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});var f0e=require("path"),h0e=vJ(),kJ=ns(),p0e=vv(),xJ="**",d0e="\\",C0e=/[*?]|^!/,m0e=/\[.*]/,E0e=/(?:^|[^!*+?@])\(.*\|.*\)/,I0e=/[!*+?@]\(.*\)/,y0e=/{.*(?:,|\.\.).*}/;function DJ(r,e={}){return!PJ(r,e)}si.isStaticPattern=DJ;function PJ(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(d0e)||C0e.test(r)||m0e.test(r)||E0e.test(r)||e.extglob!==!1&&I0e.test(r)||e.braceExpansion!==!1&&y0e.test(r))}si.isDynamicPattern=PJ;function w0e(r){return Ly(r)?r.slice(1):r}si.convertToPositivePattern=w0e;function B0e(r){return"!"+r}si.convertToNegativePattern=B0e;function Ly(r){return r.startsWith("!")&&r[1]!=="("}si.isNegativePattern=Ly;function RJ(r){return!Ly(r)}si.isPositivePattern=RJ;function b0e(r){return r.filter(Ly)}si.getNegativePatterns=b0e;function Q0e(r){return r.filter(RJ)}si.getPositivePatterns=Q0e;function S0e(r){return h0e(r,{flipBackslashes:!1})}si.getBaseDirectory=S0e;function v0e(r){return r.includes(xJ)}si.hasGlobStar=v0e;function FJ(r){return r.endsWith("/"+xJ)}si.endsWithSlashGlobStar=FJ;function k0e(r){let e=f0e.basename(r);return FJ(r)||DJ(e)}si.isAffectDepthOfReadingPattern=k0e;function x0e(r){return r.reduce((e,t)=>e.concat(NJ(t)),[])}si.expandPatternsWithBraceExpansion=x0e;function NJ(r){return kJ.braces(r,{expand:!0,nodupes:!0})}si.expandBraceExpansion=NJ;function P0e(r,e){let t=p0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}si.getPatternParts=P0e;function LJ(r,e){return kJ.makeRe(r,e)}si.makeRe=LJ;function D0e(r,e){return r.map(t=>LJ(t,e))}si.convertPatternsToRe=D0e;function R0e(r,e){return e.some(t=>t.test(r))}si.matchAny=R0e});var MJ=w(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});var F0e=Gv();function N0e(r){let e=F0e(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>OJ(r)),e.once("end",()=>OJ(r)),e}Wv.merge=N0e;function OJ(r){r.forEach(e=>e.emit("close"))}});var UJ=w(Ty=>{"use strict";Object.defineProperty(Ty,"__esModule",{value:!0});function L0e(r){return typeof r=="string"}Ty.isString=L0e;function T0e(r){return r===""}Ty.isEmpty=T0e});var Za=w(Xa=>{"use strict";Object.defineProperty(Xa,"__esModule",{value:!0});var O0e=dJ();Xa.array=O0e;var M0e=CJ();Xa.errno=M0e;var U0e=EJ();Xa.fs=U0e;var K0e=IJ();Xa.path=K0e;var H0e=TJ();Xa.pattern=H0e;var j0e=MJ();Xa.stream=j0e;var G0e=UJ();Xa.string=G0e});var YJ=w($a=>{"use strict";Object.defineProperty($a,"__esModule",{value:!0});var Uc=Za();function Y0e(r,e){let t=KJ(r),i=HJ(r,e.ignore),n=t.filter(l=>Uc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Uc.pattern.isDynamicPattern(l,e)),o=zv(n,i,!1),a=zv(s,i,!0);return o.concat(a)}$a.generate=Y0e;function zv(r,e,t){let i=jJ(r);return"."in i?[_v(".",r,e,t)]:GJ(i,e,t)}$a.convertPatternsToTasks=zv;function KJ(r){return Uc.pattern.getPositivePatterns(r)}$a.getPositivePatterns=KJ;function HJ(r,e){return Uc.pattern.getNegativePatterns(r).concat(e).map(Uc.pattern.convertToPositivePattern)}$a.getNegativePatternsAsPositive=HJ;function jJ(r){let e={};return r.reduce((t,i)=>{let n=Uc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}$a.groupPatternsByBaseDirectory=jJ;function GJ(r,e,t){return Object.keys(r).map(i=>_v(i,r[i],e,t))}$a.convertPatternGroupsToTasks=GJ;function _v(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Uc.pattern.convertToNegativePattern))}}$a.convertPatternGroupToTask=_v});var JJ=w(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.read=void 0;function q0e(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){qJ(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){Vv(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){qJ(t,s);return}Vv(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),Vv(t,o)})})}Oy.read=q0e;function qJ(r,e){r(e)}function Vv(r,e){r(null,e)}});var WJ=w(My=>{"use strict";Object.defineProperty(My,"__esModule",{value:!0});My.read=void 0;function J0e(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}My.read=J0e});var zJ=w(il=>{"use strict";Object.defineProperty(il,"__esModule",{value:!0});il.createFileSystemAdapter=il.FILE_SYSTEM_ADAPTER=void 0;var Uy=require("fs");il.FILE_SYSTEM_ADAPTER={lstat:Uy.lstat,stat:Uy.stat,lstatSync:Uy.lstatSync,statSync:Uy.statSync};function W0e(r){return r===void 0?il.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},il.FILE_SYSTEM_ADAPTER),r)}il.createFileSystemAdapter=W0e});var VJ=w(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});var z0e=zJ(),_J=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=z0e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};Xv.default=_J});var Kc=w(nl=>{"use strict";Object.defineProperty(nl,"__esModule",{value:!0});nl.statSync=nl.stat=nl.Settings=void 0;var XJ=JJ(),_0e=WJ(),Zv=VJ();nl.Settings=Zv.default;function V0e(r,e,t){if(typeof e=="function"){XJ.read(r,$v(),e);return}XJ.read(r,$v(e),t)}nl.stat=V0e;function X0e(r,e){let t=$v(e);return _0e.read(r,t)}nl.statSync=X0e;function $v(r={}){return r instanceof Zv.default?r:new Zv.default(r)}});var $J=w((ptt,ZJ)=>{ZJ.exports=Z0e;function Z0e(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var ek=w(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Hy=process.versions.node.split(".");if(Hy[0]===void 0||Hy[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var eW=Number.parseInt(Hy[0],10),$0e=Number.parseInt(Hy[1],10),tW=10,ebe=10,tbe=eW>tW,rbe=eW===tW&&$0e>=ebe;Ky.IS_SUPPORT_READDIR_WITH_FILE_TYPES=tbe||rbe});var iW=w(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.createDirentFromStats=void 0;var rW=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function ibe(r,e){return new rW(r,e)}jy.createDirentFromStats=ibe});var tk=w(Gy=>{"use strict";Object.defineProperty(Gy,"__esModule",{value:!0});Gy.fs=void 0;var nbe=iW();Gy.fs=nbe});var rk=w(Yy=>{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.joinPathSegments=void 0;function sbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}Yy.joinPathSegments=sbe});var lW=w(sl=>{"use strict";Object.defineProperty(sl,"__esModule",{value:!0});sl.readdir=sl.readdirWithFileTypes=sl.read=void 0;var obe=Kc(),nW=$J(),abe=ek(),sW=tk(),oW=rk();function Abe(r,e,t){if(!e.stats&&abe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){aW(r,e,t);return}AW(r,e,t)}sl.read=Abe;function aW(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){qy(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:oW.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){ik(t,s);return}let o=s.map(a=>lbe(a,e));nW(o,(a,l)=>{if(a!==null){qy(t,a);return}ik(t,l)})})}sl.readdirWithFileTypes=aW;function lbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=sW.fs.createDirentFromStats(r.name,n),t(null,r)})}}function AW(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){qy(t,i);return}let s=n.map(o=>{let a=oW.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{obe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:sW.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});nW(s,(o,a)=>{if(o!==null){qy(t,o);return}ik(t,a)})})}sl.readdir=AW;function qy(r,e){r(e)}function ik(r,e){r(null,e)}});var hW=w(ol=>{"use strict";Object.defineProperty(ol,"__esModule",{value:!0});ol.readdir=ol.readdirWithFileTypes=ol.read=void 0;var cbe=Kc(),ube=ek(),cW=tk(),uW=rk();function gbe(r,e){return!e.stats&&ube.IS_SUPPORT_READDIR_WITH_FILE_TYPES?gW(r,e):fW(r,e)}ol.read=gbe;function gW(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:uW.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=cW.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}ol.readdirWithFileTypes=gW;function fW(r,e){return e.fs.readdirSync(r).map(i=>{let n=uW.joinPathSegments(r,i,e.pathSegmentSeparator),s=cbe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:cW.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}ol.readdir=fW});var pW=w(al=>{"use strict";Object.defineProperty(al,"__esModule",{value:!0});al.createFileSystemAdapter=al.FILE_SYSTEM_ADAPTER=void 0;var Hg=require("fs");al.FILE_SYSTEM_ADAPTER={lstat:Hg.lstat,stat:Hg.stat,lstatSync:Hg.lstatSync,statSync:Hg.statSync,readdir:Hg.readdir,readdirSync:Hg.readdirSync};function fbe(r){return r===void 0?al.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},al.FILE_SYSTEM_ADAPTER),r)}al.createFileSystemAdapter=fbe});var CW=w(nk=>{"use strict";Object.defineProperty(nk,"__esModule",{value:!0});var hbe=require("path"),pbe=Kc(),dbe=pW(),dW=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=dbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,hbe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};nk.default=dW});var Jy=w(Al=>{"use strict";Object.defineProperty(Al,"__esModule",{value:!0});Al.Settings=Al.scandirSync=Al.scandir=void 0;var mW=lW(),Cbe=hW(),sk=CW();Al.Settings=sk.default;function mbe(r,e,t){if(typeof e=="function"){mW.read(r,ok(),e);return}mW.read(r,ok(e),t)}Al.scandir=mbe;function Ebe(r,e){let t=ok(e);return Cbe.read(r,t)}Al.scandirSync=Ebe;function ok(r={}){return r instanceof sk.default?r:new sk.default(r)}});var IW=w((Qtt,EW)=>{"use strict";function Ibe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}EW.exports=Ibe});var wW=w((Stt,ak)=>{"use strict";var ybe=IW();function yW(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=ybe(wbe),n=null,s=null,o=0,a=null,l={push:m,drain:Ls,saturated:Ls,pause:u,paused:!1,concurrency:t,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:y,empty:Ls,kill:v,killAndDrain:k,error:T};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var Y=n,q=0;Y;)Y=Y.next,q++;return q}function f(){for(var Y=n,q=[];Y;)q.push(Y.value),Y=Y.next;return q}function h(){if(!!l.paused){l.paused=!1;for(var Y=0;Y{"use strict";Object.defineProperty(Zo,"__esModule",{value:!0});Zo.joinPathSegments=Zo.replacePathSegmentSeparator=Zo.isAppliedFilter=Zo.isFatalError=void 0;function bbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Zo.isFatalError=bbe;function Qbe(r,e){return r===null||r(e)}Zo.isAppliedFilter=Qbe;function Sbe(r,e){return r.split(/[/\\]/).join(e)}Zo.replacePathSegmentSeparator=Sbe;function vbe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Zo.joinPathSegments=vbe});var lk=w(Ak=>{"use strict";Object.defineProperty(Ak,"__esModule",{value:!0});var kbe=Wy(),BW=class{constructor(e,t){this._root=e,this._settings=t,this._root=kbe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};Ak.default=BW});var uk=w(ck=>{"use strict";Object.defineProperty(ck,"__esModule",{value:!0});var xbe=require("events"),Pbe=Jy(),Dbe=wW(),zy=Wy(),Rbe=lk(),bW=class extends Rbe.default{constructor(e,t){super(e,t);this._settings=t,this._scandir=Pbe.scandir,this._emitter=new xbe.EventEmitter,this._queue=Dbe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!zy.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=zy.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),zy.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&zy.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};ck.default=bW});var SW=w(gk=>{"use strict";Object.defineProperty(gk,"__esModule",{value:!0});var Fbe=uk(),QW=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{Nbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{Lbe(e,[...this._storage])}),this._reader.read()}};gk.default=QW;function Nbe(r,e){r(e)}function Lbe(r,e){r(null,e)}});var kW=w(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var Tbe=require("stream"),Obe=uk(),vW=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Obe.default(this._root,this._settings),this._stream=new Tbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};fk.default=vW});var PW=w(hk=>{"use strict";Object.defineProperty(hk,"__esModule",{value:!0});var Mbe=Jy(),_y=Wy(),Ube=lk(),xW=class extends Ube.default{constructor(){super(...arguments);this._scandir=Mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!_y.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=_y.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),_y.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&_y.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};hk.default=xW});var RW=w(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Kbe=PW(),DW=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Kbe.default(this._root,this._settings)}read(){return this._reader.read()}};pk.default=DW});var NW=w(dk=>{"use strict";Object.defineProperty(dk,"__esModule",{value:!0});var Hbe=require("path"),jbe=Jy(),FW=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Hbe.sep),this.fsScandirSettings=new jbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};dk.default=FW});var mk=w($o=>{"use strict";Object.defineProperty($o,"__esModule",{value:!0});$o.Settings=$o.walkStream=$o.walkSync=$o.walk=void 0;var LW=SW(),Gbe=kW(),Ybe=RW(),Ck=NW();$o.Settings=Ck.default;function qbe(r,e,t){if(typeof e=="function"){new LW.default(r,Vy()).read(e);return}new LW.default(r,Vy(e)).read(t)}$o.walk=qbe;function Jbe(r,e){let t=Vy(e);return new Ybe.default(r,t).read()}$o.walkSync=Jbe;function Wbe(r,e){let t=Vy(e);return new Gbe.default(r,t).read()}$o.walkStream=Wbe;function Vy(r={}){return r instanceof Ck.default?r:new Ck.default(r)}});var Ik=w(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var zbe=require("path"),_be=Kc(),TW=Za(),OW=class{constructor(e){this._settings=e,this._fsStatSettings=new _be.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return zbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:TW.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!TW.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};Ek.default=OW});var wk=w(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var Vbe=require("stream"),Xbe=Kc(),Zbe=mk(),$be=Ik(),MW=class extends $be.default{constructor(){super(...arguments);this._walkStream=Zbe.walkStream,this._stat=Xbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new Vbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};yk.default=MW});var KW=w(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});var jg=Za(),UW=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=jg.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return jg.pattern.getPatternParts(e,this._micromatchOptions).map(i=>jg.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:jg.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return jg.array.splitWhen(e,t=>t.dynamic&&jg.pattern.hasGlobStar(t.pattern))}};Bk.default=UW});var jW=w(bk=>{"use strict";Object.defineProperty(bk,"__esModule",{value:!0});var eQe=KW(),HW=class extends eQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};bk.default=HW});var YW=w(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});var Xy=Za(),tQe=jW(),GW=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new tQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(Xy.pattern.isAffectDepthOfReadingPattern);return Xy.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=Xy.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!Xy.pattern.matchAny(e,t)}};Qk.default=GW});var JW=w(Sk=>{"use strict";Object.defineProperty(Sk,"__esModule",{value:!0});var od=Za(),qW=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=od.pattern.convertPatternsToRe(e,this._micromatchOptions),n=od.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=od.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=od.path.removeLeadingDotSegment(e);return od.pattern.matchAny(i,t)}};Sk.default=qW});var zW=w(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});var rQe=Za(),WW=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return rQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};vk.default=WW});var XW=w(kk=>{"use strict";Object.defineProperty(kk,"__esModule",{value:!0});var _W=Za(),VW=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=_W.path.makeAbsolute(this._settings.cwd,t),t=_W.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};kk.default=VW});var Zy=w(xk=>{"use strict";Object.defineProperty(xk,"__esModule",{value:!0});var iQe=require("path"),nQe=YW(),sQe=JW(),oQe=zW(),aQe=XW(),ZW=class{constructor(e){this._settings=e,this.errorFilter=new oQe.default(this._settings),this.entryFilter=new sQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new nQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new aQe.default(this._settings)}_getRootDirectory(e){return iQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};xk.default=ZW});var e3=w(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});var AQe=wk(),lQe=Zy(),$W=class extends lQe.default{constructor(){super(...arguments);this._reader=new AQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Pk.default=$W});var r3=w(Dk=>{"use strict";Object.defineProperty(Dk,"__esModule",{value:!0});var cQe=require("stream"),uQe=wk(),gQe=Zy(),t3=class extends gQe.default{constructor(){super(...arguments);this._reader=new uQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new cQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Dk.default=t3});var n3=w(Rk=>{"use strict";Object.defineProperty(Rk,"__esModule",{value:!0});var fQe=Kc(),hQe=mk(),pQe=Ik(),i3=class extends pQe.default{constructor(){super(...arguments);this._walkSync=hQe.walkSync,this._statSync=fQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Rk.default=i3});var o3=w(Fk=>{"use strict";Object.defineProperty(Fk,"__esModule",{value:!0});var dQe=n3(),CQe=Zy(),s3=class extends CQe.default{constructor(){super(...arguments);this._reader=new dQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Fk.default=s3});var A3=w(ad=>{"use strict";Object.defineProperty(ad,"__esModule",{value:!0});var Gg=require("fs"),mQe=require("os"),EQe=mQe.cpus().length;ad.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Gg.lstat,lstatSync:Gg.lstatSync,stat:Gg.stat,statSync:Gg.statSync,readdir:Gg.readdir,readdirSync:Gg.readdirSync};var a3=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,EQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},ad.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};ad.default=a3});var $y=w((Vtt,l3)=>{"use strict";var c3=YJ(),IQe=e3(),yQe=r3(),wQe=o3(),Nk=A3(),Hc=Za();async function Tk(r,e){Yg(r);let t=Lk(r,IQe.default,e),i=await Promise.all(t);return Hc.array.flatten(i)}(function(r){function e(o,a){Yg(o);let l=Lk(o,wQe.default,a);return Hc.array.flatten(l)}r.sync=e;function t(o,a){Yg(o);let l=Lk(o,yQe.default,a);return Hc.stream.merge(l)}r.stream=t;function i(o,a){Yg(o);let l=[].concat(o),c=new Nk.default(a);return c3.generate(l,c)}r.generateTasks=i;function n(o,a){Yg(o);let l=new Nk.default(a);return Hc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Yg(o),Hc.path.escape(o)}r.escapePath=s})(Tk||(Tk={}));function Lk(r,e,t){let i=[].concat(r),n=new Nk.default(t),s=c3.generate(i,n),o=new e(n);return s.map(o.read,o)}function Yg(r){if(![].concat(r).every(i=>Hc.string.isString(i)&&!Hc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}l3.exports=Tk});var g3=w(jc=>{"use strict";var{promisify:BQe}=require("util"),u3=require("fs");async function Ok(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await BQe(u3[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Mk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return u3[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}jc.isFile=Ok.bind(null,"stat","isFile");jc.isDirectory=Ok.bind(null,"stat","isDirectory");jc.isSymlink=Ok.bind(null,"lstat","isSymbolicLink");jc.isFileSync=Mk.bind(null,"statSync","isFile");jc.isDirectorySync=Mk.bind(null,"statSync","isDirectory");jc.isSymlinkSync=Mk.bind(null,"lstatSync","isSymbolicLink")});var C3=w((Ztt,Uk)=>{"use strict";var Gc=require("path"),f3=g3(),h3=r=>r.length>1?`{${r.join(",")}}`:r[0],p3=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return Gc.isAbsolute(t)?t:Gc.join(e,t)},bQe=(r,e)=>Gc.extname(r)?`**/${r}`:`**/${r}.${h3(e)}`,d3=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>Gc.posix.join(r,bQe(t,e.extensions))):e.files?e.files.map(t=>Gc.posix.join(r,`**/${t}`)):e.extensions?[Gc.posix.join(r,`**/*.${h3(e.extensions)}`)]:[Gc.posix.join(r,"**")]};Uk.exports=async(r,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await f3.isDirectory(p3(i,e.cwd))?d3(i,e):i));return[].concat.apply([],t)};Uk.exports.sync=(r,e)=>{if(e=N({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>f3.isDirectorySync(p3(i,e.cwd))?d3(i,e):i);return[].concat.apply([],t)}});var v3=w(($tt,m3)=>{function E3(r){return Array.isArray(r)?r:[r]}var I3="",y3=" ",Kk="\\",QQe=/^\s+$/,SQe=/^\\!/,vQe=/^\\#/,kQe=/\r?\n/g,xQe=/^\.*\/|^\.+$/,Hk="/",w3=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",PQe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),DQe=/([0-z])-([0-z])/g,RQe=r=>r.replace(DQe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:I3),FQe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},NQe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?y3:I3],[/\\\s/g,()=>y3],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>Kk],[/\\\\/g,()=>Kk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===Kk?`\\[${t}${FQe(i)}${n}`:n==="]"&&i.length%2==0?`[${RQe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],B3=Object.create(null),LQe=(r,e)=>{let t=B3[r];return t||(t=NQe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),B3[r]=t),e?new RegExp(t,"i"):new RegExp(t)},jk=r=>typeof r=="string",TQe=r=>r&&jk(r)&&!QQe.test(r)&&r.indexOf("#")!==0,OQe=r=>r.split(kQe),b3=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},MQe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(SQe,"!").replace(vQe,"#");let n=LQe(r,e);return new b3(t,r,i,n)},UQe=(r,e)=>{throw new e(r)},eA=(r,e,t)=>jk(r)?r?eA.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),Q3=r=>xQe.test(r);eA.isNotRelative=Q3;eA.convert=r=>r;var S3=class{constructor({ignorecase:e=!0}={}){PQe(this,w3,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[w3]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(TQe(e)){let t=MQe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,E3(jk(e)?OQe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&eA.convert(e);return eA(s,e,UQe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(Hk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(Hk)+Hk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return E3(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},ew=r=>new S3(r),KQe=()=>!1,HQe=r=>eA(r&&eA.convert(r),r,KQe);ew.isPathValid=HQe;ew.default=ew;m3.exports=ew;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");eA.convert=r;let e=/^[a-z]:\//i;eA.isNotRelative=t=>e.test(t)||Q3(t)}});var x3=w((ert,k3)=>{"use strict";k3.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var T3=w((trt,Gk)=>{"use strict";var{promisify:jQe}=require("util"),P3=require("fs"),tA=require("path"),D3=$y(),GQe=v3(),Ad=x3(),R3=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],YQe=jQe(P3.readFile),qQe=r=>e=>e.startsWith("!")?"!"+tA.posix.join(r,e.slice(1)):tA.posix.join(r,e),JQe=(r,e)=>{let t=Ad(tA.relative(e.cwd,tA.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(qQe(t))},F3=r=>{let e=GQe();for(let t of r)e.add(JQe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},WQe=(r,e)=>{if(r=Ad(r),tA.isAbsolute(e)){if(Ad(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return tA.join(r,e)},N3=(r,e)=>t=>r.ignores(Ad(tA.relative(e,WQe(e,t.path||t)))),zQe=async(r,e)=>{let t=tA.join(e,r),i=await YQe(t,"utf8");return{cwd:e,filePath:t,content:i}},_Qe=(r,e)=>{let t=tA.join(e,r),i=P3.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},L3=({ignore:r=[],cwd:e=Ad(process.cwd())}={})=>({ignore:r,cwd:e});Gk.exports=async r=>{r=L3(r);let e=await D3("**/.gitignore",{ignore:R3.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>zQe(n,r.cwd))),i=F3(t);return N3(i,r.cwd)};Gk.exports.sync=r=>{r=L3(r);let t=D3.sync("**/.gitignore",{ignore:R3.concat(r.ignore),cwd:r.cwd}).map(n=>_Qe(n,r.cwd)),i=F3(t);return N3(i,r.cwd)}});var K3=w((rrt,O3)=>{"use strict";var{Transform:VQe}=require("stream"),Yk=class extends VQe{constructor(){super({objectMode:!0})}},M3=class extends Yk{constructor(e){super();this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},U3=class extends Yk{constructor(){super();this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};O3.exports={FilterStream:M3,UniqueStream:U3}});var zk=w((irt,Yc)=>{"use strict";var H3=require("fs"),tw=gJ(),XQe=Gv(),rw=$y(),iw=C3(),qk=T3(),{FilterStream:ZQe,UniqueStream:$Qe}=K3(),j3=()=>!1,G3=r=>r[0]==="!",eSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},tSe=(r={})=>{if(!r.cwd)return;let e;try{e=H3.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},rSe=r=>r.stats instanceof H3.Stats?r.path:r,nw=(r,e)=>{r=tw([].concat(r)),eSe(r),tSe(e);let t=[];e=N({ignore:[],expandDirectories:!0},e);for(let[i,n]of r.entries()){if(G3(n))continue;let s=r.slice(i).filter(a=>G3(a)).map(a=>a.slice(1)),o=te(N({},e),{ignore:e.ignore.concat(s)});t.push({pattern:n,options:o})}return t},iSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t=te(N({},t),{files:r.options.expandDirectories}):typeof r.options.expandDirectories=="object"&&(t=N(N({},t),r.options.expandDirectories)),e(r.pattern,t)},Jk=(r,e)=>r.options.expandDirectories?iSe(r,e):[r.pattern],Y3=r=>r&&r.gitignore?qk.sync({cwd:r.cwd,ignore:r.ignore}):j3,Wk=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=iw.sync(t.ignore)),{pattern:e,options:t}};Yc.exports=async(r,e)=>{let t=nw(r,e),i=async()=>e&&e.gitignore?qk({cwd:e.cwd,ignore:e.ignore}):j3,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Jk(c,iw);return Promise.all(u.map(Wk(c)))}));return tw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>rw(l.pattern,l.options)));return tw(...a).filter(l=>!s(rSe(l)))};Yc.exports.sync=(r,e)=>{let t=nw(r,e),i=[];for(let o of t){let a=Jk(o,iw.sync).map(Wk(o));i.push(...a)}let n=Y3(e),s=[];for(let o of i)s=tw(s,rw.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Yc.exports.stream=(r,e)=>{let t=nw(r,e),i=[];for(let a of t){let l=Jk(a,iw.sync).map(Wk(a));i.push(...l)}let n=Y3(e),s=new ZQe(a=>!n(a)),o=new $Qe;return XQe(i.map(a=>rw.stream(a.pattern,a.options))).pipe(s).pipe(o)};Yc.exports.generateGlobTasks=nw;Yc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>rw.isDynamicPattern(t,e));Yc.exports.gitignore=qk});var Fn=w((Prt,s4)=>{function dSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}s4.exports=dSe});var ix=w((Drt,o4)=>{var CSe=typeof global=="object"&&global&&global.Object===Object&&global;o4.exports=CSe});var Ts=w((Rrt,a4)=>{var mSe=ix(),ESe=typeof self=="object"&&self&&self.Object===Object&&self,ISe=mSe||ESe||Function("return this")();a4.exports=ISe});var l4=w((Frt,A4)=>{var ySe=Ts(),wSe=function(){return ySe.Date.now()};A4.exports=wSe});var u4=w((Nrt,c4)=>{var BSe=/\s/;function bSe(r){for(var e=r.length;e--&&BSe.test(r.charAt(e)););return e}c4.exports=bSe});var f4=w((Lrt,g4)=>{var QSe=u4(),SSe=/^\s+/;function vSe(r){return r&&r.slice(0,QSe(r)+1).replace(SSe,"")}g4.exports=vSe});var Wc=w((Trt,h4)=>{var kSe=Ts(),xSe=kSe.Symbol;h4.exports=xSe});var m4=w((Ort,p4)=>{var d4=Wc(),C4=Object.prototype,PSe=C4.hasOwnProperty,DSe=C4.toString,Id=d4?d4.toStringTag:void 0;function RSe(r){var e=PSe.call(r,Id),t=r[Id];try{r[Id]=void 0;var i=!0}catch(s){}var n=DSe.call(r);return i&&(e?r[Id]=t:delete r[Id]),n}p4.exports=RSe});var I4=w((Mrt,E4)=>{var FSe=Object.prototype,NSe=FSe.toString;function LSe(r){return NSe.call(r)}E4.exports=LSe});var zc=w((Urt,y4)=>{var w4=Wc(),TSe=m4(),OSe=I4(),MSe="[object Null]",USe="[object Undefined]",B4=w4?w4.toStringTag:void 0;function KSe(r){return r==null?r===void 0?USe:MSe:B4&&B4 in Object(r)?TSe(r):OSe(r)}y4.exports=KSe});var ra=w((Krt,b4)=>{function HSe(r){return r!=null&&typeof r=="object"}b4.exports=HSe});var yd=w((Hrt,Q4)=>{var jSe=zc(),GSe=ra(),YSe="[object Symbol]";function qSe(r){return typeof r=="symbol"||GSe(r)&&jSe(r)==YSe}Q4.exports=qSe});var x4=w((jrt,S4)=>{var JSe=f4(),v4=Fn(),WSe=yd(),k4=0/0,zSe=/^[-+]0x[0-9a-f]+$/i,_Se=/^0b[01]+$/i,VSe=/^0o[0-7]+$/i,XSe=parseInt;function ZSe(r){if(typeof r=="number")return r;if(WSe(r))return k4;if(v4(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=v4(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=JSe(r);var t=_Se.test(r);return t||VSe.test(r)?XSe(r.slice(2),t?2:8):zSe.test(r)?k4:+r}S4.exports=ZSe});var R4=w((Grt,P4)=>{var $Se=Fn(),nx=l4(),D4=x4(),eve="Expected a function",tve=Math.max,rve=Math.min;function ive(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,f=!0;if(typeof r!="function")throw new TypeError(eve);e=D4(e)||0,$Se(t)&&(u=!!t.leading,g="maxWait"in t,s=g?tve(D4(t.maxWait)||0,e):s,f="trailing"in t?!!t.trailing:f);function h(q){var $=i,z=n;return i=n=void 0,c=q,o=r.apply(z,$),o}function p(q){return c=q,a=setTimeout(b,e),u?h(q):o}function m(q){var $=q-l,z=q-c,ne=e-$;return g?rve(ne,s-z):ne}function y(q){var $=q-l,z=q-c;return l===void 0||$>=e||$<0||g&&z>=s}function b(){var q=nx();if(y(q))return v(q);a=setTimeout(b,m(q))}function v(q){return a=void 0,f&&i?h(q):(i=n=void 0,o)}function k(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function T(){return a===void 0?o:v(nx())}function Y(){var q=nx(),$=y(q);if(i=arguments,n=this,l=q,$){if(a===void 0)return p(l);if(g)return clearTimeout(a),a=setTimeout(b,e),h(l)}return a===void 0&&(a=setTimeout(b,e)),o}return Y.cancel=k,Y.flush=T,Y}P4.exports=ive});var N4=w((Yrt,F4)=>{var nve=R4(),sve=Fn(),ove="Expected a function";function ave(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(ove);return sve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),nve(r,e,{leading:i,maxWait:e,trailing:n})}F4.exports=ave});var nA=w((iA,bw)=>{"use strict";Object.defineProperty(iA,"__esModule",{value:!0});var j4=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Ive(r){return j4.includes(r)}var yve=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...j4];function wve(r){return yve.includes(r)}var Bve=["null","undefined","string","number","bigint","boolean","symbol"];function bve(r){return Bve.includes(r)}function Zg(r){return e=>typeof e===r}var{toString:G4}=Object.prototype,kd=r=>{let e=G4.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&W.domElement(r))return"HTMLElement";if(wve(e))return e},hr=r=>e=>kd(e)===r;function W(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(W.observable(r))return"Observable";if(W.array(r))return"Array";if(W.buffer(r))return"Buffer";let e=kd(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}W.undefined=Zg("undefined");W.string=Zg("string");var Qve=Zg("number");W.number=r=>Qve(r)&&!W.nan(r);W.bigint=Zg("bigint");W.function_=Zg("function");W.null_=r=>r===null;W.class_=r=>W.function_(r)&&r.toString().startsWith("class ");W.boolean=r=>r===!0||r===!1;W.symbol=Zg("symbol");W.numericString=r=>W.string(r)&&!W.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));W.array=(r,e)=>Array.isArray(r)?W.function_(e)?r.every(e):!0:!1;W.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};W.nullOrUndefined=r=>W.null_(r)||W.undefined(r);W.object=r=>!W.null_(r)&&(typeof r=="object"||W.function_(r));W.iterable=r=>{var e;return W.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};W.asyncIterable=r=>{var e;return W.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};W.generator=r=>W.iterable(r)&&W.function_(r.next)&&W.function_(r.throw);W.asyncGenerator=r=>W.asyncIterable(r)&&W.function_(r.next)&&W.function_(r.throw);W.nativePromise=r=>hr("Promise")(r);var Sve=r=>{var e,t;return W.function_((e=r)===null||e===void 0?void 0:e.then)&&W.function_((t=r)===null||t===void 0?void 0:t.catch)};W.promise=r=>W.nativePromise(r)||Sve(r);W.generatorFunction=hr("GeneratorFunction");W.asyncGeneratorFunction=r=>kd(r)==="AsyncGeneratorFunction";W.asyncFunction=r=>kd(r)==="AsyncFunction";W.boundFunction=r=>W.function_(r)&&!r.hasOwnProperty("prototype");W.regExp=hr("RegExp");W.date=hr("Date");W.error=hr("Error");W.map=r=>hr("Map")(r);W.set=r=>hr("Set")(r);W.weakMap=r=>hr("WeakMap")(r);W.weakSet=r=>hr("WeakSet")(r);W.int8Array=hr("Int8Array");W.uint8Array=hr("Uint8Array");W.uint8ClampedArray=hr("Uint8ClampedArray");W.int16Array=hr("Int16Array");W.uint16Array=hr("Uint16Array");W.int32Array=hr("Int32Array");W.uint32Array=hr("Uint32Array");W.float32Array=hr("Float32Array");W.float64Array=hr("Float64Array");W.bigInt64Array=hr("BigInt64Array");W.bigUint64Array=hr("BigUint64Array");W.arrayBuffer=hr("ArrayBuffer");W.sharedArrayBuffer=hr("SharedArrayBuffer");W.dataView=hr("DataView");W.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;W.urlInstance=r=>hr("URL")(r);W.urlString=r=>{if(!W.string(r))return!1;try{return new URL(r),!0}catch(e){return!1}};W.truthy=r=>Boolean(r);W.falsy=r=>!r;W.nan=r=>Number.isNaN(r);W.primitive=r=>W.null_(r)||bve(typeof r);W.integer=r=>Number.isInteger(r);W.safeInteger=r=>Number.isSafeInteger(r);W.plainObject=r=>{if(G4.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};W.typedArray=r=>Ive(kd(r));var vve=r=>W.safeInteger(r)&&r>=0;W.arrayLike=r=>!W.nullOrUndefined(r)&&!W.function_(r)&&vve(r.length);W.inRange=(r,e)=>{if(W.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(W.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var kve=1,xve=["innerHTML","ownerDocument","style","attributes","nodeValue"];W.domElement=r=>W.object(r)&&r.nodeType===kve&&W.string(r.nodeName)&&!W.plainObject(r)&&xve.every(e=>e in r);W.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};W.nodeStream=r=>W.object(r)&&W.function_(r.pipe)&&!W.observable(r);W.infinite=r=>r===Infinity||r===-Infinity;var Y4=r=>e=>W.integer(e)&&Math.abs(e%2)===r;W.evenInteger=Y4(0);W.oddInteger=Y4(1);W.emptyArray=r=>W.array(r)&&r.length===0;W.nonEmptyArray=r=>W.array(r)&&r.length>0;W.emptyString=r=>W.string(r)&&r.length===0;W.nonEmptyString=r=>W.string(r)&&r.length>0;var Pve=r=>W.string(r)&&!/\S/.test(r);W.emptyStringOrWhitespace=r=>W.emptyString(r)||Pve(r);W.emptyObject=r=>W.object(r)&&!W.map(r)&&!W.set(r)&&Object.keys(r).length===0;W.nonEmptyObject=r=>W.object(r)&&!W.map(r)&&!W.set(r)&&Object.keys(r).length>0;W.emptySet=r=>W.set(r)&&r.size===0;W.nonEmptySet=r=>W.set(r)&&r.size>0;W.emptyMap=r=>W.map(r)&&r.size===0;W.nonEmptyMap=r=>W.map(r)&&r.size>0;W.propertyKey=r=>W.any([W.string,W.number,W.symbol],r);W.formData=r=>hr("FormData")(r);W.urlSearchParams=r=>hr("URLSearchParams")(r);var q4=(r,e,t)=>{if(!W.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};W.any=(r,...e)=>(W.array(r)?r:[r]).some(i=>q4(Array.prototype.some,i,e));W.all=(r,...e)=>q4(Array.prototype.every,r,e);var We=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${W(o)}\``))].join(", ")}`:`received value of type \`${W(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};iA.assert={undefined:r=>We(W.undefined(r),"undefined",r),string:r=>We(W.string(r),"string",r),number:r=>We(W.number(r),"number",r),bigint:r=>We(W.bigint(r),"bigint",r),function_:r=>We(W.function_(r),"Function",r),null_:r=>We(W.null_(r),"null",r),class_:r=>We(W.class_(r),"Class",r),boolean:r=>We(W.boolean(r),"boolean",r),symbol:r=>We(W.symbol(r),"symbol",r),numericString:r=>We(W.numericString(r),"string with a number",r),array:(r,e)=>{We(W.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>We(W.buffer(r),"Buffer",r),nullOrUndefined:r=>We(W.nullOrUndefined(r),"null or undefined",r),object:r=>We(W.object(r),"Object",r),iterable:r=>We(W.iterable(r),"Iterable",r),asyncIterable:r=>We(W.asyncIterable(r),"AsyncIterable",r),generator:r=>We(W.generator(r),"Generator",r),asyncGenerator:r=>We(W.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>We(W.nativePromise(r),"native Promise",r),promise:r=>We(W.promise(r),"Promise",r),generatorFunction:r=>We(W.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>We(W.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>We(W.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>We(W.boundFunction(r),"Function",r),regExp:r=>We(W.regExp(r),"RegExp",r),date:r=>We(W.date(r),"Date",r),error:r=>We(W.error(r),"Error",r),map:r=>We(W.map(r),"Map",r),set:r=>We(W.set(r),"Set",r),weakMap:r=>We(W.weakMap(r),"WeakMap",r),weakSet:r=>We(W.weakSet(r),"WeakSet",r),int8Array:r=>We(W.int8Array(r),"Int8Array",r),uint8Array:r=>We(W.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>We(W.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>We(W.int16Array(r),"Int16Array",r),uint16Array:r=>We(W.uint16Array(r),"Uint16Array",r),int32Array:r=>We(W.int32Array(r),"Int32Array",r),uint32Array:r=>We(W.uint32Array(r),"Uint32Array",r),float32Array:r=>We(W.float32Array(r),"Float32Array",r),float64Array:r=>We(W.float64Array(r),"Float64Array",r),bigInt64Array:r=>We(W.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>We(W.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>We(W.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>We(W.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>We(W.dataView(r),"DataView",r),urlInstance:r=>We(W.urlInstance(r),"URL",r),urlString:r=>We(W.urlString(r),"string with a URL",r),truthy:r=>We(W.truthy(r),"truthy",r),falsy:r=>We(W.falsy(r),"falsy",r),nan:r=>We(W.nan(r),"NaN",r),primitive:r=>We(W.primitive(r),"primitive",r),integer:r=>We(W.integer(r),"integer",r),safeInteger:r=>We(W.safeInteger(r),"integer",r),plainObject:r=>We(W.plainObject(r),"plain object",r),typedArray:r=>We(W.typedArray(r),"TypedArray",r),arrayLike:r=>We(W.arrayLike(r),"array-like",r),domElement:r=>We(W.domElement(r),"HTMLElement",r),observable:r=>We(W.observable(r),"Observable",r),nodeStream:r=>We(W.nodeStream(r),"Node.js Stream",r),infinite:r=>We(W.infinite(r),"infinite number",r),emptyArray:r=>We(W.emptyArray(r),"empty array",r),nonEmptyArray:r=>We(W.nonEmptyArray(r),"non-empty array",r),emptyString:r=>We(W.emptyString(r),"empty string",r),nonEmptyString:r=>We(W.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>We(W.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>We(W.emptyObject(r),"empty object",r),nonEmptyObject:r=>We(W.nonEmptyObject(r),"non-empty object",r),emptySet:r=>We(W.emptySet(r),"empty set",r),nonEmptySet:r=>We(W.nonEmptySet(r),"non-empty set",r),emptyMap:r=>We(W.emptyMap(r),"empty map",r),nonEmptyMap:r=>We(W.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>We(W.propertyKey(r),"PropertyKey",r),formData:r=>We(W.formData(r),"FormData",r),urlSearchParams:r=>We(W.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>We(W.evenInteger(r),"even integer",r),oddInteger:r=>We(W.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>We(W.directInstanceOf(r,e),"T",r),inRange:(r,e)=>We(W.inRange(r,e),"in range",r),any:(r,...e)=>We(W.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>We(W.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(W,{class:{value:W.class_},function:{value:W.function_},null:{value:W.null_}});Object.defineProperties(iA.assert,{class:{value:iA.assert.class_},function:{value:iA.assert.function_},null:{value:iA.assert.null_}});iA.default=W;bw.exports=W;bw.exports.default=W;bw.exports.assert=iA.assert});var J4=w((_it,bx)=>{"use strict";var Qx=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},xd=class{static fn(e){return(...t)=>new xd((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Qx(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(xd.prototype,Promise.prototype);bx.exports=xd;bx.exports.CancelError=Qx});var W4=w((Sx,vx)=>{"use strict";Object.defineProperty(Sx,"__esModule",{value:!0});var Dve=require("tls"),kx=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof Dve.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};Sx.default=kx;vx.exports=kx;vx.exports.default=kx});var z4=w((xx,Px)=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});var Rve=W4(),Fve=Number(process.versions.node.split(".")[0]),Dx=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Fve>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),Rve.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};xx.default=Dx;Px.exports=Dx;Px.exports.default=Dx});var tz=w((Vit,Rx)=>{"use strict";var{V4MAPPED:Nve,ADDRCONFIG:Lve,ALL:_4,promises:{Resolver:V4},lookup:Tve}=require("dns"),{promisify:Fx}=require("util"),Ove=require("os"),$g=Symbol("cacheableLookupCreateConnection"),Nx=Symbol("cacheableLookupInstance"),X4=Symbol("expires"),Mve=typeof _4=="number",Z4=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Uve=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},$4=()=>{let r=!1,e=!1;for(let t of Object.values(Ove.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},Kve=r=>Symbol.iterator in r,ez={ttl:!0},Hve={all:!0},Lx=class{constructor({cache:e=new Map,maxTtl:t=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new V4,lookup:o=Tve}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Fx(o),this._resolver instanceof V4?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Fx(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Fx(this._resolver.resolve6.bind(this._resolver))),this._iface=$4(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&Nve&&(Mve&&t.hints&_4||n.length===0)?Uve(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&Lve){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>N({},i)),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,ez),this._resolve6(e,ez)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(t){return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[X4]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Kve(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Hve);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[X4];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[$g](t,i))}uninstall(e){if(Z4(e),e[$g]){if(e[Nx]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[$g],delete e[$g],delete e[Nx]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=$4(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};Rx.exports=Lx;Rx.exports.default=Lx});var nz=w((Xit,Tx)=>{"use strict";var jve=typeof URL=="undefined"?require("url").URL:URL,Gve="text/plain",Yve="us-ascii",rz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),qve=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Yve)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Gve)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},iz=(r,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return qve(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new jve(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];rz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])rz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};Tx.exports=iz;Tx.exports.default=iz});var az=w((Zit,sz)=>{sz.exports=oz;function oz(r,e){if(r&&e)return oz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Az=az();Ox.exports=Az(Qw);Ox.exports.strict=Az(lz);Qw.proto=Qw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Qw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return lz(this)},configurable:!0})});function Qw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function lz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var Ux=w((ent,cz)=>{var Jve=Mx(),Wve=function(){},zve=function(r){return r.setHeader&&typeof r.abort=="function"},_ve=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},uz=function(r,e,t){if(typeof e=="function")return uz(r,null,e);e||(e={}),t=Jve(t||Wve);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(p){t.call(r,p?new Error("exited with error code: "+p):null)},g=function(p){t.call(r,p)},f=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},h=function(){r.req.on("finish",l)};return zve(r)?(r.on("complete",l),r.on("abort",f),r.req?h():r.on("request",h)):o&&!i&&(r.on("end",a),r.on("close",a)),_ve(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",f),function(){r.removeListener("complete",l),r.removeListener("abort",f),r.removeListener("request",h),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",f)}};cz.exports=uz});var hz=w((tnt,gz)=>{var Vve=Mx(),Xve=Ux(),Kx=require("fs"),Pd=function(){},Zve=/^v?\.0/.test(process.version),Sw=function(r){return typeof r=="function"},$ve=function(r){return!Zve||!Kx?!1:(r instanceof(Kx.ReadStream||Pd)||r instanceof(Kx.WriteStream||Pd))&&Sw(r.close)},eke=function(r){return r.setHeader&&Sw(r.abort)},tke=function(r,e,t,i){i=Vve(i);var n=!1;r.on("close",function(){n=!0}),Xve(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,$ve(r))return r.close(Pd);if(eke(r))return r.abort();if(Sw(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},fz=function(r){r()},rke=function(r,e){return r.pipe(e)},ike=function(){var r=Array.prototype.slice.call(arguments),e=Sw(r[r.length-1]||Pd)&&r.pop()||Pd;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return tke(n,o,a,function(l){t||(t=l),l&&i.forEach(fz),!o&&(i.forEach(fz),e(t))})});return r.reduce(rke)};gz.exports=ike});var dz=w((rnt,pz)=>{"use strict";var{PassThrough:nke}=require("stream");pz.exports=r=>{r=N({},r);let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new nke({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var Cz=w((int,ef)=>{"use strict";var ske=hz(),oke=dz(),Hx=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e=N({maxBuffer:Infinity},e);let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=ske(r,oke(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new Hx)})}),i.getBufferedValue()}ef.exports=vw;ef.exports.default=vw;ef.exports.buffer=(r,e)=>vw(r,te(N({},e),{encoding:"buffer"}));ef.exports.array=(r,e)=>vw(r,te(N({},e),{array:!0}));ef.exports.MaxBufferError=Hx});var Ez=w((snt,mz)=>{"use strict";var ake=[200,203,204,206,300,301,404,405,410,414,501],Ake=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],lke={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},cke={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function jx(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function uke(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}mz.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=jx(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=jx(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":uke(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!t.headers["cache-control"]&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Ake.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||ake.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=jx(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)lke[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let t=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!cke[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var kw=w((ont,Iz)=>{"use strict";Iz.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var Bz=w((ant,yz)=>{"use strict";var gke=require("stream").Readable,fke=kw(),wz=class extends gke{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=fke(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};yz.exports=wz});var Qz=w((Ant,bz)=>{"use strict";var hke=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];bz.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(hke));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var vz=w((lnt,Sz)=>{"use strict";var pke=require("stream").PassThrough,dke=Qz(),Cke=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new pke;return dke(r,e),r.pipe(e)};Sz.exports=Cke});var kz=w(Gx=>{Gx.stringify=function r(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};Gx.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var Rz=w((unt,xz)=>{"use strict";var mke=require("events"),Pz=kz(),Eke=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(require(e[t]))(r)}return new Map},Dz=class extends mke{constructor(e,t){super();if(this.opts=Object.assign({namespace:"keyv",serialize:Pz.stringify,deserialize:Pz.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=Eke(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};xz.exports=Dz});var Lz=w((gnt,Fz)=>{"use strict";var Ike=require("events"),xw=require("url"),yke=nz(),wke=Cz(),Yx=Ez(),Nz=Bz(),Bke=kw(),bke=vz(),Qke=Rz(),na=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Qke({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=qx(xw.parse(t)),t={};else if(t instanceof xw.URL)n=qx(xw.parse(t.toString())),t={};else{let[g,...f]=(t.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=qx(te(N({},t),{pathname:g,search:h}))}t=N(N({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},t),Ske(n)),t.headers=Bke(t.headers);let s=new Ike,o=yke(xw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(y=>{h=()=>{f||(f=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let v=Yx.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!v.modified){let k=v.policy.responseHeaders();y=new Nz(l.statusCode,k,l.body,l.url),y.cachePolicy=v.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new Yx(g,y,g),y.fromCache=!1);let b;g.cache&&y.cachePolicy.storable()?(b=bke(y),(async()=>{try{let v=wke.buffer(y);if(await Promise.race([p,new Promise(q=>y.once("end",q))]),f)return;let k=await v,T={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:k},Y=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(Y=Y?Math.min(Y,g.maxTtl):g.maxTtl),await this.cache.set(a,T,Y)}catch(v){s.emit("error",new na.CacheError(v))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(v){s.emit("error",new na.CacheError(v))}})(),s.emit("response",b||y),typeof i=="function"&&i(b||y)};try{let y=e(g,m);y.once("error",h),y.once("abort",h),s.emit("request",y)}catch(y){s.emit("error",new na.RequestError(y))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let m=Yx.fromObject(p.cachePolicy);if(m.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let y=m.responseHeaders(),b=new Nz(p.statusCode,y,p.body,p.url);b.cachePolicy=m,b.fromCache=!0,s.emit("response",b),typeof i=="function"&&i(b)}else l=p,h.headers=m.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new na.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(t)}catch(h){t.automaticFailover&&!c&&u(t),s.emit("error",new na.CacheError(h))}})(),s}}};function Ske(r){let e=N({},r);return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function qx(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}na.RequestError=class extends Error{constructor(r){super(r.message);this.name="RequestError",Object.assign(this,r)}};na.CacheError=class extends Error{constructor(r){super(r.message);this.name="CacheError",Object.assign(this,r)}};Fz.exports=na});var Oz=w((fnt,Tz)=>{"use strict";var vke=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Tz.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(vke)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Uz=w((hnt,Mz)=>{"use strict";var{Transform:kke,PassThrough:xke}=require("stream"),Jx=require("zlib"),Pke=Oz();Mz.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof Jx.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new kke({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new xke({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?Jx.createBrotliDecompress():Jx.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),Pke(r,s),r.pipe(n).pipe(o).pipe(s),s}});var Wx=w((pnt,Kz)=>{"use strict";var Hz=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};Kz.exports=Hz});var _x=w((dnt,jz)=>{"use strict";var Dke=require("events"),Rke=require("tls"),Fke=require("http2"),Nke=Wx(),gn=Symbol("currentStreamsCount"),Gz=Symbol("request"),Os=Symbol("cachedOriginSet"),tf=Symbol("gracefullyClosing"),Lke=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Tke=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},Oke=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,zx=(r,e)=>{for(let t of r)t[Os].lengthe[Os].includes(i))&&t[gn]+e[gn]<=e.remoteSettings.maxConcurrentStreams&&Yz(t)},Mke=(r,e)=>{for(let t of r)e[Os].lengtht[Os].includes(i))&&e[gn]+t[gn]<=t.remoteSettings.maxConcurrentStreams&&Yz(e)},qz=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[sA.kCurrentStreamsCount]{r[tf]=!0,r[gn]===0&&r.close()},sA=class extends Dke{constructor({timeout:e=6e4,maxSessions:t=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Nke({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of Lke)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=sA.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let m=p.remoteSettings.maxConcurrentStreams;if(m=m||p[tf]||p.destroyed)continue;h||(g=m),y>f&&(h=p,f=y)}}if(h){if(i.length!==1){for(let{reject:p}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);p(m)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=Fke.connect(e,N({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},t));f[gn]=0,f[tf]=!1;let h=()=>f[gn]{this.tlsSessionCache.set(u,y)}),f.once("error",y=>{for(let{reject:b}of i)b(y);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(f),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:b}of i)b(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!h())){for(let y of f[Os])if(y in this.queue[o]){let{listeners:b}=this.queue[o][y];for(;b.length!==0&&h();)b.shift().resolve(f);let v=this.queue[o];if(v[y].listeners.length===0&&(delete v[y],Object.keys(v).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[Os]=f.originSet,!!h()&&(m(),zx(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let b of i)b.reject(y);f.destroy();return}f[Os]=f.originSet;{let y=this.sessions;if(o in y){let b=y[o];b.splice(Tke(b,f,Oke),0,f)}else y[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),m(),l(),f[gn]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),f.on("remoteSettings",()=>{m(),zx(this.sessions[o],f)})}),f[Gz]=f.request,f.request=(y,b)=>{if(f[tf])throw new Error("The session is gracefully closing. No new streams are allowed.");let v=f[Gz](y,b);return f.ref(),++f[gn],f[gn]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,v.once("close",()=>{if(p=h(),--f[gn],!f.destroyed&&!f.closed&&(Mke(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let k=f[gn]===0;k&&f.unref(),k&&(this._freeSessionsCount>this.maxFreeSessions||f[tf])?f.close():(zx(this.sessions[o],f),m())}}),v}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return sA.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername=="undefined"&&(t.servername=n),Rke.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[gn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return qz({agent:this,isFree:!0})}get busySessions(){return qz({agent:this,isFree:!1})}};sA.kCurrentStreamsCount=gn;sA.kGracefullyClosing=tf;jz.exports={Agent:sA,globalAgent:new sA}});var Vx=w((Cnt,Jz)=>{"use strict";var{Readable:Uke}=require("stream"),Wz=class extends Uke{constructor(e,t){super({highWaterMark:t,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Jz.exports=Wz});var Xx=w((mnt,zz)=>{"use strict";zz.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var Vz=w((Ent,_z)=>{"use strict";_z.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var Zz=w((Int,Xz)=>{"use strict";Xz.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var e8=w((wnt,$z)=>{"use strict";var rf=(r,e,t)=>{$z.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n));this.name=`${super.name} [${e}]`,this.code=e}}};rf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});rf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);rf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);rf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);rf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);rf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var tP=w((Bnt,t8)=>{"use strict";var Kke=require("http2"),{Writable:Hke}=require("stream"),{Agent:r8,globalAgent:jke}=_x(),Gke=Vx(),Yke=Xx(),qke=Vz(),Jke=Zz(),{ERR_INVALID_ARG_TYPE:Zx,ERR_INVALID_PROTOCOL:Wke,ERR_HTTP_HEADERS_SENT:i8,ERR_INVALID_HTTP_TOKEN:zke,ERR_HTTP_INVALID_HEADER_VALUE:_ke,ERR_INVALID_CHAR:Vke}=e8(),{HTTP2_HEADER_STATUS:n8,HTTP2_HEADER_METHOD:s8,HTTP2_HEADER_PATH:o8,HTTP2_METHOD_CONNECT:Xke}=Kke.constants,Wi=Symbol("headers"),$x=Symbol("origin"),eP=Symbol("session"),a8=Symbol("options"),Pw=Symbol("flushedHeaders"),Dd=Symbol("jobs"),Zke=/^[\^`\-\w!#$%&*+.|~]+$/,$ke=/[^\t\u0020-\u007E\u0080-\u00FF]/,A8=class extends Hke{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Yke(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:N({},e)):t=N(N({},e),t),t.h2session)this[eP]=t.h2session;else if(t.agent===!1)this.agent=new r8({maxFreeSessions:0});else if(typeof t.agent=="undefined"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new r8({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=jke;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new Zx("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new Wke(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Wi]=Object.create(null),this[Dd]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Wi])&&(this[Wi].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[a8]=t,s===443?(this[$x]=`https://${o}`,":authority"in this[Wi]||(this[Wi][":authority"]=o)):(this[$x]=`https://${o}:${s}`,":authority"in this[Wi]||(this[Wi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[Pw]=!1}get method(){return this[Wi][s8]}set method(e){e&&(this[Wi][s8]=e.toUpperCase())}get path(){return this[Wi][o8]}set path(e){e&&(this[Wi][o8]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[Dd].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[Dd].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[Pw]||this.destroyed)return;this[Pw]=!0;let e=this.method===Xke,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||qke(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new Gke(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[n8],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[n8]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[Dd])o();this.emit("socket",this.socket)};if(this[eP])try{t(this[eP].request(this[Wi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[$x],this[a8],this[Wi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new Zx("name","string",e);return this[Wi][e.toLowerCase()]}get headersSent(){return this[Pw]}removeHeader(e){if(typeof e!="string")throw new Zx("name","string",e);if(this.headersSent)throw new i8("remove");delete this[Wi][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new i8("set");if(typeof e!="string"||!Zke.test(e)&&!Jke(e))throw new zke("Header name",e);if(typeof t=="undefined")throw new _ke(t,e);if($ke.test(t))throw new Vke("header content",e);this[Wi][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[Dd].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};t8.exports=A8});var c8=w((bnt,l8)=>{"use strict";var exe=require("tls");l8.exports=(r={})=>new Promise((e,t)=>{let i=exe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var g8=w((Qnt,u8)=>{"use strict";var txe=require("net");u8.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),txe.isIP(e)?"":e}});var p8=w((Snt,rP)=>{"use strict";var f8=require("http"),iP=require("https"),rxe=c8(),ixe=Wx(),nxe=tP(),sxe=g8(),oxe=Xx(),Dw=new ixe({maxSize:100}),Rd=new Map,h8=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},axe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!Dw.has(e)){if(Rd.has(e))return(await Rd.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=rxe(r);Rd.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Dw.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=iP,l=iP.Agent.prototype.createConnection;i?i.createConnection===l?h8(i,s,r):s.destroy():a.createConnection===l?h8(a,s,r):s.destroy()}return Rd.delete(e),o}catch(s){throw Rd.delete(e),s}}return Dw.get(e)};rP.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=oxe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e=te(N(N({ALPNProtocols:["h2","http/1.1"]},r),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||sxe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?iP.globalAgent:f8.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await axe(e)==="h2"?(n&&(e.agent=n.http2),new nxe(e,t)):f8.request(e,t)};rP.exports.protocolCache=Dw});var C8=w((vnt,d8)=>{"use strict";var Axe=require("http2"),lxe=_x(),nP=tP(),cxe=Vx(),uxe=p8(),gxe=(r,e,t)=>new nP(r,e,t),fxe=(r,e,t)=>{let i=new nP(r,e,t);return i.end(),i};d8.exports=te(N(te(N({},Axe),{ClientRequest:nP,IncomingMessage:cxe}),lxe),{request:gxe,get:fxe,auto:uxe})});var oP=w(sP=>{"use strict";Object.defineProperty(sP,"__esModule",{value:!0});var m8=nA();sP.default=r=>m8.default.nodeStream(r)&&m8.default.function_(r.getBoundary)});var w8=w(aP=>{"use strict";Object.defineProperty(aP,"__esModule",{value:!0});var E8=require("fs"),I8=require("util"),y8=nA(),hxe=oP(),pxe=I8.promisify(E8.stat);aP.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(y8.default.string(r))return Buffer.byteLength(r);if(y8.default.buffer(r))return r.length;if(hxe.default(r))return I8.promisify(r.getLength.bind(r))();if(r instanceof E8.ReadStream){let{size:t}=await pxe(r.path);return t===0?void 0:t}}});var lP=w(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});function dxe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}AP.default=dxe});var B8=w(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});cP.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var Q8=w(Fd=>{"use strict";Object.defineProperty(Fd,"__esModule",{value:!0});Fd.TimeoutError=void 0;var Cxe=require("net"),mxe=B8(),b8=Symbol("reentry"),Exe=()=>{},uP=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`);this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};Fd.TimeoutError=uP;Fd.default=(r,e,t)=>{if(b8 in r)return Exe;r[b8]=!0;let i=[],{once:n,unhandleAll:s}=mxe.default(),o=(g,f,h)=>{var p;let m=setTimeout(f,g,g,h);(p=m.unref)===null||p===void 0||p.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,f)=>{r.destroy(new uP(g,f))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var f;let{socketPath:h}=r;if(g.connecting){let p=Boolean(h!=null?h:Cxe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect!="undefined"){let m=()=>o(e.connect,c,"connect");p?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect!="undefined"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",p())}):n(r,"upload-complete",p())}}),typeof e.response!="undefined"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var v8=w(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});var S8=nA();gP.default=r=>{r=r;let e={protocol:r.protocol,hostname:S8.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return S8.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var k8=w(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});var Ixe=require("url"),yxe=["protocol","host","hostname","port","pathname","search"];fP.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new Ixe.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of yxe)e[s]&&(n[s]=e[s].toString());return n}});var P8=w(hP=>{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});var x8=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};hP.default=x8});var dP=w(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var wxe=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};pP.default=wxe});var R8=w(Xc=>{"use strict";Object.defineProperty(Xc,"__esModule",{value:!0});Xc.dnsLookupIpVersionToFamily=Xc.isDnsLookupIpVersion=void 0;var D8={auto:0,ipv4:4,ipv6:6};Xc.isDnsLookupIpVersion=r=>r in D8;Xc.dnsLookupIpVersionToFamily=r=>{if(Xc.isDnsLookupIpVersion(r))return D8[r];throw new Error("Invalid DNS lookup IP version")}});var CP=w(Rw=>{"use strict";Object.defineProperty(Rw,"__esModule",{value:!0});Rw.isResponseOk=void 0;Rw.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var N8=w(mP=>{"use strict";Object.defineProperty(mP,"__esModule",{value:!0});var F8=new Set;mP.default=r=>{F8.has(r)||(F8.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var L8=w(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});var Ir=nA(),Bxe=(r,e)=>{if(Ir.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ir.assert.any([Ir.default.string,Ir.default.undefined],r.encoding),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.resolveBodyOnly),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.methodRewriting),Ir.assert.any([Ir.default.boolean,Ir.default.undefined],r.isStream),Ir.assert.any([Ir.default.string,Ir.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry=N({},e.retry):r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ir.default.object(t)?(r.retry=N(N({},r.retry),t),r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):Ir.default.number(t)&&(r.retry.limit=t),Ir.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(Ir.default.number))),Ir.default.object(r.pagination)){e&&(r.pagination=N(N({},e.pagination),r.pagination));let{pagination:i}=r;if(!Ir.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ir.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ir.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ir.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};EP.default=Bxe});var T8=w(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});Nd.retryAfterStatusCodes=void 0;Nd.retryAfterStatusCodes=new Set([413,429,503]);var bxe=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};Nd.default=bxe});var Td=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.UnsupportedProtocolError=qt.ReadError=qt.TimeoutError=qt.UploadError=qt.CacheError=qt.HTTPError=qt.MaxRedirectsError=qt.RequestError=qt.setNonEnumerableProperties=qt.knownHookEvents=qt.withoutBody=qt.kIsNormalizedAlready=void 0;var O8=require("util"),M8=require("stream"),Qxe=require("fs"),fl=require("url"),U8=require("http"),IP=require("http"),Sxe=require("https"),vxe=z4(),kxe=tz(),K8=Lz(),xxe=Uz(),Pxe=C8(),Dxe=kw(),Ee=nA(),Rxe=w8(),H8=oP(),Fxe=lP(),j8=Q8(),Nxe=v8(),G8=k8(),Lxe=P8(),Txe=dP(),Y8=R8(),Oxe=CP(),hl=N8(),Mxe=L8(),Uxe=T8(),yP,Fi=Symbol("request"),Fw=Symbol("response"),nf=Symbol("responseSize"),sf=Symbol("downloadedSize"),of=Symbol("bodySize"),af=Symbol("uploadedSize"),Nw=Symbol("serverResponsesPiped"),q8=Symbol("unproxyEvents"),J8=Symbol("isFromCache"),wP=Symbol("cancelTimeouts"),W8=Symbol("startedReading"),Af=Symbol("stopReading"),Lw=Symbol("triggerRead"),pl=Symbol("body"),Ld=Symbol("jobs"),z8=Symbol("originalResponse"),_8=Symbol("retryTimeout");qt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Kxe=Ee.default.string(process.versions.brotli);qt.withoutBody=new Set(["GET","HEAD"]);qt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Hxe(r){for(let e in r){let t=r[e];if(!Ee.default.string(t)&&!Ee.default.number(t)&&!Ee.default.boolean(t)&&!Ee.default.null_(t)&&!Ee.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function jxe(r){return Ee.default.object(r)&&!("statusCode"in r)}var BP=new Lxe.default,Gxe=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),Yxe=new Set([300,301,302,303,304,307,308]),qxe=["context","body","json","form"];qt.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of qxe)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var hi=class extends Error{constructor(e,t,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof bP?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Fw]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ee.default.string(t.stack)&&Ee.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` +`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` +`)}${a.reverse().join(` +`)}`}}};qt.RequestError=hi;var QP=class extends hi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};qt.MaxRedirectsError=QP;var SP=class extends hi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};qt.HTTPError=SP;var vP=class extends hi{constructor(e,t){super(e.message,e,t);this.name="CacheError"}};qt.CacheError=vP;var kP=class extends hi{constructor(e,t){super(e.message,e,t);this.name="UploadError"}};qt.UploadError=kP;var xP=class extends hi{constructor(e,t,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=t}};qt.TimeoutError=xP;var Tw=class extends hi{constructor(e,t){super(e.message,e,t);this.name="ReadError"}};qt.ReadError=Tw;var PP=class extends hi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};qt.UnsupportedProtocolError=PP;var Jxe=["socket","connect","continue","information","upgrade","timeout"],bP=class extends M8.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0});this[sf]=0,this[af]=0,this.requestInitialized=!1,this[Nw]=new Set,this.redirects=[],this[Af]=!1,this[Lw]=!1,this[Ld]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof IP.IncomingMessage&&(this.options.headers=N(N({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),qt.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ee.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Qxe.ReadStream&&await Gxe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Fi])===null||c===void 0||c.destroy();return}for(let g of this[Ld])g();this[Ld].length=0,this.requestInitialized=!0}catch(u){if(u instanceof hi){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ee.default.object(e)&&!Ee.default.urlInstance(e))t=N(N(N({},i),e),t);else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t=N(N({},i),t),e!==void 0&&(t.url=e),Ee.default.urlInstance(t.url)&&(t.url=new fl.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.method),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.headers),Ee.assert.any([Ee.default.string,Ee.default.urlInstance,Ee.default.undefined],t.prefixUrl),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cookieJar),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.searchParams),Ee.assert.any([Ee.default.object,Ee.default.string,Ee.default.undefined],t.cache),Ee.assert.any([Ee.default.object,Ee.default.number,Ee.default.undefined],t.timeout),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.context),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.hooks),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.decompress),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.ignoreInvalidCookies),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.followRedirect),Ee.assert.any([Ee.default.number,Ee.default.undefined],t.maxRedirects),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.throwHttpErrors),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.http2),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.allowGetBody),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.localAddress),Ee.assert.any([Y8.isDnsLookupIpVersion,Ee.default.undefined],t.dnsLookupIpVersion),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.https),Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.rejectUnauthorized),t.https&&(Ee.assert.any([Ee.default.boolean,Ee.default.undefined],t.https.rejectUnauthorized),Ee.assert.any([Ee.default.function_,Ee.default.undefined],t.https.checkServerIdentity),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificateAuthority),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.key),Ee.assert.any([Ee.default.string,Ee.default.object,Ee.default.array,Ee.default.undefined],t.https.certificate),Ee.assert.any([Ee.default.string,Ee.default.undefined],t.https.passphrase),Ee.assert.any([Ee.default.string,Ee.default.buffer,Ee.default.array,Ee.default.undefined],t.https.pfx)),Ee.assert.any([Ee.default.object,Ee.default.undefined],t.cacheOptions),Ee.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers=N({},t.headers):t.headers=Dxe(N(N({},i==null?void 0:i.headers),t.headers)),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let h;if(Ee.default.string(t.searchParams)||t.searchParams instanceof fl.URLSearchParams)h=new fl.URLSearchParams(t.searchParams);else{Hxe(t.searchParams),h=new fl.URLSearchParams;for(let p in t.searchParams){let m=t.searchParams[p];m===null?h.append(p,""):m!==void 0&&h.append(p,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,m)=>{h.has(m)||h.append(m,p)}),t.searchParams=h}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ee.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ee.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=G8.default(t.prefixUrl+t.url,t)}else(Ee.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=G8.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:h}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${m}: ${y.href}`);t.url=new fl.URL(m+y.href.slice(h.length)),h=m},get:()=>h});let{protocol:p}=t.url;if(p==="unix:"&&(p="http:",t.url=new fl.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),p!=="http:"&&p!=="https:")throw new PP(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:h,getCookieString:p}=u;Ee.assert.function_(h),Ee.assert.function_(p),h.length===4&&p.length===0&&(h=O8.promisify(h.bind(t.cookieJar)),p=O8.promisify(p.bind(t.cookieJar)),t.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=t;if(g&&(BP.has(g)||BP.set(g,new K8((h,p)=>{let m=h[Fi](h,p);return Ee.default.promise(m)&&(m.once=(y,b)=>{if(y==="error")m.catch(b);else if(y==="abort")(async()=>{try{(await m).once("abort",b)}catch(v){}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions=N({},t.cacheOptions),t.dnsCache===!0)yP||(yP=new kxe.default),t.dnsCache=yP;else if(!Ee.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ee.default(t.dnsCache)}`);Ee.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout=N(N({},i.timeout),t.timeout):t.timeout=N({},t.timeout),t.context||(t.context={});let f=t.hooks===(i==null?void 0:i.hooks);t.hooks=N({},t.hooks);for(let h of qt.knownHookEvents)if(h in t.hooks)if(Ee.default.array(t.hooks[h]))t.hooks[h]=[...t.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${Ee.default(t.hooks[h])}`);else t.hooks[h]=[];if(i&&!f)for(let h of qt.knownHookEvents)i.hooks[h].length>0&&(t.hooks[h]=[...i.hooks[h],...t.hooks[h]]);if("family"in t&&hl.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(t.https=N(N({},i.https),t.https)),"rejectUnauthorized"in t&&hl.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&hl.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&hl.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&hl.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&hl.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&hl.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&hl.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let h in t.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,qt.setNonEnumerableProperties([i,c],t),Mxe.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ee.default.undefined(e.form),n=!Ee.default.undefined(e.json),s=!Ee.default.undefined(e.body),o=i||n||s,a=qt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof M8.Readable)&&!Ee.default.string(e.body)&&!Ee.default.buffer(e.body)&&!H8.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ee.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ee.default.string(t["content-type"]);s?(H8.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[pl]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[pl]=new fl.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[pl]=e.stringifyJson(e.json));let c=await Rxe.default(this[pl],e.headers);Ee.default.undefined(t["content-length"])&&Ee.default.undefined(t["transfer-encoding"])&&!a&&!Ee.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[of]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[z8]=e,t.decompress&&(e=xxe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:U8.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[J8]=s.isFromCache,this[nf]=Number(e.headers["content-length"])||void 0,this[Fw]=e,e.once("end",()=>{this[nf]=this[sf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new Tw(a,this))}),e.once("aborted",()=>{this._beforeError(new Tw({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ee.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&Yxe.has(n)){if(e.resume(),this[Fi]&&(this[wP](),delete this[Fi],this[q8]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[pl]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new QP(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new fl.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Oxe.isResponseOk(s)){this._beforeError(new SP(s));return}e.on("readable",()=>{this[Lw]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Nw])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;vxe.default(e),this[wP]=j8.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof j8.TimeoutError?new xP(l,this.timings,this):new hi(l.message,l,this),this._beforeError(l)}),this[q8]=Fxe.default(e,this,Jxe),this[Fi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[pl],a=this.redirects.length===0?this:e;Ee.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new kP(l,this))})):(this._unlockWrite(),Ee.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Nxe.default(e)),delete t.url;let s,o=BP.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let b in a)if(Ee.default.undefined(a[b]))delete a[b];else if(Ee.default.null_(a[b]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${b}\` header`);if(o.decompress&&Ee.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Kxe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let b=await o.cookieJar.getCookieString(o.url.toString());Ee.default.nonEmptyString(b)&&(o.headers.cookie=b)}for(let b of o.hooks.beforeRequest){let v=await b(o);if(!Ee.default.undefined(v)){o.request=()=>v;break}}o.body&&this[pl]!==o.body&&(this[pl]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let b=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(b==null?void 0:b.groups){let{socketPath:v,path:k}=b.groups;Object.assign(o,{socketPath:v,path:k,host:""})}}let f=g.protocol==="https:",h;o.http2?h=Pxe.auto:h=f?Sxe.request:U8.request;let p=(e=o.request)!==null&&e!==void 0?e:h,m=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Fi]=p,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=Y8.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(b){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let b=await m(g,y);Ee.default.undefined(b)&&(b=h(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),jxe(b)?this._onRequest(b):this.writable?(this.once("finish",()=>{this._onResponse(b)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(b)}catch(b){throw b instanceof K8.CacheError?new vP(b,this):new hi(b.message,b,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new hi(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Af])return;let{options:t}=this,i=this.retryCount+1;this[Af]=!0,e instanceof hi||(e=new hi(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Txe.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:Uxe.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new hi(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new hi(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[_8]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Lw]=!0;let e=this[Fw];if(e&&!this[Af]){e.readableLength&&(this[Lw]=!1);let t;for(;(t=e.read())!==null;){this[sf]+=t.length,this[W8]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[Ld].push(n)}_writeRequest(e,t,i){this[Fi].destroyed||(this._progressCallbacks.push(()=>{this[af]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Fi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Fi in this)){e();return}if(this[Fi].destroyed){e();return}this[Fi].end(i=>{i||(this[of]=this[af],this.emit("uploadProgress",this.uploadProgress),this[Fi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[Ld].push(t)}_destroy(e,t){var i;this[Af]=!0,clearTimeout(this[_8]),Fi in this&&(this[wP](),((i=this[Fw])===null||i===void 0?void 0:i.complete)||this[Fi].destroy()),e!==null&&!Ee.default.undefined(e)&&!(e instanceof hi)&&(e=new hi(e.message,e,this)),t(e)}get _isAboutToError(){return this[Af]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Fi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!((i=this[z8])===null||i===void 0?void 0:i.complete)}get socket(){var e,t;return(t=(e=this[Fi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[nf]?e=this[sf]/this[nf]:this[nf]===this[sf]?e=1:e=0,{percent:e,transferred:this[sf],total:this[nf]}}get uploadProgress(){let e;return this[of]?e=this[af]/this[of]:this[of]===this[af]?e=1:e=0,{percent:e,transferred:this[af],total:this[of]}}get timings(){var e;return(e=this[Fi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[J8]}pipe(e,t){if(this[W8])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof IP.ServerResponse&&this[Nw].add(e),super.pipe(e,t)}unpipe(e){return e instanceof IP.ServerResponse&&this[Nw].delete(e),super.unpipe(e),this}};qt.default=bP});var Od=w(Eo=>{"use strict";var Wxe=Eo&&Eo.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),zxe=Eo&&Eo.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Wxe(e,r,t)};Object.defineProperty(Eo,"__esModule",{value:!0});Eo.CancelError=Eo.ParseError=void 0;var V8=Td(),X8=class extends V8.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request);this.name="ParseError"}};Eo.ParseError=X8;var Z8=class extends V8.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};Eo.CancelError=Z8;zxe(Td(),Eo)});var e5=w(DP=>{"use strict";Object.defineProperty(DP,"__esModule",{value:!0});var $8=Od(),_xe=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new $8.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new $8.ParseError(s,r)}};DP.default=_xe});var RP=w(dl=>{"use strict";var Vxe=dl&&dl.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Xxe=dl&&dl.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Vxe(e,r,t)};Object.defineProperty(dl,"__esModule",{value:!0});var Zxe=require("events"),$xe=nA(),ePe=J4(),Ow=Od(),t5=e5(),r5=Td(),tPe=lP(),rPe=dP(),i5=CP(),iPe=["request","response","redirect","uploadProgress","downloadProgress"];function n5(r){let e,t,i=new Zxe.EventEmitter,n=new ePe((o,a,l)=>{let c=u=>{let g=new r5.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Ow.CancelError(g))),e=g,g.once("response",async p=>{var m;if(p.retryCount=u,p.request.aborted)return;let y;try{y=await rPe.default(g),p.rawBody=y}catch(T){return}if(g._isAboutToError)return;let b=((m=p.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),v=["gzip","deflate","br"].includes(b),{options:k}=g;if(v&&!k.decompress)p.body=y;else try{p.body=t5.default(p,k.responseType,k.parseJson,k.encoding)}catch(T){if(p.body=y.toString(),i5.isResponseOk(p)){g._beforeError(T);return}}try{for(let[T,Y]of k.hooks.afterResponse.entries())p=await Y(p,async q=>{let $=r5.default.normalizeArguments(void 0,te(N({},q),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),k);$.hooks.afterResponse=$.hooks.afterResponse.slice(0,T);for(let ne of $.hooks.beforeRetry)await ne($);let z=n5($);return l(()=>{z.catch(()=>{}),z.cancel()}),z})}catch(T){g._beforeError(new Ow.RequestError(T.message,T,g));return}if(!i5.isResponseOk(p)){g._beforeError(new Ow.HTTPError(p));return}t=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:m}=g;if(p instanceof Ow.HTTPError&&!m.throwHttpErrors){let{response:y}=p;o(g.options.resolveBodyOnly?y.body:y);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,m)=>{var y,b;if(h===((y=m.request)===null||y===void 0?void 0:y.options.body)&&$xe.default.nodeStream((b=m.request)===null||b===void 0?void 0:b.options.body)){f(m);return}c(p)}),tPe.default(g,i,iPe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return t5.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}dl.default=n5;Xxe(Od(),dl)});var s5=w(FP=>{"use strict";Object.defineProperty(FP,"__esModule",{value:!0});var nPe=Od();function sPe(r,...e){let t=(async()=>{if(r instanceof nPe.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}FP.default=sPe});var A5=w(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});var o5=nA();function a5(r){for(let e of Object.values(r))(o5.default.plainObject(e)||o5.default.array(e))&&a5(e);return Object.freeze(r)}NP.default=a5});var c5=w(l5=>{"use strict";Object.defineProperty(l5,"__esModule",{value:!0})});var LP=w(Ms=>{"use strict";var oPe=Ms&&Ms.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),aPe=Ms&&Ms.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&oPe(e,r,t)};Object.defineProperty(Ms,"__esModule",{value:!0});Ms.defaultHandler=void 0;var u5=nA(),Us=RP(),APe=s5(),Mw=Td(),lPe=A5(),cPe={RequestError:Us.RequestError,CacheError:Us.CacheError,ReadError:Us.ReadError,HTTPError:Us.HTTPError,MaxRedirectsError:Us.MaxRedirectsError,TimeoutError:Us.TimeoutError,ParseError:Us.ParseError,CancelError:Us.CancelError,UnsupportedProtocolError:Us.UnsupportedProtocolError,UploadError:Us.UploadError},uPe=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:Uw}=Mw.default,g5=(...r)=>{let e;for(let t of r)e=Uw(void 0,t,e);return e},gPe=r=>r.isStream?new Mw.default(void 0,r):Us.default(r),fPe=r=>"defaults"in r&&"options"in r.defaults,hPe=["get","post","put","patch","head","delete"];Ms.defaultHandler=(r,e)=>e(r);var f5=(r,e)=>{if(r)for(let t of r)t(e)},h5=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?gPe:c);if(u5.default.plainObject(i)){let u=N(N({},i),n);Mw.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{f5(r.options.hooks.init,n),f5((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Uw(i,n,s!=null?s:r.options);if(g[Mw.kIsNormalizedAlready]=!0,u)throw new Us.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return APe.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)fPe(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Ms.defaultHandler),s.length===0&&s.push(Ms.defaultHandler),h5({options:g5(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=Uw(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!u5.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,te(N({},n),{isStream:!0}));for(let i of hPe)e[i]=(n,s)=>e(n,te(N({},s),{method:i})),e.stream[i]=(n,s)=>e(n,te(N({},s),{method:i,isStream:!0}));return Object.assign(e,cPe),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:lPe.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=g5,e};Ms.default=h5;aPe(c5(),Ms)});var Hw=w((oA,Kw)=>{"use strict";var pPe=oA&&oA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),p5=oA&&oA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&pPe(e,r,t)};Object.defineProperty(oA,"__esModule",{value:!0});var dPe=require("url"),d5=LP(),CPe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new dPe.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[d5.defaultHandler],mutableDefaults:!1},TP=d5.default(CPe);oA.default=TP;Kw.exports=TP;Kw.exports.default=TP;Kw.exports.__esModule=!0;p5(LP(),oA);p5(RP(),oA)});var I5=w(lf=>{"use strict";var Vnt=require("net"),mPe=require("tls"),OP=require("http"),C5=require("https"),EPe=require("events"),Xnt=require("assert"),IPe=require("util");lf.httpOverHttp=yPe;lf.httpsOverHttp=wPe;lf.httpOverHttps=BPe;lf.httpsOverHttps=bPe;function yPe(r){var e=new aA(r);return e.request=OP.request,e}function wPe(r){var e=new aA(r);return e.request=OP.request,e.createSocket=m5,e.defaultPort=443,e}function BPe(r){var e=new aA(r);return e.request=C5.request,e}function bPe(r){var e=new aA(r);return e.request=C5.request,e.createSocket=m5,e.defaultPort=443,e}function aA(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||OP.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=E5(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};aA.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=MP({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),Cl("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){Cl("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){Cl("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return Cl("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,t(f)}function u(g){o.removeAllListeners(),Cl(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};aA.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function m5(r,e){var t=this;aA.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=MP({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=mPe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function E5(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function MP(r){for(var e=1,t=arguments.length;e{y5.exports=I5()});var R5=w((Yw,GP)=>{var D5=Object.assign({},require("fs")),YP=function(){var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(e){e=e||{};var t=typeof e!="undefined"?e:{},i,n;t.ready=new Promise(function(d,E){i=d,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(d,E){throw E},u=!1,g=!0,f="";function h(d){return t.locateFile?t.locateFile(d,f):f+d}var p,m,y,b;g&&(u?f=require("path").dirname(f)+"/":f=__dirname+"/",p=function(E,I){var D=xa(E);return D?I?D:D.toString():(y||(y=D5),b||(b=require("path")),E=b.normalize(E),y.readFileSync(E,I?null:"utf8"))},m=function(E){var I=p(E,!0);return I.buffer||(I=new Uint8Array(I)),Z(I.buffer),I},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(d){process.exit(d)},t.inspect=function(){return"[Emscripten Module object]"});var v=t.print||console.log.bind(console),k=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var T=16;function Y(d,E){return E||(E=T),Math.ceil(d/E)*E}var q=0,$=function(d){q=d},z;t.wasmBinary&&(z=t.wasmBinary);var ne=t.noExitRuntime||!0;typeof WebAssembly!="object"&&vr("no native wasm support detected");function ee(d,E,I){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return pe[d>>0];case"i8":return pe[d>>0];case"i16":return Qe[d>>1];case"i32":return fe[d>>2];case"i64":return fe[d>>2];case"float":return Ht[d>>2];case"double":return Mt[d>>3];default:vr("invalid type for getValue: "+E)}return null}var A,oe=!1,ce;function Z(d,E){d||vr("Assertion failed: "+E)}function O(d){var E=t["_"+d];return Z(E,"Cannot call unknown function "+d+", make sure it is exported"),E}function L(d,E,I,D,M){var _={string:function(st){var yt=0;if(st!=null&&st!==0){var ke=(st.length<<2)+1;yt=B(ke),be(st,yt,ke)}return yt},array:function(st){var yt=B(st.length);return Ue(st,yt),yt}};function ie(st){return E==="string"?re(st):E==="boolean"?Boolean(st):st}var we=O(d),me=[],_e=0;if(D)for(var ot=0;ot=D);)++M;if(M-E>16&&d.subarray&&Be)return Be.decode(d.subarray(E,M));for(var _="";E>10,56320|_e&1023)}}return _}function re(d,E){return d?Ge(V,d,E):""}function se(d,E,I,D){if(!(D>0))return 0;for(var M=I,_=I+D-1,ie=0;ie=55296&&we<=57343){var me=d.charCodeAt(++ie);we=65536+((we&1023)<<10)|me&1023}if(we<=127){if(I>=_)break;E[I++]=we}else if(we<=2047){if(I+1>=_)break;E[I++]=192|we>>6,E[I++]=128|we&63}else if(we<=65535){if(I+2>=_)break;E[I++]=224|we>>12,E[I++]=128|we>>6&63,E[I++]=128|we&63}else{if(I+3>=_)break;E[I++]=240|we>>18,E[I++]=128|we>>12&63,E[I++]=128|we>>6&63,E[I++]=128|we&63}}return E[I]=0,I-M}function be(d,E,I){return se(d,V,E,I)}function he(d){for(var E=0,I=0;I=55296&&D<=57343&&(D=65536+((D&1023)<<10)|d.charCodeAt(++I)&1023),D<=127?++E:D<=2047?E+=2:D<=65535?E+=3:E+=4}return E}function Fe(d){var E=he(d)+1,I=Et(E);return I&&se(d,pe,I,E),I}function Ue(d,E){pe.set(d,E)}function xe(d,E){return d%E>0&&(d+=E-d%E),d}var ve,pe,V,Qe,le,fe,gt,Ht,Mt;function Ei(d){ve=d,t.HEAP8=pe=new Int8Array(d),t.HEAP16=Qe=new Int16Array(d),t.HEAP32=fe=new Int32Array(d),t.HEAPU8=V=new Uint8Array(d),t.HEAPU16=le=new Uint16Array(d),t.HEAPU32=gt=new Uint32Array(d),t.HEAPF32=Ht=new Float32Array(d),t.HEAPF64=Mt=new Float64Array(d)}var jt=t.INITIAL_MEMORY||16777216,Qr,Oi=[],$s=[],Hn=[],jn=!1;function Sr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)Qa(t.preRun.shift());Do(Oi)}function Gn(){jn=!0,!t.noFSInit&&!S.init.initialized&&S.init(),ps.init(),Do($s)}function fs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Lu(t.postRun.shift());Do(Hn)}function Qa(d){Oi.unshift(d)}function RA(d){$s.unshift(d)}function Lu(d){Hn.unshift(d)}var hs=0,FA=null,Sa=null;function Tu(d){return d}function NA(d){hs++,t.monitorRunDependencies&&t.monitorRunDependencies(hs)}function LA(d){if(hs--,t.monitorRunDependencies&&t.monitorRunDependencies(hs),hs==0&&(FA!==null&&(clearInterval(FA),FA=null),Sa)){var E=Sa;Sa=null,E()}}t.preloadedImages={},t.preloadedAudios={};function vr(d){t.onAbort&&t.onAbort(d),d+="",k(d),oe=!0,ce=1,d="abort("+d+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(d);throw n(E),E}var _l="data:application/octet-stream;base64,";function Ou(d){return d.startsWith(_l)}var Po="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCADKAJMIABMDQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBAWsiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHYhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEEBazYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgAygCDCAATA0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0A0F02AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBkOoAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBgO0AaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdiEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBAWs2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0A0FkMAQsgAygCQEEHdkGAAmotANBZCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEGQ6wBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGA7gBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuXAgEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQRBGBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHYhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMQQA7AbgtIAEoAgxBADYCvC0MAQsgASgCDCgCvC1BCE4EQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwiACAALwG4LUEIdjsBuC0gASgCDCIAIAAoArwtQQhrNgK8LQsLC+8BAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BCEoEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdiECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAADAELIAEoAgwoArwtQQBKBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAsLIAEoAgxBADsBuC0gASgCDEEANgK8LQv8AQEBfyMAQRBrIgEgADYCDCABQQA2AggDQCABKAIIQZ4CTkUEQCABKAIMQZQBaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEEeTkUEQCABKAIMQYgTaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEETTkUEQCABKAIMQfwUaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgASgCDEEBOwGUCSABKAIMQQA2AqwtIAEoAgxBADYCqC0gASgCDEEANgKwLSABKAIMQQA2AqAtCyIBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQFSABQRBqJAAL6QEBAX8jAEEwayICIAA2AiQgAiABNwMYIAJCADcDECACIAIoAiQpAwhCAX03AwgCQANAIAIpAxAgAikDCFQEQCACIAIpAxAgAikDCCACKQMQfUIBiHw3AwACQCACKAIkKAIEIAIpAwCnQQN0aikDACACKQMYVgRAIAIgAikDAEIBfTcDCAwBCwJAIAIpAwAgAigCJCkDCFIEQCACKAIkKAIEIAIpAwBCAXynQQN0aikDACACKQMYWA0BCyACIAIpAwA3AygMBAsgAiACKQMAQgF8NwMQCwwBCwsgAiACKQMQNwMoCyACKQMoC6cBAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE2AiQgBCACNwMYIAQgAzYCFCAEIAQoAigpAzggBCgCKCkDMCAEKAIkIAQpAxggBCgCFBCIATcDCAJAIAQpAwhCAFMEQCAEQX82AiwMAQsgBCgCKCAEKQMINwM4IAQoAiggBCgCKCkDOBDAASECIAQoAiggAjcDQCAEQQA2AiwLIAQoAiwhACAEQTBqJAAgAAvrAQEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIAMgAjYCDAJAIAMpAxAgAygCGCkDEFQEQCADQQE6AB8MAQsgAyADKAIYKAIAIAMpAxBCBIanEE4iADYCCCAARQRAIAMoAgxBDkEAEBQgA0EAOgAfDAELIAMoAhggAygCCDYCACADIAMoAhgoAgQgAykDEEIBfEIDhqcQTiIANgIEIABFBEAgAygCDEEOQQAQFCADQQA6AB8MAQsgAygCGCADKAIENgIEIAMoAhggAykDEDcDECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvOAgEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQAJAIAQoAigNACAEKQMgUA0AIAQoAhhBEkEAEBQgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBMIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBgiADYCFCAARQRAIAQoAhhBDkEAEBQgBCgCDBAyIARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEIMBIgA2AhAgAEUEQCAEKAIUKAIQEDIgBCgCFBAVIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFIEQCAEKAIYQRJBABAUIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQwwE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQwwE2AiwLIAQoAiwhACAEQTBqJAAgAAtGAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhxBCGoQTSEAIANBIGokACAAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEH4mwEoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QYycAWpGGiAAKAIMIgMgBEcNAkHkmwFB5JsBKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUHsmwEgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVB/JsBKAIARgRAQfybASAANgIAQfCbAUHwmwEoAgAgAWoiATYCACAAIAFBAXI2AgQgAEH4mwEoAgBHDQNB7JsBQQA2AgBB+JsBQQA2AgAPCyAFQfibASgCAEYEQEH4mwEgADYCAEHsmwFB7JsBKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEGMnAFqRhogBCAFKAIMIgNGBEBB5JsBQeSbASgCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQfibASgCAEcNAUHsmwEgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEGMnAFqIQECf0HkmwEoAgAiA0EBIAJ0IgJxRQRAQeSbASACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBlJ4BaiEHAkACQEHomwEoAgAiBEEBIAJ0IgNxRQRAQeibASADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwsGAEG0mwELtQkBAX8jAEHgwABrIgUkACAFIAA2AtRAIAUgATYC0EAgBSACNgLMQCAFIAM3A8BAIAUgBDYCvEAgBSAFKALQQDYCuEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCvEAOEQMEAAYBAgUJCgoKCgoKCAoHCgsgBUIANwPYQAwKCyAFIAUoArhAQeQAaiAFKALMQCAFKQPAQBBDNwPYQAwJCyAFKAK4QBAVIAVCADcD2EAMCAsgBSgCuEAoAhAEQCAFIAUoArhAKAIQIAUoArhAKQMYIAUoArhAQeQAahBgIgM3A5hAIANQBEAgBUJ/NwPYQAwJCyAFKAK4QCkDCCAFKAK4QCkDCCAFKQOYQHxWBEAgBSgCuEBB5ABqQRVBABAUIAVCfzcD2EAMCQsgBSgCuEAiACAFKQOYQCAAKQMAfDcDACAFKAK4QCIAIAUpA5hAIAApAwh8NwMIIAUoArhAQQA2AhALIAUoArhALQB4QQFxRQRAIAVCADcDqEADQCAFKQOoQCAFKAK4QCkDAFQEQCAFIAUoArhAKQMAIAUpA6hAfUKAwABWBH5CgMAABSAFKAK4QCkDACAFKQOoQH0LNwOgQCAFIAUoAtRAIAVBEGogBSkDoEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqIAUoAtRAEBcgBUJ/NwPYQAwLCyAFKQOwQFAEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwLBSAFIAUpA7BAIAUpA6hAfDcDqEAMAgsACwsLIAUoArhAIAUoArhAKQMANwMgIAVCADcD2EAMBwsgBSkDwEAgBSgCuEApAwggBSgCuEApAyB9VgRAIAUgBSgCuEApAwggBSgCuEApAyB9NwPAQAsgBSkDwEBQBEAgBUIANwPYQAwHCyAFKAK4QC0AeEEBcQRAIAUoAtRAIAUoArhAKQMgQQAQJ0EASARAIAUoArhAQeQAaiAFKALUQBAXIAVCfzcD2EAMCAsLIAUgBSgC1EAgBSgCzEAgBSkDwEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqQRFBABAUIAVCfzcD2EAMBwsgBSgCuEAiACAFKQOwQCAAKQMgfDcDICAFKQOwQFAEQCAFKAK4QCkDICAFKAK4QCkDCFQEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwICwsgBSAFKQOwQDcD2EAMBgsgBSAFKAK4QCkDICAFKAK4QCkDAH0gBSgCuEApAwggBSgCuEApAwB9IAUoAsxAIAUpA8BAIAUoArhAQeQAahCIATcDCCAFKQMIQgBTBEAgBUJ/NwPYQAwGCyAFKAK4QCAFKQMIIAUoArhAKQMAfDcDICAFQgA3A9hADAULIAUgBSgCzEA2AgQgBSgCBCAFKAK4QEEoaiAFKAK4QEHkAGoQhAFBAEgEQCAFQn83A9hADAULIAVCADcD2EAMBAsgBSAFKAK4QCwAYKw3A9hADAMLIAUgBSgCuEApA3A3A9hADAILIAUgBSgCuEApAyAgBSgCuEApAwB9NwPYQAwBCyAFKAK4QEHkAGpBHEEAEBQgBUJ/NwPYQAsgBSkD2EAhAyAFQeDAAGokACADCwgAQQFBDBB/CyIBAX8jAEEQayIBIAA2AgwgASgCDCIAIAAoAjBBAWo2AjALBwAgACgCLAsHACAAKAIoCxgBAX8jAEEQayIBIAA2AgwgASgCDEEMagsHACAAKAIYCwcAIAAoAhALBwAgACgCCAtFAEGgmwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgELFAAgACABrSACrUIghoQgAyAEEH4LEwEBfiAAEEkiAUIgiKcQACABpwsVACAAIAGtIAKtQiCGhCADIAQQxAELFAAgACABIAKtIAOtQiCGhCAEEH0LrQQBAX8jAEEgayIFJAAgBSAANgIYIAUgAa0gAq1CIIaENwMQIAUgAzYCDCAFIAQ2AggCQAJAIAUpAxAgBSgCGCkDMFQEQCAFKAIIQQlNDQELIAUoAhhBCGpBEkEAEBQgBUF/NgIcDAELIAUoAhgoAhhBAnEEQCAFKAIYQQhqQRlBABAUIAVBfzYCHAwBCwJ/IAUoAgwhASMAQRBrIgAkACAAIAE2AgggAEEBOgAHAkAgACgCCEUEQCAAQQE6AA8MAQsgACAAKAIIIAAtAAdBAXEQswFBAEc6AA8LIAAtAA9BAXEhASAAQRBqJAAgAUULBEAgBSgCGEEIakEQQQAQFCAFQX82AhwMAQsgBSAFKAIYKAJAIAUpAxCnQQR0ajYCBCAFIAUoAgQoAgAEfyAFKAIEKAIAKAIQBUF/CzYCAAJAIAUoAgwgBSgCAEYEQCAFKAIEKAIEBEAgBSgCBCgCBCIAIAAoAgBBfnE2AgAgBSgCBCgCBEEAOwFQIAUoAgQoAgQoAgBFBEAgBSgCBCgCBBA3IAUoAgRBADYCBAsLDAELIAUoAgQoAgRFBEAgBSgCBCgCABBAIQAgBSgCBCAANgIEIABFBEAgBSgCGEEIakEOQQAQFCAFQX82AhwMAwsLIAUoAgQoAgQgBSgCDDYCECAFKAIEKAIEIAUoAgg7AVAgBSgCBCgCBCIAIAAoAgBBAXI2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAACxcBAX4gACABIAIQciIDQiCIpxAAIAOnCx8BAX4gACABIAKtIAOtQiCGhBArIgRCIIinEAAgBKcLrgECAX8BfgJ/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQCACKQMIQgBSBH8gAigCFCgCQCACKQMIQgF9p0EEdGooAgAFQQELRQRAIAIgAikDCEIBfTcDCAwBCwsgAiACKQMINwMYDAELIAIgAigCFCkDMDcDGAsgAikDGCIDQiCIpwsQACADpwsTACAAIAGtIAKtQiCGhCADEMUBC4gCAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAq0gA61CIIaENwMIAkAgBCgCFEUEQCAEQn83AxgMAQsgBCgCFCgCBARAIARCfzcDGAwBCyAEKQMIQv///////////wBWBEAgBCgCFEEEakESQQAQFCAEQn83AxgMAQsCQCAEKAIULQAQQQFxRQRAIAQpAwhQRQ0BCyAEQgA3AxgMAQsgBCAEKAIUKAIUIAQoAhAgBCkDCBArIgU3AwAgBUIAUwRAIAQoAhRBBGogBCgCFCgCFBAXIARCfzcDGAwBCyAEIAQpAwA3AxgLIAQpAxghBSAEQSBqJAAgBUIgiKcLEAAgBacLTwEBfyMAQSBrIgQkACAEIAA2AhwgBCABrSACrUIghoQ3AxAgBCADNgIMIAQoAhwgBCkDECAEKAIMIAQoAhwoAhwQrQEhACAEQSBqJAAgAAvZAwEBfyMAQSBrIgUkACAFIAA2AhggBSABrSACrUIghoQ3AxAgBSADNgIMIAUgBDYCCAJAIAUoAhggBSkDEEEAQQAQP0UEQCAFQX82AhwMAQsgBSgCGCgCGEECcQRAIAUoAhhBCGpBGUEAEBQgBUF/NgIcDAELIAUoAhgoAkAgBSkDEKdBBHRqKAIIBEAgBSgCGCgCQCAFKQMQp0EEdGooAgggBSgCDBBnQQBIBEAgBSgCGEEIakEPQQAQFCAFQX82AhwMAgsgBUEANgIcDAELIAUgBSgCGCgCQCAFKQMQp0EEdGo2AgQgBSAFKAIEKAIABH8gBSgCDCAFKAIEKAIAKAIURwVBAQtBAXE2AgACQCAFKAIABEAgBSgCBCgCBEUEQCAFKAIEKAIAEEAhACAFKAIEIAA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBfzYCHAwECwsgBSgCBCgCBCAFKAIMNgIUIAUoAgQoAgQiACAAKAIAQSByNgIADAELIAUoAgQoAgQEQCAFKAIEKAIEIgAgACgCAEFfcTYCACAFKAIEKAIEKAIARQRAIAUoAgQoAgQQNyAFKAIEQQA2AgQLCwsgBUEANgIcCyAFKAIcIQAgBUEgaiQAIAALFwAgACABrSACrUIghoQgAyAEIAUQmQELEgAgACABrSACrUIghoQgAxAnC48BAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBQgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCaATcDGAsgBCkDGCEFIARBIGokACAFQiCIpwsQACAFpwuFBQIBfwF+An8jAEEwayIDJAAgAyAANgIkIAMgATYCICADIAI2AhwCQCADKAIkKAIYQQJxBEAgAygCJEEIakEZQQAQFCADQn83AygMAQsgAygCIEUEQCADKAIkQQhqQRJBABAUIANCfzcDKAwBCyADQQA2AgwgAyADKAIgEC42AhggAygCICADKAIYQQFraiwAAEEvRwRAIAMgAygCGEECahAYIgA2AgwgAEUEQCADKAIkQQhqQQ5BABAUIANCfzcDKAwCCwJAAkAgAygCDCIBIAMoAiAiAHNBA3ENACAAQQNxBEADQCABIAAtAAAiAjoAACACRQ0DIAFBAWohASAAQQFqIgBBA3ENAAsLIAAoAgAiAkF/cyACQYGChAhrcUGAgYKEeHENAANAIAEgAjYCACAAKAIEIQIgAUEEaiEBIABBBGohACACQYGChAhrIAJBf3NxQYCBgoR4cUUNAAsLIAEgAC0AACICOgAAIAJFDQADQCABIAAtAAEiAjoAASABQQFqIQEgAEEBaiEAIAINAAsLIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB9IgA2AgggAEUEQCADKAIMEBUgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCaATcDECADKAIMEBUCQCADKQMQQgBTBEAgAygCCBAbDAELIAMoAiQgAykDEEEAQQNBgID8jwQQmQFBAEgEQCADKAIkIAMpAxAQmAEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIARCIIinCxAAIASnCxEAIAAgAa0gAq1CIIaEEJgBCxcAIAAgAa0gAq1CIIaEIAMgBCAFEIoBC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEHIiBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEK0BNgIcCyADKAIcIQAgA0EgaiQAIAALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALBAAjAAuCAQIBfwF+IwBBIGsiBCQAIAQgADYCGCAEIAE2AhQgBCACNgIQIAQgAzYCDCAEIAQoAhggBCgCFCAEKAIQEHIiBTcDAAJAIAVCAFMEQCAEQX82AhwMAQsgBCAEKAIYIAQpAwAgBCgCECAEKAIMEH42AhwLIAQoAhwhACAEQSBqJAAgAAvQRQMGfwF+AnwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIwBBIGsiACABKAJYNgIcIAAgAUFAazYCGCAAQQA2AhQgAEIANwMAAkAgACgCHC0AKEEBcUUEQCAAKAIcKAIYIAAoAhwoAhRGDQELIABBATYCFAsgAEIANwMIA0AgACkDCCAAKAIcKQMwVARAAkACQCAAKAIcKAJAIAApAwinQQR0aigCCA0AIAAoAhwoAkAgACkDCKdBBHRqLQAMQQFxDQAgACgCHCgCQCAAKQMIp0EEdGooAgRFDQEgACgCHCgCQCAAKQMIp0EEdGooAgQoAgBFDQELIABBATYCFAsgACgCHCgCQCAAKQMIp0EEdGotAAxBAXFFBEAgACAAKQMAQgF8NwMACyAAIAApAwhCAXw3AwgMAQsLIAAoAhgEQCAAKAIYIAApAwA3AwALIAEgACgCFDYCJCABKQNAUARAAkAgASgCWCgCBEEIcUUEQCABKAIkRQ0BCwJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQNGBEAgAEEANgIMDAELIAAoAggoAiAEQCAAKAIIEC9BAEgEQCAAQX82AgwMAgsLIAAoAggoAiQEQCAAKAIIEGILIAAoAghBAEIAQQ8QIEIAUwRAIABBfzYCDAwBCyAAKAIIQQM2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEACQAJ/IwBBEGsiACABKAJYKAIANgIMIwBBEGsiAiAAKAIMQQxqNgIMIAIoAgwoAgBBFkYLBEAjAEEQayIAIAEoAlgoAgA2AgwjAEEQayICIAAoAgxBDGo2AgwgAigCDCgCBEEsRg0BCyABKAJYQQhqIAEoAlgoAgAQFyABQX82AlwMBAsLCyABKAJYEDwgAUEANgJcDAELIAEoAiRFBEAgASgCWBA8IAFBADYCXAwBCyABKQNAIAEoAlgpAzBWBEAgASgCWEEIakEUQQAQFCABQX82AlwMAQsgASABKQNAp0EDdBAYIgA2AiggAEUEQCABQX82AlwMAQsgAUJ/NwM4IAFCADcDSCABQgA3A1ADQCABKQNQIAEoAlgpAzBUBEACQCABKAJYKAJAIAEpA1CnQQR0aigCAEUNAAJAIAEoAlgoAkAgASkDUKdBBHRqKAIIDQAgASgCWCgCQCABKQNQp0EEdGotAAxBAXENACABKAJYKAJAIAEpA1CnQQR0aigCBEUNASABKAJYKAJAIAEpA1CnQQR0aigCBCgCAEUNAQsgAQJ+IAEpAzggASgCWCgCQCABKQNQp0EEdGooAgApA0hUBEAgASkDOAwBCyABKAJYKAJAIAEpA1CnQQR0aigCACkDSAs3AzgLIAEoAlgoAkAgASkDUKdBBHRqLQAMQQFxRQRAIAEpA0ggASkDQFoEQCABKAIoEBUgASgCWEEIakEUQQAQFCABQX82AlwMBAsgASgCKCABKQNIp0EDdGogASkDUDcDACABIAEpA0hCAXw3A0gLIAEgASkDUEIBfDcDUAwBCwsgASkDSCABKQNAVARAIAEoAigQFSABKAJYQQhqQRRBABAUIAFBfzYCXAwBCwJAAn8jAEEQayIAIAEoAlgoAgA2AgwgACgCDCkDGEKAgAiDUAsEQCABQgA3AzgMAQsgASkDOEJ/UQRAIAFCfzcDGCABQgA3AzggAUIANwNQA0AgASkDUCABKAJYKQMwVARAIAEoAlgoAkAgASkDUKdBBHRqKAIABEAgASgCWCgCQCABKQNQp0EEdGooAgApA0ggASkDOFoEQCABIAEoAlgoAkAgASkDUKdBBHRqKAIAKQNINwM4IAEgASkDUDcDGAsLIAEgASkDUEIBfDcDUAwBCwsgASkDGEJ/UgRAIAEoAlghAiABKQMYIQcgASgCWEEIaiEDIwBBMGsiACQAIAAgAjYCJCAAIAc3AxggACADNgIUIAAgACgCJCAAKQMYIAAoAhQQYCIHNwMIAkAgB1AEQCAAQgA3AygMAQsgACAAKAIkKAJAIAApAxinQQR0aigCADYCBAJAIAApAwggACkDCCAAKAIEKQMgfFgEQCAAKQMIIAAoAgQpAyB8Qv///////////wBYDQELIAAoAhRBBEEWEBQgAEIANwMoDAELIAAgACgCBCkDICAAKQMIfDcDCCAAKAIELwEMQQhxBEAgACgCJCgCACAAKQMIQQAQJ0EASARAIAAoAhQgACgCJCgCABAXIABCADcDKAwCCyAAKAIkKAIAIABCBBArQgRSBEAgACgCFCAAKAIkKAIAEBcgAEIANwMoDAILIAAoAABB0JadwABGBEAgACAAKQMIQgR8NwMICyAAIAApAwhCDHw3AwggACgCBEEAEGVBAXEEQCAAIAApAwhCCHw3AwgLIAApAwhC////////////AFYEQCAAKAIUQQRBFhAUIABCADcDKAwCCwsgACAAKQMINwMoCyAAKQMoIQcgAEEwaiQAIAEgBzcDOCAHUARAIAEoAigQFSABQX82AlwMBAsLCyABKQM4QgBSBEACfyABKAJYKAIAIQIgASkDOCEHIwBBEGsiACQAIAAgAjYCCCAAIAc3AwACQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAIAApAwBBERAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABQgA3AzgLCwsgASkDOFAEQAJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAQgBBCBAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABKAJYQQhqIAEoAlgoAgAQFyABKAIoEBUgAUF/NgJcDAILCyABKAJYKAJUIQIjAEEQayIAJAAgACACNgIMIAAoAgwEQCAAKAIMRAAAAAAAAAAAOQMYIAAoAgwoAgBEAAAAAAAAAAAgACgCDCgCDCAAKAIMKAIEERYACyAAQRBqJAAgAUEANgIsIAFCADcDSANAAkAgASkDSCABKQNAWg0AIAEoAlgoAlQhAiABKQNIIge6IAEpA0C6IgijIQkjAEEgayIAJAAgACACNgIcIAAgCTkDECAAIAdCAXy6IAijOQMIIAAoAhwEQCAAKAIcIAArAxA5AyAgACgCHCAAKwMIOQMoIAAoAhxEAAAAAAAAAAAQVwsgAEEgaiQAIAEgASgCKCABKQNIp0EDdGopAwA3A1AgASABKAJYKAJAIAEpA1CnQQR0ajYCEAJAAkAgASgCECgCAEUNACABKAIQKAIAKQNIIAEpAzhaDQAMAQsgAQJ/QQEgASgCECgCCA0AGiABKAIQKAIEBEBBASABKAIQKAIEKAIAQQFxDQEaCyABKAIQKAIEBH8gASgCECgCBCgCAEHAAHFBAEcFQQALC0EBcTYCFCABKAIQKAIERQRAIAEoAhAoAgAQQCEAIAEoAhAgADYCBCAARQRAIAEoAlhBCGpBDkEAEBQgAUEBNgIsDAMLCyABIAEoAhAoAgQ2AgwCfyABKAJYIQIgASkDUCEHIwBBMGsiACQAIAAgAjYCKCAAIAc3AyACQCAAKQMgIAAoAigpAzBaBEAgACgCKEEIakESQQAQFCAAQX82AiwMAQsgACAAKAIoKAJAIAApAyCnQQR0ajYCHAJAIAAoAhwoAgAEQCAAKAIcKAIALQAEQQFxRQ0BCyAAQQA2AiwMAQsgACgCHCgCACkDSEIafEL///////////8AVgRAIAAoAihBCGpBBEEWEBQgAEF/NgIsDAELIAAoAigoAgAgACgCHCgCACkDSEIafEEAECdBAEgEQCAAKAIoQQhqIAAoAigoAgAQFyAAQX82AiwMAQsgACAAKAIoKAIAQgQgAEEYaiAAKAIoQQhqEEIiAjYCFCACRQRAIABBfzYCLAwBCyAAIAAoAhQQHTsBEiAAIAAoAhQQHTsBECAAKAIUEEdBAXFFBEAgACgCFBAWIAAoAihBCGpBFEEAEBQgAEF/NgIsDAELIAAoAhQQFiAALwEQBEAgACgCKCgCACAALwESrUEBECdBAEgEQCAAKAIoQQhqQQRBtJsBKAIAEBQgAEF/NgIsDAILIABBACAAKAIoKAIAIAAvARBBACAAKAIoQQhqEGM2AgggACgCCEUEQCAAQX82AiwMAgsgACgCCCAALwEQQYACIABBDGogACgCKEEIahCUAUEBcUUEQCAAKAIIEBUgAEF/NgIsDAILIAAoAggQFSAAKAIMBEAgACAAKAIMEJMBNgIMIAAoAhwoAgAoAjQgACgCDBCVASECIAAoAhwoAgAgAjYCNAsLIAAoAhwoAgBBAToABAJAIAAoAhwoAgRFDQAgACgCHCgCBC0ABEEBcQ0AIAAoAhwoAgQgACgCHCgCACgCNDYCNCAAKAIcKAIEQQE6AAQLIABBADYCLAsgACgCLCECIABBMGokACACQQBICwRAIAFBATYCLAwCCyABIAEoAlgoAgAQNSIHNwMwIAdCAFMEQCABQQE2AiwMAgsgASgCDCABKQMwNwNIAkAgASgCFARAIAFBADYCCCABKAIQKAIIRQRAIAEgASgCWCABKAJYIAEpA1BBCEEAEK4BIgA2AgggAEUEQCABQQE2AiwMBQsLAn8gASgCWCECAn8gASgCCARAIAEoAggMAQsgASgCECgCCAshAyABKAIMIQQjAEGgAWsiACQAIAAgAjYCmAEgACADNgKUASAAIAQ2ApABAkAgACgClAEgAEE4ahA5QQBIBEAgACgCmAFBCGogACgClAEQFyAAQX82ApwBDAELIAApAzhCwACDUARAIAAgACkDOELAAIQ3AzggAEEAOwFoCwJAAkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BCyAALwFoRQ0AIAAoApABIAAvAWg2AhAMAQsCQAJAIAAoApABKAIQDQAgACkDOEIEg1ANACAAIAApAzhCCIQ3AzggACAAKQNQNwNYDAELIAAgACkDOEL3////D4M3AzgLCyAAKQM4QoABg1AEQCAAIAApAzhCgAGENwM4IABBADsBagsgAEGAAjYCJAJAIAApAzhCBINQBEAgACAAKAIkQYAIcjYCJCAAQn83A3AMAQsgACgCkAEgACkDUDcDKCAAIAApA1A3A3ACQCAAKQM4QgiDUARAAkACQAJAAkACQAJ/AkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BC0EIDAELIAAoApABKAIQC0H//wNxDg0CAwMDAwMDAwEDAwMAAwsgAEKUwuTzDzcDEAwDCyAAQoODsP8PNwMQDAILIABC/////w83AxAMAQsgAEIANwMQCyAAKQNQIAApAxBWBEAgACAAKAIkQYAIcjYCJAsMAQsgACgCkAEgACkDWDcDIAsLIAAgACgCmAEoAgAQNSIHNwOIASAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApABIgIgAi8BDEH3/wNxOwEMIAAgACgCmAEgACgCkAEgACgCJBBUIgI2AiggAkEASARAIABBfzYCnAEMAQsgACAALwFoAn8CQCAAKAKQASgCEEF/RwRAIAAoApABKAIQQX5HDQELQQgMAQsgACgCkAEoAhALQf//A3FHOgAiIAAgAC0AIkEBcQR/IAAvAWhBAEcFQQALQQFxOgAhIAAgAC8BaAR/IAAtACEFQQELQQFxOgAgIAAgAC0AIkEBcQR/IAAoApABKAIQQQBHBUEAC0EBcToAHyAAAn9BASAALQAiQQFxDQAaQQEgACgCkAEoAgBBgAFxDQAaIAAoApABLwFSIAAvAWpHC0EBcToAHiAAIAAtAB5BAXEEfyAALwFqQQBHBUEAC0EBcToAHSAAIAAtAB5BAXEEfyAAKAKQAS8BUkEARwVBAAtBAXE6ABwgACAAKAKUATYCNCMAQRBrIgIgACgCNDYCDCACKAIMIgIgAigCMEEBajYCMCAALQAdQQFxBEAgACAALwFqQQAQeyICNgIMIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAvAWpBACAAKAKYASgCHCAAKAIMEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAALQAhQQFxBEAgACAAKAKYASAAKAI0IAAvAWgQsAEiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtACBBAXEEQCAAIAAoApgBIAAoAjRBABCvASICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AH0EBcQRAIAAoApgBIQMgACgCNCEEIAAoApABKAIQIQUgACgCkAEvAVAhBiMAQRBrIgIkACACIAM2AgwgAiAENgIIIAIgBTYCBCACIAY2AgAgAigCDCACKAIIIAIoAgRBASACKAIAELIBIQMgAkEQaiQAIAAgAyICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AHEEBcQRAIABBADYCBAJAIAAoApABKAJUBEAgACAAKAKQASgCVDYCBAwBCyAAKAKYASgCHARAIAAgACgCmAEoAhw2AgQLCyAAIAAoApABLwFSQQEQeyICNgIIIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAoApABLwFSQQEgACgCBCAAKAIIEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAAIAAoApgBKAIAEDUiBzcDgAEgB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKYASEDIAAoAjQhBCAAKQNwIQcjAEHAwABrIgIkACACIAM2ArhAIAIgBDYCtEAgAiAHNwOoQAJAIAIoArRAEEhBAEgEQCACKAK4QEEIaiACKAK0QBAXIAJBfzYCvEAMAQsgAkEANgIMIAJCADcDEANAAkAgAiACKAK0QCACQSBqQoDAABArIgc3AxggB0IAVw0AIAIoArhAIAJBIGogAikDGBA2QQBIBEAgAkF/NgIMBSACKQMYQoDAAFINAiACKAK4QCgCVEUNAiACKQOoQEIAVw0CIAIgAikDGCACKQMQfDcDECACKAK4QCgCVCACKQMQuSACKQOoQLmjEFcMAgsLCyACKQMYQgBTBEAgAigCuEBBCGogAigCtEAQFyACQX82AgwLIAIoArRAEC8aIAIgAigCDDYCvEALIAIoArxAIQMgAkHAwABqJAAgACADNgIsIAAoAjQgAEE4ahA5QQBIBEAgACgCmAFBCGogACgCNBAXIABBfzYCLAsgACgCNCEDIwBBEGsiAiQAIAIgAzYCCAJAA0AgAigCCARAIAIoAggpAxhCgIAEg0IAUgRAIAIgAigCCEEAQgBBEBAgNwMAIAIpAwBCAFMEQCACQf8BOgAPDAQLIAIpAwBCA1UEQCACKAIIQQxqQRRBABAUIAJB/wE6AA8MBAsgAiACKQMAPAAPDAMFIAIgAigCCCgCADYCCAwCCwALCyACQQA6AA8LIAIsAA8hAyACQRBqJAAgACADIgI6ACMgAkEYdEEYdUEASARAIAAoApgBQQhqIAAoAjQQFyAAQX82AiwLIAAoAjQQGyAAKAIsQQBIBEAgAEF/NgKcAQwBCyAAIAAoApgBKAIAEDUiBzcDeCAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApgBKAIAIAApA4gBEJsBQQBIBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAApAzhC5ACDQuQAUgRAIAAoApgBQQhqQRRBABAUIABBfzYCnAEMAQsgACgCkAEoAgBBIHFFBEACQCAAKQM4QhCDQgBSBEAgACgCkAEgACgCYDYCFAwBCyAAKAKQAUEUahABGgsLIAAoApABIAAvAWg2AhAgACgCkAEgACgCZDYCGCAAKAKQASAAKQNQNwMoIAAoApABIAApA3ggACkDgAF9NwMgIAAoApABIAAoApABLwEMQfn/A3EgAC0AI0EBdHI7AQwgACgCkAEhAyAAKAIkQYAIcUEARyEEIwBBEGsiAiQAIAIgAzYCDCACIAQ6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABBlQQFxRQ0BCyACKAIMQS07AQoMAQsCQCACKAIMKAIQQQhHBEAgAigCDC8BUkEBRw0BCyACKAIMQRQ7AQoMAQsgAiACKAIMKAIwEFEiAzsBCCADQf//A3EEQCACKAIMKAIwKAIAIAIvAQhBAWtqLQAAQS9GBEAgAigCDEEUOwEKDAILCyACKAIMQQo7AQoLIAJBEGokACAAIAAoApgBIAAoApABIAAoAiQQVCICNgIsIAJBAEgEQCAAQX82ApwBDAELIAAoAiggACgCLEcEQCAAKAKYAUEIakEUQQAQFCAAQX82ApwBDAELIAAoApgBKAIAIAApA3gQmwFBAEgEQCAAKAKYAUEIaiAAKAKYASgCABAXIABBfzYCnAEMAQsgAEEANgKcAQsgACgCnAEhAiAAQaABaiQAIAJBAEgLBEAgAUEBNgIsIAEoAggEQCABKAIIEBsLDAQLIAEoAggEQCABKAIIEBsLDAELIAEoAgwiACAALwEMQff/A3E7AQwgASgCWCABKAIMQYACEFRBAEgEQCABQQE2AiwMAwsgASABKAJYIAEpA1AgASgCWEEIahBgIgc3AwAgB1AEQCABQQE2AiwMAwsgASgCWCgCACABKQMAQQAQJ0EASARAIAEoAlhBCGogASgCWCgCABAXIAFBATYCLAwDCwJ/IAEoAlghAiABKAIMKQMgIQcjAEGgwABrIgAkACAAIAI2AphAIAAgBzcDkEAgACAAKQOQQLo5AwACQANAIAApA5BAUEUEQCAAIAApA5BAQoDAAFYEfkKAwAAFIAApA5BACz4CDCAAKAKYQCgCACAAQRBqIAAoAgytIAAoAphAQQhqEGRBAEgEQCAAQX82ApxADAMLIAAoAphAIABBEGogACgCDK0QNkEASARAIABBfzYCnEAMAwUgACAAKQOQQCAANQIMfTcDkEAgACgCmEAoAlQgACsDACAAKQOQQLqhIAArAwCjEFcMAgsACwsgAEEANgKcQAsgACgCnEAhAiAAQaDAAGokACACQQBICwRAIAFBATYCLAwDCwsLIAEgASkDSEIBfDcDSAwBCwsgASgCLEUEQAJ/IAEoAlghACABKAIoIQMgASkDQCEHIwBBMGsiAiQAIAIgADYCKCACIAM2AiQgAiAHNwMYIAIgAigCKCgCABA1Igc3AxACQCAHQgBTBEAgAkF/NgIsDAELIAIoAighAyACKAIkIQQgAikDGCEHIwBBwAFrIgAkACAAIAM2ArQBIAAgBDYCsAEgACAHNwOoASAAIAAoArQBKAIAEDUiBzcDIAJAIAdCAFMEQCAAKAK0AUEIaiAAKAK0ASgCABAXIABCfzcDuAEMAQsgACAAKQMgNwOgASAAQQA6ABcgAEIANwMYA0AgACkDGCAAKQOoAVQEQCAAIAAoArQBKAJAIAAoArABIAApAxinQQN0aikDAKdBBHRqNgIMIAAgACgCtAECfyAAKAIMKAIEBEAgACgCDCgCBAwBCyAAKAIMKAIAC0GABBBUIgM2AhAgA0EASARAIABCfzcDuAEMAwsgACgCEARAIABBAToAFwsgACAAKQMYQgF8NwMYDAELCyAAIAAoArQBKAIAEDUiBzcDICAHQgBTBEAgACgCtAFBCGogACgCtAEoAgAQFyAAQn83A7gBDAELIAAgACkDICAAKQOgAX03A5gBAkAgACkDoAFC/////w9YBEAgACkDqAFC//8DWA0BCyAAQQE6ABcLIAAgAEEwakLiABApIgM2AiwgA0UEQCAAKAK0AUEIakEOQQAQFCAAQn83A7gBDAELIAAtABdBAXEEQCAAKAIsQecSQQQQQSAAKAIsQiwQLSAAKAIsQS0QHyAAKAIsQS0QHyAAKAIsQQAQISAAKAIsQQAQISAAKAIsIAApA6gBEC0gACgCLCAAKQOoARAtIAAoAiwgACkDmAEQLSAAKAIsIAApA6ABEC0gACgCLEHiEkEEEEEgACgCLEEAECEgACgCLCAAKQOgASAAKQOYAXwQLSAAKAIsQQEQIQsgACgCLEHsEkEEEEEgACgCLEEAECEgACgCLCAAKQOoAUL//wNaBH5C//8DBSAAKQOoAQunQf//A3EQHyAAKAIsIAApA6gBQv//A1oEfkL//wMFIAApA6gBC6dB//8DcRAfIAAoAiwgACkDmAFC/////w9aBH9BfwUgACkDmAGnCxAhIAAoAiwgACkDoAFC/////w9aBH9BfwUgACkDoAGnCxAhIAACfyAAKAK0AS0AKEEBcQRAIAAoArQBKAIkDAELIAAoArQBKAIgCzYClAEgACgCLAJ/IAAoApQBBEAgACgClAEvAQQMAQtBAAtB//8DcRAfAn8jAEEQayIDIAAoAiw2AgwgAygCDC0AAEEBcUULBEAgACgCtAFBCGpBFEEAEBQgACgCLBAWIABCfzcDuAEMAQsgACgCtAECfyMAQRBrIgMgACgCLDYCDCADKAIMKAIECwJ+IwBBEGsiAyAAKAIsNgIMAn4gAygCDC0AAEEBcQRAIAMoAgwpAxAMAQtCAAsLEDZBAEgEQCAAKAIsEBYgAEJ/NwO4AQwBCyAAKAIsEBYgACgClAEEQCAAKAK0ASAAKAKUASgCACAAKAKUAS8BBK0QNkEASARAIABCfzcDuAEMAgsLIAAgACkDmAE3A7gBCyAAKQO4ASEHIABBwAFqJAAgAiAHNwMAIAdCAFMEQCACQX82AiwMAQsgAiACKAIoKAIAEDUiBzcDCCAHQgBTBEAgAkF/NgIsDAELIAJBADYCLAsgAigCLCEAIAJBMGokACAAQQBICwRAIAFBATYCLAsLIAEoAigQFSABKAIsRQRAAn8gASgCWCgCACECIwBBEGsiACQAIAAgAjYCCAJAIAAoAggoAiRBAUcEQCAAKAIIQQxqQRJBABAUIABBfzYCDAwBCyAAKAIIKAIgQQFLBEAgACgCCEEMakEdQQAQFCAAQX82AgwMAQsgACgCCCgCIARAIAAoAggQL0EASARAIABBfzYCDAwCCwsgACgCCEEAQgBBCRAgQgBTBEAgACgCCEECNgIkIABBfzYCDAwBCyAAKAIIQQA2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAILBEAgASgCWEEIaiABKAJYKAIAEBcgAUEBNgIsCwsgASgCWCgCVCECIwBBEGsiACQAIAAgAjYCDCAAKAIMRAAAAAAAAPA/EFcgAEEQaiQAIAEoAiwEQCABKAJYKAIAEGIgAUF/NgJcDAELIAEoAlgQPCABQQA2AlwLIAEoAlwhACABQeAAaiQAIAAL0g4CB38CfiMAQTBrIgMkACADIAA2AiggAyABNgIkIAMgAjYCICMAQRBrIgAgA0EIajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADKAIoIQAjAEEgayIEJAAgBCAANgIYIARCADcDECAEQn83AwggBCADQQhqNgIEAkACQCAEKAIYBEAgBCkDCEJ/WQ0BCyAEKAIEQRJBABAUIARBADYCHAwBCyAEKAIYIQAgBCkDECEKIAQpAwghCyAEKAIEIQEjAEGgAWsiAiQAIAIgADYCmAEgAkEANgKUASACIAo3A4gBIAIgCzcDgAEgAkEANgJ8IAIgATYCeAJAAkAgAigClAENACACKAKYAQ0AIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACKQOAAUIAUwRAIAJCADcDgAELAkAgAikDiAFC////////////AFgEQCACKQOIASACKQOIASACKQOAAXxYDQELIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACQYgBEBgiADYCdCAARQRAIAIoAnhBDkEAEBQgAkEANgKcAQwBCyACKAJ0QQA2AhggAigCmAEEQCACKAKYASIAEC5BAWoiARAYIgUEfyAFIAAgARAZBUEACyEAIAIoAnQgADYCGCAARQRAIAIoAnhBDkEAEBQgAigCdBAVIAJBADYCnAEMAgsLIAIoAnQgAigClAE2AhwgAigCdCACKQOIATcDaCACKAJ0IAIpA4ABNwNwAkAgAigCfARAIAIoAnQiACACKAJ8IgEpAwA3AyAgACABKQMwNwNQIAAgASkDKDcDSCAAIAEpAyA3A0AgACABKQMYNwM4IAAgASkDEDcDMCAAIAEpAwg3AyggAigCdEEANgIoIAIoAnQiACAAKQMgQv7///8PgzcDIAwBCyACKAJ0QSBqEDsLIAIoAnQpA3BCAFIEQCACKAJ0IAIoAnQpA3A3AzggAigCdCIAIAApAyBCBIQ3AyALIwBBEGsiACACKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAJ0QQA2AoABIAIoAnRBADYChAEjAEEQayIAIAIoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAkF/NgIEIAJBBzYCAEEOIAIQNEI/hCEKIAIoAnQgCjcDEAJAIAIoAnQoAhgEQCACIAIoAnQoAhggAkEYahCmAUEATjoAFyACLQAXQQFxRQRAAkAgAigCdCkDaFBFDQAgAigCdCkDcFBFDQAgAigCdEL//wM3AxALCwwBCwJAIAIoAnQoAhwiACgCTEEASA0ACyAAKAI8IQBBACEFIwBBIGsiBiQAAn8CQCAAIAJBGGoiCRAKIgFBeEYEQCMAQSBrIgckACAAIAdBCGoQCSIIBH9BtJsBIAg2AgBBAAVBAQshCCAHQSBqJAAgCA0BCyABQYFgTwR/QbSbAUEAIAFrNgIAQX8FIAELDAELA0AgBSAGaiIBIAVBxxJqLQAAOgAAIAVBDkchByAFQQFqIQUgBw0ACwJAIAAEQEEPIQUgACEBA0AgAUEKTwRAIAVBAWohBSABQQpuIQEMAQsLIAUgBmpBADoAAANAIAYgBUEBayIFaiAAIABBCm4iAUEKbGtBMHI6AAAgAEEJSyEHIAEhACAHDQALDAELIAFBMDoAACAGQQA6AA8LIAYgCRACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLIQAgBkEgaiQAIAIgAEEATjoAFwsCQCACLQAXQQFxRQRAIAIoAnRB2ABqQQVBtJsBKAIAEBQMAQsgAigCdCkDIEIQg1AEQCACKAJ0IAIoAlg2AkggAigCdCIAIAApAyBCEIQ3AyALIAIoAiRBgOADcUGAgAJGBEAgAigCdEL/gQE3AxAgAikDQCACKAJ0KQNoIAIoAnQpA3B8VARAIAIoAnhBEkEAEBQgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAMLIAIoAnQpA3BQBEAgAigCdCACKQNAIAIoAnQpA2h9NwM4IAIoAnQiACAAKQMgQgSENwMgAkAgAigCdCgCGEUNACACKQOIAVBFDQAgAigCdEL//wM3AxALCwsLIAIoAnQiACAAKQMQQoCAEIQ3AxAgAkEeIAIoAnQgAigCeBCDASIANgJwIABFBEAgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAELIAIgAigCcDYCnAELIAIoApwBIQAgAkGgAWokACAEIAA2AhwLIAQoAhwhACAEQSBqJAAgAyAANgIYAkAgAEUEQCADKAIgIANBCGoQnQEgA0EIahA4IANBADYCLAwBCyADIAMoAhggAygCJCADQQhqEJwBIgA2AhwgAEUEQCADKAIYEBsgAygCICADQQhqEJ0BIANBCGoQOCADQQA2AiwMAQsgA0EIahA4IAMgAygCHDYCLAsgAygCLCEAIANBMGokACAAC5IfAQZ/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAUIARCfzcDWAwRCyAEKAJAIQAjAEGAAWsiASQAIAEgADYCeCABIAEoAngoAhgQLkEIahAYIgA2AnQCQCAARQRAIAEoAnhBDkEAEBQgAUF/NgJ8DAELAkAgASgCeCgCGCABQRBqEKYBRQRAIAEgASgCHDYCbAwBCyABQX82AmwLIAEoAnQhACABIAEoAngoAhg2AgAgAEGrEiABEG8gASgCdCEDIAEoAmwhByMAQTBrIgAkACAAIAM2AiggACAHNgIkIABBADYCECAAIAAoAiggACgCKBAuajYCGCAAIAAoAhhBAWs2AhwDQCAAKAIcIAAoAihPBH8gACgCHCwAAEHYAEYFQQALQQFxBEAgACAAKAIQQQFqNgIQIAAgACgCHEEBazYCHAwBCwsCQCAAKAIQRQRAQbSbAUEcNgIAIABBfzYCLAwBCyAAIAAoAhxBAWo2AhwDQCMAQRBrIgckAAJAAn8jAEEQayIDJAAgAyAHQQhqNgIIIANBBDsBBiADQegLQQBBABBsIgU2AgACQCAFQQBIBEAgA0EAOgAPDAELAn8gAygCACEGIAMoAgghCCADLwEGIQkjAEEQayIFJAAgBSAJNgIMIAUgCDYCCCAGIAVBCGpBASAFQQRqEAYiBgR/QbSbASAGNgIAQX8FQQALIQYgBSgCBCEIIAVBEGokACADLwEGQX8gCCAGG0cLBEAgAygCABBrIANBADoADwwBCyADKAIAEGsgA0EBOgAPCyADLQAPQQFxIQUgA0EQaiQAIAULBEAgByAHKAIINgIMDAELQcCgAS0AAEEBcUUEQEEAEAEhBgJAQciZASgCACIDRQRAQcyZASgCACAGNgIADAELQdCZAUEDQQNBASADQQdGGyADQR9GGzYCAEG8oAFBADYCAEHMmQEoAgAhBSADQQFOBEAgBq0hAkEAIQYDQCAFIAZBAnRqIAJCrf7V5NSF/ajYAH5CAXwiAkIgiD4CACAGQQFqIgYgA0cNAAsLIAUgBSgCAEEBcjYCAAsLQcyZASgCACEDAkBByJkBKAIAIgVFBEAgAyADKAIAQe2cmY4EbEG54ABqQf////8HcSIDNgIADAELIANB0JkBKAIAIgZBAnRqIgggCCgCACADQbygASgCACIIQQJ0aigCAGoiAzYCAEG8oAFBACAIQQFqIgggBSAIRhs2AgBB0JkBQQAgBkEBaiIGIAUgBkYbNgIAIANBAXYhAwsgByADNgIMCyAHKAIMIQMgB0EQaiQAIAAgAzYCDCAAIAAoAhw2AhQDQCAAKAIUIAAoAhhJBEAgACAAKAIMQSRwOgALAn8gACwAC0EKSARAIAAsAAtBMGoMAQsgACwAC0HXAGoLIQMgACAAKAIUIgdBAWo2AhQgByADOgAAIAAgACgCDEEkbjYCDAwBCwsgACgCKCEDIAAgACgCJEF/RgR/QbYDBSAAKAIkCzYCACAAIANBwoEgIAAQbCIDNgIgIANBAE4EQCAAKAIkQX9HBEAgACgCKCAAKAIkEA8iA0GBYE8Ef0G0mwFBACADazYCAEEABSADCxoLIAAgACgCIDYCLAwCC0G0mwEoAgBBFEYNAAsgAEF/NgIsCyAAKAIsIQMgAEEwaiQAIAEgAyIANgJwIABBf0YEQCABKAJ4QQxBtJsBKAIAEBQgASgCdBAVIAFBfzYCfAwBCyABIAEoAnBBoxIQoQEiADYCaCAARQRAIAEoAnhBDEG0mwEoAgAQFCABKAJwEGsgASgCdBBtGiABKAJ0EBUgAUF/NgJ8DAELIAEoAnggASgCaDYChAEgASgCeCABKAJ0NgKAASABQQA2AnwLIAEoAnwhACABQYABaiQAIAQgAKw3A1gMEAsgBCgCQCgCGARAIAQoAkAoAhwQVhogBCgCQEEANgIcCyAEQgA3A1gMDwsgBCgCQCgChAEQVkEASARAIAQoAkBBADYChAEgBCgCQEEGQbSbASgCABAUCyAEKAJAQQA2AoQBIAQoAkAoAoABIAQoAkAoAhgQCCIAQYFgTwR/QbSbAUEAIABrNgIAQX8FIAALQQBIBEAgBCgCQEECQbSbASgCABAUIARCfzcDWAwPCyAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDA4LIAQgBCgCQCAEKAJQIAQpA0gQQzcDWAwNCyAEKAJAKAIYEBUgBCgCQCgCgAEQFSAEKAJAKAIcBEAgBCgCQCgCHBBWGgsgBCgCQBAVIARCADcDWAwMCyAEKAJAKAIYBEAgBCgCQCgCGCEBIwBBIGsiACQAIAAgATYCGCAAQQA6ABcgAEGAgCA2AgwCQCAALQAXQQFxBEAgACAAKAIMQQJyNgIMDAELIAAgACgCDDYCDAsgACgCGCEBIAAoAgwhAyAAQbYDNgIAIAAgASADIAAQbCIBNgIQAkAgAUEASARAIABBADYCHAwBCyAAIAAoAhBBoxJBoBIgAC0AF0EBcRsQoQEiATYCCCABRQRAIABBADYCHAwBCyAAIAAoAgg2AhwLIAAoAhwhASAAQSBqJAAgBCgCQCABNgIcIAFFBEAgBCgCQEELQbSbASgCABAUIARCfzcDWAwNCwsgBCgCQCkDaEIAUgRAIAQoAkAoAhwgBCgCQCkDaCAEKAJAEJ8BQQBIBEAgBEJ/NwNYDA0LCyAEKAJAQgA3A3ggBEIANwNYDAsLAkAgBCgCQCkDcEIAUgRAIAQgBCgCQCkDcCAEKAJAKQN4fTcDMCAEKQMwIAQpA0hWBEAgBCAEKQNINwMwCwwBCyAEIAQpA0g3AzALIAQpAzBC/////w9WBEAgBEL/////DzcDMAsgBAJ/IAQoAjwhByAEKQMwpyEAIAQoAkAoAhwiAygCTBogAyADLQBKIgFBAWsgAXI6AEogAygCCCADKAIEIgVrIgFBAUgEfyAABSAHIAUgASAAIAAgAUsbIgEQGRogAyADKAIEIAFqNgIEIAEgB2ohByAAIAFrCyIBBEADQAJAAn8gAyADLQBKIgVBAWsgBXI6AEogAygCFCADKAIcSwRAIANBAEEAIAMoAiQRAQAaCyADQQA2AhwgA0IANwMQIAMoAgAiBUEEcQRAIAMgBUEgcjYCAEF/DAELIAMgAygCLCADKAIwaiIGNgIIIAMgBjYCBCAFQRt0QR91C0UEQCADIAcgASADKAIgEQEAIgVBAWpBAUsNAQsgACABawwDCyAFIAdqIQcgASAFayIBDQALCyAACyIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbSbASgCABAUIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBtQQBIBEAgBCgCQEEWQbSbASgCABAUIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBWGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBtGiAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGpBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEKMBIgI3AyAgAkIAUwRAIAQoAkBBBEG0mwEoAgAQFCAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAUIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQoAkApA2ggBCkDICAEKAJAKQNofFgNAQsgBCgCQEESQQAQFCAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCfAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGpBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBQgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCjATcDCCAEKQMIQgBTBEAgBCgCQEEeQbSbASgCABAUIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsgBCgCQCgChAEiACgCTEEAThogACAAKAIAQU9xNgIAIAQCfyAEKAJQIQEgBCkDSKciACAAAn8gBCgCQCgChAEiAygCTEF/TARAIAEgACADEHEMAQsgASAAIAMQcQsiAUYNABogAQs2AgQCQCAEKQNIIAQoAgStUQRAAn8gBCgCQCgChAEiACgCTEF/TARAIAAoAgAMAQsgACgCAAtBBXZBAXFFDQELIAQoAkBBBkG0mwEoAgAQFCAEQn83A1gMAgsgBCAEKAIErTcDWAwBCyAEKAJAQRxBABAUIARCfzcDWAsgBCkDWCECIARB4ABqJAAgAgsJACAAKAI8EAUL5AEBBH8jAEEgayIDJAAgAyABNgIQIAMgAiAAKAIwIgRBAEdrNgIUIAAoAiwhBSADIAQ2AhwgAyAFNgIYQX8hBAJAAkAgACgCPCADQRBqQQIgA0EMahAGIgUEf0G0mwEgBTYCAEF/BUEAC0UEQCADKAIMIgRBAEoNAQsgACAAKAIAIARBMHFBEHNyNgIADAELIAQgAygCFCIGTQ0AIAAgACgCLCIFNgIEIAAgBSAEIAZrajYCCCAAKAIwBEAgACAFQQFqNgIEIAEgAmpBAWsgBS0AADoAAAsgAiEECyADQSBqJAAgBAv0AgEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQCAAKAI8IANBEGpBAiADQQxqEAMiBAR/QbSbASAENgIAQX8FQQALRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUgACgCPCABQQhqIAEgBhsiASAHIAZrIgcgA0EMahADIgQEf0G0mwEgBDYCAEF/BUEAC0UNAAsLIAVBf0cNAQsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAELIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgB0ECRg0AGiACIAEoAgRrCyEAIANBIGokACAAC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEA0iAAR/QbSbASAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQOAJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQbyABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyABKAJcQYUPNgIYIAEoAlRB0f4ANgIEDAQLDAILIAEoAgxBwABxRQRAIAEgASgCJCABLwESIAEoAixBASABKAIMdEEBa3FqQQJ0aigBADYBEAwBCwsgASgCDEEgcQRAIAEoAlRBv/4ANgIEDAILIAEoAlxB6Q42AhggASgCVEHR/gA2AgQMAQsgASgCUCABKAJMSQR/IAEoAkggASgCQEkFQQALQQFxDQELCyABIAEoAihBA3Y2AgggASABKAJQIAEoAghrNgJQIAEgASgCKCABKAIIQQN0azYCKCABIAEoAixBASABKAIodEEBa3E2AiwgASgCXCABKAJQNgIAIAEoAlwgASgCSDYCDCABKAJcAn8gASgCUCABKAJMSQRAIAEoAkwgASgCUGtBBWoMAQtBBSABKAJQIAEoAkxraws2AgQgASgCXAJ/IAEoAkggASgCQEkEQCABKAJAIAEoAkhrQYECagwBC0GBAiABKAJIIAEoAkBraws2AhAgASgCVCABKAIsNgI8IAEoAlQgASgCKDYCQCAAIAAoAlgoAgw2AkggACAAKAJYKAIQNgJAIAAgACgCWCgCADYCTCAAIAAoAlgoAgQ2AkQgACAAKAJQKAI8NgI8IAAgACgCUCgCQDYCOCAAKAJQKAIEQb/+AEYEQCAAKAJQQX82Asg3CwwNCyAAKAJQQQA2Asg3A0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDQ0gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC0AIEUNACAALQAgQfABcQ0AIAAgACgBIDYBGANAAkAgACAAKAJQKAJQIAAvARogACgCPEEBIAAtABkgAC0AGGp0QQFrcSAALQAZdmpBAnRqKAEANgEgIAAoAjggAC0AGSAALQAhak8NACAAKAJERQ0OIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AGXY2AjwgACAAKAI4IAAtABlrNgI4IAAoAlAiASAALQAZIAEoAsg3ajYCyDcLIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggACgCUCIBIAAtACEgASgCyDdqNgLINyAAKAJQIAAvASI2AkQgAC0AIEUEQCAAKAJQQc3+ADYCBAwNCyAALQAgQSBxBEAgACgCUEF/NgLINyAAKAJQQb/+ADYCBAwNCyAALQAgQcAAcQRAIAAoAlhB6Q42AhggACgCUEHR/gA2AgQMDQsgACgCUCAALQAgQQ9xNgJMIAAoAlBByf4ANgIECyAAKAJQKAJMBEADQCAAKAI4IAAoAlAoAkxJBEAgACgCREUNDSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCIBIAEoAkQgACgCPEEBIAAoAlAoAkx0QQFrcWo2AkQgACAAKAI8IAAoAlAoAkx2NgI8IAAgACgCOCAAKAJQKAJMazYCOCAAKAJQIgEgACgCUCgCTCABKALIN2o2Asg3CyAAKAJQIAAoAlAoAkQ2Asw3IAAoAlBByv4ANgIECwNAAkAgACAAKAJQKAJUIAAoAjxBASAAKAJQKAJcdEEBa3FBAnRqKAEANgEgIAAtACEgACgCOE0NACAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAALQAgQfABcUUEQCAAIAAoASA2ARgDQAJAIAAgACgCUCgCVCAALwEaIAAoAjxBASAALQAZIAAtABhqdEEBa3EgAC0AGXZqQQJ0aigBADYBICAAKAI4IAAtABkgAC0AIWpPDQAgACgCREUNDCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtABl2NgI8IAAgACgCOCAALQAZazYCOCAAKAJQIgEgAC0AGSABKALIN2o2Asg3CyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAiASAALQAhIAEoAsg3ajYCyDcgAC0AIEHAAHEEQCAAKAJYQYUPNgIYIAAoAlBB0f4ANgIEDAsLIAAoAlAgAC8BIjYCSCAAKAJQIAAtACBBD3E2AkwgACgCUEHL/gA2AgQLIAAoAlAoAkwEQANAIAAoAjggACgCUCgCTEkEQCAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIgEgASgCSCAAKAI8QQEgACgCUCgCTHRBAWtxajYCSCAAIAAoAjwgACgCUCgCTHY2AjwgACAAKAI4IAAoAlAoAkxrNgI4IAAoAlAiASAAKAJQKAJMIAEoAsg3ajYCyDcLIAAoAlBBzP4ANgIECyAAKAJARQ0HIAAgACgCMCAAKAJAazYCLAJAIAAoAlAoAkggACgCLEsEQCAAIAAoAlAoAkggACgCLGs2AiwgACgCLCAAKAJQKAIwSwRAIAAoAlAoAsQ3BEAgACgCWEHdDDYCGCAAKAJQQdH+ADYCBAwMCwsCQCAAKAIsIAAoAlAoAjRLBEAgACAAKAIsIAAoAlAoAjRrNgIsIAAgACgCUCgCOCAAKAJQKAIsIAAoAixrajYCKAwBCyAAIAAoAlAoAjggACgCUCgCNCAAKAIsa2o2AigLIAAoAiwgACgCUCgCREsEQCAAIAAoAlAoAkQ2AiwLDAELIAAgACgCSCAAKAJQKAJIazYCKCAAIAAoAlAoAkQ2AiwLIAAoAiwgACgCQEsEQCAAIAAoAkA2AiwLIAAgACgCQCAAKAIsazYCQCAAKAJQIgEgASgCRCAAKAIsazYCRANAIAAgACgCKCIBQQFqNgIoIAEtAAAhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAIsQQFrIgE2AiwgAQ0ACyAAKAJQKAJERQRAIAAoAlBByP4ANgIECwwICyAAKAJARQ0GIAAoAlAoAkQhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAJAQQFrNgJAIAAoAlBByP4ANgIEDAcLIAAoAlAoAgwEQANAIAAoAjhBIEkEQCAAKAJERQ0IIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjAgACgCQGs2AjAgACgCWCIBIAAoAjAgASgCFGo2AhQgACgCUCIBIAAoAjAgASgCIGo2AiACQCAAKAJQKAIMQQRxRQ0AIAAoAjBFDQACfyAAKAJQKAIUBEAgACgCUCgCHCAAKAJIIAAoAjBrIAAoAjAQGgwBCyAAKAJQKAIcIAAoAkggACgCMGsgACgCMBA9CyEBIAAoAlAgATYCHCAAKAJYIAE2AjALIAAgACgCQDYCMAJAIAAoAlAoAgxBBHFFDQACfyAAKAJQKAIUBEAgACgCPAwBCyAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoLIAAoAlAoAhxGDQAgACgCWEHIDDYCGCAAKAJQQdH+ADYCBAwICyAAQQA2AjwgAEEANgI4CyAAKAJQQc/+ADYCBAsCQCAAKAJQKAIMRQ0AIAAoAlAoAhRFDQADQCAAKAI4QSBJBEAgACgCREUNByAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPCAAKAJQKAIgRwRAIAAoAlhBsQw2AhggACgCUEHR/gA2AgQMBwsgAEEANgI8IABBADYCOAsgACgCUEHQ/gA2AgQLIABBATYCEAwDCyAAQX02AhAMAgsgAEF8NgJcDAMLIABBfjYCXAwCCwsgACgCWCAAKAJINgIMIAAoAlggACgCQDYCECAAKAJYIAAoAkw2AgAgACgCWCAAKAJENgIEIAAoAlAgACgCPDYCPCAAKAJQIAAoAjg2AkACQAJAIAAoAlAoAiwNACAAKAIwIAAoAlgoAhBGDQEgACgCUCgCBEHR/gBPDQEgACgCUCgCBEHO/gBJDQAgACgCVEEERg0BCwJ/IAAoAlghAiAAKAJYKAIMIQMgACgCMCAAKAJYKAIQayEEIwBBIGsiASQAIAEgAjYCGCABIAM2AhQgASAENgIQIAEgASgCGCgCHDYCDAJAIAEoAgwoAjhFBEAgASgCGCgCKEEBIAEoAgwoAih0QQEgASgCGCgCIBEBACECIAEoAgwgAjYCOCABKAIMKAI4RQRAIAFBATYCHAwCCwsgASgCDCgCLEUEQCABKAIMQQEgASgCDCgCKHQ2AiwgASgCDEEANgI0IAEoAgxBADYCMAsCQCABKAIQIAEoAgwoAixPBEAgASgCDCgCOCABKAIUIAEoAgwoAixrIAEoAgwoAiwQGRogASgCDEEANgI0IAEoAgwgASgCDCgCLDYCMAwBCyABIAEoAgwoAiwgASgCDCgCNGs2AgggASgCCCABKAIQSwRAIAEgASgCEDYCCAsgASgCDCgCOCABKAIMKAI0aiABKAIUIAEoAhBrIAEoAggQGRogASABKAIQIAEoAghrNgIQAkAgASgCEARAIAEoAgwoAjggASgCFCABKAIQayABKAIQEBkaIAEoAgwgASgCEDYCNCABKAIMIAEoAgwoAiw2AjAMAQsgASgCDCICIAEoAgggAigCNGo2AjQgASgCDCgCNCABKAIMKAIsRgRAIAEoAgxBADYCNAsgASgCDCgCMCABKAIMKAIsSQRAIAEoAgwiAiABKAIIIAIoAjBqNgIwCwsLIAFBADYCHAsgASgCHCECIAFBIGokACACCwRAIAAoAlBB0v4ANgIEIABBfDYCXAwCCwsgACAAKAI0IAAoAlgoAgRrNgI0IAAgACgCMCAAKAJYKAIQazYCMCAAKAJYIgEgACgCNCABKAIIajYCCCAAKAJYIgEgACgCMCABKAIUajYCFCAAKAJQIgEgACgCMCABKAIgajYCIAJAIAAoAlAoAgxBBHFFDQAgACgCMEUNAAJ/IAAoAlAoAhQEQCAAKAJQKAIcIAAoAlgoAgwgACgCMGsgACgCMBAaDAELIAAoAlAoAhwgACgCWCgCDCAAKAIwayAAKAIwED0LIQEgACgCUCABNgIcIAAoAlggATYCMAsgACgCWCAAKAJQKAJAQcAAQQAgACgCUCgCCBtqQYABQQAgACgCUCgCBEG//gBGG2pBgAJBACAAKAJQKAIEQcf+AEcEfyAAKAJQKAIEQcL+AEYFQQELQQFxG2o2AiwCQAJAIAAoAjRFBEAgACgCMEUNAQsgACgCVEEERw0BCyAAKAIQDQAgAEF7NgIQCyAAIAAoAhA2AlwLIAAoAlwhASAAQeAAaiQAIAUgATYCCAsgBSgCECIAIAApAwAgBSgCDDUCIH03AwACQAJAAkACQAJAIAUoAghBBWoOBwIDAwMDAAEDCyAFQQA2AhwMAwsgBUEBNgIcDAILIAUoAgwoAhRFBEAgBUEDNgIcDAILCyAFKAIMKAIAQQ0gBSgCCBAUIAVBAjYCHAsgBSgCHCEAIAVBIGokACAACyQBAX8jAEEQayIBIAA2AgwgASABKAIMNgIIIAEoAghBAToADAuXAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhg2AgQCQAJAIAMpAwhC/////w9YBEAgAygCBCgCFEUNAQsgAygCBCgCAEESQQAQFCADQQA6AB8MAQsgAygCBCADKQMIPgIUIAMoAgQgAygCFDYCECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAukAgECfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEAkAgASgCBC0ABEEBcQRAIAEgASgCBEEQahC4ATYCAAwBCyABKAIEQRBqIQIjAEEQayIAJAAgACACNgIIAkAgACgCCBBKBEAgAEF+NgIMDAELIAAgACgCCCgCHDYCBCAAKAIEKAI4BEAgACgCCCgCKCAAKAIEKAI4IAAoAggoAiQRBAALIAAoAggoAiggACgCCCgCHCAAKAIIKAIkEQQAIAAoAghBADYCHCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgASACNgIACwJAIAEoAgAEQCABKAIEKAIAQQ0gASgCABAUIAFBADoADwwBCyABQQE6AA8LIAEtAA9BAXEhACABQRBqJAAgAAuyGAEFfyMAQRBrIgQkACAEIAA2AgggBCAEKAIINgIEIAQoAgRBADYCFCAEKAIEQQA2AhAgBCgCBEEANgIgIAQoAgRBADYCHAJAIAQoAgQtAARBAXEEQCAEKAIEQRBqIQEgBCgCBCgCCCECIwBBMGsiACQAIAAgATYCKCAAIAI2AiQgAEEINgIgIABBcTYCHCAAQQk2AhggAEEANgIUIABBwBI2AhAgAEE4NgIMIABBATYCBAJAAkACQCAAKAIQRQ0AIAAoAhAsAABB+O4ALAAARw0AIAAoAgxBOEYNAQsgAEF6NgIsDAELIAAoAihFBEAgAEF+NgIsDAELIAAoAihBADYCGCAAKAIoKAIgRQRAIAAoAihBBTYCICAAKAIoQQA2AigLIAAoAigoAiRFBEAgACgCKEEGNgIkCyAAKAIkQX9GBEAgAEEGNgIkCwJAIAAoAhxBAEgEQCAAQQA2AgQgAEEAIAAoAhxrNgIcDAELIAAoAhxBD0oEQCAAQQI2AgQgACAAKAIcQRBrNgIcCwsCQAJAIAAoAhhBAUgNACAAKAIYQQlKDQAgACgCIEEIRw0AIAAoAhxBCEgNACAAKAIcQQ9KDQAgACgCJEEASA0AIAAoAiRBCUoNACAAKAIUQQBIDQAgACgCFEEESg0AIAAoAhxBCEcNASAAKAIEQQFGDQELIABBfjYCLAwBCyAAKAIcQQhGBEAgAEEJNgIcCyAAIAAoAigoAihBAUHELSAAKAIoKAIgEQEANgIIIAAoAghFBEAgAEF8NgIsDAELIAAoAiggACgCCDYCHCAAKAIIIAAoAig2AgAgACgCCEEqNgIEIAAoAgggACgCBDYCGCAAKAIIQQA2AhwgACgCCCAAKAIcNgIwIAAoAghBASAAKAIIKAIwdDYCLCAAKAIIIAAoAggoAixBAWs2AjQgACgCCCAAKAIYQQdqNgJQIAAoAghBASAAKAIIKAJQdDYCTCAAKAIIIAAoAggoAkxBAWs2AlQgACgCCCAAKAIIKAJQQQJqQQNuNgJYIAAoAigoAiggACgCCCgCLEECIAAoAigoAiARAQAhASAAKAIIIAE2AjggACgCKCgCKCAAKAIIKAIsQQIgACgCKCgCIBEBACEBIAAoAgggATYCQCAAKAIoKAIoIAAoAggoAkxBAiAAKAIoKAIgEQEAIQEgACgCCCABNgJEIAAoAghBADYCwC0gACgCCEEBIAAoAhhBBmp0NgKcLSAAIAAoAigoAiggACgCCCgCnC1BBCAAKAIoKAIgEQEANgIAIAAoAgggACgCADYCCCAAKAIIIAAoAggoApwtQQJ0NgIMAkACQCAAKAIIKAI4RQ0AIAAoAggoAkBFDQAgACgCCCgCREUNACAAKAIIKAIIDQELIAAoAghBmgU2AgQgACgCKEG42QAoAgA2AhggACgCKBC4ARogAEF8NgIsDAELIAAoAgggACgCACAAKAIIKAKcLUEBdkEBdGo2AqQtIAAoAgggACgCCCgCCCAAKAIIKAKcLUEDbGo2ApgtIAAoAgggACgCJDYChAEgACgCCCAAKAIUNgKIASAAKAIIIAAoAiA6ACQgACgCKCEBIwBBEGsiAyQAIAMgATYCDCADKAIMIQIjAEEQayIBJAAgASACNgIIAkAgASgCCBB4BEAgAUF+NgIMDAELIAEoAghBADYCFCABKAIIQQA2AgggASgCCEEANgIYIAEoAghBAjYCLCABIAEoAggoAhw2AgQgASgCBEEANgIUIAEoAgQgASgCBCgCCDYCECABKAIEKAIYQQBIBEAgASgCBEEAIAEoAgQoAhhrNgIYCyABKAIEIAEoAgQoAhhBAkYEf0E5BUEqQfEAIAEoAgQoAhgbCzYCBAJ/IAEoAgQoAhhBAkYEQEEAQQBBABAaDAELQQBBAEEAED0LIQIgASgCCCACNgIwIAEoAgRBADYCKCABKAIEIQUjAEEQayICJAAgAiAFNgIMIAIoAgwgAigCDEGUAWo2ApgWIAIoAgxB0N8ANgKgFiACKAIMIAIoAgxBiBNqNgKkFiACKAIMQeTfADYCrBYgAigCDCACKAIMQfwUajYCsBYgAigCDEH43wA2ArgWIAIoAgxBADsBuC0gAigCDEEANgK8LSACKAIMEL4BIAJBEGokACABQQA2AgwLIAEoAgwhAiABQRBqJAAgAyACNgIIIAMoAghFBEAgAygCDCgCHCECIwBBEGsiASQAIAEgAjYCDCABKAIMIAEoAgwoAixBAXQ2AjwgASgCDCgCRCABKAIMKAJMQQFrQQF0akEAOwEAIAEoAgwoAkRBACABKAIMKAJMQQFrQQF0EDMgASgCDCABKAIMKAKEAUEMbEGA7wBqLwECNgKAASABKAIMIAEoAgwoAoQBQQxsQYDvAGovAQA2AowBIAEoAgwgASgCDCgChAFBDGxBgO8Aai8BBDYCkAEgASgCDCABKAIMKAKEAUEMbEGA7wBqLwEGNgJ8IAEoAgxBADYCbCABKAIMQQA2AlwgASgCDEEANgJ0IAEoAgxBADYCtC0gASgCDEECNgJ4IAEoAgxBAjYCYCABKAIMQQA2AmggASgCDEEANgJIIAFBEGokAAsgAygCCCEBIANBEGokACAAIAE2AiwLIAAoAiwhASAAQTBqJAAgBCABNgIADAELIAQoAgRBEGohASMAQSBrIgAkACAAIAE2AhggAEFxNgIUIABBwBI2AhAgAEE4NgIMAkACQAJAIAAoAhBFDQAgACgCECwAAEHAEiwAAEcNACAAKAIMQThGDQELIABBejYCHAwBCyAAKAIYRQRAIABBfjYCHAwBCyAAKAIYQQA2AhggACgCGCgCIEUEQCAAKAIYQQU2AiAgACgCGEEANgIoCyAAKAIYKAIkRQRAIAAoAhhBBjYCJAsgACAAKAIYKAIoQQFB0DcgACgCGCgCIBEBADYCBCAAKAIERQRAIABBfDYCHAwBCyAAKAIYIAAoAgQ2AhwgACgCBCAAKAIYNgIAIAAoAgRBADYCOCAAKAIEQbT+ADYCBCAAKAIYIQIgACgCFCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQCABKAIYEEoEQCABQX42AhwMAQsgASABKAIYKAIcNgIMAkAgASgCFEEASARAIAFBADYCECABQQAgASgCFGs2AhQMAQsgASABKAIUQQR1QQVqNgIQIAEoAhRBMEgEQCABIAEoAhRBD3E2AhQLCwJAIAEoAhRFDQAgASgCFEEITgRAIAEoAhRBD0wNAQsgAUF+NgIcDAELAkAgASgCDCgCOEUNACABKAIMKAIoIAEoAhRGDQAgASgCGCgCKCABKAIMKAI4IAEoAhgoAiQRBAAgASgCDEEANgI4CyABKAIMIAEoAhA2AgwgASgCDCABKAIUNgIoIAEoAhghAiMAQRBrIgMkACADIAI2AggCQCADKAIIEEoEQCADQX42AgwMAQsgAyADKAIIKAIcNgIEIAMoAgRBADYCLCADKAIEQQA2AjAgAygCBEEANgI0IAMoAgghBSMAQRBrIgIkACACIAU2AggCQCACKAIIEEoEQCACQX42AgwMAQsgAiACKAIIKAIcNgIEIAIoAgRBADYCICACKAIIQQA2AhQgAigCCEEANgIIIAIoAghBADYCGCACKAIEKAIMBEAgAigCCCACKAIEKAIMQQFxNgIwCyACKAIEQbT+ADYCBCACKAIEQQA2AgggAigCBEEANgIQIAIoAgRBgIACNgIYIAIoAgRBADYCJCACKAIEQQA2AjwgAigCBEEANgJAIAIoAgQgAigCBEG0CmoiBTYCcCACKAIEIAU2AlQgAigCBCAFNgJQIAIoAgRBATYCxDcgAigCBEF/NgLINyACQQA2AgwLIAIoAgwhBSACQRBqJAAgAyAFNgIMCyADKAIMIQIgA0EQaiQAIAEgAjYCHAsgASgCHCECIAFBIGokACAAIAI2AgggACgCCARAIAAoAhgoAiggACgCBCAAKAIYKAIkEQQAIAAoAhhBADYCHAsgACAAKAIINgIcCyAAKAIcIQEgAEEgaiQAIAQgATYCAAsCQCAEKAIABEAgBCgCBCgCAEENIAQoAgAQFCAEQQA6AA8MAQsgBEEBOgAPCyAELQAPQQFxIQAgBEEQaiQAIAALbwEBfyMAQRBrIgEgADYCCCABIAEoAgg2AgQCQCABKAIELQAEQQFxRQRAIAFBADYCDAwBCyABKAIEKAIIQQNIBEAgAUECNgIMDAELIAEoAgQoAghBB0oEQCABQQE2AgwMAQsgAUEANgIMCyABKAIMCywBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABKAIIEBUgAUEQaiQACzwBAX8jAEEQayIDJAAgAyAAOwEOIAMgATYCCCADIAI2AgRBASADKAIIIAMoAgQQtAEhACADQRBqJAAgAAvBEAECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCACKAIYKAJgNgJ4IAIoAhggAigCGCgCcDYCZCACKAIYQQI2AmACQCACKAIQRQ0AIAIoAhgoAnggAigCGCgCgAFPDQAgAigCGCgCLEGGAmsgAigCGCgCbCACKAIQa0kNACACKAIYIAIoAhAQtgEhACACKAIYIAA2AmACQCACKAIYKAJgQQVLDQAgAigCGCgCiAFBAUcEQCACKAIYKAJgQQNHDQEgAigCGCgCbCACKAIYKAJwa0GAIE0NAQsgAigCGEECNgJgCwsCQAJAIAIoAhgoAnhBA0kNACACKAIYKAJgIAIoAhgoAnhLDQAgAiACKAIYIgAoAmwgACgCdGpBA2s2AgggAiACKAIYKAJ4QQNrOgAHIAIgAigCGCIAKAJsIAAoAmRBf3NqOwEEIAIoAhgiACgCpC0gACgCoC1BAXRqIAIvAQQ7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACIAIvAQRBAWs7AQQgAigCGCACLQAHQdDdAGotAABBAnRqQZgJaiIAIAAvAQBBAWo7AQAgAigCGEGIE2oCfyACLwEEQYACSQRAIAIvAQQtANBZDAELIAIvAQRBB3ZBgAJqLQDQWQtBAnRqIgAgAC8BAEEBajsBACACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYIgAgACgCdCACKAIYKAJ4QQFrazYCdCACKAIYIgAgACgCeEECazYCeANAIAIoAhgiASgCbEEBaiEAIAEgADYCbCAAIAIoAghNBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCIBKAJ4QQFrIQAgASAANgJ4IAANAAsgAigCGEEANgJoIAIoAhhBAjYCYCACKAIYIgAgACgCbEEBajYCbCACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBgsLDAELAkAgAigCGCgCaARAIAIgAigCGCIAKAI4IAAoAmxqQQFrLQAAOgADIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AAyEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAANBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAgwEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHAsgAigCGCIAIAAoAmxBAWo2AmwgAigCGCIAIAAoAnRBAWs2AnQgAigCGCgCACgCEEUEQCACQQA2AhwMBgsMAQsgAigCGEEBNgJoIAIoAhgiACAAKAJsQQFqNgJsIAIoAhgiACAAKAJ0QQFrNgJ0CwsMAQsLIAIoAhgoAmgEQCACIAIoAhgiACgCOCAAKAJsakEBay0AADoAAiACKAIYIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAAIhASACKAIYIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCGCACLQACQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYQQA2AmgLIAIoAhgCfyACKAIYKAJsQQJJBEAgAigCGCgCbAwBC0ECCzYCtC0gAigCFEEERgRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQEQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkECNgIcDAILIAJBAzYCHAwBCyACKAIYKAKgLQRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQAQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkEANgIcDAILCyACQQE2AhwLIAIoAhwhACACQSBqJAAgAAuVDQECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsCQCACKAIQRQ0AIAIoAhgoAixBhgJrIAIoAhgoAmwgAigCEGtJDQAgAigCGCACKAIQELYBIQAgAigCGCAANgJgCwJAIAIoAhgoAmBBA08EQCACIAIoAhgoAmBBA2s6AAsgAiACKAIYIgAoAmwgACgCcGs7AQggAigCGCIAKAKkLSAAKAKgLUEBdGogAi8BCDsBACACLQALIQEgAigCGCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BCEEBazsBCCACKAIYIAItAAtB0N0Aai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIYQYgTagJ/IAIvAQhBgAJJBEAgAi8BCC0A0FkMAQsgAi8BCEEHdkGAAmotANBZC0ECdGoiACAALwEAQQFqOwEAIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0IAIoAhgoAmBrNgJ0AkACQCACKAIYKAJgIAIoAhgoAoABSw0AIAIoAhgoAnRBA0kNACACKAIYIgAgACgCYEEBazYCYANAIAIoAhgiACAAKAJsQQFqNgJsIAIoAhggAigCGCgCVCACKAIYKAI4IAIoAhgoAmxBAmpqLQAAIAIoAhgoAkggAigCGCgCWHRzcTYCSCACKAIYKAJAIAIoAhgoAmwgAigCGCgCNHFBAXRqIAIoAhgoAkQgAigCGCgCSEEBdGovAQAiADsBACACIABB//8DcTYCECACKAIYKAJEIAIoAhgoAkhBAXRqIAIoAhgoAmw7AQAgAigCGCIBKAJgQQFrIQAgASAANgJgIAANAAsgAigCGCIAIAAoAmxBAWo2AmwMAQsgAigCGCIAIAIoAhgoAmAgACgCbGo2AmwgAigCGEEANgJgIAIoAhggAigCGCgCOCACKAIYKAJsai0AADYCSCACKAIYIAIoAhgoAlQgAigCGCgCOCACKAIYKAJsQQFqai0AACACKAIYKAJIIAIoAhgoAlh0c3E2AkgLDAELIAIgAigCGCIAKAI4IAAoAmxqLQAAOgAHIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAAdBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0QQFrNgJ0IAIoAhgiACAAKAJsQQFqNgJsCyACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBAsLDAELCyACKAIYAn8gAigCGCgCbEECSQRAIAIoAhgoAmwMAQtBAgs2ArQtIAIoAhRBBEYEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EBECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBAjYCHAwCCyACQQM2AhwMAQsgAigCGCgCoC0EQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBADYCHAwCCwsgAkEBNgIcCyACKAIcIQAgAkEgaiQAIAALBwAgAC8BMAspAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCBAVIAJBEGokAAs6AQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgggAygCBGwQGCEAIANBEGokACAAC84FAQF/IwBB0ABrIgUkACAFIAA2AkQgBSABNgJAIAUgAjYCPCAFIAM3AzAgBSAENgIsIAUgBSgCQDYCKAJAAkACQAJAAkACQAJAAkACQCAFKAIsDg8AAQIDBQYHBwcHBwcHBwQHCwJ/IAUoAkQhASAFKAIoIQIjAEHgAGsiACQAIAAgATYCWCAAIAI2AlQgACAAKAJYIABByABqQgwQKyIDNwMIAkAgA0IAUwRAIAAoAlQgACgCWBAXIABBfzYCXAwBCyAAKQMIQgxSBEAgACgCVEERQQAQFCAAQX82AlwMAQsgACgCVCAAQcgAaiAAQcgAakIMQQAQfCAAKAJYIABBEGoQOUEASARAIABBADYCXAwBCyAAKAI4IABBBmogAEEEahCNAQJAIAAtAFMgACgCPEEYdkYNACAALQBTIAAvAQZBCHZGDQAgACgCVEEbQQAQFCAAQX82AlwMAQsgAEEANgJcCyAAKAJcIQEgAEHgAGokACABQQBICwRAIAVCfzcDSAwICyAFQgA3A0gMBwsgBSAFKAJEIAUoAjwgBSkDMBArIgM3AyAgA0IAUwRAIAUoAiggBSgCRBAXIAVCfzcDSAwHCyAFKAJAIAUoAjwgBSgCPCAFKQMgQQAQfCAFIAUpAyA3A0gMBgsgBUIANwNIDAULIAUgBSgCPDYCHCAFKAIcQQA7ATIgBSgCHCIAIAApAwBCgAGENwMAIAUoAhwpAwBCCINCAFIEQCAFKAIcIgAgACkDIEIMfTcDIAsgBUIANwNIDAQLIAVBfzYCFCAFQQU2AhAgBUEENgIMIAVBAzYCCCAFQQI2AgQgBUEBNgIAIAVBACAFEDQ3A0gMAwsgBSAFKAIoIAUoAjwgBSkDMBBDNwNIDAILIAUoAigQvwEgBUIANwNIDAELIAUoAihBEkEAEBQgBUJ/NwNICyAFKQNIIQMgBUHQAGokACADC+4CAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzYCDCAFIAQ2AggCQAJAAkAgBSgCCEUNACAFKAIURQ0AIAUvARJBAUYNAQsgBSgCGEEIakESQQAQFCAFQQA2AhwMAQsgBSgCDEEBcQRAIAUoAhhBCGpBGEEAEBQgBUEANgIcDAELIAVBGBAYIgA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBADYCHAwBCyMAQRBrIgAgBSgCBDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAFKAIEQfis0ZEBNgIMIAUoAgRBic+VmgI2AhAgBSgCBEGQ8dmiAzYCFCAFKAIEQQAgBSgCCCAFKAIIEC6tQQEQfCAFIAUoAhggBSgCFEEDIAUoAgQQYSIANgIAIABFBEAgBSgCBBC/ASAFQQA2AhwMAQsgBSAFKAIANgIcCyAFKAIcIQAgBUEgaiQAIAALBwAgACgCIAu9GAECfyMAQfAAayIEJAAgBCAANgJkIAQgATYCYCAEIAI3A1ggBCADNgJUIAQgBCgCZDYCUAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCVA4UBgcCDAQFCg8AAwkRCxAOCBIBEg0SC0EAQgBBACAEKAJQEEwhACAEKAJQIAA2AhQgAEUEQCAEQn83A2gMEwsgBCgCUCgCFEIANwM4IAQoAlAoAhRCADcDQCAEQgA3A2gMEgsgBCgCUCgCECEBIAQpA1ghAiAEKAJQIQMjAEFAaiIAJAAgACABNgI4IAAgAjcDMCAAIAM2AiwCQCAAKQMwUARAIABBAEIAQQEgACgCLBBMNgI8DAELIAApAzAgACgCOCkDMFYEQCAAKAIsQRJBABAUIABBADYCPAwBCyAAKAI4KAIoBEAgACgCLEEdQQAQFCAAQQA2AjwMAQsgACAAKAI4IAApAzAQwAE3AyAgACAAKQMwIAAoAjgoAgQgACkDIKdBA3RqKQMAfTcDGCAAKQMYUARAIAAgACkDIEIBfTcDICAAIAAoAjgoAgAgACkDIKdBBHRqKQMINwMYCyAAIAAoAjgoAgAgACkDIKdBBHRqKQMIIAApAxh9NwMQIAApAxAgACkDMFYEQCAAKAIsQRxBABAUIABBADYCPAwBCyAAIAAoAjgoAgAgACkDIEIBfEEAIAAoAiwQTCIBNgIMIAFFBEAgAEEANgI8DAELIAAoAgwoAgAgACgCDCkDCEIBfadBBHRqIAApAxg3AwggACgCDCgCBCAAKAIMKQMIp0EDdGogACkDMDcDACAAKAIMIAApAzA3AzAgACgCDAJ+IAAoAjgpAxggACgCDCkDCEIBfVQEQCAAKAI4KQMYDAELIAAoAgwpAwhCAX0LNwMYIAAoAjggACgCDDYCKCAAKAIMIAAoAjg2AiggACgCOCAAKAIMKQMINwMgIAAoAgwgACkDIEIBfDcDICAAIAAoAgw2AjwLIAAoAjwhASAAQUBrJAAgASEAIAQoAlAgADYCFCAARQRAIARCfzcDaAwSCyAEKAJQKAIUIAQpA1g3AzggBCgCUCgCFCAEKAJQKAIUKQMINwNAIARCADcDaAwRCyAEQgA3A2gMEAsgBCgCUCgCEBAyIAQoAlAgBCgCUCgCFDYCECAEKAJQQQA2AhQgBEIANwNoDA8LIAQgBCgCUCAEKAJgIAQpA1gQQzcDaAwOCyAEKAJQKAIQEDIgBCgCUCgCFBAyIAQoAlAQFSAEQgA3A2gMDQsgBCgCUCgCEEIANwM4IAQoAlAoAhBCADcDQCAEQgA3A2gMDAsgBCkDWEL///////////8AVgRAIAQoAlBBEkEAEBQgBEJ/NwNoDAwLIAQoAlAoAhAhASAEKAJgIQMgBCkDWCECIwBBQGoiACQAIAAgATYCNCAAIAM2AjAgACACNwMoIAACfiAAKQMoIAAoAjQpAzAgACgCNCkDOH1UBEAgACkDKAwBCyAAKAI0KQMwIAAoAjQpAzh9CzcDKAJAIAApAyhQBEAgAEIANwM4DAELIAApAyhC////////////AFYEQCAAQn83AzgMAQsgACAAKAI0KQNANwMYIAAgACgCNCkDOCAAKAI0KAIEIAApAxinQQN0aikDAH03AxAgAEIANwMgA0AgACkDICAAKQMoVARAIAACfiAAKQMoIAApAyB9IAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9VARAIAApAyggACkDIH0MAQsgACgCNCgCACAAKQMYp0EEdGopAwggACkDEH0LNwMIIAAoAjAgACkDIKdqIAAoAjQoAgAgACkDGKdBBHRqKAIAIAApAxCnaiAAKQMIpxAZGiAAKQMIIAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9UQRAIAAgACkDGEIBfDcDGAsgACAAKQMIIAApAyB8NwMgIABCADcDEAwBCwsgACgCNCIBIAApAyAgASkDOHw3AzggACgCNCAAKQMYNwNAIAAgACkDIDcDOAsgACkDOCECIABBQGskACAEIAI3A2gMCwsgBEEAQgBBACAEKAJQEEw2AkwgBCgCTEUEQCAEQn83A2gMCwsgBCgCUCgCEBAyIAQoAlAgBCgCTDYCECAEQgA3A2gMCgsgBCgCUCgCFBAyIAQoAlBBADYCFCAEQgA3A2gMCQsgBCAEKAJQKAIQIAQoAmAgBCkDWCAEKAJQEMEBrDcDaAwICyAEIAQoAlAoAhQgBCgCYCAEKQNYIAQoAlAQwQGsNwNoDAcLIAQpA1hCOFQEQCAEKAJQQRJBABAUIARCfzcDaAwHCyAEIAQoAmA2AkggBCgCSBA7IAQoAkggBCgCUCgCDDYCKCAEKAJIIAQoAlAoAhApAzA3AxggBCgCSCAEKAJIKQMYNwMgIAQoAkhBADsBMCAEKAJIQQA7ATIgBCgCSELcATcDACAEQjg3A2gMBgsgBCgCUCAEKAJgKAIANgIMIARCADcDaAwFCyAEQX82AkAgBEETNgI8IARBCzYCOCAEQQ02AjQgBEEMNgIwIARBCjYCLCAEQQ82AiggBEEJNgIkIARBETYCICAEQQg2AhwgBEEHNgIYIARBBjYCFCAEQQU2AhAgBEEENgIMIARBAzYCCCAEQQI2AgQgBEEBNgIAIARBACAEEDQ3A2gMBAsgBCgCUCgCECkDOEL///////////8AVgRAIAQoAlBBHkE9EBQgBEJ/NwNoDAQLIAQgBCgCUCgCECkDODcDaAwDCyAEKAJQKAIUKQM4Qv///////////wBWBEAgBCgCUEEeQT0QFCAEQn83A2gMAwsgBCAEKAJQKAIUKQM4NwNoDAILIAQpA1hC////////////AFYEQCAEKAJQQRJBABAUIARCfzcDaAwCCyAEKAJQKAIUIQEgBCgCYCEDIAQpA1ghAiAEKAJQIQUjAEHgAGsiACQAIAAgATYCVCAAIAM2AlAgACACNwNIIAAgBTYCRAJAIAApA0ggACgCVCkDOCAAKQNIfEL//wN8VgRAIAAoAkRBEkEAEBQgAEJ/NwNYDAELIAAgACgCVCgCBCAAKAJUKQMIp0EDdGopAwA3AyAgACkDICAAKAJUKQM4IAApA0h8VARAIAAgACgCVCkDCCAAKQNIIAApAyAgACgCVCkDOH19Qv//A3xCEIh8NwMYIAApAxggACgCVCkDEFYEQCAAIAAoAlQpAxA3AxAgACkDEFAEQCAAQhA3AxALA0AgACkDECAAKQMYVARAIAAgACkDEEIBhjcDEAwBCwsgACgCVCAAKQMQIAAoAkQQwgFBAXFFBEAgACgCREEOQQAQFCAAQn83A1gMAwsLA0AgACgCVCkDCCAAKQMYVARAQYCABBAYIQEgACgCVCgCACAAKAJUKQMIp0EEdGogATYCACABBEAgACgCVCgCACAAKAJUKQMIp0EEdGpCgIAENwMIIAAoAlQiASABKQMIQgF8NwMIIAAgACkDIEKAgAR8NwMgIAAoAlQoAgQgACgCVCkDCKdBA3RqIAApAyA3AwAMAgUgACgCREEOQQAQFCAAQn83A1gMBAsACwsLIAAgACgCVCkDQDcDMCAAIAAoAlQpAzggACgCVCgCBCAAKQMwp0EDdGopAwB9NwMoIABCADcDOANAIAApAzggACkDSFQEQCAAAn4gACkDSCAAKQM4fSAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVQEQCAAKQNIIAApAzh9DAELIAAoAlQoAgAgACkDMKdBBHRqKQMIIAApAyh9CzcDCCAAKAJUKAIAIAApAzCnQQR0aigCACAAKQMop2ogACgCUCAAKQM4p2ogACkDCKcQGRogACkDCCAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVEEQCAAIAApAzBCAXw3AzALIAAgACkDCCAAKQM4fDcDOCAAQgA3AygMAQsLIAAoAlQiASAAKQM4IAEpAzh8NwM4IAAoAlQgACkDMDcDQCAAKAJUKQM4IAAoAlQpAzBWBEAgACgCVCAAKAJUKQM4NwMwCyAAIAApAzg3A1gLIAApA1ghAiAAQeAAaiQAIAQgAjcDaAwBCyAEKAJQQRxBABAUIARCfzcDaAsgBCkDaCECIARB8ABqJAAgAgsHACAAKAIACxgAQaibAUIANwIAQbCbAUEANgIAQaibAQuGAQIEfwF+IwBBEGsiASQAAkAgACkDMFAEQAwBCwNAAkAgACAFQQAgAUEPaiABQQhqEIoBIgRBf0YNACABLQAPQQNHDQAgAiABKAIIQYCAgIB/cUGAgICAekZqIQILQX8hAyAEQX9GDQEgAiEDIAVCAXwiBSAAKQMwVA0ACwsgAUEQaiQAIAMLC4GNASMAQYAIC4EMaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQASW52YWxpZCBhcmd1bWVudABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABGaWxlIGFscmVhZHkgZXhpc3RzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAJXMlcyVzAGJ1ZmZlciBlcnJvcgBObyBlcnJvcgBzdHJlYW0gZXJyb3IAVGVsbCBlcnJvcgBJbnRlcm5hbCBlcnJvcgBTZWVrIGVycm9yAFdyaXRlIGVycm9yAGZpbGUgZXJyb3IAUmVhZCBlcnJvcgBabGliIGVycm9yAGRhdGEgZXJyb3IAQ1JDIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";Ou(Po)||(Po=h(Po));function Mu(d){try{if(d==Po&&z)return new Uint8Array(z);var E=xa(d);if(E)return E;if(m)return m(d);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(I){vr(I)}}function vh(d,E){var I,D,M;try{M=Mu(d),D=new WebAssembly.Module(M),I=new WebAssembly.Instance(D,E)}catch(ie){var _=ie.toString();throw k("failed to compile wasm module: "+_),(_.includes("imported Memory")||_.includes("memory import"))&&k("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ie}return[I,D]}function kh(){var d={a:Pa};function E(M,_){var ie=M.exports;t.asm=ie,A=t.asm.u,Ei(A.buffer),Qr=t.asm.pa,RA(t.asm.v),LA("wasm-instantiate")}if(NA("wasm-instantiate"),t.instantiateWasm)try{var I=t.instantiateWasm(d,E);return I}catch(M){return k("Module.instantiateWasm callback failed with error: "+M),!1}var D=vh(Po,d);return E(D[0]),t.asm}var Dr,Ae;function Do(d){for(;d.length>0;){var E=d.shift();if(typeof E=="function"){E(t);continue}var I=E.func;typeof I=="number"?E.arg===void 0?Qr.get(I)():Qr.get(I)(E.arg):I(E.arg===void 0?null:E.arg)}}function Yn(d,E){var I=new Date(fe[d>>2]*1e3);fe[E>>2]=I.getUTCSeconds(),fe[E+4>>2]=I.getUTCMinutes(),fe[E+8>>2]=I.getUTCHours(),fe[E+12>>2]=I.getUTCDate(),fe[E+16>>2]=I.getUTCMonth(),fe[E+20>>2]=I.getUTCFullYear()-1900,fe[E+24>>2]=I.getUTCDay(),fe[E+36>>2]=0,fe[E+32>>2]=0;var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[E+28>>2]=M,Yn.GMTString||(Yn.GMTString=Fe("GMT")),fe[E+40>>2]=Yn.GMTString,E}function Uu(d,E){return Yn(d,E)}var St={splitPath:function(d){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(d).slice(1)},normalizeArray:function(d,E){for(var I=0,D=d.length-1;D>=0;D--){var M=d[D];M==="."?d.splice(D,1):M===".."?(d.splice(D,1),I++):I&&(d.splice(D,1),I--)}if(E)for(;I;I--)d.unshift("..");return d},normalize:function(d){var E=d.charAt(0)==="/",I=d.substr(-1)==="/";return d=St.normalizeArray(d.split("/").filter(function(D){return!!D}),!E).join("/"),!d&&!E&&(d="."),d&&I&&(d+="/"),(E?"/":"")+d},dirname:function(d){var E=St.splitPath(d),I=E[0],D=E[1];return!I&&!D?".":(D&&(D=D.substr(0,D.length-1)),I+D)},basename:function(d){if(d==="/")return"/";d=St.normalize(d),d=d.replace(/\/$/,"");var E=d.lastIndexOf("/");return E===-1?d:d.substr(E+1)},extname:function(d){return St.splitPath(d)[3]},join:function(){var d=Array.prototype.slice.call(arguments,0);return St.normalize(d.join("/"))},join2:function(d,E){return St.normalize(d+"/"+E)}};function Vl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var d=new Uint8Array(1);return function(){return crypto.getRandomValues(d),d[0]}}else if(g)try{var E=require("crypto");return function(){return E.randomBytes(1)[0]}}catch(I){}return function(){vr("randomDevice")}}var qn={resolve:function(){for(var d="",E=!1,I=arguments.length-1;I>=-1&&!E;I--){var D=I>=0?arguments[I]:S.cwd();if(typeof D!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!D)return"";d=D+"/"+d,E=D.charAt(0)==="/"}return d=St.normalizeArray(d.split("/").filter(function(M){return!!M}),!E).join("/"),(E?"/":"")+d||"."},relative:function(d,E){d=qn.resolve(d).substr(1),E=qn.resolve(E).substr(1);function I(_e){for(var ot=0;ot<_e.length&&_e[ot]==="";ot++);for(var Bt=_e.length-1;Bt>=0&&_e[Bt]==="";Bt--);return ot>Bt?[]:_e.slice(ot,Bt-ot+1)}for(var D=I(d.split("/")),M=I(E.split("/")),_=Math.min(D.length,M.length),ie=_,we=0;we<_;we++)if(D[we]!==M[we]){ie=we;break}for(var me=[],we=ie;we0?E=D.slice(0,M).toString("utf-8"):E=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` +`));if(!E)return null;d.input=OA(E,!0)}return d.input.shift()},put_char:function(d,E){E===null||E===10?(v(Ge(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(v(Ge(d.output,0)),d.output=[])}},default_tty1_ops:{put_char:function(d,E){E===null||E===10?(k(Ge(d.output,0)),d.output=[]):E!=0&&d.output.push(E)},flush:function(d){d.output&&d.output.length>0&&(k(Ge(d.output,0)),d.output=[])}}};function ds(d){for(var E=Y(d,65536),I=Et(E);d=E)){var D=1024*1024;E=Math.max(E,I*(I>>0),I!=0&&(E=Math.max(E,256));var M=d.contents;d.contents=new Uint8Array(E),d.usedBytes>0&&d.contents.set(M.subarray(0,d.usedBytes),0)}},resizeFileStorage:function(d,E){if(d.usedBytes!=E)if(E==0)d.contents=null,d.usedBytes=0;else{var I=d.contents;d.contents=new Uint8Array(E),I&&d.contents.set(I.subarray(0,Math.min(E,d.usedBytes))),d.usedBytes=E}},node_ops:{getattr:function(d){var E={};return E.dev=S.isChrdev(d.mode)?d.id:1,E.ino=d.id,E.mode=d.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=d.rdev,S.isDir(d.mode)?E.size=4096:S.isFile(d.mode)?E.size=d.usedBytes:S.isLink(d.mode)?E.size=d.link.length:E.size=0,E.atime=new Date(d.timestamp),E.mtime=new Date(d.timestamp),E.ctime=new Date(d.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(d,E){E.mode!==void 0&&(d.mode=E.mode),E.timestamp!==void 0&&(d.timestamp=E.timestamp),E.size!==void 0&&pt.resizeFileStorage(d,E.size)},lookup:function(d,E){throw S.genericErrors[44]},mknod:function(d,E,I,D){return pt.createNode(d,E,I,D)},rename:function(d,E,I){if(S.isDir(d.mode)){var D;try{D=S.lookupNode(E,I)}catch(_){}if(D)for(var M in D.contents)throw new S.ErrnoError(55)}delete d.parent.contents[d.name],d.parent.timestamp=Date.now(),d.name=I,E.contents[I]=d,E.timestamp=d.parent.timestamp,d.parent=E},unlink:function(d,E){delete d.contents[E],d.timestamp=Date.now()},rmdir:function(d,E){var I=S.lookupNode(d,E);for(var D in I.contents)throw new S.ErrnoError(55);delete d.contents[E],d.timestamp=Date.now()},readdir:function(d){var E=[".",".."];for(var I in d.contents)!d.contents.hasOwnProperty(I)||E.push(I);return E},symlink:function(d,E,I){var D=pt.createNode(d,E,511|40960,0);return D.link=I,D},readlink:function(d){if(!S.isLink(d.mode))throw new S.ErrnoError(28);return d.link}},stream_ops:{read:function(d,E,I,D,M){var _=d.node.contents;if(M>=d.node.usedBytes)return 0;var ie=Math.min(d.node.usedBytes-M,D);if(ie>8&&_.subarray)E.set(_.subarray(M,M+ie),I);else for(var we=0;we0||D+I>2)}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}return E.mode},realPath:function(d){for(var E=[];d.parent!==d;)E.push(d.name),d=d.parent;return E.push(d.mount.opts.root),E.reverse(),St.join.apply(null,E)},flagsForNode:function(d){d&=~2097152,d&=~2048,d&=~32768,d&=~524288;var E=0;for(var I in lt.flagsForNodeMap)d&I&&(E|=lt.flagsForNodeMap[I],d^=I);if(d)throw new S.ErrnoError(28);return E},node_ops:{getattr:function(d){var E=lt.realPath(d),I;try{I=Oe.lstatSync(E)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}return lt.isWindows&&!I.blksize&&(I.blksize=4096),lt.isWindows&&!I.blocks&&(I.blocks=(I.size+I.blksize-1)/I.blksize|0),{dev:I.dev,ino:I.ino,mode:I.mode,nlink:I.nlink,uid:I.uid,gid:I.gid,rdev:I.rdev,size:I.size,atime:I.atime,mtime:I.mtime,ctime:I.ctime,blksize:I.blksize,blocks:I.blocks}},setattr:function(d,E){var I=lt.realPath(d);try{if(E.mode!==void 0&&(Oe.chmodSync(I,E.mode),d.mode=E.mode),E.timestamp!==void 0){var D=new Date(E.timestamp);Oe.utimesSync(I,D,D)}E.size!==void 0&&Oe.truncateSync(I,E.size)}catch(M){throw M.code?new S.ErrnoError(lt.convertNodeCode(M)):M}},lookup:function(d,E){var I=St.join2(lt.realPath(d),E),D=lt.getMode(I);return lt.createNode(d,E,D)},mknod:function(d,E,I,D){var M=lt.createNode(d,E,I,D),_=lt.realPath(M);try{S.isDir(M.mode)?Oe.mkdirSync(_,M.mode):Oe.writeFileSync(_,"",{mode:M.mode})}catch(ie){throw ie.code?new S.ErrnoError(lt.convertNodeCode(ie)):ie}return M},rename:function(d,E,I){var D=lt.realPath(d),M=St.join2(lt.realPath(E),I);try{Oe.renameSync(D,M)}catch(_){throw _.code?new S.ErrnoError(lt.convertNodeCode(_)):_}d.name=I},unlink:function(d,E){var I=St.join2(lt.realPath(d),E);try{Oe.unlinkSync(I)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}},rmdir:function(d,E){var I=St.join2(lt.realPath(d),E);try{Oe.rmdirSync(I)}catch(D){throw D.code?new S.ErrnoError(lt.convertNodeCode(D)):D}},readdir:function(d){var E=lt.realPath(d);try{return Oe.readdirSync(E)}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}},symlink:function(d,E,I){var D=St.join2(lt.realPath(d),E);try{Oe.symlinkSync(I,D)}catch(M){throw M.code?new S.ErrnoError(lt.convertNodeCode(M)):M}},readlink:function(d){var E=lt.realPath(d);try{return E=Oe.readlinkSync(E),E=ju.relative(ju.resolve(d.mount.opts.root),E),E}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}}},stream_ops:{open:function(d){var E=lt.realPath(d.node);try{S.isFile(d.node.mode)&&(d.nfd=Oe.openSync(E,lt.flagsForNode(d.flags)))}catch(I){throw I.code?new S.ErrnoError(lt.convertNodeCode(I)):I}},close:function(d){try{S.isFile(d.node.mode)&&d.nfd&&Oe.closeSync(d.nfd)}catch(E){throw E.code?new S.ErrnoError(lt.convertNodeCode(E)):E}},read:function(d,E,I,D,M){if(D===0)return 0;try{return Oe.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new S.ErrnoError(lt.convertNodeCode(_))}},write:function(d,E,I,D,M){try{return Oe.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M)}catch(_){throw new S.ErrnoError(lt.convertNodeCode(_))}},llseek:function(d,E,I){var D=E;if(I===1)D+=d.position;else if(I===2&&S.isFile(d.node.mode))try{var M=Oe.fstatSync(d.nfd);D+=M.size}catch(_){throw new S.ErrnoError(lt.convertNodeCode(_))}if(D<0)throw new S.ErrnoError(28);return D},mmap:function(d,E,I,D,M,_){if(E!==0)throw new S.ErrnoError(28);if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);var ie=ds(I);return lt.stream_ops.read(d,pe,ie,I,D),{ptr:ie,allocated:!0}},msync:function(d,E,I,D,M){if(!S.isFile(d.node.mode))throw new S.ErrnoError(43);if(M&2)return 0;var _=lt.stream_ops.write(d,E,0,D,I,!1);return 0}}},mn={lookupPath:function(d){return{path:d,node:{mode:lt.getMode(d)}}},createStandardStreams:function(){S.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var d=1;d<3;d++)S.streams[d]={fd:d,nfd:d,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(d,E){S.isDir(d)?Oe.mkdirSync(d,E):Oe.writeFileSync(d,"",{mode:E})},mkdir:function(){Oe.mkdirSync.apply(void 0,arguments)},symlink:function(){Oe.symlinkSync.apply(void 0,arguments)},rename:function(){Oe.renameSync.apply(void 0,arguments)},rmdir:function(){Oe.rmdirSync.apply(void 0,arguments)},readdir:function(){Oe.readdirSync.apply(void 0,arguments)},unlink:function(){Oe.unlinkSync.apply(void 0,arguments)},readlink:function(){return Oe.readlinkSync.apply(void 0,arguments)},stat:function(){return Oe.statSync.apply(void 0,arguments)},lstat:function(){return Oe.lstatSync.apply(void 0,arguments)},chmod:function(){Oe.chmodSync.apply(void 0,arguments)},fchmod:function(){Oe.fchmodSync.apply(void 0,arguments)},chown:function(){Oe.chownSync.apply(void 0,arguments)},fchown:function(){Oe.fchownSync.apply(void 0,arguments)},truncate:function(){Oe.truncateSync.apply(void 0,arguments)},ftruncate:function(d,E){if(E<0)throw new S.ErrnoError(28);Oe.ftruncateSync.apply(void 0,arguments)},utime:function(){Oe.utimesSync.apply(void 0,arguments)},open:function(d,E,I,D){typeof E=="string"&&(E=to.modeStringToFlags(E));var M=Oe.openSync(d,lt.flagsForNode(E),I),_=D!=null?D:S.nextfd(M),ie={fd:_,nfd:M,position:0,path:d,flags:E,seekable:!0};return S.streams[_]=ie,ie},close:function(d){d.stream_ops||Oe.closeSync(d.nfd),S.closeStream(d.fd)},llseek:function(d,E,I){if(d.stream_ops)return to.llseek(d,E,I);var D=E;if(I===1)D+=d.position;else if(I===2)D+=Oe.fstatSync(d.nfd).size;else if(I!==0)throw new S.ErrnoError(Ro.EINVAL);if(D<0)throw new S.ErrnoError(Ro.EINVAL);return d.position=D,D},read:function(d,E,I,D,M){if(d.stream_ops)return to.read(d,E,I,D,M);var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ie=Oe.readSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ie),ie},write:function(d,E,I,D,M){if(d.stream_ops)return to.write(d,E,I,D,M);d.flags&+"1024"&&S.llseek(d,0,+"2");var _=typeof M!="undefined";!_&&d.seekable&&(M=d.position);var ie=Oe.writeSync(d.nfd,lt.bufferFrom(E.buffer),I,D,M);return _||(d.position+=ie),ie},allocate:function(){throw new S.ErrnoError(Ro.EOPNOTSUPP)},mmap:function(d,E,I,D,M,_){if(d.stream_ops)return to.mmap(d,E,I,D,M,_);if(E!==0)throw new S.ErrnoError(28);var ie=ds(I);return S.read(d,pe,ie,I,D),{ptr:ie,allocated:!0}},msync:function(d,E,I,D,M){return d.stream_ops?to.msync(d,E,I,D,M):(M&2||S.write(d,E,0,D,I),0)},munmap:function(){return 0},ioctl:function(){throw new S.ErrnoError(Ro.ENOTTY)}},S={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(d,E){if(d=qn.resolve(S.cwd(),d),E=E||{},!d)return{path:"",node:null};var I={follow_mount:!0,recurse_count:0};for(var D in I)E[D]===void 0&&(E[D]=I[D]);if(E.recurse_count>8)throw new S.ErrnoError(32);for(var M=St.normalizeArray(d.split("/").filter(function(ut){return!!ut}),!1),_=S.root,ie="/",we=0;we40)throw new S.ErrnoError(32)}}return{path:ie,node:_}},getPath:function(d){for(var E;;){if(S.isRoot(d)){var I=d.mount.mountpoint;return E?I[I.length-1]!=="/"?I+"/"+E:I+E:I}E=E?d.name+"/"+E:d.name,d=d.parent}},hashName:function(d,E){for(var I=0,D=0;D>>0)%S.nameTable.length},hashAddNode:function(d){var E=S.hashName(d.parent.id,d.name);d.name_next=S.nameTable[E],S.nameTable[E]=d},hashRemoveNode:function(d){var E=S.hashName(d.parent.id,d.name);if(S.nameTable[E]===d)S.nameTable[E]=d.name_next;else for(var I=S.nameTable[E];I;){if(I.name_next===d){I.name_next=d.name_next;break}I=I.name_next}},lookupNode:function(d,E){var I=S.mayLookup(d);if(I)throw new S.ErrnoError(I,d);for(var D=S.hashName(d.id,E),M=S.nameTable[D];M;M=M.name_next){var _=M.name;if(M.parent.id===d.id&&_===E)return M}return S.lookup(d,E)},createNode:function(d,E,I,D){var M=new S.FSNode(d,E,I,D);return S.hashAddNode(M),M},destroyNode:function(d){S.hashRemoveNode(d)},isRoot:function(d){return d===d.parent},isMountpoint:function(d){return!!d.mounted},isFile:function(d){return(d&61440)==32768},isDir:function(d){return(d&61440)==16384},isLink:function(d){return(d&61440)==40960},isChrdev:function(d){return(d&61440)==8192},isBlkdev:function(d){return(d&61440)==24576},isFIFO:function(d){return(d&61440)==4096},isSocket:function(d){return(d&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(d){var E=S.flagModes[d];if(typeof E=="undefined")throw new Error("Unknown file open mode: "+d);return E},flagsToPermissionString:function(d){var E=["r","w","rw"][d&3];return d&512&&(E+="w"),E},nodePermissions:function(d,E){return S.ignorePermissions?0:E.includes("r")&&!(d.mode&292)||E.includes("w")&&!(d.mode&146)||E.includes("x")&&!(d.mode&73)?2:0},mayLookup:function(d){var E=S.nodePermissions(d,"x");return E||(d.node_ops.lookup?0:2)},mayCreate:function(d,E){try{var I=S.lookupNode(d,E);return 20}catch(D){}return S.nodePermissions(d,"wx")},mayDelete:function(d,E,I){var D;try{D=S.lookupNode(d,E)}catch(_){return _.errno}var M=S.nodePermissions(d,"wx");if(M)return M;if(I){if(!S.isDir(D.mode))return 54;if(S.isRoot(D)||S.getPath(D)===S.cwd())return 10}else if(S.isDir(D.mode))return 31;return 0},mayOpen:function(d,E){return d?S.isLink(d.mode)?32:S.isDir(d.mode)&&(S.flagsToPermissionString(E)!=="r"||E&512)?31:S.nodePermissions(d,S.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(d,E){d=d||0,E=E||S.MAX_OPEN_FDS;for(var I=d;I<=E;I++)if(!S.streams[I])return I;throw new S.ErrnoError(33)},getStream:function(d){return S.streams[d]},createStream:function(d,E,I){S.FSStream||(S.FSStream=function(){},S.FSStream.prototype={object:{get:function(){return this.node},set:function(ie){this.node=ie}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var D=new S.FSStream;for(var M in d)D[M]=d[M];d=D;var _=S.nextfd(E,I);return d.fd=_,S.streams[_]=d,d},closeStream:function(d){S.streams[d]=null},chrdev_stream_ops:{open:function(d){var E=S.getDevice(d.node.rdev);d.stream_ops=E.stream_ops,d.stream_ops.open&&d.stream_ops.open(d)},llseek:function(){throw new S.ErrnoError(70)}},major:function(d){return d>>8},minor:function(d){return d&255},makedev:function(d,E){return d<<8|E},registerDevice:function(d,E){S.devices[d]={stream_ops:E}},getDevice:function(d){return S.devices[d]},getMounts:function(d){for(var E=[],I=[d];I.length;){var D=I.pop();E.push(D),I.push.apply(I,D.mounts)}return E},syncfs:function(d,E){typeof d=="function"&&(E=d,d=!1),S.syncFSRequests++,S.syncFSRequests>1&&k("warning: "+S.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var I=S.getMounts(S.root.mount),D=0;function M(ie){return S.syncFSRequests--,E(ie)}function _(ie){if(ie)return _.errored?void 0:(_.errored=!0,M(ie));++D>=I.length&&M(null)}I.forEach(function(ie){if(!ie.type.syncfs)return _(null);ie.type.syncfs(ie,d,_)})},mount:function(d,E,I){var D=I==="/",M=!I,_;if(D&&S.root)throw new S.ErrnoError(10);if(!D&&!M){var ie=S.lookupPath(I,{follow_mount:!1});if(I=ie.path,_=ie.node,S.isMountpoint(_))throw new S.ErrnoError(10);if(!S.isDir(_.mode))throw new S.ErrnoError(54)}var we={type:d,opts:E,mountpoint:I,mounts:[]},me=d.mount(we);return me.mount=we,we.root=me,D?S.root=me:_&&(_.mounted=we,_.mount&&_.mount.mounts.push(we)),me},unmount:function(d){var E=S.lookupPath(d,{follow_mount:!1});if(!S.isMountpoint(E.node))throw new S.ErrnoError(28);var I=E.node,D=I.mounted,M=S.getMounts(D);Object.keys(S.nameTable).forEach(function(ie){for(var we=S.nameTable[ie];we;){var me=we.name_next;M.includes(we.mount)&&S.destroyNode(we),we=me}}),I.mounted=null;var _=I.mount.mounts.indexOf(D);I.mount.mounts.splice(_,1)},lookup:function(d,E){return d.node_ops.lookup(d,E)},mknod:function(d,E,I){var D=S.lookupPath(d,{parent:!0}),M=D.node,_=St.basename(d);if(!_||_==="."||_==="..")throw new S.ErrnoError(28);var ie=S.mayCreate(M,_);if(ie)throw new S.ErrnoError(ie);if(!M.node_ops.mknod)throw new S.ErrnoError(63);return M.node_ops.mknod(M,_,E,I)},create:function(d,E){return E=E!==void 0?E:438,E&=4095,E|=32768,S.mknod(d,E,0)},mkdir:function(d,E){return E=E!==void 0?E:511,E&=511|512,E|=16384,S.mknod(d,E,0)},mkdirTree:function(d,E){for(var I=d.split("/"),D="",M=0;Mthis.length-1||ut<0)){var st=ut%this.chunkSize,yt=ut/this.chunkSize|0;return this.getter(yt)[st]}},_.prototype.setDataGetter=function(ut){this.getter=ut},_.prototype.cacheLength=function(){var ut=new XMLHttpRequest;if(ut.open("HEAD",I,!1),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+I+". Status: "+ut.status);var st=Number(ut.getResponseHeader("Content-length")),yt,ke=(yt=ut.getResponseHeader("Accept-Ranges"))&&yt==="bytes",zn=(yt=ut.getResponseHeader("Content-Encoding"))&&yt==="gzip",Mi=1024*1024;ke||(Mi=st);var jA=function(Cs,Da){if(Cs>Da)throw new Error("invalid range ("+Cs+", "+Da+") or no bytes requested!");if(Da>st-1)throw new Error("only "+st+" bytes available! programmer error!");var qr=new XMLHttpRequest;if(qr.open("GET",I,!1),st!==Mi&&qr.setRequestHeader("Range","bytes="+Cs+"-"+Da),typeof Uint8Array!="undefined"&&(qr.responseType="arraybuffer"),qr.overrideMimeType&&qr.overrideMimeType("text/plain; charset=x-user-defined"),qr.send(null),!(qr.status>=200&&qr.status<300||qr.status===304))throw new Error("Couldn't load "+I+". Status: "+qr.status);return qr.response!==void 0?new Uint8Array(qr.response||[]):OA(qr.responseText||"",!0)},Yr=this;Yr.setDataGetter(function(Cs){var Da=Cs*Mi,qr=(Cs+1)*Mi-1;if(qr=Math.min(qr,st-1),typeof Yr.chunks[Cs]=="undefined"&&(Yr.chunks[Cs]=jA(Da,qr)),typeof Yr.chunks[Cs]=="undefined")throw new Error("doXHR failed!");return Yr.chunks[Cs]}),(zn||!st)&&(Mi=st=1,st=this.getter(0).length,Mi=st,v("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=st,this._chunkSize=Mi,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ie=new _;Object.defineProperties(ie,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var we={isDevice:!1,contents:ie}}else var we={isDevice:!1,url:I};var me=S.createFile(d,E,we,D,M);we.contents?me.contents=we.contents:we.url&&(me.contents=null,me.url=we.url),Object.defineProperties(me,{usedBytes:{get:function(){return this.contents.length}}});var _e={},ot=Object.keys(me.stream_ops);return ot.forEach(function(Bt){var ut=me.stream_ops[Bt];_e[Bt]=function(){return S.forceLoadFile(me),ut.apply(null,arguments)}}),_e.read=function(ut,st,yt,ke,zn){S.forceLoadFile(me);var Mi=ut.node.contents;if(zn>=Mi.length)return 0;var jA=Math.min(Mi.length-zn,ke);if(Mi.slice)for(var Yr=0;Yr>2]=D.dev,fe[I+4>>2]=0,fe[I+8>>2]=D.ino,fe[I+12>>2]=D.mode,fe[I+16>>2]=D.nlink,fe[I+20>>2]=D.uid,fe[I+24>>2]=D.gid,fe[I+28>>2]=D.rdev,fe[I+32>>2]=0,Ae=[D.size>>>0,(Dr=D.size,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[I+40>>2]=Ae[0],fe[I+44>>2]=Ae[1],fe[I+48>>2]=4096,fe[I+52>>2]=D.blocks,fe[I+56>>2]=D.atime.getTime()/1e3|0,fe[I+60>>2]=0,fe[I+64>>2]=D.mtime.getTime()/1e3|0,fe[I+68>>2]=0,fe[I+72>>2]=D.ctime.getTime()/1e3|0,fe[I+76>>2]=0,Ae=[D.ino>>>0,(Dr=D.ino,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[I+80>>2]=Ae[0],fe[I+84>>2]=Ae[1],0},doMsync:function(d,E,I,D,M){var _=V.slice(d,d+I);S.msync(E,_,M,I,D)},doMkdir:function(d,E){return d=St.normalize(d),d[d.length-1]==="/"&&(d=d.substr(0,d.length-1)),S.mkdir(d,E,0),0},doMknod:function(d,E,I){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return S.mknod(d,E,I),0},doReadlink:function(d,E,I){if(I<=0)return-28;var D=S.readlink(d),M=Math.min(I,he(D)),_=pe[E+M];return be(D,E,I+1),pe[E+M]=_,M},doAccess:function(d,E){if(E&~7)return-28;var I,D=S.lookupPath(d,{follow:!0});if(I=D.node,!I)return-44;var M="";return E&4&&(M+="r"),E&2&&(M+="w"),E&1&&(M+="x"),M&&S.nodePermissions(I,M)?-2:0},doDup:function(d,E,I){var D=S.getStream(I);return D&&S.close(D),S.open(d,E,0,I,I).fd},doReadv:function(d,E,I,D){for(var M=0,_=0;_>2],we=fe[E+(_*8+4)>>2],me=S.read(d,pe,ie,we,D);if(me<0)return-1;if(M+=me,me>2],we=fe[E+(_*8+4)>>2],me=S.write(d,pe,ie,we,D);if(me<0)return-1;M+=me}return M},varargs:void 0,get:function(){Tt.varargs+=4;var d=fe[Tt.varargs-4>>2];return d},getStr:function(d){var E=re(d);return E},getStreamFromFD:function(d){var E=S.getStream(d);if(!E)throw new S.ErrnoError(8);return E},get64:function(d,E){return d}};function Ku(d,E){try{return d=Tt.getStr(d),S.chmod(d,E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function Xl(d){return fe[Rt()>>2]=d,d}function xh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 0:{var M=Tt.get();if(M<0)return-28;var _;return _=S.open(D.path,D.flags,0,M),_.fd}case 1:case 2:return 0;case 3:return D.flags;case 4:{var M=Tt.get();return D.flags|=M,0}case 12:{var M=Tt.get(),ie=0;return Qe[M+ie>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Xl(28),-1;default:return-28}}catch(we){return(typeof S=="undefined"||!(we instanceof S.ErrnoError))&&vr(we),-we.errno}}function Ph(d,E){try{var I=Tt.getStreamFromFD(d);return Tt.doStat(S.stat,I.path,E)}catch(D){return(typeof S=="undefined"||!(D instanceof S.ErrnoError))&&vr(D),-D.errno}}function Dh(d,E,I){Tt.varargs=I;try{var D=Tt.getStreamFromFD(d);switch(E){case 21509:case 21505:return D.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return D.tty?0:-59;case 21519:{if(!D.tty)return-59;var M=Tt.get();return fe[M>>2]=0,0}case 21520:return D.tty?-28:-59;case 21531:{var M=Tt.get();return S.ioctl(D,E,M)}case 21523:return D.tty?0:-59;case 21524:return D.tty?0:-59;default:vr("bad ioctl syscall "+E)}}catch(_){return(typeof S=="undefined"||!(_ instanceof S.ErrnoError))&&vr(_),-_.errno}}function Rh(d,E,I){Tt.varargs=I;try{var D=Tt.getStr(d),M=I?Tt.get():0,_=S.open(D,E,M);return _.fd}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),-ie.errno}}function Fh(d,E){try{return d=Tt.getStr(d),E=Tt.getStr(E),S.rename(d,E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function j(d){try{return d=Tt.getStr(d),S.rmdir(d),0}catch(E){return(typeof S=="undefined"||!(E instanceof S.ErrnoError))&&vr(E),-E.errno}}function wt(d,E){try{return d=Tt.getStr(d),Tt.doStat(S.stat,d,E)}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),-I.errno}}function TA(d){try{return d=Tt.getStr(d),S.unlink(d),0}catch(E){return(typeof S=="undefined"||!(E instanceof S.ErrnoError))&&vr(E),-E.errno}}function $i(d,E,I){V.copyWithin(d,E,E+I)}function Zl(d){try{return A.grow(d-ve.byteLength+65535>>>16),Ei(A.buffer),1}catch(E){}}function $e(d){var E=V.length;d=d>>>0;var I=2147483648;if(d>I)return!1;for(var D=1;D<=4;D*=2){var M=E*(1+.2/D);M=Math.min(M,d+100663296);var _=Math.min(I,xe(Math.max(d,M),65536)),ie=Zl(_);if(ie)return!0}return!1}function va(d){try{var E=Tt.getStreamFromFD(d);return S.close(E),0}catch(I){return(typeof S=="undefined"||!(I instanceof S.ErrnoError))&&vr(I),I.errno}}function Hu(d,E){try{var I=Tt.getStreamFromFD(d),D=I.tty?2:S.isDir(I.mode)?3:S.isLink(I.mode)?7:4;return pe[E>>0]=D,0}catch(M){return(typeof S=="undefined"||!(M instanceof S.ErrnoError))&&vr(M),M.errno}}function wE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doReadv(M,E,I);return fe[D>>2]=_,0}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),ie.errno}}function Nh(d,E,I,D,M){try{var _=Tt.getStreamFromFD(d),ie=4294967296,we=I*ie+(E>>>0),me=9007199254740992;return we<=-me||we>=me?-61:(S.llseek(_,we,D),Ae=[_.position>>>0,(Dr=_.position,+Math.abs(Dr)>=1?Dr>0?(Math.min(+Math.floor(Dr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Dr-+(~~Dr>>>0))/4294967296)>>>0:0)],fe[M>>2]=Ae[0],fe[M+4>>2]=Ae[1],_.getdents&&we===0&&D===0&&(_.getdents=null),0)}catch(_e){return(typeof S=="undefined"||!(_e instanceof S.ErrnoError))&&vr(_e),_e.errno}}function BE(d,E,I,D){try{var M=Tt.getStreamFromFD(d),_=Tt.doWritev(M,E,I);return fe[D>>2]=_,0}catch(ie){return(typeof S=="undefined"||!(ie instanceof S.ErrnoError))&&vr(ie),ie.errno}}function gr(d){$(d)}function Jn(d){var E=Date.now()/1e3|0;return d&&(fe[d>>2]=E),E}function $l(){if($l.called)return;$l.called=!0;var d=new Date().getFullYear(),E=new Date(d,0,1),I=new Date(d,6,1),D=E.getTimezoneOffset(),M=I.getTimezoneOffset(),_=Math.max(D,M);fe[_b()>>2]=_*60,fe[zb()>>2]=Number(D!=M);function ie(Bt){var ut=Bt.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ut?ut[1]:"GMT"}var we=ie(E),me=ie(I),_e=Fe(we),ot=Fe(me);M>2]=_e,fe[zu()+4>>2]=ot):(fe[zu()>>2]=ot,fe[zu()+4>>2]=_e)}function Lh(d){$l();var E=Date.UTC(fe[d+20>>2]+1900,fe[d+16>>2],fe[d+12>>2],fe[d+8>>2],fe[d+4>>2],fe[d>>2],0),I=new Date(E);fe[d+24>>2]=I.getUTCDay();var D=Date.UTC(I.getUTCFullYear(),0,1,0,0,0,0),M=(I.getTime()-D)/(1e3*60*60*24)|0;return fe[d+28>>2]=M,I.getTime()/1e3|0}var eo=function(d,E,I,D){d||(d=this),this.parent=d,this.mount=d.mount,this.mounted=null,this.id=S.nextInode++,this.name=E,this.mode=I,this.node_ops={},this.stream_ops={},this.rdev=D},ka=292|73,En=146;if(Object.defineProperties(eo.prototype,{read:{get:function(){return(this.mode&ka)===ka},set:function(d){d?this.mode|=ka:this.mode&=~ka}},write:{get:function(){return(this.mode&En)===En},set:function(d){d?this.mode|=En:this.mode&=~En}},isFolder:{get:function(){return S.isDir(this.mode)}},isDevice:{get:function(){return S.isChrdev(this.mode)}}}),S.FSNode=eo,S.staticInit(),g){var Oe=D5,ju=require("path");lt.staticInit()}if(g){var ec=function(d){return function(){try{return d.apply(this,arguments)}catch(E){throw E.code?new S.ErrnoError(Ro[E.code]):E}}},to=Object.assign({},S);for(var tc in mn)S[tc]=ec(mn[tc])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function OA(d,E,I){var D=I>0?I:he(d)+1,M=new Array(D),_=se(d,M,0,M.length);return E&&(M.length=_),M}var Gu=typeof atob=="function"?atob:function(d){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",I="",D,M,_,ie,we,me,_e,ot=0;d=d.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ie=E.indexOf(d.charAt(ot++)),we=E.indexOf(d.charAt(ot++)),me=E.indexOf(d.charAt(ot++)),_e=E.indexOf(d.charAt(ot++)),D=ie<<2|we>>4,M=(we&15)<<4|me>>2,_=(me&3)<<6|_e,I=I+String.fromCharCode(D),me!==64&&(I=I+String.fromCharCode(M)),_e!==64&&(I=I+String.fromCharCode(_));while(ot0||(Sr(),hs>0))return;function E(){Ke||(Ke=!0,t.calledRun=!0,!oe&&(Gn(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),fs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=HA,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return HA(),e}}();typeof Yw=="object"&&typeof GP=="object"?GP.exports=YP:typeof define=="function"&&define.amd?define([],function(){return YP}):typeof Yw=="object"&&(Yw.createModule=YP)});var i9=w((Tst,r9)=>{function jPe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var GPe=Array.isArray;n9.exports=GPe});var c9=w((Mst,s9)=>{var o9=Wc(),YPe=i9(),qPe=Hs(),JPe=yd(),WPe=1/0,a9=o9?o9.prototype:void 0,A9=a9?a9.toString:void 0;function l9(r){if(typeof r=="string")return r;if(qPe(r))return YPe(r,l9)+"";if(JPe(r))return A9?A9.call(r):"";var e=r+"";return e=="0"&&1/r==-WPe?"-0":e}s9.exports=l9});var cf=w((Ust,u9)=>{var zPe=c9();function _Pe(r){return r==null?"":zPe(r)}u9.exports=_Pe});var XP=w((Kst,g9)=>{function VPe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var XPe=XP();function ZPe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:XPe(r,e,t)}f9.exports=ZPe});var ZP=w((jst,p9)=>{var $Pe="\\ud800-\\udfff",eDe="\\u0300-\\u036f",tDe="\\ufe20-\\ufe2f",rDe="\\u20d0-\\u20ff",iDe=eDe+tDe+rDe,nDe="\\ufe0e\\ufe0f",sDe="\\u200d",oDe=RegExp("["+sDe+$Pe+iDe+nDe+"]");function aDe(r){return oDe.test(r)}p9.exports=aDe});var C9=w((Gst,d9)=>{function ADe(r){return r.split("")}d9.exports=ADe});var Q9=w((Yst,m9)=>{var E9="\\ud800-\\udfff",lDe="\\u0300-\\u036f",cDe="\\ufe20-\\ufe2f",uDe="\\u20d0-\\u20ff",gDe=lDe+cDe+uDe,fDe="\\ufe0e\\ufe0f",hDe="["+E9+"]",$P="["+gDe+"]",eD="\\ud83c[\\udffb-\\udfff]",pDe="(?:"+$P+"|"+eD+")",I9="[^"+E9+"]",y9="(?:\\ud83c[\\udde6-\\uddff]){2}",w9="[\\ud800-\\udbff][\\udc00-\\udfff]",dDe="\\u200d",B9=pDe+"?",b9="["+fDe+"]?",CDe="(?:"+dDe+"(?:"+[I9,y9,w9].join("|")+")"+b9+B9+")*",mDe=b9+B9+CDe,EDe="(?:"+[I9+$P+"?",$P,y9,w9,hDe].join("|")+")",IDe=RegExp(eD+"(?="+eD+")|"+EDe+mDe,"g");function yDe(r){return r.match(IDe)||[]}m9.exports=yDe});var v9=w((qst,S9)=>{var wDe=C9(),BDe=ZP(),bDe=Q9();function QDe(r){return BDe(r)?bDe(r):wDe(r)}S9.exports=QDe});var x9=w((Jst,k9)=>{var SDe=h9(),vDe=ZP(),kDe=v9(),xDe=cf();function PDe(r){return function(e){e=xDe(e);var t=vDe(e)?kDe(e):void 0,i=t?t[0]:e.charAt(0),n=t?SDe(t,1).join(""):e.slice(1);return i[r]()+n}}k9.exports=PDe});var D9=w((Wst,P9)=>{var DDe=x9(),RDe=DDe("toUpperCase");P9.exports=RDe});var $w=w((zst,R9)=>{var FDe=cf(),NDe=D9();function LDe(r){return NDe(FDe(r).toLowerCase())}R9.exports=LDe});var F9=w((_st,eB)=>{function TDe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,m=15,y=16,b=17,v=0,k=1,T=2,Y=3,q=4;function $(A,oe){return 55296<=A.charCodeAt(oe)&&A.charCodeAt(oe)<=56319&&56320<=A.charCodeAt(oe+1)&&A.charCodeAt(oe+1)<=57343}function z(A,oe){oe===void 0&&(oe=0);var ce=A.charCodeAt(oe);if(55296<=ce&&ce<=56319&&oe=1){var Z=A.charCodeAt(oe-1),O=ce;return 55296<=Z&&Z<=56319?(Z-55296)*1024+(O-56320)+65536:O}return ce}function ne(A,oe,ce){var Z=[A].concat(oe).concat([ce]),O=Z[Z.length-2],L=ce,de=Z.lastIndexOf(p);if(de>1&&Z.slice(1,de).every(function(re){return re==i})&&[i,h,b].indexOf(A)==-1)return T;var Be=Z.lastIndexOf(n);if(Be>0&&Z.slice(1,Be).every(function(re){return re==n})&&[f,n].indexOf(O)==-1)return Z.filter(function(re){return re==n}).length%2==1?Y:q;if(O==r&&L==e)return v;if(O==t||O==r||O==e)return L==p&&oe.every(function(re){return re==i})?T:k;if(L==t||L==r||L==e)return k;if(O==o&&(L==o||L==a||L==c||L==u))return v;if((O==c||O==a)&&(L==a||L==l))return v;if((O==u||O==l)&&L==l)return v;if(L==i||L==m)return v;if(L==s)return v;if(O==f)return v;var Ge=Z.indexOf(i)!=-1?Z.lastIndexOf(i)-1:Z.length-2;return[h,b].indexOf(Z[Ge])!=-1&&Z.slice(Ge+1,-1).every(function(re){return re==i})&&L==p||O==m&&[y,b].indexOf(L)!=-1?v:oe.indexOf(n)!=-1?T:O==n&&L==n?v:k}this.nextBreak=function(A,oe){if(oe===void 0&&(oe=0),oe<0)return 0;if(oe>=A.length-1)return A.length;for(var ce=ee(z(A,oe)),Z=[],O=oe+1;O{var ODe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,tB;function MDe(){if(tB)return tB;if(typeof Intl.Segmenter!="undefined"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return tB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=F9(),e=new r;return tB=t=>e.splitGraphemes(t)}}N9.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(ODe)||[r,r,void 0],l=MDe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var uf=w((Qot,_9)=>{"use strict";var V9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),bot=_9.exports=r=>r?Object.keys(r).map(e=>[V9.has(e)?V9.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var gf=w((Sot,X9)=>{"use strict";var XDe=require("events"),Z9=require("stream"),Jd=bp(),$9=require("string_decoder").StringDecoder,cA=Symbol("EOF"),Wd=Symbol("maybeEmitEnd"),yl=Symbol("emittedEnd"),aB=Symbol("emittingEnd"),AB=Symbol("closed"),e_=Symbol("read"),nD=Symbol("flush"),t_=Symbol("flushChunk"),Ln=Symbol("encoding"),uA=Symbol("decoder"),lB=Symbol("flowing"),zd=Symbol("paused"),_d=Symbol("resume"),pn=Symbol("bufferLength"),r_=Symbol("bufferPush"),sD=Symbol("bufferShift"),_i=Symbol("objectMode"),Vi=Symbol("destroyed"),i_=global._MP_NO_ITERATOR_SYMBOLS_!=="1",ZDe=i_&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),$De=i_&&Symbol.iterator||Symbol("iterator not implemented"),n_=r=>r==="end"||r==="finish"||r==="prefinish",eRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,tRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r);X9.exports=class s_ extends Z9{constructor(e){super();this[lB]=!1,this[zd]=!1,this.pipes=new Jd,this.buffer=new Jd,this[_i]=e&&e.objectMode||!1,this[_i]?this[Ln]=null:this[Ln]=e&&e.encoding||null,this[Ln]==="buffer"&&(this[Ln]=null),this[uA]=this[Ln]?new $9(this[Ln]):null,this[cA]=!1,this[yl]=!1,this[aB]=!1,this[AB]=!1,this.writable=!0,this.readable=!0,this[pn]=0,this[Vi]=!1}get bufferLength(){return this[pn]}get encoding(){return this[Ln]}set encoding(e){if(this[_i])throw new Error("cannot set encoding in objectMode");if(this[Ln]&&e!==this[Ln]&&(this[uA]&&this[uA].lastNeed||this[pn]))throw new Error("cannot change encoding");this[Ln]!==e&&(this[uA]=e?new $9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[uA].write(t)))),this[Ln]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[_i]}set objectMode(e){this[_i]=this[_i]||!!e}write(e,t,i){if(this[cA])throw new Error("write after end");return this[Vi]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8"),!this[_i]&&!Buffer.isBuffer(e)&&(tRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):eRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[_i]&&!(t===this[Ln]&&!this[uA].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Ln]&&(e=this[uA].write(e)),this.flowing?(this[pn]!==0&&this[nD](!0),this.emit("data",e)):this[r_](e),this[pn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Vi])return null;try{return this[pn]===0||e===0||e>this[pn]?null:(this[_i]&&(e=null),this.buffer.length>1&&!this[_i]&&(this.encoding?this.buffer=new Jd([Array.from(this.buffer).join("")]):this.buffer=new Jd([Buffer.concat(Array.from(this.buffer),this[pn])])),this[e_](e||null,this.buffer.head.value))}finally{this[Wd]()}}[e_](e,t){return e===t.length||e===null?this[sD]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[pn]-=e),this.emit("data",t),!this.buffer.length&&!this[cA]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[cA]=!0,this.writable=!1,(this.flowing||!this[zd])&&this[Wd](),this}[_d](){this[Vi]||(this[zd]=!1,this[lB]=!0,this.emit("resume"),this.buffer.length?this[nD]():this[cA]?this[Wd]():this.emit("drain"))}resume(){return this[_d]()}pause(){this[lB]=!1,this[zd]=!0}get destroyed(){return this[Vi]}get flowing(){return this[lB]}get paused(){return this[zd]}[r_](e){return this[_i]?this[pn]+=1:this[pn]+=e.length,this.buffer.push(e)}[sD](){return this.buffer.length&&(this[_i]?this[pn]-=1:this[pn]-=this.buffer.head.value.length),this.buffer.shift()}[nD](e){do;while(this[t_](this[sD]()));!e&&!this.buffer.length&&!this[cA]&&this.emit("drain")}[t_](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Vi])return;let i=this[yl];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=t.end!==!1;let n={dest:e,opts:t,ondrain:s=>this[_d]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[_d](),i&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[_d]():n_(e)&&this[yl]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[yl]}[Wd](){!this[aB]&&!this[yl]&&!this[Vi]&&this.buffer.length===0&&this[cA]&&(this[aB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[AB]&&this.emit("close"),this[aB]=!1)}emit(e,t){if(e!=="error"&&e!=="close"&&e!==Vi&&this[Vi])return;if(e==="data"){if(!t)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(t)===!1&&this.pause())}else if(e==="end"){if(this[yl]===!0)return;this[yl]=!0,this.readable=!1,this[uA]&&(t=this[uA].end(),t&&(this.pipes.forEach(n=>n.dest.write(t)),super.emit("data",t))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[AB]=!0,!this[yl]&&!this[Vi]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=t,arguments.length>2)for(let n=2;n{e.push(i),this[_i]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[_i]?Promise.reject(new Error("cannot concat in objectMode")):this[Ln]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Vi,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>t(i))})}[ZDe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[cA])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[cA]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Vi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[$De](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Vi]?(e?this.emit("error",e):this.emit(Vi),this):(this[Vi]=!0,this.buffer=new Jd,this[pn]=0,typeof this.close=="function"&&!this[AB]&&this.close(),e?this.emit("error",e):this.emit(Vi),this)}static isStream(e){return!!e&&(e instanceof s_||e instanceof Z9||e instanceof XDe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var a_=w((vot,o_)=>{var rRe=require("zlib").constants||{ZLIB_VERNUM:4736};o_.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},rRe))});var hD=w(as=>{"use strict";var oD=require("assert"),wl=require("buffer").Buffer,A_=require("zlib"),$c=as.constants=a_(),iRe=gf(),l_=wl.concat,eu=Symbol("_superWrite"),Vd=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},nRe=Symbol("opts"),Xd=Symbol("flushFlag"),c_=Symbol("finishFlushFlag"),aD=Symbol("fullFlushFlag"),pr=Symbol("handle"),cB=Symbol("onError"),ff=Symbol("sawError"),AD=Symbol("level"),lD=Symbol("strategy"),cD=Symbol("ended"),kot=Symbol("_defaultFullFlush"),uD=class extends iRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[ff]=!1,this[cD]=!1,this[nRe]=e,this[Xd]=e.flush,this[c_]=e.finishFlush;try{this[pr]=new A_[t](e)}catch(i){throw new Vd(i)}this[cB]=i=>{this[ff]||(this[ff]=!0,this.close(),this.emit("error",i))},this[pr].on("error",i=>this[cB](new Vd(i))),this.once("end",()=>this.close)}close(){this[pr]&&(this[pr].close(),this[pr]=null,this.emit("close"))}reset(){if(!this[ff])return oD(this[pr],"zlib binding closed"),this[pr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[aD]),this.write(Object.assign(wl.alloc(0),{[Xd]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[c_]),this[cD]=!0,super.end(null,null,i)}get ended(){return this[cD]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=wl.from(e,t)),this[ff])return;oD(this[pr],"zlib binding closed");let n=this[pr]._handle,s=n.close;n.close=()=>{};let o=this[pr].close;this[pr].close=()=>{},wl.concat=c=>c;let a;try{let c=typeof e[Xd]=="number"?e[Xd]:this[Xd];a=this[pr]._processChunk(e,c),wl.concat=l_}catch(c){wl.concat=l_,this[cB](new Vd(c))}finally{this[pr]&&(this[pr]._handle=n,n.close=s,this[pr].close=o,this[pr].removeAllListeners("error"))}this[pr]&&this[pr].on("error",c=>this[cB](new Vd(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[eu](wl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[pr].params(e,t)}finally{this[pr].flush=i}this[pr]&&(this[AD]=e,this[lD]=t)}}}},u_=class extends Bl{constructor(e){super(e,"Deflate")}},g_=class extends Bl{constructor(e){super(e,"Inflate")}},gD=Symbol("_portable"),f_=class extends Bl{constructor(e){super(e,"Gzip");this[gD]=e&&!!e.portable}[eu](e){return this[gD]?(this[gD]=!1,e[9]=255,super[eu](e)):super[eu](e)}},h_=class extends Bl{constructor(e){super(e,"Gunzip")}},p_=class extends Bl{constructor(e){super(e,"DeflateRaw")}},d_=class extends Bl{constructor(e){super(e,"InflateRaw")}},C_=class extends Bl{constructor(e){super(e,"Unzip")}},fD=class extends uD{constructor(e,t){e=e||{},e.flush=e.flush||$c.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||$c.BROTLI_OPERATION_FINISH,super(e,t),this[aD]=$c.BROTLI_OPERATION_FLUSH}},m_=class extends fD{constructor(e){super(e,"BrotliCompress")}},E_=class extends fD{constructor(e){super(e,"BrotliDecompress")}};as.Deflate=u_;as.Inflate=g_;as.Gzip=f_;as.Gunzip=h_;as.DeflateRaw=p_;as.InflateRaw=d_;as.Unzip=C_;typeof A_.BrotliCompress=="function"?(as.BrotliCompress=m_,as.BrotliDecompress=E_):as.BrotliCompress=as.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Zd=w(uB=>{"use strict";uB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);uB.code=new Map(Array.from(uB.name).map(r=>[r[1],r[0]]))});var $d=w((Fot,I_)=>{"use strict";var Dot=Zd(),sRe=gf(),pD=Symbol("slurp");I_.exports=class extends sRe{constructor(e,t,i){super();switch(this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[pD](t),i&&this[pD](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[pD](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}}});var B_=w(dD=>{"use strict";var Not=dD.encode=(r,e)=>{if(Number.isSafeInteger(r))r<0?aRe(r,e):oRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},oRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},aRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=y_(n):n===0?e[i-1]=0:(t=!0,e[i-1]=w_(n))}},Lot=dD.parse=r=>{var e=r[r.length-1],t=r[0],i;if(t===128)i=lRe(r.slice(1,r.length));else if(t===255)i=ARe(r);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},ARe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=y_(s):s===0?o=s:(i=!0,o=w_(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},lRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},y_=r=>(255^r)&255,w_=r=>(255^r)+1&255});var pf=w((Oot,b_)=>{"use strict";var CD=Zd(),hf=require("path").posix,Q_=B_(),mD=Symbol("slurp"),As=Symbol("type"),S_=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[As]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=tu(e,t,100),this.mode=bl(e,t+100,8),this.uid=bl(e,t+108,8),this.gid=bl(e,t+116,8),this.size=bl(e,t+124,12),this.mtime=ED(e,t+136,12),this.cksum=bl(e,t+148,12),this[mD](i),this[mD](n,!0),this[As]=tu(e,t+156,1),this[As]===""&&(this[As]="0"),this[As]==="0"&&this.path.substr(-1)==="/"&&(this[As]="5"),this[As]==="5"&&(this.size=0),this.linkpath=tu(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=tu(e,t+265,32),this.gname=tu(e,t+297,32),this.devmaj=bl(e,t+329,8),this.devmin=bl(e,t+337,8),e[t+475]!==0){let o=tu(e,t+345,155);this.path=o+"/"+this.path}else{let o=tu(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=ED(e,t+476,12),this.ctime=ED(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=cRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=ru(e,t,100,s)||this.needPax,this.needPax=Ql(e,t+100,8,this.mode)||this.needPax,this.needPax=Ql(e,t+108,8,this.uid)||this.needPax,this.needPax=Ql(e,t+116,8,this.gid)||this.needPax,this.needPax=Ql(e,t+124,12,this.size)||this.needPax,this.needPax=ID(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[As].charCodeAt(0),this.needPax=ru(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=ru(e,t+265,32,this.uname)||this.needPax,this.needPax=ru(e,t+297,32,this.gname)||this.needPax,this.needPax=Ql(e,t+329,8,this.devmaj)||this.needPax,this.needPax=Ql(e,t+337,8,this.devmin)||this.needPax,this.needPax=ru(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=ru(e,t+345,155,o)||this.needPax:(this.needPax=ru(e,t+345,130,o)||this.needPax,this.needPax=ID(e,t+476,12,this.atime)||this.needPax,this.needPax=ID(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let t=100,i=r,n="",s,o=hf.parse(r).root||".";if(Buffer.byteLength(i)t&&Buffer.byteLength(n)<=e?s=[i.substr(0,t-1),n,!0]:(i=hf.join(hf.basename(n),i),n=hf.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,t-1),"",!0])}return s},tu=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),ED=(r,e,t)=>uRe(bl(r,e,t)),uRe=r=>r===null?null:new Date(r*1e3),bl=(r,e,t)=>r[e]&128?Q_.parse(r.slice(e,e+t)):gRe(r,e,t),fRe=r=>isNaN(r)?null:r,gRe=(r,e,t)=>fRe(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),hRe={12:8589934591,8:2097151},Ql=(r,e,t,i)=>i===null?!1:i>hRe[t]||i<0?(Q_.encode(i,r.slice(e,e+t)),!0):(pRe(r,e,t,i),!1),pRe=(r,e,t,i)=>r.write(dRe(i,t),e,t,"ascii"),dRe=(r,e)=>CRe(Math.floor(r).toString(8),e),CRe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",ID=(r,e,t,i)=>i===null?!1:Ql(r,e,t,i.getTime()/1e3),mRe=new Array(156).join("\0"),ru=(r,e,t,i)=>i===null?!1:(r.write(i+mRe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);b_.exports=S_});var fB=w((Mot,v_)=>{"use strict";var ERe=pf(),IRe=require("path"),gB=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new ERe({path:("PaxHeader/"+IRe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};gB.parse=(r,e,t)=>new gB(yRe(wRe(r),e),t);var yRe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,wRe=r=>r.replace(/\n$/,"").split(` +`).reduce(BRe,Object.create(null)),BRe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};v_.exports=gB});var hB=w((Uot,k_)=>{"use strict";k_.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var wD=w((Kot,x_)=>{"use strict";var pB=["|","<",">","?",":"],yD=pB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),bRe=new Map(pB.map((r,e)=>[r,yD[e]])),QRe=new Map(yD.map((r,e)=>[r,pB[e]]));x_.exports={encode:r=>pB.reduce((e,t)=>e.split(t).join(bRe.get(t)),r),decode:r=>yD.reduce((e,t)=>e.split(t).join(QRe.get(t)),r)}});var D_=w((Hot,P_)=>{"use strict";P_.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&~18),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var xD=w((Jot,R_)=>{"use strict";var F_=gf(),N_=fB(),L_=pf(),jot=$d(),oa=require("fs"),df=require("path"),Got=Zd(),SRe=16*1024*1024,T_=Symbol("process"),O_=Symbol("file"),M_=Symbol("directory"),BD=Symbol("symlink"),U_=Symbol("hardlink"),eC=Symbol("header"),dB=Symbol("read"),bD=Symbol("lstat"),CB=Symbol("onlstat"),QD=Symbol("onread"),SD=Symbol("onreadlink"),vD=Symbol("openfile"),kD=Symbol("onopenfile"),iu=Symbol("close"),mB=Symbol("mode"),K_=hB(),vRe=wD(),H_=D_(),EB=K_(class extends F_{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||SRe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths&&df.win32.isAbsolute(e)){let n=df.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=vRe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||df.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[CB](this.statCache.get(this.absolute)):this[bD]()}[bD](){oa.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[CB](t)})}[CB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=kRe(e),this.emit("stat",e),this[T_]()}[T_](){switch(this.type){case"File":return this[O_]();case"Directory":return this[M_]();case"SymbolicLink":return this[BD]();default:return this.end()}}[mB](e){return H_(e,this.type==="Directory",this.portable)}[eC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new L_({path:this.path,linkpath:this.linkpath,mode:this[mB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new N_({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[M_](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[eC](),this.end()}[BD](){oa.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[SD](t)})}[SD](e){this.linkpath=e.replace(/\\/g,"/"),this[eC](),this.end()}[U_](e){this.type="Link",this.linkpath=df.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[eC](),this.end()}[O_](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[U_](t)}this.linkCache.set(e,this.absolute)}if(this[eC](),this.stat.size===0)return this.end();this[vD]()}[vD](){oa.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[kD](t)})}[kD](e){let t=512*Math.ceil(this.stat.size/512),i=Math.min(t,this.maxReadSize),n=Buffer.allocUnsafe(i);this[dB](e,n,0,n.length,0,this.stat.size,t)}[dB](e,t,i,n,s,o,a){oa.read(e,t,i,n,s,(l,c)=>{if(l)return this[iu](e,()=>this.emit("error",l));this[QD](e,t,i,n,s,o,a,c)})}[iu](e,t){oa.close(e,t)}[QD](e,t,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[iu](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[iu](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(t=Buffer.allocUnsafe(n),i=0),n=t.length-i,this[dB](e,t,i,n,s,o,a)}}),j_=class extends EB{constructor(e,t){super(e,t)}[bD](){this[CB](oa.lstatSync(this.absolute))}[BD](){this[SD](oa.readlinkSync(this.absolute))}[vD](){this[kD](oa.openSync(this.absolute,"r"))}[dB](e,t,i,n,s,o,a){let l=!0;try{let c=oa.readSync(e,t,i,n,s);this[QD](e,t,i,n,s,o,a,c),l=!1}finally{if(l)try{this[iu](e,()=>{})}catch(c){}}}[iu](e,t){oa.closeSync(e),t()}},xRe=K_(class extends F_{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[mB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(df.isAbsolute(this.path)&&!this.preservePaths){let n=df.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new L_({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new N_({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[mB](e){return H_(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});EB.Sync=j_;EB.Tar=xRe;var kRe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";R_.exports=EB});var vB=w((zot,G_)=>{"use strict";var PD=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},PRe=gf(),DRe=hD(),RRe=$d(),DD=xD(),FRe=DD.Sync,NRe=DD.Tar,LRe=bp(),Y_=Buffer.alloc(1024),IB=Symbol("onStat"),yB=Symbol("ended"),aa=Symbol("queue"),Cf=Symbol("current"),nu=Symbol("process"),wB=Symbol("processing"),q_=Symbol("processJob"),Aa=Symbol("jobs"),RD=Symbol("jobDone"),BB=Symbol("addFSEntry"),J_=Symbol("addTarEntry"),FD=Symbol("stat"),ND=Symbol("readdir"),bB=Symbol("onreaddir"),QB=Symbol("pipe"),W_=Symbol("entry"),LD=Symbol("entryOpt"),TD=Symbol("writeEntryClass"),z_=Symbol("write"),OD=Symbol("ondrain"),SB=require("fs"),__=require("path"),TRe=hB(),MD=TRe(class extends PRe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[TD]=DD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new DRe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[OD]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[OD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[aa]=new LRe,this[Aa]=0,this.jobs=+e.jobs||4,this[wB]=!1,this[yB]=!1}[z_](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[yB]=!0,this[nu](),this}write(e){if(this[yB])throw new Error("write after end");return e instanceof RRe?this[J_](e):this[BB](e),this.flowing}[J_](e){let t=__.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new PD(e.path,t,!1);i.entry=new NRe(e,this[LD](i)),i.entry.on("end",n=>this[RD](i)),this[Aa]+=1,this[aa].push(i)}this[nu]()}[BB](e){let t=__.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[aa].push(new PD(e,t)),this[nu]()}[FD](e){e.pending=!0,this[Aa]+=1;let t=this.follow?"stat":"lstat";SB[t](e.absolute,(i,n)=>{e.pending=!1,this[Aa]-=1,i?this.emit("error",i):this[IB](e,n)})}[IB](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[nu]()}[ND](e){e.pending=!0,this[Aa]+=1,SB.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[Aa]-=1,t)return this.emit("error",t);this[bB](e,i)})}[bB](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[nu]()}[nu](){if(!this[wB]){this[wB]=!0;for(let e=this[aa].head;e!==null&&this[Aa]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[W_](e){this[Aa]+=1;try{return new this[TD](e.path,this[LD](e)).on("end",()=>this[RD](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[OD](){this[Cf]&&this[Cf].entry&&this[Cf].entry.resume()}[QB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[BB](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),V_=class extends MD{constructor(e){super(e);this[TD]=FRe}pause(){}resume(){}[FD](e){let t=this.follow?"statSync":"lstatSync";this[IB](e,SB[t](e.absolute))}[ND](e,t){this[bB](e,SB.readdirSync(e.absolute))}[QB](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[BB](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[z_](n)})}};MD.Sync=V_;G_.exports=MD});var Bf=w(tC=>{"use strict";var ORe=gf(),MRe=require("events").EventEmitter,js=require("fs"),kB=process.binding("fs"),_ot=kB.writeBuffers,URe=kB.FSReqWrap||kB.FSReqCallback,mf=Symbol("_autoClose"),la=Symbol("_close"),rC=Symbol("_ended"),or=Symbol("_fd"),X_=Symbol("_finished"),su=Symbol("_flags"),UD=Symbol("_flush"),KD=Symbol("_handleChunk"),HD=Symbol("_makeBuf"),jD=Symbol("_mode"),xB=Symbol("_needDrain"),Ef=Symbol("_onerror"),If=Symbol("_onopen"),GD=Symbol("_onread"),ou=Symbol("_onwrite"),Sl=Symbol("_open"),vl=Symbol("_path"),au=Symbol("_pos"),ca=Symbol("_queue"),yf=Symbol("_read"),Z_=Symbol("_readSize"),kl=Symbol("_reading"),PB=Symbol("_remain"),$_=Symbol("_size"),DB=Symbol("_write"),wf=Symbol("_writing"),RB=Symbol("_defaultFlag"),YD=class extends ORe{constructor(e,t){if(t=t||{},super(t),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[or]=typeof t.fd=="number"?t.fd:null,this[vl]=e,this[Z_]=t.readSize||16*1024*1024,this[kl]=!1,this[$_]=typeof t.size=="number"?t.size:Infinity,this[PB]=this[$_],this[mf]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[or]=="number"?this[yf]():this[Sl]()}get fd(){return this[or]}get path(){return this[vl]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Sl](){js.open(this[vl],"r",(e,t)=>this[If](e,t))}[If](e,t){e?this[Ef](e):(this[or]=t,this.emit("open",t),this[yf]())}[HD](){return Buffer.allocUnsafe(Math.min(this[Z_],this[PB]))}[yf](){if(!this[kl]){this[kl]=!0;let e=this[HD]();if(e.length===0)return process.nextTick(()=>this[GD](null,0,e));js.read(this[or],e,0,e.length,null,(t,i,n)=>this[GD](t,i,n))}}[GD](e,t,i){this[kl]=!1,e?this[Ef](e):this[KD](t,i)&&this[yf]()}[la](){this[mf]&&typeof this[or]=="number"&&(js.close(this[or],e=>this.emit("close")),this[or]=null)}[Ef](e){this[kl]=!0,this[la](),this.emit("error",e)}[KD](e,t){let i=!1;return this[PB]-=e,e>0&&(i=super.write(ethis[If](e,t))}[If](e,t){this[RB]&&this[su]==="r+"&&e&&e.code==="ENOENT"?(this[su]="w",this[Sl]()):e?this[Ef](e):(this[or]=t,this.emit("open",t),this[UD]())}end(e,t){e&&this.write(e,t),this[rC]=!0,!this[wf]&&!this[ca].length&&typeof this[or]=="number"&&this[ou](null,0)}write(e,t){return typeof e=="string"&&(e=new Buffer(e,t)),this[rC]?(this.emit("error",new Error("write() after end()")),!1):this[or]===null||this[wf]||this[ca].length?(this[ca].push(e),this[xB]=!0,!1):(this[wf]=!0,this[DB](e),!0)}[DB](e){js.write(this[or],e,0,e.length,this[au],(t,i)=>this[ou](t,i))}[ou](e,t){e?this[Ef](e):(this[au]!==null&&(this[au]+=t),this[ca].length?this[UD]():(this[wf]=!1,this[rC]&&!this[X_]?(this[X_]=!0,this[la](),this.emit("finish")):this[xB]&&(this[xB]=!1,this.emit("drain"))))}[UD](){if(this[ca].length===0)this[rC]&&this[ou](null,0);else if(this[ca].length===1)this[DB](this[ca].pop());else{let e=this[ca];this[ca]=[],KRe(this[or],e,this[au],(t,i)=>this[ou](t,i))}}[la](){this[mf]&&typeof this[or]=="number"&&(js.close(this[or],e=>this.emit("close")),this[or]=null)}},tV=class extends qD{[Sl](){let e;try{e=js.openSync(this[vl],this[su],this[jD])}catch(t){if(this[RB]&&this[su]==="r+"&&t&&t.code==="ENOENT")return this[su]="w",this[Sl]();throw t}this[If](null,e)}[la](){if(this[mf]&&typeof this[or]=="number"){try{js.closeSync(this[or])}catch(e){}this[or]=null,this.emit("close")}}[DB](e){try{this[ou](null,js.writeSync(this[or],e,0,e.length,this[au]))}catch(t){this[ou](t,0)}}},KRe=(r,e,t,i)=>{let n=(o,a)=>i(o,a,e),s=new URe;s.oncomplete=n,kB.writeBuffers(r,e,t,s)};tC.ReadStream=YD;tC.ReadStreamSync=eV;tC.WriteStream=qD;tC.WriteStreamSync=tV});var sC=w(($ot,rV)=>{"use strict";var HRe=hB(),Xot=require("path"),jRe=pf(),GRe=require("events"),YRe=bp(),qRe=1024*1024,JRe=$d(),iV=fB(),WRe=hD(),JD=Buffer.from([31,139]),Gs=Symbol("state"),Au=Symbol("writeEntry"),gA=Symbol("readEntry"),WD=Symbol("nextEntry"),nV=Symbol("processEntry"),Ys=Symbol("extendedHeader"),iC=Symbol("globalExtendedHeader"),xl=Symbol("meta"),sV=Symbol("emitMeta"),yr=Symbol("buffer"),fA=Symbol("queue"),lu=Symbol("ended"),oV=Symbol("emittedEnd"),cu=Symbol("emit"),Tn=Symbol("unzip"),FB=Symbol("consumeChunk"),NB=Symbol("consumeChunkSub"),zD=Symbol("consumeBody"),aV=Symbol("consumeMeta"),AV=Symbol("consumeHeader"),LB=Symbol("consuming"),_D=Symbol("bufferConcat"),VD=Symbol("maybeEnd"),nC=Symbol("writing"),Pl=Symbol("aborted"),TB=Symbol("onDone"),uu=Symbol("sawValidEntry"),OB=Symbol("sawNullBlock"),MB=Symbol("sawEOF"),zRe=r=>!0;rV.exports=HRe(class extends GRe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[uu]=null,this.on(TB,t=>{(this[Gs]==="begin"||this[uu]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(TB,e.ondone):this.on(TB,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||qRe,this.filter=typeof e.filter=="function"?e.filter:zRe,this.writable=!0,this.readable=!1,this[fA]=new YRe,this[yr]=null,this[gA]=null,this[Au]=null,this[Gs]="begin",this[xl]="",this[Ys]=null,this[iC]=null,this[lu]=!1,this[Tn]=null,this[Pl]=!1,this[OB]=!1,this[MB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[AV](e,t){this[uu]===null&&(this[uu]=!1);let i;try{i=new jRe(e,t,this[Ys],this[iC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[OB]?(this[MB]=!0,this[Gs]==="begin"&&(this[Gs]="header"),this[cu]("eof")):(this[OB]=!0,this[cu]("nullBlock"));else if(this[OB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[Au]=new JRe(i,this[Ys],this[iC]);if(!this[uu])if(s.remain){let o=()=>{s.invalid||(this[uu]=!0)};s.on("end",o)}else this[uu]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[cu]("ignoredEntry",s),this[Gs]="ignore",s.resume()):s.size>0&&(this[xl]="",s.on("data",o=>this[xl]+=o),this[Gs]="meta"):(this[Ys]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[cu]("ignoredEntry",s),this[Gs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[Gs]="body":(this[Gs]="header",s.end()),this[gA]?this[fA].push(s):(this[fA].push(s),this[WD]())))}}}[nV](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[gA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[WD]()),t=!1)):(this[gA]=null,t=!1),t}[WD](){do;while(this[nV](this[fA].shift()));if(!this[fA].length){let e=this[gA];!e||e.flowing||e.size===e.remain?this[nC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[zD](e,t){let i=this[Au],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[Gs]="header",this[Au]=null,i.end()),s.length}[aV](e,t){let i=this[Au],n=this[zD](e,t);return this[Au]||this[sV](i),n}[cu](e,t,i){!this[fA].length&&!this[gA]?this.emit(e,t,i):this[fA].push([e,t,i])}[sV](e){switch(this[cu]("meta",this[xl]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Ys]=iV.parse(this[xl],this[Ys],!1);break;case"GlobalExtendedHeader":this[iC]=iV.parse(this[xl],this[iC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Ys]=this[Ys]||Object.create(null),this[Ys].path=this[xl].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Ys]=this[Ys]||Object.create(null),this[Ys].linkpath=this[xl].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Pl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Pl])return;if(this[Tn]===null&&e){if(this[yr]&&(e=Buffer.concat([this[yr],e]),this[yr]=null),e.lengththis[FB](s)),this[Tn].on("error",s=>this.abort(s)),this[Tn].on("end",s=>{this[lu]=!0,this[FB]()}),this[nC]=!0;let n=this[Tn][i?"end":"write"](e);return this[nC]=!1,n}}this[nC]=!0,this[Tn]?this[Tn].write(e):this[FB](e),this[nC]=!1;let t=this[fA].length?!1:this[gA]?this[gA].flowing:!0;return!t&&!this[fA].length&&this[gA].once("drain",i=>this.emit("drain")),t}[_D](e){e&&!this[Pl]&&(this[yr]=this[yr]?Buffer.concat([this[yr],e]):e)}[VD](){if(this[lu]&&!this[oV]&&!this[Pl]&&!this[LB]){this[oV]=!0;let e=this[Au];if(e&&e.blockRemain){let t=this[yr]?this[yr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[yr]&&e.write(this[yr]),e.end()}this[cu](TB)}}[FB](e){if(this[LB])this[_D](e);else if(!e&&!this[yr])this[VD]();else{if(this[LB]=!0,this[yr]){this[_D](e);let t=this[yr];this[yr]=null,this[NB](t)}else this[NB](e);for(;this[yr]&&this[yr].length>=512&&!this[Pl]&&!this[MB];){let t=this[yr];this[yr]=null,this[NB](t)}this[LB]=!1}(!this[yr]||this[lu])&&this[VD]()}[NB](e){let t=0,i=e.length;for(;t+512<=i&&!this[Pl]&&!this[MB];)switch(this[Gs]){case"begin":case"header":this[AV](e,t),t+=512;break;case"ignore":case"body":t+=this[zD](e,t);break;case"meta":t+=this[aV](e,t);break;default:throw new Error("invalid state: "+this[Gs])}t{"use strict";var _Re=uf(),cV=sC(),bf=require("fs"),VRe=Bf(),uV=require("path"),eat=lV.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=_Re(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&ZRe(i,e),i.noResume||XRe(i),i.file&&i.sync?$Re(i):i.file?eFe(i,t):gV(i)},XRe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},ZRe=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=r.filter,n=(s,o)=>{let a=o||uV.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(uV.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},$Re=r=>{let e=gV(r),t=r.file,i=!0,n;try{let s=bf.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new cV(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),bf.stat(n,(l,c)=>{if(l)a(l);else{let u=new VRe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},gV=r=>new cV(r)});var mV=w((nat,fV)=>{"use strict";var tFe=uf(),KB=vB(),rat=require("fs"),hV=Bf(),pV=UB(),dV=require("path"),iat=fV.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=tFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?rFe(i,e):i.file?iFe(i,e,t):i.sync?nFe(i,e):sFe(i,e)},rFe=(r,e)=>{let t=new KB.Sync(r),i=new hV.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),CV(t,e)},iFe=(r,e,t)=>{let i=new KB(r),n=new hV.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return XD(i,e),t?s.then(t,t):s},CV=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?pV({file:dV.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},XD=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return pV({file:dV.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>XD(r,e));r.add(t)}r.end()},nFe=(r,e)=>{let t=new KB.Sync(r);return CV(t,e),t},sFe=(r,e)=>{let t=new KB(r);return XD(t,e),t}});var ZD=w((aat,EV)=>{"use strict";var oFe=uf(),IV=vB(),sat=sC(),qs=require("fs"),yV=Bf(),wV=UB(),BV=require("path"),bV=pf(),oat=EV.exports=(r,e,t)=>{let i=oFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?aFe(i,e):AFe(i,e,t)},aFe=(r,e)=>{let t=new IV.Sync(r),i=!0,n,s;try{try{n=qs.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=qs.openSync(r.file,"w+");else throw l}let o=qs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,lFe(r,t,s,n,e)}finally{if(i)try{qs.closeSync(n)}catch(o){}}},lFe=(r,e,t,i,n)=>{let s=new yV.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),cFe(e,n)},AFe=(r,e,t)=>{e=Array.from(e);let i=new IV(r),n=(o,a,l)=>{let c=(p,m)=>{p?qs.close(o,y=>l(p)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,m)=>{if(p)return c(p);if(g+=m,g<512&&m)return qs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new bV(f);if(!y.cksumValid)return c(null,u);let b=512*Math.ceil(y.size/512);if(u+b+512>a||(u+=b+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,qs.read(o,f,0,512,u,h)};qs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",qs.open(r.file,l,c);if(u)return a(u);qs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,m)=>{if(p)return a(p);let y=new yV.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),QV(i,e)})})};qs.open(r.file,l,c)});return t?s.then(t,t):s},cFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?wV({file:BV.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},QV=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return wV({file:BV.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>QV(r,e));r.add(t)}r.end()}});var vV=w((lat,SV)=>{"use strict";var uFe=uf(),gFe=ZD(),Aat=SV.exports=(r,e,t)=>{let i=uFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),fFe(i),gFe(i,e,t)},fFe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var PV=w((cat,kV)=>{var{promisify:xV}=require("util"),Dl=require("fs"),hFe=r=>{if(!r)r={mode:511,fs:Dl};else if(typeof r=="object")r=N({mode:511,fs:Dl},r);else if(typeof r=="number")r={mode:r,fs:Dl};else if(typeof r=="string")r={mode:parseInt(r,8),fs:Dl};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||Dl.mkdir,r.mkdirAsync=xV(r.mkdir),r.stat=r.stat||r.fs.stat||Dl.stat,r.statAsync=xV(r.stat),r.statSync=r.statSync||r.fs.statSync||Dl.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||Dl.mkdirSync,r};kV.exports=hFe});var RV=w((uat,DV)=>{var pFe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:dFe,parse:CFe}=require("path"),mFe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=dFe(r),pFe==="win32"){let e=/[*|"<>?:]/,{root:t}=CFe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};DV.exports=mFe});var OV=w((gat,FV)=>{var{dirname:NV}=require("path"),LV=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?LV(r,NV(e),e):void 0),TV=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?TV(r,NV(e),e):void 0}};FV.exports={findMade:LV,findMadeSync:TV}});var tR=w((fat,MV)=>{var{dirname:UV}=require("path"),$D=(r,e,t)=>{e.recursive=!1;let i=UV(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return $D(i,e).then(s=>$D(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},eR=(r,e,t)=>{let i=UV(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return eR(r,e,eR(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch(s){throw n}}};MV.exports={mkdirpManual:$D,mkdirpManualSync:eR}});var jV=w((hat,KV)=>{var{dirname:HV}=require("path"),{findMade:EFe,findMadeSync:IFe}=OV(),{mkdirpManual:yFe,mkdirpManualSync:wFe}=tR(),BFe=(r,e)=>(e.recursive=!0,HV(r)===r?e.mkdirAsync(r,e):EFe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return yFe(r,e);throw n}))),bFe=(r,e)=>{if(e.recursive=!0,HV(r)===r)return e.mkdirSync(r,e);let i=IFe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return wFe(r,e);throw n}};KV.exports={mkdirpNative:BFe,mkdirpNativeSync:bFe}});var JV=w((pat,GV)=>{var YV=require("fs"),QFe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,rR=QFe.replace(/^v/,"").split("."),qV=+rR[0]>10||+rR[0]==10&&+rR[1]>=12,SFe=qV?r=>r.mkdir===YV.mkdir:()=>!1,vFe=qV?r=>r.mkdirSync===YV.mkdirSync:()=>!1;GV.exports={useNative:SFe,useNativeSync:vFe}});var ZV=w((dat,WV)=>{var Qf=PV(),Sf=RV(),{mkdirpNative:zV,mkdirpNativeSync:_V}=jV(),{mkdirpManual:VV,mkdirpManualSync:XV}=tR(),{useNative:kFe,useNativeSync:xFe}=JV(),vf=(r,e)=>(r=Sf(r),e=Qf(e),kFe(e)?zV(r,e):VV(r,e)),PFe=(r,e)=>(r=Sf(r),e=Qf(e),xFe(e)?_V(r,e):XV(r,e));vf.sync=PFe;vf.native=(r,e)=>zV(Sf(r),Qf(e));vf.manual=(r,e)=>VV(Sf(r),Qf(e));vf.nativeSync=(r,e)=>_V(Sf(r),Qf(e));vf.manualSync=(r,e)=>XV(Sf(r),Qf(e));WV.exports=vf});var s6=w((Cat,$V)=>{"use strict";var Js=require("fs"),gu=require("path"),DFe=Js.lchown?"lchown":"chown",RFe=Js.lchownSync?"lchownSync":"chownSync",e6=Js.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),t6=(r,e,t)=>{try{return Js[RFe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},FFe=(r,e,t)=>{try{return Js.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},NFe=e6?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Js.chown(r,e,t,i)}:(r,e,t,i)=>i,iR=e6?(r,e,t)=>{try{return t6(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;FFe(r,e,t)}}:(r,e,t)=>t6(r,e,t),LFe=process.version,r6=(r,e,t)=>Js.readdir(r,e,t),TFe=(r,e)=>Js.readdirSync(r,e);/^v4\./.test(LFe)&&(r6=(r,e,t)=>Js.readdir(r,t));var HB=(r,e,t,i)=>{Js[DFe](r,e,t,NFe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},i6=(r,e,t,i,n)=>{if(typeof e=="string")return Js.lstat(gu.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,i6(r,o,t,i,n)});if(e.isDirectory())nR(gu.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=gu.resolve(r,e.name);HB(o,t,i,n)});else{let s=gu.resolve(r,e.name);HB(s,t,i,n)}},nR=(r,e,t,i)=>{r6(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return HB(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return HB(r,e,t,i)}};s.forEach(c=>i6(r,c,e,t,l))})},OFe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Js.lstatSync(gu.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&n6(gu.resolve(r,e.name),t,i),iR(gu.resolve(r,e.name),t,i)},n6=(r,e,t)=>{let i;try{i=TFe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return iR(r,e,t);throw n}return i&&i.length&&i.forEach(n=>OFe(r,n,e,t)),iR(r,e,t)};$V.exports=nR;nR.sync=n6});var l6=w((Iat,sR)=>{"use strict";var o6=ZV(),Ws=require("fs"),jB=require("path"),a6=s6(),oR=class extends Error{constructor(e,t){super("Cannot extract through symbolic link");this.path=t,this.symlink=e}get name(){return"SylinkError"}},oC=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'");this.path=e,this.code=t}get name(){return"CwdError"}},mat=sR.exports=(r,e,t)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(y,b)=>{y?t(y):(g.set(r,!0),b&&l?a6(b,o,a,v=>h(v)):s?Ws.chmod(r,n,t):t())};if(g&&g.get(r)===!0)return h();if(r===f)return Ws.stat(r,(y,b)=>{(y||!b.isDirectory())&&(y=new oC(r,y&&y.code||"ENOTDIR")),h(y)});if(c)return o6(r,{mode:n}).then(y=>h(null,y),h);let m=jB.relative(f,r).split(/\/|\\/);GB(f,m,n,g,u,f,null,h)},GB=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=r+"/"+l;if(i.get(c))return GB(c,e,t,i,n,s,o,a);Ws.mkdir(c,t,A6(c,e,t,i,n,s,o,a))},A6=(r,e,t,i,n,s,o,a)=>l=>{if(l){if(l.path&&jB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new oC(s,l.code));Ws.lstat(r,(c,u)=>{if(c)a(c);else if(u.isDirectory())GB(r,e,t,i,n,s,o,a);else if(n)Ws.unlink(r,g=>{if(g)return a(g);Ws.mkdir(r,t,A6(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new oR(r,r+"/"+e.join("/")));a(l)}})}else o=o||r,GB(r,e,t,i,n,s,o,a)},Eat=sR.exports.sync=(r,e)=>{let t=e.umask,i=e.mode|448,n=(i&t)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=y=>{u.set(r,!0),y&&a&&a6.sync(y,s,o),n&&Ws.chmodSync(r,i)};if(u&&u.get(r)===!0)return f();if(r===g){let y=!1,b="ENOTDIR";try{y=Ws.statSync(r).isDirectory()}catch(v){b=v.code}finally{if(!y)throw new oC(r,b)}f();return}if(l)return f(o6.sync(r,i));let p=jB.relative(g,r).split(/\/|\\/),m=null;for(let y=p.shift(),b=g;y&&(b+="/"+y);y=p.shift())if(!u.get(b))try{Ws.mkdirSync(b,i),m=m||b,u.set(b,!0)}catch(v){if(v.path&&jB.dirname(v.path)===g&&(v.code==="ENOTDIR"||v.code==="ENOENT"))return new oC(g,v.code);let k=Ws.lstatSync(b);if(k.isDirectory()){u.set(b,!0);continue}else if(c){Ws.unlinkSync(b),Ws.mkdirSync(b,i),m=m||b,u.set(b,!0);continue}else if(k.isSymbolicLink())return new oR(b,b+"/"+p.join("/"))}return f(m)}});var g6=w((yat,c6)=>{var u6=require("assert");c6.exports=()=>{let r=new Map,e=new Map,{join:t}=require("path"),i=u=>t(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(t(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>r.get(f)),dirs:[...g.dirs].map(f=>r.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let m=r.get(p);u6.equal(m[0],u),m.length===1?r.delete(p):(m.shift(),typeof m[0]=="function"?h.add(m[0]):m[0].forEach(y=>h.add(y)))}),f.forEach(p=>{let m=r.get(p);u6(m[0]instanceof Set),m[0].size===1&&m.length===1?r.delete(p):m[0].size===1?(m.shift(),h.add(m[0])):m[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=r.get(h);p?p.push(g):r.set(h,[g])}),f.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):r.set(h,[new Set([g])])}),a(g)}}}});var p6=w((wat,f6)=>{var MFe=process.env.__FAKE_PLATFORM__||process.platform,UFe=MFe==="win32",KFe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:HFe,O_TRUNC:jFe,O_WRONLY:GFe,UV_FS_O_FILEMAP:h6=0}=KFe.constants,YFe=UFe&&!!h6,qFe=512*1024,JFe=h6|jFe|HFe|GFe;f6.exports=YFe?r=>r"w"});var pR=w((Sat,d6)=>{"use strict";var WFe=require("assert"),Bat=require("events").EventEmitter,zFe=sC(),$t=require("fs"),_Fe=Bf(),hA=require("path"),aR=l6(),bat=aR.sync,C6=wD(),VFe=g6(),m6=Symbol("onEntry"),AR=Symbol("checkFs"),E6=Symbol("checkFs2"),lR=Symbol("isReusable"),pA=Symbol("makeFs"),cR=Symbol("file"),uR=Symbol("directory"),YB=Symbol("link"),I6=Symbol("symlink"),y6=Symbol("hardlink"),w6=Symbol("unsupported"),Qat=Symbol("unknown"),B6=Symbol("checkPath"),kf=Symbol("mkdir"),dn=Symbol("onError"),qB=Symbol("pending"),b6=Symbol("pend"),xf=Symbol("unpend"),gR=Symbol("ended"),fR=Symbol("maybeClose"),hR=Symbol("skip"),aC=Symbol("doChown"),AC=Symbol("uid"),lC=Symbol("gid"),Q6=require("crypto"),S6=p6(),JB=()=>{throw new Error("sync function called cb somehow?!?")},XFe=(r,e)=>{if(process.platform!=="win32")return $t.unlink(r,e);let t=r+".DELETE."+Q6.randomBytes(16).toString("hex");$t.rename(r,t,i=>{if(i)return e(i);$t.unlink(t,e)})},ZFe=r=>{if(process.platform!=="win32")return $t.unlinkSync(r);let e=r+".DELETE."+Q6.randomBytes(16).toString("hex");$t.renameSync(r,e),$t.unlinkSync(e)},v6=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,WB=class extends zFe{constructor(e){if(e||(e={}),e.ondone=t=>{this[gR]=!0,this[fR]()},super(e),this.reservations=VFe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[qB]=0,this[gR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=hA.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[m6](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[fR](){this[gR]&&this[qB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[B6](e){if(this.strip){let t=e.path.split(/\/|\\/);if(t.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;if(hA.win32.isAbsolute(t)){let i=hA.win32.parse(t);e.path=t.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t})}}if(this.win32){let t=hA.win32.parse(e.path);e.path=t.root===""?C6.encode(e.path):t.root+C6.encode(e.path.substr(t.root.length))}return hA.isAbsolute(e.path)?e.absolute=e.path:e.absolute=hA.resolve(this.cwd,e.path),!0}[m6](e){if(!this[B6](e))return e.resume();switch(WFe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[AR](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[w6](e)}}[dn](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[xf](),t.resume())}[kf](e,t,i){aR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},i)}[aC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[AC](e){return v6(this.uid,e.uid,this.processUid)}[lC](e){return v6(this.gid,e.gid,this.processGid)}[cR](e,t){let i=e.mode&4095||this.fmode,n=new _Fe.WriteStream(e.absolute,{flags:S6(e.size),mode:i,autoClose:!1});n.on("error",l=>this[dn](l,e));let s=1,o=l=>{if(l)return this[dn](l,e);--s==0&&$t.close(n.fd,c=>{t(),c?this[dn](c,e):this[xf]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;$t.futimes(u,g,f,h=>h?$t.utimes(c,g,f,p=>o(p&&h)):o())}if(this[aC](e)){s++;let g=this[AC](e),f=this[lC](e);$t.fchown(u,g,f,h=>h?$t.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.pipe(n)}[uR](e,t){let i=e.mode&4095||this.dmode;this[kf](e.absolute,i,n=>{if(n)return t(),this[dn](n,e);let s=1,o=a=>{--s==0&&(t(),this[xf](),e.resume())};e.mtime&&!this.noMtime&&(s++,$t.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[aC](e)&&(s++,$t.chown(e.absolute,this[AC](e),this[lC](e),o)),o()})}[w6](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[I6](e,t){this[YB](e,e.linkpath,"symlink",t)}[y6](e,t){this[YB](e,hA.resolve(this.cwd,e.linkpath),"link",t)}[b6](){this[qB]++}[xf](){this[qB]--,this[fR]()}[hR](e){this[xf](),e.resume()}[lR](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&process.platform!=="win32"}[AR](e){this[b6]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[E6](e,i))}[E6](e,t){this[kf](hA.dirname(e.absolute),this.dmode,i=>{if(i)return t(),this[dn](i,e);$t.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[hR](e),t()):n||this[lR](e,s)?this[pA](null,e,t):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[pA](null,e,t):$t.chmod(e.absolute,e.mode,o=>this[pA](o,e,t)):$t.rmdir(e.absolute,o=>this[pA](o,e,t)):XFe(e.absolute,o=>this[pA](o,e,t))})})}[pA](e,t,i){if(e)return this[dn](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[cR](t,i);case"Link":return this[y6](t,i);case"SymbolicLink":return this[I6](t,i);case"Directory":case"GNUDumpDir":return this[uR](t,i)}}[YB](e,t,i,n){$t[i](t,e.absolute,s=>{if(s)return this[dn](s,e);n(),this[xf](),e.resume()})}},k6=class extends WB{constructor(e){super(e)}[AR](e){let t=this[kf](hA.dirname(e.absolute),this.dmode,JB);if(t)return this[dn](t,e);try{let i=$t.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[hR](e);if(this[lR](e,i))return this[pA](null,e,JB);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&$t.chmodSync(e.absolute,e.mode):$t.rmdirSync(e.absolute):ZFe(e.absolute),this[pA](null,e,JB)}catch(n){return this[dn](n,e)}}catch(i){return this[pA](null,e,JB)}}[cR](e,t){let i=e.mode&4095||this.fmode,n=l=>{let c;try{$t.closeSync(o)}catch(u){c=u}(l||c)&&this[dn](l||c,e)},s,o;try{o=$t.openSync(e.absolute,S6(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[dn](l,e)),e.pipe(a)),a.on("data",l=>{try{$t.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{$t.futimesSync(o,u,g)}catch(f){try{$t.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[aC](e)){let u=this[AC](e),g=this[lC](e);try{$t.fchownSync(o,u,g)}catch(f){try{$t.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[uR](e,t){let i=e.mode&4095||this.dmode,n=this[kf](e.absolute,i);if(n)return this[dn](n,e);if(e.mtime&&!this.noMtime)try{$t.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[aC](e))try{$t.chownSync(e.absolute,this[AC](e),this[lC](e))}catch(s){}e.resume()}[kf](e,t){try{return aR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[YB](e,t,i,n){try{$t[i+"Sync"](t,e.absolute),e.resume()}catch(s){return this[dn](s,e)}}};WB.Sync=k6;d6.exports=WB});var F6=w((kat,x6)=>{"use strict";var $Fe=uf(),zB=pR(),P6=require("fs"),D6=Bf(),R6=require("path"),vat=x6.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Fe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eNe(i,e),i.file&&i.sync?tNe(i):i.file?rNe(i,t):i.sync?iNe(i):nNe(i)},eNe=(r,e)=>{let t=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=r.filter,n=(s,o)=>{let a=o||R6.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(R6.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},tNe=r=>{let e=new zB.Sync(r),t=r.file,i=!0,n,s=P6.statSync(t),o=r.maxReadSize||16*1024*1024;new D6.ReadStreamSync(t,{readSize:o,size:s.size}).pipe(e)},rNe=(r,e)=>{let t=new zB(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),P6.stat(n,(l,c)=>{if(l)a(l);else{let u=new D6.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iNe=r=>new zB.Sync(r),nNe=r=>new zB(r)});var N6=w(pi=>{"use strict";pi.c=pi.create=mV();pi.r=pi.replace=ZD();pi.t=pi.list=UB();pi.u=pi.update=vV();pi.x=pi.extract=F6();pi.Pack=vB();pi.Unpack=pR();pi.Parse=sC();pi.ReadEntry=$d();pi.WriteEntry=xD();pi.Header=pf();pi.Pax=fB();pi.types=Zd()});var U6=w((Dat,M6)=>{var CR;M6.exports.getContent=()=>(typeof CR=="undefined"&&(CR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),CR)});var q6=w((mR,Y6)=>{(function(r,e){typeof mR=="object"?Y6.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(mR,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",f=0,h,p,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(b,v){v>0&&(g+=(b[1]?" ":"\u2502")+" "),!p&&b[0]===s&&(p=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var y=e(s,c);y.forEach(function(b){h=++f===y.length,t(b,s[b],h,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var VB=w((aAt,t7)=>{var wNe=Hs(),BNe=yd(),bNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,QNe=/^\w*$/;function SNe(r,e){if(wNe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BNe(r)?!0:QNe.test(r)||!bNe.test(r)||e!=null&&r in Object(e)}t7.exports=SNe});var XB=w((AAt,r7)=>{var vNe=zc(),kNe=Fn(),xNe="[object AsyncFunction]",PNe="[object Function]",DNe="[object GeneratorFunction]",RNe="[object Proxy]";function FNe(r){if(!kNe(r))return!1;var e=vNe(r);return e==PNe||e==DNe||e==xNe||e==RNe}r7.exports=FNe});var n7=w((lAt,i7)=>{var NNe=Ts(),LNe=NNe["__core-js_shared__"];i7.exports=LNe});var a7=w((cAt,s7)=>{var SR=n7(),o7=function(){var r=/[^.]+$/.exec(SR&&SR.keys&&SR.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function TNe(r){return!!o7&&o7 in r}s7.exports=TNe});var vR=w((uAt,A7)=>{var ONe=Function.prototype,MNe=ONe.toString;function UNe(r){if(r!=null){try{return MNe.call(r)}catch(e){}try{return r+""}catch(e){}}return""}A7.exports=UNe});var c7=w((gAt,l7)=>{var KNe=XB(),HNe=a7(),jNe=Fn(),GNe=vR(),YNe=/[\\^$.*+?()[\]{}|]/g,qNe=/^\[object .+?Constructor\]$/,JNe=Function.prototype,WNe=Object.prototype,zNe=JNe.toString,_Ne=WNe.hasOwnProperty,VNe=RegExp("^"+zNe.call(_Ne).replace(YNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function XNe(r){if(!jNe(r)||HNe(r))return!1;var e=KNe(r)?VNe:qNe;return e.test(GNe(r))}l7.exports=XNe});var g7=w((fAt,u7)=>{function ZNe(r,e){return r==null?void 0:r[e]}u7.exports=ZNe});var Fl=w((hAt,f7)=>{var $Ne=c7(),eLe=g7();function tLe(r,e){var t=eLe(r,e);return $Ne(t)?t:void 0}f7.exports=tLe});var uC=w((pAt,h7)=>{var rLe=Fl(),iLe=rLe(Object,"create");h7.exports=iLe});var C7=w((dAt,p7)=>{var d7=uC();function nLe(){this.__data__=d7?d7(null):{},this.size=0}p7.exports=nLe});var E7=w((CAt,m7)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}m7.exports=sLe});var y7=w((mAt,I7)=>{var oLe=uC(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}I7.exports=cLe});var B7=w((EAt,w7)=>{var uLe=uC(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}w7.exports=hLe});var Q7=w((IAt,b7)=>{var pLe=uC(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}b7.exports=CLe});var v7=w((yAt,S7)=>{var mLe=C7(),ELe=E7(),ILe=y7(),yLe=B7(),wLe=Q7();function Pf(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}k7.exports=BLe});var Df=w((BAt,P7)=>{function bLe(r,e){return r===e||r!==r&&e!==e}P7.exports=bLe});var gC=w((bAt,D7)=>{var QLe=Df();function SLe(r,e){for(var t=r.length;t--;)if(QLe(r[t][0],e))return t;return-1}D7.exports=SLe});var F7=w((QAt,R7)=>{var vLe=gC(),kLe=Array.prototype,xLe=kLe.splice;function PLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():xLe.call(e,t,1),--this.size,!0}R7.exports=PLe});var L7=w((SAt,N7)=>{var DLe=gC();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}N7.exports=RLe});var O7=w((vAt,T7)=>{var FLe=gC();function NLe(r){return FLe(this.__data__,r)>-1}T7.exports=NLe});var U7=w((kAt,M7)=>{var LLe=gC();function TLe(r,e){var t=this.__data__,i=LLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}M7.exports=TLe});var fC=w((xAt,K7)=>{var OLe=x7(),MLe=F7(),ULe=L7(),KLe=O7(),HLe=U7();function Rf(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=Fl(),GLe=Ts(),YLe=jLe(GLe,"Map");H7.exports=YLe});var Y7=w((DAt,j7)=>{var G7=v7(),qLe=fC(),JLe=ZB();function WLe(){this.size=0,this.__data__={hash:new G7,map:new(JLe||qLe),string:new G7}}j7.exports=WLe});var J7=w((RAt,q7)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}q7.exports=zLe});var hC=w((FAt,W7)=>{var _Le=J7();function VLe(r,e){var t=r.__data__;return _Le(e)?t[typeof e=="string"?"string":"hash"]:t.map}W7.exports=VLe});var _7=w((NAt,z7)=>{var XLe=hC();function ZLe(r){var e=XLe(this,r).delete(r);return this.size-=e?1:0,e}z7.exports=ZLe});var X7=w((LAt,V7)=>{var $Le=hC();function eTe(r){return $Le(this,r).get(r)}V7.exports=eTe});var $7=w((TAt,Z7)=>{var tTe=hC();function rTe(r){return tTe(this,r).has(r)}Z7.exports=rTe});var tX=w((OAt,eX)=>{var iTe=hC();function nTe(r,e){var t=iTe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}eX.exports=nTe});var $B=w((MAt,rX)=>{var sTe=Y7(),oTe=_7(),aTe=X7(),ATe=$7(),lTe=tX();function Ff(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var nX=$B(),cTe="Expected a function";function kR(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cTe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(kR.Cache||nX),t}kR.Cache=nX;iX.exports=kR});var aX=w((KAt,oX)=>{var uTe=sX(),gTe=500;function fTe(r){var e=uTe(r,function(i){return t.size===gTe&&t.clear(),i}),t=e.cache;return e}oX.exports=fTe});var lX=w((HAt,AX)=>{var hTe=aX(),pTe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dTe=/\\(\\)?/g,CTe=hTe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pTe,function(t,i,n,s){e.push(n?s.replace(dTe,"$1"):i||t)}),e});AX.exports=CTe});var Nf=w((jAt,cX)=>{var mTe=Hs(),ETe=VB(),ITe=lX(),yTe=cf();function wTe(r,e){return mTe(r)?r:ETe(r,e)?[r]:ITe(yTe(r))}cX.exports=wTe});var fu=w((GAt,uX)=>{var BTe=yd(),bTe=1/0;function QTe(r){if(typeof r=="string"||BTe(r))return r;var e=r+"";return e=="0"&&1/r==-bTe?"-0":e}uX.exports=QTe});var pC=w((YAt,gX)=>{var STe=Nf(),vTe=fu();function kTe(r,e){e=STe(e,r);for(var t=0,i=e.length;r!=null&&t{var xTe=Fl(),PTe=function(){try{var r=xTe(Object,"defineProperty");return r({},"",{}),r}catch(e){}}();fX.exports=PTe});var Lf=w((JAt,hX)=>{var pX=xR();function DTe(r,e,t){e=="__proto__"&&pX?pX(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}hX.exports=DTe});var e0=w((WAt,dX)=>{var RTe=Lf(),FTe=Df(),NTe=Object.prototype,LTe=NTe.hasOwnProperty;function TTe(r,e,t){var i=r[e];(!(LTe.call(r,e)&&FTe(i,t))||t===void 0&&!(e in r))&&RTe(r,e,t)}dX.exports=TTe});var dC=w((zAt,CX)=>{var OTe=9007199254740991,MTe=/^(?:0|[1-9]\d*)$/;function UTe(r,e){var t=typeof r;return e=e==null?OTe:e,!!e&&(t=="number"||t!="symbol"&&MTe.test(r))&&r>-1&&r%1==0&&r{var KTe=e0(),HTe=Nf(),jTe=dC(),EX=Fn(),GTe=fu();function YTe(r,e,t,i){if(!EX(r))return r;e=HTe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qTe=pC(),JTe=PR(),WTe=Nf();function zTe(r,e,t){for(var i=-1,n=e.length,s={};++i{function _Te(r,e){return r!=null&&e in Object(r)}wX.exports=_Te});var QX=w((ZAt,bX)=>{var VTe=zc(),XTe=ra(),ZTe="[object Arguments]";function $Te(r){return XTe(r)&&VTe(r)==ZTe}bX.exports=$Te});var CC=w(($At,SX)=>{var vX=QX(),eOe=ra(),kX=Object.prototype,tOe=kX.hasOwnProperty,rOe=kX.propertyIsEnumerable,iOe=vX(function(){return arguments}())?vX:function(r){return eOe(r)&&tOe.call(r,"callee")&&!rOe.call(r,"callee")};SX.exports=iOe});var t0=w((elt,xX)=>{var nOe=9007199254740991;function sOe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nOe}xX.exports=sOe});var DR=w((tlt,PX)=>{var oOe=Nf(),aOe=CC(),AOe=Hs(),lOe=dC(),cOe=t0(),uOe=fu();function gOe(r,e,t){e=oOe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fOe=BX(),hOe=DR();function pOe(r,e){return r!=null&&hOe(r,e,fOe)}DX.exports=pOe});var FX=w((ilt,RX)=>{var dOe=yX(),COe=RR();function mOe(r,e){return dOe(r,e,function(t,i){return COe(r,i)})}RX.exports=mOe});var r0=w((nlt,NX)=>{function EOe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var TX=Wc(),IOe=CC(),yOe=Hs(),OX=TX?TX.isConcatSpreadable:void 0;function wOe(r){return yOe(r)||IOe(r)||!!(OX&&r&&r[OX])}LX.exports=wOe});var HX=w((olt,UX)=>{var BOe=r0(),bOe=MX();function KX(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=bOe),n||(n=[]);++s0&&t(a)?e>1?KX(a,e-1,t,i,n):BOe(n,a):i||(n[n.length]=a)}return n}UX.exports=KX});var GX=w((alt,jX)=>{var QOe=HX();function SOe(r){var e=r==null?0:r.length;return e?QOe(r,1):[]}jX.exports=SOe});var qX=w((Alt,YX)=>{function vOe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}YX.exports=vOe});var FR=w((llt,JX)=>{var kOe=qX(),WX=Math.max;function xOe(r,e,t){return e=WX(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=WX(i.length-e,0),o=Array(s);++n{function POe(r){return function(){return r}}zX.exports=POe});var i0=w((ult,VX)=>{function DOe(r){return r}VX.exports=DOe});var $X=w((glt,XX)=>{var ROe=_X(),ZX=xR(),FOe=i0(),NOe=ZX?function(r,e){return ZX(r,"toString",{configurable:!0,enumerable:!1,value:ROe(e),writable:!0})}:FOe;XX.exports=NOe});var tZ=w((flt,eZ)=>{var LOe=800,TOe=16,OOe=Date.now;function MOe(r){var e=0,t=0;return function(){var i=OOe(),n=TOe-(i-t);if(t=i,n>0){if(++e>=LOe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}eZ.exports=MOe});var NR=w((hlt,rZ)=>{var UOe=$X(),KOe=tZ(),HOe=KOe(UOe);rZ.exports=HOe});var nZ=w((plt,iZ)=>{var jOe=GX(),GOe=FR(),YOe=NR();function qOe(r){return YOe(GOe(r,void 0,jOe),r+"")}iZ.exports=qOe});var oZ=w((dlt,sZ)=>{var JOe=FX(),WOe=nZ(),zOe=WOe(function(r,e){return r==null?{}:JOe(r,e)});sZ.exports=zOe});var mZ=w((fut,pZ)=>{"use strict";var YR;try{YR=Map}catch(r){}var qR;try{qR=Set}catch(r){}function dZ(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(CZ);if(YR&&r instanceof YR)return new Map(Array.from(r.entries()));if(qR&&r instanceof qR)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:dZ(r[n],e,t)}return i}return r}function CZ(r){return dZ(r,[],[])}pZ.exports=CZ});var yC=w(JR=>{"use strict";Object.defineProperty(JR,"__esModule",{value:!0});JR.default=iMe;var nMe=Object.prototype.toString,sMe=Error.prototype.toString,oMe=RegExp.prototype.toString,aMe=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",AMe=/^Symbol\((.*)\)(.*)$/;function lMe(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function EZ(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return lMe(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return aMe.call(r).replace(AMe,"Symbol($1)");let i=nMe.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+sMe.call(r)+"]":i==="RegExp"?oMe.call(r):null}function iMe(r,e){let t=EZ(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=EZ(this[i],e);return s!==null?s:n},2)}});var mA=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.default=bi.array=bi.object=bi.boolean=bi.date=bi.number=bi.string=bi.mixed=void 0;var IZ=cMe(yC());function cMe(r){return r&&r.__esModule?r:{default:r}}var yZ={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,IZ.default)(t,!0)}\``+(n?` (cast from the value \`${(0,IZ.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};bi.mixed=yZ;var wZ={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};bi.string=wZ;var BZ={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};bi.number=BZ;var bZ={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};bi.date=bZ;var QZ={isValue:"${path} field must be ${value}"};bi.boolean=QZ;var SZ={noUnknown:"${path} field has unspecified keys: ${unknown}"};bi.object=SZ;var vZ={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};bi.array=vZ;var uMe=Object.assign(Object.create(null),{mixed:yZ,string:wZ,number:BZ,date:bZ,object:SZ,array:vZ,boolean:QZ});bi.default=uMe});var xZ=w((dut,kZ)=>{var gMe=Object.prototype,fMe=gMe.hasOwnProperty;function hMe(r,e){return r!=null&&fMe.call(r,e)}kZ.exports=hMe});var wC=w((Cut,PZ)=>{var pMe=xZ(),dMe=DR();function CMe(r,e){return r!=null&&dMe(r,e,pMe)}PZ.exports=CMe});var Of=w(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});a0.default=void 0;var mMe=r=>r&&r.__isYupSchema__;a0.default=mMe});var FZ=w(A0=>{"use strict";Object.defineProperty(A0,"__esModule",{value:!0});A0.default=void 0;var EMe=DZ(wC()),IMe=DZ(Of());function DZ(r){return r&&r.__esModule?r:{default:r}}var RZ=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,EMe.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,IMe.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},yMe=RZ;A0.default=yMe});var zR=w(WR=>{"use strict";Object.defineProperty(WR,"__esModule",{value:!0});WR.default=wMe;function wMe(r){return r==null?[]:[].concat(r)}});var hu=w(l0=>{"use strict";Object.defineProperty(l0,"__esModule",{value:!0});l0.default=void 0;var BMe=NZ(yC()),bMe=NZ(zR());function NZ(r){return r&&r.__esModule?r:{default:r}}function _R(){return _R=Object.assign||function(r){for(var e=1;e(0,BMe.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super();this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,bMe.default)(e).forEach(s=>{BC.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,BC)}};l0.default=BC});var c0=w(VR=>{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});VR.default=SMe;var XR=vMe(hu());function vMe(r){return r&&r.__esModule?r:{default:r}}var kMe=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function SMe(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=kMe(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new XR.default(o,s,l)):c(null,s);for(let f=0;f{function xMe(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}LZ.exports=xMe});var ZR=w((but,OZ)=>{var PMe=TZ(),DMe=PMe();OZ.exports=DMe});var UZ=w((Qut,MZ)=>{function RMe(r,e){for(var t=-1,i=Array(r);++t{function FMe(){return!1}KZ.exports=FMe});var QC=w((bC,Mf)=>{var NMe=Ts(),LMe=HZ(),jZ=typeof bC=="object"&&bC&&!bC.nodeType&&bC,GZ=jZ&&typeof Mf=="object"&&Mf&&!Mf.nodeType&&Mf,TMe=GZ&&GZ.exports===jZ,YZ=TMe?NMe.Buffer:void 0,OMe=YZ?YZ.isBuffer:void 0,MMe=OMe||LMe;Mf.exports=MMe});var JZ=w((vut,qZ)=>{var UMe=zc(),KMe=t0(),HMe=ra(),jMe="[object Arguments]",GMe="[object Array]",YMe="[object Boolean]",qMe="[object Date]",JMe="[object Error]",WMe="[object Function]",zMe="[object Map]",_Me="[object Number]",VMe="[object Object]",XMe="[object RegExp]",ZMe="[object Set]",$Me="[object String]",e1e="[object WeakMap]",t1e="[object ArrayBuffer]",r1e="[object DataView]",i1e="[object Float32Array]",n1e="[object Float64Array]",s1e="[object Int8Array]",o1e="[object Int16Array]",a1e="[object Int32Array]",A1e="[object Uint8Array]",l1e="[object Uint8ClampedArray]",c1e="[object Uint16Array]",u1e="[object Uint32Array]",wr={};wr[i1e]=wr[n1e]=wr[s1e]=wr[o1e]=wr[a1e]=wr[A1e]=wr[l1e]=wr[c1e]=wr[u1e]=!0;wr[jMe]=wr[GMe]=wr[t1e]=wr[YMe]=wr[r1e]=wr[qMe]=wr[JMe]=wr[WMe]=wr[zMe]=wr[_Me]=wr[VMe]=wr[XMe]=wr[ZMe]=wr[$Me]=wr[e1e]=!1;function g1e(r){return HMe(r)&&KMe(r.length)&&!!wr[UMe(r)]}qZ.exports=g1e});var u0=w((kut,WZ)=>{function f1e(r){return function(e){return r(e)}}WZ.exports=f1e});var g0=w((SC,Uf)=>{var h1e=ix(),zZ=typeof SC=="object"&&SC&&!SC.nodeType&&SC,vC=zZ&&typeof Uf=="object"&&Uf&&!Uf.nodeType&&Uf,p1e=vC&&vC.exports===zZ,$R=p1e&&h1e.process,d1e=function(){try{var r=vC&&vC.require&&vC.require("util").types;return r||$R&&$R.binding&&$R.binding("util")}catch(e){}}();Uf.exports=d1e});var f0=w((xut,_Z)=>{var C1e=JZ(),m1e=u0(),VZ=g0(),XZ=VZ&&VZ.isTypedArray,E1e=XZ?m1e(XZ):C1e;_Z.exports=E1e});var eF=w((Put,ZZ)=>{var I1e=UZ(),y1e=CC(),w1e=Hs(),B1e=QC(),b1e=dC(),Q1e=f0(),S1e=Object.prototype,v1e=S1e.hasOwnProperty;function k1e(r,e){var t=w1e(r),i=!t&&y1e(r),n=!t&&!i&&B1e(r),s=!t&&!i&&!n&&Q1e(r),o=t||i||n||s,a=o?I1e(r.length,String):[],l=a.length;for(var c in r)(e||v1e.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||b1e(c,l)))&&a.push(c);return a}ZZ.exports=k1e});var h0=w((Dut,$Z)=>{var x1e=Object.prototype;function P1e(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||x1e;return r===t}$Z.exports=P1e});var tF=w((Rut,e$)=>{function D1e(r,e){return function(t){return r(e(t))}}e$.exports=D1e});var r$=w((Fut,t$)=>{var R1e=tF(),F1e=R1e(Object.keys,Object);t$.exports=F1e});var n$=w((Nut,i$)=>{var N1e=h0(),L1e=r$(),T1e=Object.prototype,O1e=T1e.hasOwnProperty;function M1e(r){if(!N1e(r))return L1e(r);var e=[];for(var t in Object(r))O1e.call(r,t)&&t!="constructor"&&e.push(t);return e}i$.exports=M1e});var kC=w((Lut,s$)=>{var U1e=XB(),K1e=t0();function H1e(r){return r!=null&&K1e(r.length)&&!U1e(r)}s$.exports=H1e});var Kf=w((Tut,o$)=>{var j1e=eF(),G1e=n$(),Y1e=kC();function q1e(r){return Y1e(r)?j1e(r):G1e(r)}o$.exports=q1e});var rF=w((Out,a$)=>{var J1e=ZR(),W1e=Kf();function z1e(r,e){return r&&J1e(r,e,W1e)}a$.exports=z1e});var l$=w((Mut,A$)=>{var _1e=fC();function V1e(){this.__data__=new _1e,this.size=0}A$.exports=V1e});var u$=w((Uut,c$)=>{function X1e(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}c$.exports=X1e});var f$=w((Kut,g$)=>{function Z1e(r){return this.__data__.get(r)}g$.exports=Z1e});var p$=w((Hut,h$)=>{function $1e(r){return this.__data__.has(r)}h$.exports=$1e});var C$=w((jut,d$)=>{var eUe=fC(),tUe=ZB(),rUe=$B(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=fC(),oUe=l$(),aUe=u$(),AUe=f$(),lUe=p$(),cUe=C$();function Hf(r){var e=this.__data__=new sUe(r);this.size=e.size}Hf.prototype.clear=oUe;Hf.prototype.delete=aUe;Hf.prototype.get=AUe;Hf.prototype.has=lUe;Hf.prototype.set=cUe;m$.exports=Hf});var I$=w((Yut,E$)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}E$.exports=gUe});var w$=w((qut,y$)=>{function fUe(r){return this.__data__.has(r)}y$.exports=fUe});var b$=w((Jut,B$)=>{var hUe=$B(),pUe=I$(),dUe=w$();function p0(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}v$.exports=mUe});var iF=w((_ut,x$)=>{var EUe=b$(),IUe=S$(),yUe=k$(),wUe=1,BUe=2;function bUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,f=!0,h=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var QUe=Ts(),SUe=QUe.Uint8Array;P$.exports=SUe});var R$=w((Xut,D$)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}D$.exports=vUe});var N$=w((Zut,F$)=>{function kUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}F$.exports=kUe});var U$=w(($ut,L$)=>{var T$=Wc(),O$=nF(),xUe=Df(),PUe=iF(),DUe=R$(),RUe=N$(),FUe=1,NUe=2,LUe="[object Boolean]",TUe="[object Date]",OUe="[object Error]",MUe="[object Map]",UUe="[object Number]",KUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",M$=T$?T$.prototype:void 0,sF=M$?M$.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new O$(r),new O$(e)));case LUe:case TUe:case UUe:return xUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case KUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=PUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(sF)return sF.call(r)==sF.call(e)}return!1}L$.exports=JUe});var oF=w((egt,K$)=>{var WUe=r0(),zUe=Hs();function _Ue(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}K$.exports=_Ue});var j$=w((tgt,H$)=>{function VUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function XUe(){return[]}G$.exports=XUe});var d0=w((igt,Y$)=>{var ZUe=j$(),$Ue=aF(),eKe=Object.prototype,tKe=eKe.propertyIsEnumerable,q$=Object.getOwnPropertySymbols,rKe=q$?function(r){return r==null?[]:(r=Object(r),ZUe(q$(r),function(e){return tKe.call(r,e)}))}:$Ue;Y$.exports=rKe});var AF=w((ngt,J$)=>{var iKe=oF(),nKe=d0(),sKe=Kf();function oKe(r){return iKe(r,sKe,nKe)}J$.exports=oKe});var _$=w((sgt,W$)=>{var z$=AF(),aKe=1,AKe=Object.prototype,lKe=AKe.hasOwnProperty;function cKe(r,e,t,i,n,s){var o=t&aKe,a=z$(r),l=a.length,c=z$(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:lKe.call(e,f)))return!1}var h=s.get(r),p=s.get(e);if(h&&p)return h==e&&p==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var uKe=Fl(),gKe=Ts(),fKe=uKe(gKe,"DataView");V$.exports=fKe});var $$=w((agt,Z$)=>{var hKe=Fl(),pKe=Ts(),dKe=hKe(pKe,"Promise");Z$.exports=dKe});var tee=w((Agt,eee)=>{var CKe=Fl(),mKe=Ts(),EKe=CKe(mKe,"Set");eee.exports=EKe});var iee=w((lgt,ree)=>{var IKe=Fl(),yKe=Ts(),wKe=IKe(yKe,"WeakMap");ree.exports=wKe});var PC=w((cgt,nee)=>{var lF=X$(),cF=ZB(),uF=$$(),gF=tee(),fF=iee(),see=zc(),jf=vR(),oee="[object Map]",BKe="[object Object]",aee="[object Promise]",Aee="[object Set]",lee="[object WeakMap]",cee="[object DataView]",bKe=jf(lF),QKe=jf(cF),SKe=jf(uF),vKe=jf(gF),kKe=jf(fF),pu=see;(lF&&pu(new lF(new ArrayBuffer(1)))!=cee||cF&&pu(new cF)!=oee||uF&&pu(uF.resolve())!=aee||gF&&pu(new gF)!=Aee||fF&&pu(new fF)!=lee)&&(pu=function(r){var e=see(r),t=e==BKe?r.constructor:void 0,i=t?jf(t):"";if(i)switch(i){case bKe:return cee;case QKe:return oee;case SKe:return aee;case vKe:return Aee;case kKe:return lee}return e});nee.exports=pu});var mee=w((ugt,uee)=>{var hF=xC(),xKe=iF(),PKe=U$(),DKe=_$(),gee=PC(),fee=Hs(),hee=QC(),RKe=f0(),FKe=1,pee="[object Arguments]",dee="[object Array]",C0="[object Object]",NKe=Object.prototype,Cee=NKe.hasOwnProperty;function LKe(r,e,t,i,n,s){var o=fee(r),a=fee(e),l=o?dee:gee(r),c=a?dee:gee(e);l=l==pee?C0:l,c=c==pee?C0:c;var u=l==C0,g=c==C0,f=l==c;if(f&&hee(r)){if(!hee(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new hF),o||RKe(r)?xKe(r,e,t,i,n,s):PKe(r,e,l,t,i,n,s);if(!(t&FKe)){var h=u&&Cee.call(r,"__wrapped__"),p=g&&Cee.call(e,"__wrapped__");if(h||p){var m=h?r.value():r,y=p?e.value():e;return s||(s=new hF),n(m,y,t,i,s)}}return f?(s||(s=new hF),DKe(r,e,t,i,n,s)):!1}uee.exports=LKe});var pF=w((ggt,Eee)=>{var TKe=mee(),Iee=ra();function yee(r,e,t,i,n){return r===e?!0:r==null||e==null||!Iee(r)&&!Iee(e)?r!==r&&e!==e:TKe(r,e,t,i,yee,n)}Eee.exports=yee});var Bee=w((fgt,wee)=>{var OKe=xC(),MKe=pF(),UKe=1,KKe=2;function HKe(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var jKe=Fn();function GKe(r){return r===r&&!jKe(r)}bee.exports=GKe});var See=w((pgt,Qee)=>{var YKe=dF(),qKe=Kf();function JKe(r){for(var e=qKe(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,YKe(n)]}return e}Qee.exports=JKe});var CF=w((dgt,vee)=>{function WKe(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}vee.exports=WKe});var xee=w((Cgt,kee)=>{var zKe=Bee(),_Ke=See(),VKe=CF();function XKe(r){var e=_Ke(r);return e.length==1&&e[0][2]?VKe(e[0][0],e[0][1]):function(t){return t===r||zKe(t,r,e)}}kee.exports=XKe});var m0=w((mgt,Pee)=>{var ZKe=pC();function $Ke(r,e,t){var i=r==null?void 0:ZKe(r,e);return i===void 0?t:i}Pee.exports=$Ke});var Ree=w((Egt,Dee)=>{var e2e=pF(),t2e=m0(),r2e=RR(),i2e=VB(),n2e=dF(),s2e=CF(),o2e=fu(),a2e=1,A2e=2;function l2e(r,e){return i2e(r)&&n2e(e)?s2e(o2e(r),e):function(t){var i=t2e(t,r);return i===void 0&&i===e?r2e(t,r):e2e(e,i,a2e|A2e)}}Dee.exports=l2e});var Nee=w((Igt,Fee)=>{function c2e(r){return function(e){return e==null?void 0:e[r]}}Fee.exports=c2e});var Tee=w((ygt,Lee)=>{var u2e=pC();function g2e(r){return function(e){return u2e(e,r)}}Lee.exports=g2e});var Mee=w((wgt,Oee)=>{var f2e=Nee(),h2e=Tee(),p2e=VB(),d2e=fu();function C2e(r){return p2e(r)?f2e(d2e(r)):h2e(r)}Oee.exports=C2e});var mF=w((Bgt,Uee)=>{var m2e=xee(),E2e=Ree(),I2e=i0(),y2e=Hs(),w2e=Mee();function B2e(r){return typeof r=="function"?r:r==null?I2e:typeof r=="object"?y2e(r)?E2e(r[0],r[1]):m2e(r):w2e(r)}Uee.exports=B2e});var EF=w((bgt,Kee)=>{var b2e=Lf(),Q2e=rF(),S2e=mF();function v2e(r,e){var t={};return e=S2e(e,3),Q2e(r,function(i,n,s){b2e(t,n,e(i,n,s))}),t}Kee.exports=v2e});var DC=w((Qgt,Hee)=>{"use strict";function du(r){this._maxSize=r,this.clear()}du.prototype.clear=function(){this._size=0,this._values=Object.create(null)};du.prototype.get=function(r){return this._values[r]};du.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var k2e=/[^.^\]^[]+|(?=\[\]|\.\.)/g,jee=/^\d+$/,x2e=/^\d/,P2e=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,D2e=/^\s*(['"]?)(.*?)(\1)\s*$/,IF=512,Gee=new du(IF),Yee=new du(IF),qee=new du(IF);Hee.exports={Cache:du,split:wF,normalizePath:yF,setter:function(r){var e=yF(r);return Yee.get(r)||Yee.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(RC,"__esModule",{value:!0});RC.create=T2e;RC.default=void 0;var O2e=DC(),E0={context:"$",value:"."};function T2e(r,e){return new I0(r,e)}var I0=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===E0.context,this.isValue=this.key[0]===E0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?E0.context:this.isValue?E0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,O2e.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};RC.default=I0;I0.prototype.__isYupRef=!0});var Jee=w(bF=>{"use strict";Object.defineProperty(bF,"__esModule",{value:!0});bF.default=M2e;var U2e=QF(EF()),y0=QF(hu()),K2e=QF(Cu());function QF(r){return r&&r.__esModule?r:{default:r}}function w0(){return w0=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function M2e(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=H2e(t,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=r,{parent:m,context:y}=a;function b(q){return K2e.default.isRef(q)?q.getValue(n,m,y):q}function v(q={}){let $=(0,U2e.default)(w0({value:n,originalValue:l,label:o,path:q.path||s},h,q.params),b),z=new y0.default(y0.default.formatError(q.message||p,$),n,$.path,q.type||g);return z.params=$,z}let k=w0({path:s,parent:m,type:g,createError:v,resolve:b,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(k,n,k)).then(q=>{y0.default.isError(q)?i(q):q?i(null,q):i(v())})}catch(q){i(q)}return}let T;try{var Y;if(T=f.call(k,n,k),typeof((Y=T)==null?void 0:Y.then)=="function")throw new Error(`Validation test of type: "${k.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}y0.default.isError(T)?i(T):T?i(null,T):i(v())}return e.OPTIONS=r,e}});var SF=w(FC=>{"use strict";Object.defineProperty(FC,"__esModule",{value:!0});FC.getIn=Wee;FC.default=void 0;var j2e=DC(),G2e=r=>r.substr(0,r.length-1).substr(1);function Wee(r,e,t,i=t){let n,s,o;return e?((0,j2e.forEach)(e,(a,l,c)=>{let u=l?G2e(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var Y2e=(r,e,t,i)=>Wee(r,e,t,i).schema,q2e=Y2e;FC.default=q2e});var _ee=w(B0=>{"use strict";Object.defineProperty(B0,"__esModule",{value:!0});B0.default=void 0;var zee=J2e(Cu());function J2e(r){return r&&r.__esModule?r:{default:r}}var b0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){zee.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){zee.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new b0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};B0.default=b0});var IA=w(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});Q0.default=void 0;var Vee=EA(mZ()),Gf=mA(),W2e=EA(FZ()),Xee=EA(c0()),S0=EA(Jee()),Zee=EA(yC()),z2e=EA(Cu()),_2e=SF(),V2e=EA(zR()),$ee=EA(hu()),ete=EA(_ee());function EA(r){return r&&r.__esModule?r:{default:r}}function zs(){return zs=Object.assign||function(r){for(var e=1;e{this.typeError(Gf.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=zs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=zs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Vee.default)(zs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=zs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(zs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,Zee.default)(e),o=(0,Zee.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". + +attempted value: ${s} +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,zs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,Xee.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,Xee.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(zs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(zs({},t,{value:e})),n;return i._validate(e,zs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if($ee.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if($ee.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Vee.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Gf.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Gf.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Gf.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,S0.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,V2e.default)(e).map(s=>new z2e.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new W2e.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,S0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Gf.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,S0.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Gf.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,S0.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};Q0.default=ga;ga.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])ga.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,_2e.getIn)(this,e,t,i.context);return o[r](n&&n[s],zs({},i,{parent:n,path:e}))};for(let r of["equals","is"])ga.prototype[r]=ga.prototype.oneOf;for(let r of["not","nope"])ga.prototype[r]=ga.prototype.notOneOf;ga.prototype.optional=ga.prototype.notRequired});var rte=w(NC=>{"use strict";Object.defineProperty(NC,"__esModule",{value:!0});NC.create=tte;NC.default=void 0;var Z2e=X2e(IA());function X2e(r){return r&&r.__esModule?r:{default:r}}var vF=Z2e.default,$2e=vF;NC.default=$2e;function tte(){return new vF}tte.prototype=vF.prototype});var Yf=w(v0=>{"use strict";Object.defineProperty(v0,"__esModule",{value:!0});v0.default=void 0;var eHe=r=>r==null;v0.default=eHe});var ate=w(LC=>{"use strict";Object.defineProperty(LC,"__esModule",{value:!0});LC.create=ite;LC.default=void 0;var tHe=nte(IA()),ste=mA(),ote=nte(Yf());function nte(r){return r&&r.__esModule?r:{default:r}}function ite(){return new k0}var k0=class extends tHe.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=ste.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,ote.default)(t)||t===!0}})}isFalse(e=ste.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,ote.default)(t)||t===!1}})}};LC.default=k0;ite.prototype=k0.prototype});var cte=w(TC=>{"use strict";Object.defineProperty(TC,"__esModule",{value:!0});TC.create=Ate;TC.default=void 0;var fa=mA(),yA=lte(Yf()),rHe=lte(IA());function lte(r){return r&&r.__esModule?r:{default:r}}var iHe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nHe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sHe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oHe=r=>(0,yA.default)(r)||r===r.trim(),aHe={}.toString();function Ate(){return new x0}var x0=class extends rHe.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aHe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=fa.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,yA.default)(i)||i.length===this.resolve(e)}})}min(e,t=fa.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,yA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=fa.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,yA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||fa.string.matches,params:{regex:e},test:o=>(0,yA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=fa.string.email){return this.matches(iHe,{name:"email",message:e,excludeEmptyString:!0})}url(e=fa.string.url){return this.matches(nHe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=fa.string.uuid){return this.matches(sHe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=fa.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oHe})}lowercase(e=fa.string.lowercase){return this.transform(t=>(0,yA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,yA.default)(t)||t===t.toLowerCase()})}uppercase(e=fa.string.uppercase){return this.transform(t=>(0,yA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,yA.default)(t)||t===t.toUpperCase()})}};TC.default=x0;Ate.prototype=x0.prototype});var fte=w(OC=>{"use strict";Object.defineProperty(OC,"__esModule",{value:!0});OC.create=ute;OC.default=void 0;var mu=mA(),Eu=gte(Yf()),AHe=gte(IA());function gte(r){return r&&r.__esModule?r:{default:r}}var lHe=r=>r!=+r;function ute(){return new P0}var P0=class extends AHe.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lHe(e)}min(e,t=mu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Eu.default)(i)||i>=this.resolve(e)}})}max(e,t=mu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Eu.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=mu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,Eu.default)(i)||ithis.resolve(e)}})}positive(e=mu.number.positive){return this.moreThan(0,e)}negative(e=mu.number.negative){return this.lessThan(0,e)}integer(e=mu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,Eu.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,Eu.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,Eu.default)(n)?n:Math[e](n))}};OC.default=P0;ute.prototype=P0.prototype});var hte=w(kF=>{"use strict";Object.defineProperty(kF,"__esModule",{value:!0});kF.default=cHe;var uHe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function cHe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=uHe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Cte=w(MC=>{"use strict";Object.defineProperty(MC,"__esModule",{value:!0});MC.create=xF;MC.default=void 0;var gHe=D0(hte()),pte=mA(),dte=D0(Yf()),fHe=D0(Cu()),hHe=D0(IA());function D0(r){return r&&r.__esModule?r:{default:r}}var PF=new Date(""),pHe=r=>Object.prototype.toString.call(r)==="[object Date]";function xF(){return new UC}var UC=class extends hHe.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gHe.default)(e),isNaN(e)?PF:new Date(e))})})}_typeCheck(e){return pHe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fHe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=pte.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,dte.default)(n)||n>=this.resolve(i)}})}max(e,t=pte.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,dte.default)(n)||n<=this.resolve(i)}})}};MC.default=UC;UC.INVALID_DATE=PF;xF.prototype=UC.prototype;xF.INVALID_DATE=PF});var Ete=w((Mgt,mte)=>{function dHe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function CHe(r){return function(e){return r==null?void 0:r[e]}}Ite.exports=CHe});var Bte=w((Kgt,wte)=>{var mHe=yte(),EHe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},IHe=mHe(EHe);wte.exports=IHe});var Qte=w((Hgt,bte)=>{var yHe=Bte(),wHe=cf(),BHe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bHe="\\u0300-\\u036f",QHe="\\ufe20-\\ufe2f",SHe="\\u20d0-\\u20ff",vHe=bHe+QHe+SHe,kHe="["+vHe+"]",xHe=RegExp(kHe,"g");function PHe(r){return r=wHe(r),r&&r.replace(BHe,yHe).replace(xHe,"")}bte.exports=PHe});var vte=w((jgt,Ste)=>{var DHe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function RHe(r){return r.match(DHe)||[]}Ste.exports=RHe});var xte=w((Ggt,kte)=>{var FHe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function NHe(r){return FHe.test(r)}kte.exports=NHe});var zte=w((Ygt,Pte)=>{var Dte="\\ud800-\\udfff",LHe="\\u0300-\\u036f",THe="\\ufe20-\\ufe2f",OHe="\\u20d0-\\u20ff",MHe=LHe+THe+OHe,Rte="\\u2700-\\u27bf",Fte="a-z\\xdf-\\xf6\\xf8-\\xff",UHe="\\xac\\xb1\\xd7\\xf7",KHe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HHe="\\u2000-\\u206f",jHe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Nte="A-Z\\xc0-\\xd6\\xd8-\\xde",GHe="\\ufe0e\\ufe0f",Lte=UHe+KHe+HHe+jHe,Tte="['\u2019]",Ote="["+Lte+"]",YHe="["+MHe+"]",Mte="\\d+",qHe="["+Rte+"]",Ute="["+Fte+"]",Kte="[^"+Dte+Lte+Mte+Rte+Fte+Nte+"]",JHe="\\ud83c[\\udffb-\\udfff]",WHe="(?:"+YHe+"|"+JHe+")",zHe="[^"+Dte+"]",Hte="(?:\\ud83c[\\udde6-\\uddff]){2}",jte="[\\ud800-\\udbff][\\udc00-\\udfff]",qf="["+Nte+"]",_He="\\u200d",Gte="(?:"+Ute+"|"+Kte+")",VHe="(?:"+qf+"|"+Kte+")",Yte="(?:"+Tte+"(?:d|ll|m|re|s|t|ve))?",qte="(?:"+Tte+"(?:D|LL|M|RE|S|T|VE))?",Jte=WHe+"?",Wte="["+GHe+"]?",XHe="(?:"+_He+"(?:"+[zHe,Hte,jte].join("|")+")"+Wte+Jte+")*",ZHe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$He="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eje=Wte+Jte+XHe,tje="(?:"+[qHe,Hte,jte].join("|")+")"+eje,rje=RegExp([qf+"?"+Ute+"+"+Yte+"(?="+[Ote,qf,"$"].join("|")+")",VHe+"+"+qte+"(?="+[Ote,qf+Gte,"$"].join("|")+")",qf+"?"+Gte+"+"+Yte,qf+"+"+qte,$He,ZHe,Mte,tje].join("|"),"g");function ije(r){return r.match(rje)||[]}Pte.exports=ije});var Vte=w((qgt,_te)=>{var nje=vte(),sje=xte(),oje=cf(),aje=zte();function Aje(r,e,t){return r=oje(r),e=t?void 0:e,e===void 0?sje(r)?aje(r):nje(r):r.match(e)||[]}_te.exports=Aje});var DF=w((Jgt,Xte)=>{var lje=Ete(),cje=Qte(),uje=Vte(),gje="['\u2019]",fje=RegExp(gje,"g");function hje(r){return function(e){return lje(uje(cje(e).replace(fje,"")),r,"")}}Xte.exports=hje});var $te=w((Wgt,Zte)=>{var pje=DF(),dje=pje(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});Zte.exports=dje});var tre=w((zgt,ere)=>{var Cje=$w(),mje=DF(),Eje=mje(function(r,e,t){return e=e.toLowerCase(),r+(t?Cje(e):e)});ere.exports=Eje});var ire=w((_gt,rre)=>{var Ije=Lf(),yje=rF(),wje=mF();function Bje(r,e){var t={};return e=wje(e,3),yje(r,function(i,n,s){Ije(t,e(i,n,s),i)}),t}rre.exports=Bje});var sre=w((Vgt,RF)=>{RF.exports=function(r){return nre(bje(r),r)};RF.exports.array=nre;function nre(r,e){var t=r.length,i=new Array(t),n={},s=t,o=Qje(e),a=Sje(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(m){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--t]=c}}}function bje(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(FF,"__esModule",{value:!0});FF.default=vje;var kje=R0(wC()),xje=R0(sre()),Pje=DC(),Dje=R0(Cu()),Rje=R0(Of());function R0(r){return r&&r.__esModule?r:{default:r}}function vje(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,Pje.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,kje.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),Dje.default.isRef(o)&&o.isSibling?n(o.path,s):(0,Rje.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xje.default.array(i,t).reverse()}});var Are=w(NF=>{"use strict";Object.defineProperty(NF,"__esModule",{value:!0});NF.default=Fje;function are(r,e){let t=Infinity;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function Fje(r){return(e,t)=>are(r,e)-are(r,t)}});var pre=w(KC=>{"use strict";Object.defineProperty(KC,"__esModule",{value:!0});KC.create=lre;KC.default=void 0;var cre=ha(wC()),ure=ha($te()),Nje=ha(tre()),Lje=ha(ire()),Tje=ha(EF()),Oje=DC(),gre=mA(),Mje=ha(ore()),fre=ha(Are()),Uje=ha(c0()),Kje=ha(hu()),LF=ha(IA());function ha(r){return r&&r.__esModule?r:{default:r}}function Jf(){return Jf=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function Hje(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jje=(0,fre.default)([]),F0=class extends LF.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=jje,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return hre(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Jf({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,cre.default)(n,g);if(f){let p,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,f=f.resolve({value:m,context:t.context,parent:l});let y="spec"in f?f.spec:void 0,b=y==null?void 0:y.strict;if(y==null?void 0:y.strip){u=u||g in n;continue}p=!t.__validating||!b?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!Kje.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!hre(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,m)=>{let y=h.indexOf(".")===-1?(t.path?`${t.path}.`:"")+h:`${t.path||""}["${h}"]`,b=this.fields[h];if(b&&"validate"in b){b.validate(g[h],Jf({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[h]}),m);return}m(null)});(0,Uje.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Jf({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof LF.default&&s instanceof LF.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,fre.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Mje.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,Oje.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,cre.default)(s,e)&&(o=Jf({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=gre.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=Hje(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=gre.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,Lje.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Nje.default)}snakeCase(){return this.transformKeys(ure.default)}constantCase(){return this.transformKeys(e=>(0,ure.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Tje.default)(this.fields,t=>t.describe()),e}};KC.default=F0;function lre(r){return new F0(r)}lre.prototype=F0.prototype});var Cre=w(HC=>{"use strict";Object.defineProperty(HC,"__esModule",{value:!0});HC.create=dre;HC.default=void 0;var TF=Wf(Yf()),Gje=Wf(Of()),Yje=Wf(yC()),OF=mA(),qje=Wf(c0()),Jje=Wf(hu()),Wje=Wf(IA());function Wf(r){return r&&r.__esModule?r:{default:r}}function N0(){return N0=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch(i){t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,N0({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,f=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(h,p)=>{if(h){if(!Jje.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let m=new Array(p.length);for(let y=0;yc.validate(b,k,Y)}(0,qje.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,Gje.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Yje.default)(e));return t.innerType=e,t}length(e,t=OF.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,TF.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||OF.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,TF.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||OF.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,TF.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};HC.default=L0;dre.prototype=L0.prototype});var mre=w(jC=>{"use strict";Object.defineProperty(jC,"__esModule",{value:!0});jC.create=zje;jC.default=void 0;var Vje=_je(Of());function _je(r){return r&&r.__esModule?r:{default:r}}function zje(r){return new MF(r)}var MF=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,Vje.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},Xje=MF;jC.default=Xje});var Ere=w(UF=>{"use strict";Object.defineProperty(UF,"__esModule",{value:!0});UF.default=Zje;var eGe=$je(mA());function $je(r){return r&&r.__esModule?r:{default:r}}function Zje(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{eGe.default[e][t]=r[e][t]})})}});var HF=w(Br=>{"use strict";Object.defineProperty(Br,"__esModule",{value:!0});Br.addMethod=tGe;Object.defineProperty(Br,"MixedSchema",{enumerable:!0,get:function(){return Ire.default}});Object.defineProperty(Br,"mixed",{enumerable:!0,get:function(){return Ire.create}});Object.defineProperty(Br,"BooleanSchema",{enumerable:!0,get:function(){return KF.default}});Object.defineProperty(Br,"bool",{enumerable:!0,get:function(){return KF.create}});Object.defineProperty(Br,"boolean",{enumerable:!0,get:function(){return KF.create}});Object.defineProperty(Br,"StringSchema",{enumerable:!0,get:function(){return yre.default}});Object.defineProperty(Br,"string",{enumerable:!0,get:function(){return yre.create}});Object.defineProperty(Br,"NumberSchema",{enumerable:!0,get:function(){return wre.default}});Object.defineProperty(Br,"number",{enumerable:!0,get:function(){return wre.create}});Object.defineProperty(Br,"DateSchema",{enumerable:!0,get:function(){return Bre.default}});Object.defineProperty(Br,"date",{enumerable:!0,get:function(){return Bre.create}});Object.defineProperty(Br,"ObjectSchema",{enumerable:!0,get:function(){return bre.default}});Object.defineProperty(Br,"object",{enumerable:!0,get:function(){return bre.create}});Object.defineProperty(Br,"ArraySchema",{enumerable:!0,get:function(){return Qre.default}});Object.defineProperty(Br,"array",{enumerable:!0,get:function(){return Qre.create}});Object.defineProperty(Br,"ref",{enumerable:!0,get:function(){return rGe.create}});Object.defineProperty(Br,"lazy",{enumerable:!0,get:function(){return iGe.create}});Object.defineProperty(Br,"ValidationError",{enumerable:!0,get:function(){return nGe.default}});Object.defineProperty(Br,"reach",{enumerable:!0,get:function(){return sGe.default}});Object.defineProperty(Br,"isSchema",{enumerable:!0,get:function(){return Sre.default}});Object.defineProperty(Br,"setLocale",{enumerable:!0,get:function(){return oGe.default}});Object.defineProperty(Br,"BaseSchema",{enumerable:!0,get:function(){return aGe.default}});var Ire=Iu(rte()),KF=Iu(ate()),yre=Iu(cte()),wre=Iu(fte()),Bre=Iu(Cte()),bre=Iu(pre()),Qre=Iu(Cre()),rGe=Cu(),iGe=mre(),nGe=GC(hu()),sGe=GC(SF()),Sre=GC(Of()),oGe=GC(Ere()),aGe=GC(IA());function GC(r){return r&&r.__esModule?r:{default:r}}function vre(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return vre=function(){return r},r}function Iu(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=vre();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function tGe(r,e,t){if(!r||!(0,Sre.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var Rre=w((dft,qC)=>{"use strict";var cGe=process.env.TERM_PROGRAM==="Hyper",uGe=process.platform==="win32",xre=process.platform==="linux",jF={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Pre=Object.assign({},jF,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Dre=Object.assign({},jF,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:xre?"\u25B8":"\u276F",pointerSmall:xre?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});qC.exports=uGe&&!cGe?Pre:Dre;Reflect.defineProperty(qC.exports,"common",{enumerable:!1,value:jF});Reflect.defineProperty(qC.exports,"windows",{enumerable:!1,value:Pre});Reflect.defineProperty(qC.exports,"other",{enumerable:!1,value:Dre})});var yo=w((Cft,GF)=>{"use strict";var gGe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fGe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Fre=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fGe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gGe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=Rre(),r.define=n,r};GF.exports=Fre();GF.exports.create=Fre});var Xi=w(Lt=>{"use strict";var hGe=Object.prototype.toString,_s=yo(),Nre=!1,YF=[],Lre={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Lt.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Lt.hasColor=r=>!!r&&_s.hasColor(r);var O0=Lt.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Lt.nativeType=r=>hGe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Lt.isAsyncFn=r=>Lt.nativeType(r)==="asyncfunction";Lt.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Lt.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Lt.scrollDown=(r=[])=>[...r.slice(1),r[0]];Lt.scrollUp=(r=[])=>[r.pop(),...r];Lt.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Lt.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Lt.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Lt.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e;n-=((i+t).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Lt.unmute=r=>{let e=r.stack.find(i=>_s.keys.color.includes(i));return e?_s[e]:r.stack.find(i=>i.slice(2)==="bg")?_s[e.slice(2)]:i=>i};Lt.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Lt.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>_s.keys.color.includes(i));if(e){let i=_s["bg"+Lt.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?_s[t.slice(2).toLowerCase()]||r:_s.none};Lt.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>_s.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return _s[Lre[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=Lre[i];return n&&_s["bg"+Lt.pascal(n)]||r}return _s.none};Lt.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Lt.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Lt.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Lt.mixin=(r,e)=>{if(!O0(r))return e;if(!O0(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&O0(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);O0(n.value)?r[t]=Lt.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Lt.merge=(...r)=>{let e={};for(let t of r)Lt.mixin(e,t);return e};Lt.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Lt.define(r,i,n.bind(e)):Lt.define(r,i,n)}};Lt.onExit=r=>{let e=(t,i)=>{Nre||(Nre=!0,YF.forEach(n=>n()),t===!0&&process.exit(128+i))};YF.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),YF.push(r)};Lt.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Lt.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var Tre=w(_f=>{"use strict";_f.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};_f.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};_f.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};_f.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};_f.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var Ure=w((Ift,Ore)=>{"use strict";var Mre=require("readline"),pGe=Tre(),dGe=/^(?:\x1b)([a-zA-Z0-9])$/,CGe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mGe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EGe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IGe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var M0=(r="",e={})=>{let t,i=N({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r},e);if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r=""+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x7F"||r==="\b")i.name="backspace",i.meta=r.charAt(0)==="";else if(r===""||r==="")i.name="escape",i.meta=r.length===2;else if(r===" "||r===" ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dGe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CGe.exec(r)){let n=[...r];n[0]===""&&n[1]===""&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mGe[s],i.shift=EGe(s)||i.shift,i.ctrl=IGe(s)||i.ctrl}return i};M0.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=Mre.createInterface({terminal:!0,input:t});Mre.emitKeypressEvents(t,i);let n=(a,l)=>e(a,M0(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};M0.action=(r,e,t)=>{let i=N(N({},pGe),t);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ore.exports=M0});var Hre=w((yft,Kre)=>{"use strict";Kre.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yGe(r,t,i)}};function yGe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var Yre=w((wft,jre)=>{"use strict";var{define:wGe,width:BGe}=Xi(),Gre=class{constructor(e){let t=e.options;wGe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BGe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=N({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};jre.exports=Gre});var Jre=w((Bft,qre)=>{"use strict";var qF=Xi(),Ni=yo(),JF={default:Ni.noop,noop:Ni.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||qF.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||qF.complement(this.primary)},primary:Ni.cyan,success:Ni.green,danger:Ni.magenta,strong:Ni.bold,warning:Ni.yellow,muted:Ni.dim,disabled:Ni.gray,dark:Ni.dim.gray,underline:Ni.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};JF.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(Ni.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(Ni.visible=r.styles.visible);let e=qF.merge({},JF,r.styles);delete e.merge;for(let t of Object.keys(Ni))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Ni[t]});for(let t of Object.keys(Ni.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>Ni[t]});return e};qre.exports=JF});var zre=w((bft,Wre)=>{"use strict";var WF=process.platform==="win32",wA=yo(),bGe=Xi(),zF=te(N({},wA.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:wA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:wA.symbols.question,submitted:wA.symbols.check,cancelled:wA.symbols.cross},separator:{pending:wA.symbols.pointerSmall,submitted:wA.symbols.middot,cancelled:wA.symbols.middot},radio:{off:WF?"( )":"\u25EF",on:WF?"(*)":"\u25C9",disabled:WF?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});zF.merge=r=>{let e=bGe.merge({},wA.symbols,zF,r.symbols);return delete e.merge,e};Wre.exports=zF});var Vre=w((Qft,_re)=>{"use strict";var QGe=Jre(),SGe=zre(),vGe=Xi();_re.exports=r=>{r.options=vGe.merge({},r.options.theme,r.options),r.symbols=SGe.merge(r.options),r.styles=QGe.merge(r.options)}});var tie=w((Xre,Zre)=>{"use strict";var $re=process.env.TERM_PROGRAM==="Apple_Terminal",kGe=yo(),_F=Xi(),wo=Zre.exports=Xre,Lr="[",eie="\x07",VF=!1,Nl=wo.code={bell:eie,beep:eie,beginning:`${Lr}G`,down:`${Lr}J`,esc:Lr,getPosition:`${Lr}6n`,hide:`${Lr}?25l`,line:`${Lr}2K`,lineEnd:`${Lr}K`,lineStart:`${Lr}1K`,restorePosition:Lr+($re?"8":"u"),savePosition:Lr+($re?"7":"s"),screen:`${Lr}2J`,show:`${Lr}?25h`,up:`${Lr}1J`},yu=wo.cursor={get hidden(){return VF},hide(){return VF=!0,Nl.hide},show(){return VF=!1,Nl.show},forward:(r=1)=>`${Lr}${r}C`,backward:(r=1)=>`${Lr}${r}D`,nextLine:(r=1)=>`${Lr}E`.repeat(r),prevLine:(r=1)=>`${Lr}F`.repeat(r),up:(r=1)=>r?`${Lr}${r}A`:"",down:(r=1)=>r?`${Lr}${r}B`:"",right:(r=1)=>r?`${Lr}${r}C`:"",left:(r=1)=>r?`${Lr}${r}D`:"",to(r,e){return e?`${Lr}${e+1};${r+1}H`:`${Lr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?yu.left(-r):r>0?yu.right(r):"",t+=e<0?yu.up(-e):e>0?yu.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=_F.isPrimitive(i)?String(i):"",n=_F.isPrimitive(n)?String(n):"",a=_F.isPrimitive(a)?String(a):"",o){let l=wo.cursor.up(o)+wo.cursor.to(s.length),c=n.length-t;return c>0&&(l+=wo.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),wo.cursor.move(l)}}},XF=wo.erase={screen:Nl.screen,up:Nl.up,down:Nl.down,line:Nl.line,lineEnd:Nl.lineEnd,lineStart:Nl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return XF.line+yu.to(0);let t=s=>[...kGe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(XF.line+yu.prevLine()).repeat(n-1)+XF.line+yu.to(0)}});var Vf=w((Sft,rie)=>{"use strict";var xGe=require("events"),iie=yo(),ZF=Ure(),PGe=Hre(),DGe=Yre(),RGe=Vre(),On=Xi(),wu=tie(),U0=class extends xGe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,RGe(this),PGe(this),this.state=new DGe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NGe(this.options.margin),this.setMaxListeners(0),FGe(this)}async keypress(e,t={}){this.keypressed=!0;let i=ZF.action(e,ZF(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(wu.code.beep)}cursorHide(){this.stdout.write(wu.cursor.hide()),On.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(wu.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(wu.cursor.down(e)+wu.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=wu.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=iie.unstyle(i);let n=iie.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`),c=l[0],u=l[l.length-1],f=(i+(t?" "+t:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,On.isObject(e)&&(e=e[i.status]||e.pending),On.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return On.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return On.isObject(s)&&(s=s[i.status]||s.pending),On.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&On.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=On.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&On.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return On.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return On.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return On.resolve(this,e,...t)}get base(){return U0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||On.height(this.stdout,25)}get width(){return this.options.columns||On.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FGe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NGe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2==0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}rie.exports=U0});var oie=w((vft,nie)=>{"use strict";var LGe=Xi(),sie={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return sie.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};nie.exports=(r,e={})=>{let t=LGe.merge({},sie,e.roles);return t[r]||t.default}});var JC=w((kft,aie)=>{"use strict";var TGe=yo(),OGe=Vf(),MGe=oie(),K0=Xi(),{reorder:$F,scrollUp:UGe,scrollDown:KGe,isObject:Aie,swap:HGe}=K0,lie=class extends OGe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Aie(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MGe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,K0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,TGe.unstyle(e.message).length));let o=N({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n=N({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return cie(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=$F(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=$F(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=$F(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=UGe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=KGe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HGe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(Aie(e))return t?e[t]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=K0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return cie(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function cie(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(K0.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}aie.exports=lie});var Ll=w((xft,uie)=>{"use strict";var jGe=JC(),eN=Xi(),gie=class extends jGe{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!eN.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!eN.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(eN.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};uie.exports=gie});var pie=w((Pft,fie)=>{"use strict";var GGe=Ll(),YGe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},hie=class extends GGe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YGe(this.input,e),i=this.choices;this.choices=i.map(n=>te(N({},n),{message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};fie.exports=hie});var rN=w((Dft,die)=>{"use strict";var tN=Xi();die.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=tN.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",f=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,f=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=tN.isPrimitive(i)?`${i}`:"",t=tN.isPrimitive(t)?`${t}`:"";let h=i&&i.startsWith(t)&&i!==t,p=h?c(i[t.length]):f;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),p=""),s===!1&&(p=""),h){let m=r.styles.unstyle(u+p);return u+p+a(i.slice(m.length))}return u+p}});var H0=w((Rft,Cie)=>{"use strict";var qGe=yo(),JGe=Ll(),WGe=rN(),mie=class extends JGe{constructor(e){super(te(N({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,m=this.index===t,y=e.validate||(()=>!0),b=await this.choiceSeparator(e,t),v=e.message;this.align==="right"&&(v=v.padStart(this.longest+1," ")),this.align==="left"&&(v=v.padEnd(this.longest+1," "));let k=this.values[a]=c||o,T=c?"success":"dark";await y.call(e,k,this.state)!==!0&&(T="danger");let q=n[T](await this.indicator(e,t))+(e.pad||""),$=this.indent(e),z=()=>[$,q,v+b,c,p].filter(Boolean).join(" ");if(i.submitted)return v=qGe.unstyle(v),c=g(c),p="",z();if(e.format)c=await e.format.call(this,c,e,t);else{let ne=this.styles.muted;c=WGe(this,{input:c,initial:o,pos:s,showCursor:m,color:ne})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,k,e,t)),m&&(v=f(v)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),z()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Cie.exports=mie});var iN=w((Fft,Eie)=>{"use strict";var zGe=H0(),_Ge=()=>{throw new Error("expected prompt to have a custom authenticate method")},Iie=(r=_Ge)=>{class e extends zGe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Iie(i)}}return e};Eie.exports=Iie()});var Bie=w((Nft,yie)=>{"use strict";var VGe=iN();function XGe(r,e){return r.username===this.options.username&&r.password===this.options.password}var wie=(r=XGe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends VGe.create(r){constructor(n){super(te(N({},n),{choices:e}))}static create(n){return wie(n)}}return t};yie.exports=wie()});var j0=w((Lft,bie)=>{"use strict";var ZGe=Vf(),{isPrimitive:$Ge,hasColor:eYe}=Xi(),Qie=class extends ZGe{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ge(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eYe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,f].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};bie.exports=Qie});var kie=w((Tft,Sie)=>{"use strict";var tYe=j0(),vie=class extends tYe{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Sie.exports=vie});var Die=w((Oft,xie)=>{"use strict";var rYe=Ll(),iYe=H0(),Xf=iYe.prototype,Pie=class extends rYe{constructor(e){super(te(N({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Xf.dispatch.call(this,e,t)}append(e,t){return Xf.append.call(this,e,t)}delete(e,t){return Xf.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Xf.next.call(this):super.next()}prev(){return this.focused.editable?Xf.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Xf.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};xie.exports=Pie});var Bu=w((Mft,Rie)=>{"use strict";var nYe=Vf(),sYe=rN(),{isPrimitive:oYe}=Xi(),Fie=class extends nYe{constructor(e){super(e);this.initial=oYe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sYe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` +`)),this.restore()}};Rie.exports=Fie});var Lie=w((Uft,Nie)=>{"use strict";var aYe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),G0=r=>aYe(r).filter(Boolean);Nie.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:G0([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:G0([...s,t]),present:o};case"save":return{past:G0([...i,t]),present:""};case"remove":return o=G0(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var nN=w((Kft,Tie)=>{"use strict";var AYe=Bu(),Oie=Lie(),Mie=class extends AYe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Oie(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Oie("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Tie.exports=Mie});var Hie=w((Hft,Uie)=>{"use strict";var lYe=Bu(),Kie=class extends lYe{format(){return""}};Uie.exports=Kie});var Yie=w((jft,jie)=>{"use strict";var cYe=Bu(),Gie=class extends cYe{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};jie.exports=Gie});var Wie=w((Gft,qie)=>{"use strict";var uYe=Ll(),Jie=class extends uYe{constructor(e){super(te(N({},e),{multiple:!0}))}};qie.exports=Jie});var sN=w((Yft,zie)=>{"use strict";var gYe=Bu(),_ie=class extends gYe{constructor(e={}){super(N({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};zie.exports=_ie});var Xie=w((qft,Vie)=>{Vie.exports=sN()});var ene=w((Jft,Zie)=>{"use strict";var fYe=Bu(),$ie=class extends fYe{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Zie.exports=$ie});var nne=w((Wft,tne)=>{"use strict";var hYe=yo(),pYe=JC(),rne=Xi(),ine=class extends pYe{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` +`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!rne.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hYe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=rne.wordWrap(c,{width:this.widths[0],newline:a}).split(` +`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` +`)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(t),this.write([a,o,c,g,f].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};tne.exports=ine});var Ane=w((zft,sne)=>{"use strict";var one=yo(),dYe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",ane=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dYe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},CYe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uT.name===b.key);b.field=n.find(T=>T.name===b.key),k||(k=new ane(b),a.push(k)),k.lines.push(b.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};sne.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i=N(N({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await CYe(e,i),a=oN("result",r,e),l=oN("format",r,e),c=oN("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},f=!1)=>{let h=0;g.required=t,g.items=s,g.keys=o,g.output="";let p=async(v,k,T,Y)=>{let q=await c(v,k,T,Y);return q===!1?"Invalid field "+T.name:q};for(let v of n){let k=v.value,T=v.key;if(v.type!=="template"){k&&(g.output+=k);continue}if(v.type==="template"){let Y=s.find(ee=>ee.name===T);e.required===!0&&g.required.add(Y.name);let q=[Y.input,g.values[Y.value],Y.value,k].find(u),z=(Y.field||{}).message||v.inner;if(f){let ee=await p(g.values[T],g,Y,h);if(ee&&typeof ee=="string"||ee===!1){g.invalid.set(T,ee);continue}g.invalid.delete(T);let A=await a(g.values[T],g,Y,h);g.output+=one.unstyle(A);continue}Y.placeholder=!1;let ne=k;k=await l(k,g,Y,h),q!==k?(g.values[T]=q,k=r.styles.typing(q),g.missing.delete(z)):(g.values[T]=void 0,q=`<${z}>`,k=r.styles.primary(q),Y.placeholder=!0,g.required.has(T)&&g.missing.add(z)),g.missing.has(z)&&g.validating&&(k=r.styles.warning(q)),g.invalid.has(T)&&g.validating&&(k=r.styles.danger(q)),h===g.index&&(ne!==k?k=r.styles.underline(k):k=r.styles.heading(one.unstyle(k))),h++}k&&(g.output+=k)}let m=g.output.split(` +`).map(v=>" "+v),y=s.length,b=0;for(let v of s)g.invalid.has(v.name)&&v.lines.forEach(k=>{m[k][0]===" "&&(m[k]=g.styles.danger(g.symbols.bullet)+m[k].slice(1))}),r.isValue(g.values[v.name])&&b++;return g.completed=(b/y*100).toFixed(0),g.output=m.join(` +`),g.output}};function oN(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var une=w((_ft,lne)=>{"use strict";var mYe=yo(),EYe=Ane(),IYe=Vf(),cne=class extends IYe{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await EYe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`].find(v=>v!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=t[e]||"",m=await this.format(p),y=await this.footer();m&&(c+=" "+m),f&&!m&&this.state.completed===0&&(c+=" "+f),this.clear(n);let b=[u,c,h,y,g.trim()];this.write(b.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} +`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mYe.unstyle(i).split(` +`).map(a=>a.slice(1)).join(` +`);return this.value={values:n,result:o},super.submit()}};lne.exports=cne});var hne=w((Vft,gne)=>{"use strict";var yYe="(Use + to sort)",wYe=Ll(),fne=class extends wYe{constructor(e){super(te(N({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,yYe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};gne.exports=fne});var Cne=w((Xft,pne)=>{"use strict";var BYe=JC(),dne=class extends BYe{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=bYe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=k=>(k?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,t),h=this.indent(e),p=h+e.scale.map((k,T)=>c(T===e.scaleIdx)).join(a),m=k=>k===e.scaleIdx?g(k):k,y=h+e.scale.map((k,T)=>m(T)).join(l),b=()=>[u,f].filter(Boolean).join(" "),v=()=>[b(),p,y," "].filter(Boolean).join(` +`);return i&&(p=this.styles.cyan(p),y=this.styles.cyan(y)),v()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` +`)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function bYe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>N({},i));let t=[];for(let i=1;i{mne.exports=nN()});var wne=w(($ft,Ine)=>{"use strict";var QYe=j0(),yne=class extends QYe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Ine.exports=yne});var Qne=w((eht,Bne)=>{"use strict";var SYe=Ll(),bne=class extends SYe{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Bne.exports=bne});var vne=w(aN=>{"use strict";var Sne=Xi(),mi=(r,e)=>{Sne.defineExport(aN,r,e),Sne.defineExport(aN,r.toLowerCase(),e)};mi("AutoComplete",()=>pie());mi("BasicAuth",()=>Bie());mi("Confirm",()=>kie());mi("Editable",()=>Die());mi("Form",()=>H0());mi("Input",()=>nN());mi("Invisible",()=>Hie());mi("List",()=>Yie());mi("MultiSelect",()=>Wie());mi("Numeral",()=>Xie());mi("Password",()=>ene());mi("Scale",()=>nne());mi("Select",()=>Ll());mi("Snippet",()=>une());mi("Sort",()=>hne());mi("Survey",()=>Cne());mi("Text",()=>Ene());mi("Toggle",()=>wne());mi("Quiz",()=>Qne())});var xne=w((rht,kne)=>{kne.exports={ArrayPrompt:JC(),AuthPrompt:iN(),BooleanPrompt:j0(),NumberPrompt:sN(),StringPrompt:Bu()}});var zC=w((iht,Pne)=>{"use strict";var Dne=require("assert"),AN=require("events"),Tl=Xi(),pa=class extends AN{constructor(e,t){super();this.options=Tl.merge({},e),this.answers=N({},t)}register(e,t){if(Tl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Dne.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Tl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Tl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Tl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Dne(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Vf()}static get prompts(){return vne()}static get types(){return xne()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Tl.mixinEmitter(e,new AN),e}};Tl.mixinEmitter(pa,new AN);var lN=pa.prompts;for(let r of Object.keys(lN)){let e=r.toLowerCase(),t=i=>new lN[r](i).run();pa.prompt[e]=t,pa[e]=t,pa[r]||Reflect.defineProperty(pa,r,{get:()=>lN[r]})}var WC=r=>{Tl.defineExport(pa,r,()=>pa.types[r])};WC("ArrayPrompt");WC("AuthPrompt");WC("BooleanPrompt");WC("NumberPrompt");WC("StringPrompt");Pne.exports=pa});var Yne=w((Jht,Gne)=>{function DYe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var RYe=e0(),FYe=Lf();function NYe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var LYe=$f(),TYe=Kf();function OYe(r,e){return r&&LYe(e,TYe(e),r)}Jne.exports=OYe});var _ne=w((_ht,zne)=>{function MYe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}zne.exports=MYe});var Xne=w((Vht,Vne)=>{var UYe=Fn(),KYe=h0(),HYe=_ne(),jYe=Object.prototype,GYe=jYe.hasOwnProperty;function YYe(r){if(!UYe(r))return HYe(r);var e=KYe(r),t=[];for(var i in r)i=="constructor"&&(e||!GYe.call(r,i))||t.push(i);return t}Vne.exports=YYe});var eh=w((Xht,Zne)=>{var qYe=eF(),JYe=Xne(),WYe=kC();function zYe(r){return WYe(r)?qYe(r,!0):JYe(r)}Zne.exports=zYe});var ese=w((Zht,$ne)=>{var _Ye=$f(),VYe=eh();function XYe(r,e){return r&&_Ye(e,VYe(e),r)}$ne.exports=XYe});var pN=w((tm,th)=>{var ZYe=Ts(),tse=typeof tm=="object"&&tm&&!tm.nodeType&&tm,rse=tse&&typeof th=="object"&&th&&!th.nodeType&&th,$Ye=rse&&rse.exports===tse,ise=$Ye?ZYe.Buffer:void 0,nse=ise?ise.allocUnsafe:void 0;function eqe(r,e){if(e)return r.slice();var t=r.length,i=nse?nse(t):new r.constructor(t);return r.copy(i),i}th.exports=eqe});var dN=w(($ht,sse)=>{function tqe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rqe=$f(),iqe=d0();function nqe(r,e){return rqe(r,iqe(r),e)}ose.exports=nqe});var Y0=w((tpt,Ase)=>{var sqe=tF(),oqe=sqe(Object.getPrototypeOf,Object);Ase.exports=oqe});var CN=w((rpt,lse)=>{var aqe=r0(),Aqe=Y0(),lqe=d0(),cqe=aF(),uqe=Object.getOwnPropertySymbols,gqe=uqe?function(r){for(var e=[];r;)aqe(e,lqe(r)),r=Aqe(r);return e}:cqe;lse.exports=gqe});var use=w((ipt,cse)=>{var fqe=$f(),hqe=CN();function pqe(r,e){return fqe(r,hqe(r),e)}cse.exports=pqe});var fse=w((npt,gse)=>{var dqe=oF(),Cqe=CN(),mqe=eh();function Eqe(r){return dqe(r,mqe,Cqe)}gse.exports=Eqe});var pse=w((spt,hse)=>{var Iqe=Object.prototype,yqe=Iqe.hasOwnProperty;function wqe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yqe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}hse.exports=wqe});var q0=w((opt,dse)=>{var Cse=nF();function Bqe(r){var e=new r.constructor(r.byteLength);return new Cse(e).set(new Cse(r)),e}dse.exports=Bqe});var Ese=w((apt,mse)=>{var bqe=q0();function Qqe(r,e){var t=e?bqe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}mse.exports=Qqe});var yse=w((Apt,Ise)=>{var Sqe=/\w*$/;function vqe(r){var e=new r.constructor(r.source,Sqe.exec(r));return e.lastIndex=r.lastIndex,e}Ise.exports=vqe});var Sse=w((lpt,wse)=>{var Bse=Wc(),bse=Bse?Bse.prototype:void 0,Qse=bse?bse.valueOf:void 0;function kqe(r){return Qse?Object(Qse.call(r)):{}}wse.exports=kqe});var mN=w((cpt,vse)=>{var xqe=q0();function Pqe(r,e){var t=e?xqe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}vse.exports=Pqe});var xse=w((upt,kse)=>{var Dqe=q0(),Rqe=Ese(),Fqe=yse(),Nqe=Sse(),Lqe=mN(),Tqe="[object Boolean]",Oqe="[object Date]",Mqe="[object Map]",Uqe="[object Number]",Kqe="[object RegExp]",Hqe="[object Set]",jqe="[object String]",Gqe="[object Symbol]",Yqe="[object ArrayBuffer]",qqe="[object DataView]",Jqe="[object Float32Array]",Wqe="[object Float64Array]",zqe="[object Int8Array]",_qe="[object Int16Array]",Vqe="[object Int32Array]",Xqe="[object Uint8Array]",Zqe="[object Uint8ClampedArray]",$qe="[object Uint16Array]",eJe="[object Uint32Array]";function tJe(r,e,t){var i=r.constructor;switch(e){case Yqe:return Dqe(r);case Tqe:case Oqe:return new i(+r);case qqe:return Rqe(r,t);case Jqe:case Wqe:case zqe:case _qe:case Vqe:case Xqe:case Zqe:case $qe:case eJe:return Lqe(r,t);case Mqe:return new i;case Uqe:case jqe:return new i(r);case Kqe:return Fqe(r);case Hqe:return new i;case Gqe:return Nqe(r)}}kse.exports=tJe});var Rse=w((gpt,Pse)=>{var rJe=Fn(),Dse=Object.create,iJe=function(){function r(){}return function(e){if(!rJe(e))return{};if(Dse)return Dse(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();Pse.exports=iJe});var EN=w((fpt,Fse)=>{var nJe=Rse(),sJe=Y0(),oJe=h0();function aJe(r){return typeof r.constructor=="function"&&!oJe(r)?nJe(sJe(r)):{}}Fse.exports=aJe});var Lse=w((hpt,Nse)=>{var AJe=PC(),lJe=ra(),cJe="[object Map]";function uJe(r){return lJe(r)&&AJe(r)==cJe}Nse.exports=uJe});var Use=w((ppt,Tse)=>{var gJe=Lse(),fJe=u0(),Ose=g0(),Mse=Ose&&Ose.isMap,hJe=Mse?fJe(Mse):gJe;Tse.exports=hJe});var Hse=w((dpt,Kse)=>{var pJe=PC(),dJe=ra(),CJe="[object Set]";function mJe(r){return dJe(r)&&pJe(r)==CJe}Kse.exports=mJe});var qse=w((Cpt,jse)=>{var EJe=Hse(),IJe=u0(),Gse=g0(),Yse=Gse&&Gse.isSet,yJe=Yse?IJe(Yse):EJe;jse.exports=yJe});var Vse=w((mpt,Jse)=>{var wJe=xC(),BJe=Yne(),bJe=e0(),QJe=Wne(),SJe=ese(),vJe=pN(),kJe=dN(),xJe=ase(),PJe=use(),DJe=AF(),RJe=fse(),FJe=PC(),NJe=pse(),LJe=xse(),TJe=EN(),OJe=Hs(),MJe=QC(),UJe=Use(),KJe=Fn(),HJe=qse(),jJe=Kf(),GJe=eh(),YJe=1,qJe=2,JJe=4,Wse="[object Arguments]",WJe="[object Array]",zJe="[object Boolean]",_Je="[object Date]",VJe="[object Error]",zse="[object Function]",XJe="[object GeneratorFunction]",ZJe="[object Map]",$Je="[object Number]",_se="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",dr={};dr[Wse]=dr[WJe]=dr[sWe]=dr[oWe]=dr[zJe]=dr[_Je]=dr[aWe]=dr[AWe]=dr[lWe]=dr[cWe]=dr[uWe]=dr[ZJe]=dr[$Je]=dr[_se]=dr[eWe]=dr[tWe]=dr[rWe]=dr[iWe]=dr[gWe]=dr[fWe]=dr[hWe]=dr[pWe]=!0;dr[VJe]=dr[zse]=dr[nWe]=!1;function J0(r,e,t,i,n,s){var o,a=e&YJe,l=e&qJe,c=e&JJe;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!KJe(r))return r;var u=OJe(r);if(u){if(o=NJe(r),!a)return kJe(r,o)}else{var g=FJe(r),f=g==zse||g==XJe;if(MJe(r))return vJe(r,a);if(g==_se||g==Wse||f&&!n){if(o=l||f?{}:TJe(r),!a)return l?PJe(r,SJe(o,r)):xJe(r,QJe(o,r))}else{if(!dr[g])return n?r:{};o=LJe(r,g,a)}}s||(s=new wJe);var h=s.get(r);if(h)return h;s.set(r,o),HJe(r)?r.forEach(function(y){o.add(J0(y,e,t,y,r,s))}):UJe(r)&&r.forEach(function(y,b){o.set(b,J0(y,e,t,b,r,s))});var p=c?l?RJe:DJe:l?GJe:jJe,m=u?void 0:p(r);return BJe(m||r,function(y,b){m&&(b=y,y=r[b]),bJe(o,b,J0(y,e,t,b,r,s))}),o}Jse.exports=J0});var IN=w((Ept,Xse)=>{var dWe=Vse(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xse.exports=EWe});var $se=w((Ipt,Zse)=>{var IWe=PR();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zse.exports=yWe});var soe=w((Spt,noe)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}noe.exports=wWe});var aoe=w((vpt,ooe)=>{var BWe=pC(),bWe=XP();function QWe(r,e){return e.length<2?r:BWe(r,bWe(e,0,-1))}ooe.exports=QWe});var loe=w((kpt,Aoe)=>{var SWe=Nf(),vWe=soe(),kWe=aoe(),xWe=fu();function PWe(r,e){return e=SWe(e,r),r=kWe(r,e),r==null||delete r[xWe(vWe(e))]}Aoe.exports=PWe});var uoe=w((xpt,coe)=>{var DWe=loe();function RWe(r,e){return r==null?!0:DWe(r,e)}coe.exports=RWe});var Ioe=w((sdt,Eoe)=>{Eoe.exports={name:"@yarnpkg/cli",version:"3.2.3",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var RN=w((OEt,oae)=>{"use strict";oae.exports=function(e,t){t===!0&&(t=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof t=="number"?n[t]:n}});var FN=w((MEt,aae)=>{"use strict";var $We=RN();function Aae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=$We(r);return r=r.substring(r.indexOf("://")+3),Aae(e)?!0:r.indexOf("@"){"use strict";var e3e=RN(),t3e=FN(),r3e=require("querystring");function i3e(r){r=(r||"").trim();var e={protocols:e3e(r),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:r,query:Object.create(null)},t=r.indexOf("://"),i=-1,n=null,s=null;r.startsWith(".")&&(r.startsWith("./")&&(r=r.substring(2)),e.pathname=r,e.protocol="file");var o=r.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||(t3e(r)?e.protocol="ssh":((o==="/"||o==="~")&&(r=r.substring(2)),e.protocol="file"))),t!==-1&&(r=r.substring(t+3)),s=r.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=r3e.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}lae.exports=i3e});var fae=w((KEt,uae)=>{"use strict";var n3e="text/plain",s3e="us-ascii",gae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),o3e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[f,h=""]=g.split("=").map(p=>p.trim());return f==="charset"&&(h=h.toLowerCase(),h===s3e)?"":`${f}${h?`=${h}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length!==0||l&&l!==n3e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`},a3e=(r,e)=>{if(e=N({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),r=r.trim(),/^data:/i.test(r))return o3e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname&&(n.pathname=n.pathname.replace(/(?0){let o=n.pathname.split("/"),a=o[o.length-1];gae(a,e.removeDirectoryIndex)&&(o=o.slice(0,o.length-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])gae(o,e.removeQueryParameters)&&n.searchParams.delete(o);e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};uae.exports=a3e});var pae=w((HEt,hae)=>{"use strict";var A3e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},l3e=cae(),c3e=fae();function u3e(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof r!="string"||!r.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":A3e(e))!=="object"&&(e={stripHash:!1}),r=c3e(r,e));var t=l3e(r);return t}hae.exports=u3e});var mae=w((jEt,dae)=>{"use strict";var g3e=pae(),Cae=FN();function f3e(r){var e=g3e(r);e.token="";var t=e.user.split(":");return t.length===2&&(t[1]==="x-oauth-basic"?e.token=t[0]:t[0]==="x-token-auth"&&(e.token=t[1])),Cae(e.protocols)||Cae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}dae.exports=f3e});var Iae=w((GEt,Eae)=>{"use strict";var h3e=mae();function NN(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=h3e(r),t=e.resource.split("."),i=null;switch(e.toString=function(l){return NN.stringify(this,l)},e.source=t.length>2?t.slice(1-t.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=t[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}NN.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?p3e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+r.full_name+n;default:return r.href}};function p3e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}Eae.exports=NN});var uL=w((Zwt,jae)=>{var N3e=Lf(),L3e=Df();function T3e(r,e,t){(t!==void 0&&!L3e(r[e],t)||t===void 0&&!(e in r))&&N3e(r,e,t)}jae.exports=T3e});var Yae=w(($wt,Gae)=>{var O3e=kC(),M3e=ra();function U3e(r){return M3e(r)&&O3e(r)}Gae.exports=U3e});var Wae=w((eBt,qae)=>{var K3e=zc(),H3e=Y0(),j3e=ra(),G3e="[object Object]",Y3e=Function.prototype,q3e=Object.prototype,Jae=Y3e.toString,J3e=q3e.hasOwnProperty,W3e=Jae.call(Object);function z3e(r){if(!j3e(r)||K3e(r)!=G3e)return!1;var e=H3e(r);if(e===null)return!0;var t=J3e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Jae.call(t)==W3e}qae.exports=z3e});var gL=w((tBt,zae)=>{function _3e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}zae.exports=_3e});var Vae=w((rBt,_ae)=>{var V3e=$f(),X3e=eh();function Z3e(r){return V3e(r,X3e(r))}_ae.exports=Z3e});var rAe=w((iBt,Xae)=>{var Zae=uL(),$3e=pN(),e4e=mN(),t4e=dN(),r4e=EN(),$ae=CC(),eAe=Hs(),i4e=Yae(),n4e=QC(),s4e=XB(),o4e=Fn(),a4e=Wae(),A4e=f0(),tAe=gL(),l4e=Vae();function c4e(r,e,t,i,n,s,o){var a=tAe(r,t),l=tAe(e,t),c=o.get(l);if(c){Zae(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var f=eAe(l),h=!f&&n4e(l),p=!f&&!h&&A4e(l);u=l,f||h||p?eAe(a)?u=a:i4e(a)?u=t4e(a):h?(g=!1,u=$3e(l,!0)):p?(g=!1,u=e4e(l,!0)):u=[]:a4e(l)||$ae(l)?(u=a,$ae(a)?u=l4e(a):(!o4e(a)||s4e(a))&&(u=r4e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),Zae(r,t,u)}Xae.exports=c4e});var sAe=w((nBt,iAe)=>{var u4e=xC(),g4e=uL(),f4e=ZR(),h4e=rAe(),p4e=Fn(),d4e=eh(),C4e=gL();function nAe(r,e,t,i,n){r!==e&&f4e(e,function(s,o){if(n||(n=new u4e),p4e(s))h4e(r,e,o,t,nAe,i,n);else{var a=i?i(C4e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),g4e(r,o,a)}},d4e)}iAe.exports=nAe});var aAe=w((sBt,oAe)=>{var m4e=i0(),E4e=FR(),I4e=NR();function y4e(r,e){return I4e(E4e(r,e,m4e),r+"")}oAe.exports=y4e});var lAe=w((oBt,AAe)=>{var w4e=Df(),B4e=kC(),b4e=dC(),Q4e=Fn();function S4e(r,e,t){if(!Q4e(t))return!1;var i=typeof e;return(i=="number"?B4e(t)&&b4e(e,t.length):i=="string"&&e in t)?w4e(t[e],r):!1}AAe.exports=S4e});var uAe=w((aBt,cAe)=>{var v4e=aAe(),k4e=lAe();function x4e(r){return v4e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&k4e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var P4e=sAe(),D4e=uAe(),R4e=D4e(function(r,e,t){P4e(r,e,t)});gAe.exports=R4e});var xAe=w((f0t,kAe)=>{var SL;kAe.exports=()=>(typeof SL=="undefined"&&(SL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),SL)});var KAe=w((J0t,UAe)=>{var PL;UAe.exports=()=>(typeof PL=="undefined"&&(PL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),PL)});var zAe=w((OL,ML)=>{(function(r){OL&&typeof OL=="object"&&typeof ML!="undefined"?ML.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window!="undefined"?window.isWindows=r():typeof global!="undefined"?global.isWindows=r():typeof self!="undefined"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var ZAe=w((Zbt,_Ae)=>{"use strict";UL.ifExists=Ize;var Ah=require("util"),Vs=require("path"),VAe=zAe(),yze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,wze={createPwshFile:!0,createCmdFile:VAe(),fs:require("fs")},Bze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function XAe(r){let e=N(N({},wze),r),t=e.fs;return e.fs_={chmod:t.chmod?Ah.promisify(t.chmod):async()=>{},mkdir:Ah.promisify(t.mkdir),readFile:Ah.promisify(t.readFile),stat:Ah.promisify(t.stat),unlink:Ah.promisify(t.unlink),writeFile:Ah.promisify(t.writeFile)},e}async function UL(r,e,t){let i=XAe(t);await i.fs_.stat(r),await bze(r,e,i)}function Ize(r,e,t){return UL(r,e,t).catch(()=>{})}function Qze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function bze(r,e,t){let i=await kze(r,t);return await Sze(e,t),vze(r,e,i,t)}function Sze(r,e){return e.fs_.mkdir(Vs.dirname(r),{recursive:!0})}function vze(r,e,t,i){let n=XAe(i),s=[{generator:Dze,extension:""}];return n.createCmdFile&&s.push({generator:Pze,extension:".cmd"}),n.createPwshFile&&s.push({generator:Rze,extension:".ps1"}),Promise.all(s.map(o=>xze(r,e+o.extension,t,o.generator,n)))}function Fze(r,e){return Qze(r,e)}function Lze(r,e){return Nze(r,e)}async function kze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(yze);if(!n){let s=Vs.extname(r).toLowerCase();return{program:Bze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function xze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Fze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Lze(e,n)}function Pze(r,e,t){let n=Vs.relative(Vs.dirname(e),r).split("/").join("\\"),s=Vs.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=KL(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`:"";return o?g+=`@IF EXIST ${o} (\r + ${o} ${l} ${n} ${u}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${a} ${l} ${n} ${u}%*\r +)\r +`:g+=`@${a} ${l} ${n} ${u}%*\r +`,g}function Dze(r,e,t){let i=Vs.relative(Vs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Vs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=KL(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,g=t.nodePath?`export NODE_PATH="${l}" +`:"";return s?u+=`${g}if [ -x ${s} ]; then + exec ${s} ${a} ${i} ${c}"$@" +else + exec ${n} ${a} ${i} ${c}"$@" +fi +`:u+=`${g}${n} ${a} ${i} ${c}"$@" +exit $? +`,u}function Rze(r,e,t){let i=Vs.relative(Vs.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Vs.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=KL(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let f=t.progArgs?`${t.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${t.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${u}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return t.nodePath&&(h+=` else { + $env:NODE_PATH="${g}" +}`),o?h+=` +$ret=0 +if (Test-Path ${o}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${o} ${l} ${i} ${f}$args + } else { + & ${o} ${l} ${i} ${f}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${s} ${l} ${i} ${f}$args + } else { + & ${s} ${l} ${i} ${f}$args + } + $ret=$LASTEXITCODE +} +${t.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:h+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${s} ${l} ${i} ${f}$args +} else { + & ${s} ${l} ${i} ${f}$args +} +${t.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,h}function Nze(r,e){return e.fs_.chmod(r,493)}function KL(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Vs.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}_Ae.exports=UL});var tT=w((NSt,mle)=>{mle.exports=require("stream")});var wle=w((LSt,Ele)=>{"use strict";function Ile(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function t8e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return cb.alloc(0);for(var i=cb.allocUnsafe(t>>>0),n=this.head,s=0;n;)a8e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=cb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:o8e,value:function(t,i){return rT(this,t8e({},i,{depth:0,customInspect:!1}))}}]),r}()});var nT=w((TSt,Ble)=>{"use strict";function A8e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(iT,this,r)):process.nextTick(iT,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(ub,t):(t._writableState.errorEmitted=!0,process.nextTick(ble,t,s)):process.nextTick(ble,t,s):e?(process.nextTick(ub,t),e(s)):process.nextTick(ub,t)}),this)}function ble(r,e){iT(r,e),ub(r)}function ub(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function l8e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function iT(r,e){r.emit("error",e)}function c8e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ble.exports={destroy:A8e,undestroy:l8e,errorOrDestroy:c8e}});var Hl=w((OSt,Qle)=>{"use strict";var Sle={};function Xs(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,Sle[r]=n}function vle(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function u8e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function g8e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function f8e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Xs("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Xs("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&u8e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(g8e(r," argument"))n=`The ${r} ${i} ${vle(e,"type")}`;else{let s=f8e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${vle(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Xs("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Xs("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Xs("ERR_STREAM_PREMATURE_CLOSE","Premature close");Xs("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Xs("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Xs("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Xs("ERR_STREAM_WRITE_AFTER_END","write after end");Xs("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Xs("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Xs("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Qle.exports.codes=Sle});var sT=w((MSt,kle)=>{"use strict";var h8e=Hl().codes.ERR_INVALID_OPT_VALUE;function p8e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function d8e(r,e,t,i){var n=p8e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new h8e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}kle.exports={getHighWaterMark:d8e}});var xle=w((USt,oT)=>{typeof Object.create=="function"?oT.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:oT.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var jl=w((KSt,aT)=>{try{if(AT=require("util"),typeof AT.inherits!="function")throw"";aT.exports=AT.inherits}catch(r){aT.exports=xle()}var AT});var Dle=w((HSt,Ple)=>{Ple.exports=require("util").deprecate});var uT=w((jSt,Rle)=>{"use strict";Rle.exports=Gr;function Fle(r){var e=this;this.next=null,this.entry=null,this.finish=function(){C8e(e,r)}}var uh;Gr.WritableState=Ym;var m8e={deprecate:Dle()},Nle=tT(),gb=require("buffer").Buffer,E8e=global.Uint8Array||function(){};function I8e(r){return gb.from(r)}function y8e(r){return gb.isBuffer(r)||r instanceof E8e}var lT=nT(),w8e=sT(),B8e=w8e.getHighWaterMark,Gl=Hl().codes,b8e=Gl.ERR_INVALID_ARG_TYPE,Q8e=Gl.ERR_METHOD_NOT_IMPLEMENTED,S8e=Gl.ERR_MULTIPLE_CALLBACK,v8e=Gl.ERR_STREAM_CANNOT_PIPE,k8e=Gl.ERR_STREAM_DESTROYED,x8e=Gl.ERR_STREAM_NULL_VALUES,P8e=Gl.ERR_STREAM_WRITE_AFTER_END,D8e=Gl.ERR_UNKNOWN_ENCODING,gh=lT.errorOrDestroy;jl()(Gr,Nle);function R8e(){}function Ym(r,e,t){uh=uh||Pu(),r=r||{},typeof t!="boolean"&&(t=e instanceof uh),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=B8e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){F8e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Fle(this)}Ym.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(Ym.prototype,"buffer",{get:m8e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(r){}})();var fb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(fb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Gr,Symbol.hasInstance,{value:function(e){return fb.call(this,e)?!0:this!==Gr?!1:e&&e._writableState instanceof Ym}})):fb=function(e){return e instanceof this};function Gr(r){uh=uh||Pu();var e=this instanceof uh;if(!e&&!fb.call(Gr,this))return new Gr(r);this._writableState=new Ym(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),Nle.call(this)}Gr.prototype.pipe=function(){gh(this,new v8e)};function N8e(r,e){var t=new P8e;gh(r,t),process.nextTick(e,t)}function L8e(r,e,t,i){var n;return t===null?n=new x8e:typeof t!="string"&&!e.objectMode&&(n=new b8e("chunk",["string","Buffer"],t)),n?(gh(r,n),process.nextTick(i,n),!1):!0}Gr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&y8e(r);return s&&!gb.isBuffer(r)&&(r=I8e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=R8e),i.ending?N8e(this,t):(s||L8e(this,i,r,t))&&(i.pendingcb++,n=T8e(this,i,s,r,e,t)),n};Gr.prototype.cork=function(){this._writableState.corked++};Gr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Lle(this,r))};Gr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new D8e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Gr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function O8e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=gb.from(e,t)),e}Object.defineProperty(Gr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function T8e(r,e,t,i,n,s){if(!t){var o=O8e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var Y8e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Mle.exports=Ia;var Ule=gT(),fT=uT();jl()(Ia,Ule);for(hT=Y8e(fT.prototype),hb=0;hb{var db=require("buffer"),kA=db.Buffer;function Hle(r,e){for(var t in r)e[t]=r[t]}kA.from&&kA.alloc&&kA.allocUnsafe&&kA.allocUnsafeSlow?Kle.exports=db:(Hle(db,pT),pT.Buffer=fh);function fh(r,e,t){return kA(r,e,t)}Hle(kA,fh);fh.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return kA(r,e,t)};fh.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=kA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};fh.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return kA(r)};fh.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return db.SlowBuffer(r)}});var mT=w(Gle=>{"use strict";var dT=jle().Buffer,Yle=dT.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function W8e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function z8e(r){var e=W8e(r);if(typeof e!="string"&&(dT.isEncoding===Yle||!Yle(r)))throw new Error("Unknown encoding: "+r);return e||r}Gle.StringDecoder=Jm;function Jm(r){this.encoding=z8e(r);var e;switch(this.encoding){case"utf16le":this.text=V8e,this.end=X8e,e=4;break;case"utf8":this.fillLast=_8e,e=4;break;case"base64":this.text=Z8e,this.end=$8e,e=3;break;default:this.write=e5e,this.end=t5e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=dT.allocUnsafe(e)}Jm.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5==6?2:r>>4==14?3:r>>3==30?4:r>>6==2?-1:-2}function n5e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s5e(r,e,t){if((e[0]&192)!=128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return r.lastNeed=2,"\uFFFD"}}function _8e(r){var e=this.lastTotal-this.lastNeed,t=s5e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function i5e(r,e){var t=n5e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function r5e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function V8e(r,e){if((r.length-e)%2==0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function X8e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function Z8e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function $8e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function e5e(r){return r.toString(this.encoding)}function t5e(r){return r&&r.length?this.write(r):""}});var Cb=w((qSt,qle)=>{"use strict";var Jle=Hl().codes.ERR_STREAM_PREMATURE_CLOSE;function o5e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var mb;function Yl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var l5e=Cb(),ql=Symbol("lastResolve"),Du=Symbol("lastReject"),Wm=Symbol("error"),Eb=Symbol("ended"),Ru=Symbol("lastPromise"),ET=Symbol("handlePromise"),Fu=Symbol("stream");function Jl(r,e){return{value:r,done:e}}function c5e(r){var e=r[ql];if(e!==null){var t=r[Fu].read();t!==null&&(r[Ru]=null,r[ql]=null,r[Du]=null,e(Jl(t,!1)))}}function u5e(r){process.nextTick(c5e,r)}function g5e(r,e){return function(t,i){r.then(function(){if(e[Eb]){t(Jl(void 0,!0));return}e[ET](t,i)},i)}}var f5e=Object.getPrototypeOf(function(){}),h5e=Object.setPrototypeOf((mb={get stream(){return this[Fu]},next:function(){var e=this,t=this[Wm];if(t!==null)return Promise.reject(t);if(this[Eb])return Promise.resolve(Jl(void 0,!0));if(this[Fu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[Wm]?a(e[Wm]):o(Jl(void 0,!0))})});var i=this[Ru],n;if(i)n=new Promise(g5e(i,this));else{var s=this[Fu].read();if(s!==null)return Promise.resolve(Jl(s,!1));n=new Promise(this[ET])}return this[Ru]=n,n}},Yl(mb,Symbol.asyncIterator,function(){return this}),Yl(mb,"return",function(){var e=this;return new Promise(function(t,i){e[Fu].destroy(null,function(n){if(n){i(n);return}t(Jl(void 0,!0))})})}),mb),f5e),p5e=function(e){var t,i=Object.create(h5e,(t={},Yl(t,Fu,{value:e,writable:!0}),Yl(t,ql,{value:null,writable:!0}),Yl(t,Du,{value:null,writable:!0}),Yl(t,Wm,{value:null,writable:!0}),Yl(t,Eb,{value:e._readableState.endEmitted,writable:!0}),Yl(t,ET,{value:function(s,o){var a=i[Fu].read();a?(i[Ru]=null,i[ql]=null,i[Du]=null,s(Jl(a,!1))):(i[ql]=s,i[Du]=o)},writable:!0}),t));return i[Ru]=null,l5e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[Du];s!==null&&(i[Ru]=null,i[ql]=null,i[Du]=null,s(n)),i[Wm]=n;return}var o=i[ql];o!==null&&(i[Ru]=null,i[ql]=null,i[Du]=null,o(Jl(void 0,!0))),i[Eb]=!0}),e.on("readable",u5e.bind(null,i)),i};zle.exports=p5e});var $le=w((WSt,Vle)=>{"use strict";function Xle(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function d5e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Xle(s,i,n,o,a,"next",l)}function a(l){Xle(s,i,n,o,a,"throw",l)}o(void 0)})}}function Zle(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function m5e(r){for(var e=1;e{"use strict";ece.exports=Kt;var hh;Kt.ReadableState=tce;var zSt=require("events").EventEmitter,rce=function(e,t){return e.listeners(t).length},zm=tT(),Ib=require("buffer").Buffer,y5e=global.Uint8Array||function(){};function w5e(r){return Ib.from(r)}function B5e(r){return Ib.isBuffer(r)||r instanceof y5e}var IT=require("util"),Pt;IT&&IT.debuglog?Pt=IT.debuglog("stream"):Pt=function(){};var b5e=wle(),yT=nT(),Q5e=sT(),S5e=Q5e.getHighWaterMark,yb=Hl().codes,v5e=yb.ERR_INVALID_ARG_TYPE,k5e=yb.ERR_STREAM_PUSH_AFTER_EOF,x5e=yb.ERR_METHOD_NOT_IMPLEMENTED,P5e=yb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,ph,wT,BT;jl()(Kt,zm);var _m=yT.errorOrDestroy,bT=["error","close","destroy","pause","resume"];function D5e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function tce(r,e,t){hh=hh||Pu(),r=r||{},typeof t!="boolean"&&(t=e instanceof hh),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=S5e(this,r,"readableHighWaterMark",t),this.buffer=new b5e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(ph||(ph=mT().StringDecoder),this.decoder=new ph(r.encoding),this.encoding=r.encoding)}function Kt(r){if(hh=hh||Pu(),!(this instanceof Kt))return new Kt(r);var e=this instanceof hh;this._readableState=new tce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),zm.call(this)}Object.defineProperty(Kt.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Kt.prototype.destroy=yT.destroy;Kt.prototype._undestroy=yT.undestroy;Kt.prototype._destroy=function(r,e){e(r)};Kt.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=Ib.from(r,e),e=""),i=!0),ice(this,r,e,!1,i)};Kt.prototype.unshift=function(r){return ice(this,r,null,!0,!1)};function ice(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,F5e(r,s);else{var o;if(n||(o=R5e(s,e)),o)_m(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==Ib.prototype&&(e=w5e(e)),i)s.endEmitted?_m(r,new P5e):QT(r,s,e,!0);else if(s.ended)_m(r,new k5e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?QT(r,s,e,!1):ST(r,s)):QT(r,s,e,!1)}else i||(s.reading=!1,ST(r,s))}return!s.ended&&(s.length=nce?r=nce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function sce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=N5e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Kt.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?vT(this):wb(this),null;if(r=sce(r,e),r===0&&e.ended)return e.length===0&&vT(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=oce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&vT(this)),n!==null&&this.emit("data",n),n};function F5e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?wb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,ace(r)))}}function wb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(ace,r))}function ace(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,kT(r)}function ST(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(L5e,r,e))}function L5e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Ace(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function f(y){Pt("onerror",y),m(),r.removeListener("error",f),rce(r,"error")===0&&_m(r,y)}D5e(r,"error",f);function h(){r.removeListener("finish",p),m()}r.once("close",h);function p(){Pt("onfinish"),r.removeListener("close",h),m()}r.once("finish",p);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function T5e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&rce(r,"data")&&(t.flowing=!0,kT(r))}}Kt.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?wb(this):i.reading||process.nextTick(O5e,this)),t};Kt.prototype.addListener=Kt.prototype.on;Kt.prototype.removeListener=function(r,e){var t=zm.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(lce,this),t};Kt.prototype.removeAllListeners=function(r){var e=zm.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(lce,this),e};function lce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function O5e(r){Pt("readable nexttick read 0"),r.read(0)}Kt.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,M5e(this,r)),r.paused=!1,this};function M5e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(U5e,r,e))}function U5e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),kT(r),e.flowing&&!e.reading&&r.read(0)}Kt.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function kT(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Kt.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function vT(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(K5e,e,r))}function K5e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Kt.from=function(r,e){return BT===void 0&&(BT=$le()),BT(Kt,r,e)});function Ace(r,e){for(var t=0,i=r.length;t{"use strict";cce.exports=xA;var Bb=Hl().codes,H5e=Bb.ERR_METHOD_NOT_IMPLEMENTED,j5e=Bb.ERR_MULTIPLE_CALLBACK,G5e=Bb.ERR_TRANSFORM_ALREADY_TRANSFORMING,Y5e=Bb.ERR_TRANSFORM_WITH_LENGTH_0,bb=Pu();jl()(xA,bb);function q5e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new j5e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";gce.exports=Vm;var fce=xT();jl()(Vm,fce);function Vm(r){if(!(this instanceof Vm))return new Vm(r);fce.call(this,r)}Vm.prototype._transform=function(r,e,t){t(null,r)}});var Ece=w((ZSt,pce)=>{"use strict";var PT;function W5e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var dce=Hl().codes,z5e=dce.ERR_MISSING_ARGS,_5e=dce.ERR_STREAM_DESTROYED;function Cce(r){if(r)throw r}function V5e(r){return r.setHeader&&typeof r.abort=="function"}function X5e(r,e,t,i){i=W5e(i);var n=!1;r.on("close",function(){n=!0}),PT===void 0&&(PT=Cb()),PT(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,V5e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new _5e("pipe"))}}}function mce(r){r()}function Z5e(r,e){return r.pipe(e)}function $5e(r){return!r.length||typeof r[r.length-1]!="function"?Cce:r.pop()}function e9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return X5e(o,l,c,function(u){n||(n=u),u&&s.forEach(mce),!l&&(s.forEach(mce),i(n))})});return e.reduce(Z5e)}pce.exports=e9e});var dh=w((Zs,Xm)=>{var Zm=require("stream");process.env.READABLE_STREAM==="disable"&&Zm?(Xm.exports=Zm.Readable,Object.assign(Xm.exports,Zm),Xm.exports.Stream=Zm):(Zs=Xm.exports=gT(),Zs.Stream=Zm||Zs,Zs.Readable=Zs,Zs.Writable=uT(),Zs.Duplex=Pu(),Zs.Transform=xT(),Zs.PassThrough=hce(),Zs.finished=Cb(),Zs.pipeline=Ece())});var wce=w(($St,Ice)=>{"use strict";var{Buffer:ko}=require("buffer"),yce=Symbol.for("BufferList");function mr(r){if(!(this instanceof mr))return new mr(r);mr._init.call(this,r)}mr._init=function(e){Object.defineProperty(this,yce,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};mr.prototype._new=function(e){return new mr(e)};mr.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};mr.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};mr.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||ko.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:ko.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};mr.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};mr.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};mr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};mr.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};mr.prototype._match=function(r,e){if(this.length-r{"use strict";var DT=dh().Duplex,t9e=jl(),$m=wce();function Zi(r){if(!(this instanceof Zi))return new Zi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}$m._init.call(this,r),DT.call(this)}t9e(Zi,DT);Object.assign(Zi.prototype,$m.prototype);Zi.prototype._new=function(e){return new Zi(e)};Zi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Zi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Zi.prototype.end=function(e){DT.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Zi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Zi.prototype._isBufferList=function(e){return e instanceof Zi||e instanceof $m||Zi.isBufferList(e)};Zi.isBufferList=$m.isBufferList;Qb.exports=Zi;Qb.exports.BufferListStream=Zi;Qb.exports.BufferList=$m});var NT=w(Ch=>{var r9e=Buffer.alloc,i9e="0000000000000000000",n9e="7777777777777777777",bce="0".charCodeAt(0),Qce=Buffer.from("ustar\0","binary"),s9e=Buffer.from("00","binary"),o9e=Buffer.from("ustar ","binary"),a9e=Buffer.from(" \0","binary"),A9e=parseInt("7777",8),eE=257,RT=263,l9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},c9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},u9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},Sce=function(r,e,t,i){for(;te?n9e.slice(0,e)+" ":i9e.slice(0,e-r.length)+r+" "};function g9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};Ch.decodeLongPath=function(r,e){return mh(r,0,r.length,e)};Ch.encodePax=function(r){var e="";r.name&&(e+=FT(" path="+r.name+` +`)),r.linkname&&(e+=FT(" linkpath="+r.linkname+` +`));var t=r.pax;if(t)for(var i in t)e+=FT(" "+i+"="+t[i]+` +`);return Buffer.from(e)};Ch.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Wl(r.mode&A9e,6),100),e.write(Wl(r.uid,6),108),e.write(Wl(r.gid,6),116),e.write(Wl(r.size,11),124),e.write(Wl(r.mtime.getTime()/1e3|0,11),136),e[156]=bce+u9e(r.type),r.linkname&&e.write(r.linkname,157),Qce.copy(e,eE),s9e.copy(e,RT),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Wl(r.devmajor||0,6),329),e.write(Wl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Wl(vce(e),6),148),e)};Ch.decode=function(r,e,t){var i=r[156]===0?0:r[156]-bce,n=mh(r,0,100,e),s=zl(r,100,8),o=zl(r,108,8),a=zl(r,116,8),l=zl(r,124,12),c=zl(r,136,12),u=c9e(i),g=r[157]===0?null:mh(r,157,100,e),f=mh(r,265,32),h=mh(r,297,32),p=zl(r,329,8),m=zl(r,337,8),y=vce(r);if(y===8*32)return null;if(y!==zl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Qce.compare(r,eE,eE+6)===0)r[345]&&(n=mh(r,345,155,e)+"/"+n);else if(!(o9e.compare(r,eE,eE+6)===0&&a9e.compare(r,RT,RT+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:m}}});var Nce=w((rvt,kce)=>{var xce=require("util"),f9e=Bce(),tE=NT(),Pce=dh().Writable,Dce=dh().PassThrough,Rce=function(){},Fce=function(r){return r&=511,r&&512-r},h9e=function(r,e){var t=new Sb(r,e);return t.end(),t},p9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Sb=function(r,e){this._parent=r,this.offset=e,Dce.call(this,{autoDestroy:!1})};xce.inherits(Sb,Dce);Sb.prototype.destroy=function(r){this._parent.destroy(r)};var PA=function(r){if(!(this instanceof PA))return new PA(r);Pce.call(this,r),r=r||{},this._offset=0,this._buffer=f9e(),this._missing=0,this._partial=!1,this._onparse=Rce,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Fce(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Fce(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=tE.decodePax(t.slice(0,f)),t.consume(f),s()},l=function(){var f=e._header.size;e._pax=tE.decodePax(t.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=tE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=tE.decodeLongPath(t.slice(0,f),r.filenameEncoding),t.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=tE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(p){e.emit("error",p)}if(t.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=p9e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,h9e(e,f),n);return}e._stream=new Sb(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};xce.inherits(PA,Pce);PA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};PA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};PA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=Rce,this._overflow?this._write(this._overflow,void 0,r):r()}};PA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};PA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};kce.exports=PA});var Tce=w((ivt,Lce)=>{Lce.exports=require("fs").constants||require("constants")});var Hce=w((nvt,Oce)=>{var Eh=Tce(),Mce=Ux(),vb=jl(),d9e=Buffer.alloc,Uce=dh().Readable,Ih=dh().Writable,C9e=require("string_decoder").StringDecoder,kb=NT(),m9e=parseInt("755",8),E9e=parseInt("644",8),Kce=d9e(1024),LT=function(){},TT=function(r,e){e&=511,e&&r.push(Kce.slice(0,512-e))};function I9e(r){switch(r&Eh.S_IFMT){case Eh.S_IFBLK:return"block-device";case Eh.S_IFCHR:return"character-device";case Eh.S_IFDIR:return"directory";case Eh.S_IFIFO:return"fifo";case Eh.S_IFLNK:return"symlink"}return"file"}var xb=function(r){Ih.call(this),this.written=0,this._to=r,this._destroyed=!1};vb(xb,Ih);xb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};xb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Pb=function(){Ih.call(this),this.linkname="",this._decoder=new C9e("utf-8"),this._destroyed=!1};vb(Pb,Ih);Pb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Pb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var rE=function(){Ih.call(this),this._destroyed=!1};vb(rE,Ih);rE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};rE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var ya=function(r){if(!(this instanceof ya))return new ya(r);Uce.call(this,r),this._drain=LT,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};vb(ya,Uce);ya.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=LT);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=I9e(r.mode)),r.mode||(r.mode=r.type==="directory"?m9e:E9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return TT(i,r.size),n?process.nextTick(t):this._drain=t,new rE}if(r.type==="symlink"&&!r.linkname){var s=new Pb;return Mce(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new rE;var o=new xb(this);return this._stream=o,Mce(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));TT(i,r.size),i._finalizing&&i.finalize(),t()}),o}};ya.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Kce),this.push(null))};ya.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};ya.prototype._encode=function(r){if(!r.pax){var e=kb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};ya.prototype._encodePax=function(r){var e=kb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(kb.encode(t)),this.push(e),TT(this,e.length),t.size=r.size,t.type=r.type,this.push(kb.encode(t))};ya.prototype._read=function(r){var e=this._drain;this._drain=LT,e()};Oce.exports=ya});var jce=w(OT=>{OT.extract=Nce();OT.pack=Hce()});var tue=w((vvt,Xce)=>{"use strict";var yh=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=$ce(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return GT(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):F9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new yh(this.__specs,this.__opts,$ce(this.__providers).concat(e)),Zce)}};try{let r=require("util");yh.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch(r){}function N9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function GT(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))N9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=eue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=eue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function eue(r,e){let t;return e.__isFiggyPudding?t=GT(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Zce={has(r,e){return e in r.__specs&>(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in yh.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Xce.exports=L9e;function L9e(r,e){function t(...i){return new Proxy(new yh(r,e,i),Zce)}return t}function $ce(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function F9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var nue=w((kvt,wa)=>{"use strict";var nE=require("crypto"),T9e=tue(),O9e=require("stream").Transform,rue=["sha256","sha384","sha512"],M9e=/^[a-z0-9+/]+(?:=?=?)$/i,U9e=/^([^-]+)-([^?]+)([?\S*]*)$/,K9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,H9e=/^[\x21-\x7E]+$/,Cn=T9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>j9e},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Nu=class{get isHash(){return!0}constructor(e,t){t=Cn(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?K9e:U9e);if(!n||i&&!rue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=Cn(e),e.strict&&!(rue.some(i=>i===this.algorithm)&&this.digest.match(M9e)&&(this.options||[]).every(i=>i.match(H9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},wh=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=Cn(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Nu.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=Cn(t);let i=typeof e=="string"?e:sE(e,t);return Ba(`${this.toString(t)} ${i}`,t)}hexDigest(){return Ba(this,{single:!0}).hexDigest()}match(e,t){t=Cn(t);let i=Ba(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=Cn(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};wa.exports.parse=Ba;function Ba(r,e){if(e=Cn(e),typeof r=="string")return YT(r,e);if(r.algorithm&&r.digest){let t=new wh;return t[r.algorithm]=[r],YT(sE(t,e),e)}else return YT(sE(r,e),e)}function YT(r,e){return e.single?new Nu(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Nu(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new wh)}wa.exports.stringify=sE;function sE(r,e){return e=Cn(e),r.algorithm&&r.digest?Nu.prototype.toString.call(r,e):typeof r=="string"?sE(Ba(r,e),e):wh.prototype.toString.call(r,e)}wa.exports.fromHex=G9e;function G9e(r,e,t){t=Cn(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return Ba(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}wa.exports.fromData=Y9e;function Y9e(r,e){e=Cn(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=nE.createHash(s).update(r).digest("base64"),a=new Nu(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new wh)}wa.exports.fromStream=q9e;function q9e(r,e){e=Cn(e);let t=e.Promise||Promise,i=qT(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}wa.exports.checkData=J9e;function J9e(r,e,t){if(t=Cn(t),e=Ba(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=nE.createHash(i).update(r).digest("base64"),s=Ba({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}wa.exports.checkStream=W9e;function W9e(r,e,t){t=Cn(t);let i=t.Promise||Promise,n=qT(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}wa.exports.integrityStream=qT;function qT(r){r=Cn(r);let e=r.integrity&&Ba(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(nE.createHash),a=0,l=new O9e({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=Ba(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let f=new Error(`stream size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=r.size,f.sri=e,l.emit("error",f)}else if(r.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}wa.exports.create=z9e;function z9e(r){r=Cn(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(nE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Nu(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new wh)}}}var _9e=new Set(nE.getHashes()),iue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>_9e.has(r));function j9e(r,e){return iue.indexOf(r.toLowerCase())>=iue.indexOf(e.toLowerCase())?r:e}});var IC={};ft(IC,{BuildType:()=>cs,Cache:()=>Nt,Configuration:()=>ye,DEFAULT_LOCK_FILENAME:()=>hx,DEFAULT_RC_FILENAME:()=>fx,FormatType:()=>Ri,InstallMode:()=>Ci,LightReport:()=>dA,LinkType:()=>Qt,Manifest:()=>At,MessageName:()=>X,MultiFetcher:()=>wd,PackageExtensionStatus:()=>qi,PackageExtensionType:()=>wi,Project:()=>ze,ProjectLookup:()=>gl,Report:()=>Ji,ReportError:()=>ct,SettingsType:()=>Ie,StreamReport:()=>Je,TAG_REGEXP:()=>_g,TelemetryManager:()=>EC,ThrowReport:()=>di,VirtualFetcher:()=>bd,Workspace:()=>mC,WorkspaceFetcher:()=>Qd,WorkspaceResolver:()=>oi,YarnVersion:()=>Kr,execUtils:()=>Nr,folderUtils:()=>ox,formatUtils:()=>ae,hashUtils:()=>Rn,httpUtils:()=>ir,miscUtils:()=>Se,nodeUtils:()=>Xg,parseMessageName:()=>yI,scriptUtils:()=>Zt,semverUtils:()=>Wt,stringifyMessageName:()=>VA,structUtils:()=>P,tgzUtils:()=>Bi,treeUtils:()=>ls});var Nr={};ft(Nr,{EndStrategy:()=>ss,ExecError:()=>yx,PipeError:()=>Bw,execvp:()=>mve,pipevp:()=>ia});var $h={};ft($h,{AliasFS:()=>La,CwdFS:()=>_t,DEFAULT_COMPRESSION_LEVEL:()=>cc,FakeFS:()=>qA,Filename:()=>xt,JailFS:()=>Ta,LazyFS:()=>Vh,LinkStrategy:()=>Yh,NoFS:()=>GE,NodeFS:()=>ar,PortablePath:()=>Me,PosixFS:()=>Xh,ProxiedFS:()=>Qi,VirtualFS:()=>Wr,ZipFS:()=>li,ZipOpenFS:()=>ys,constants:()=>Rr,extendFs:()=>zE,normalizeLineEndings:()=>oc,npath:()=>H,opendir:()=>KE,patchFs:()=>dQ,ppath:()=>x,statUtils:()=>iQ,toFilename:()=>Jr,xfs:()=>U});var Rr={};ft(Rr,{SAFE_TIME:()=>rQ,S_IFDIR:()=>Ra,S_IFLNK:()=>Na,S_IFMT:()=>Vn,S_IFREG:()=>Fa});var Vn=61440,Ra=16384,Fa=32768,Na=40960,rQ=456789e3;var iQ={};ft(iQ,{BigIntStatsEntry:()=>Hh,DEFAULT_MODE:()=>Kh,DirEntry:()=>GO,StatEntry:()=>GA,areStatsEqual:()=>sQ,clearStats:()=>FE,convertToBigIntStats:()=>NE,makeDefaultStats:()=>jh,makeEmptyStats:()=>dge});var nQ=ge(require("util"));var Kh=Fa|420,GO=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&Vn)===Ra}isFIFO(){return!1}isFile(){return(this.mode&Vn)===Fa}isSocket(){return!1}isSymbolicLink(){return(this.mode&Vn)===Na}},GA=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Kh;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&Vn)===Ra}isFIFO(){return!1}isFile(){return(this.mode&Vn)===Fa}isSocket(){return!1}isSymbolicLink(){return(this.mode&Vn)===Na}},Hh=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Kh);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(Vn))===BigInt(Ra)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(Vn))===BigInt(Fa)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(Vn))===BigInt(Na)}};function jh(){return new GA}function dge(){return FE(jh())}function FE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):nQ.types.isDate(t)&&(r[e]=new Date(0))}return r}function NE(r){let e=new Hh;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):nQ.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function sQ(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var TE=ge(require("fs"));var Gh=ge(require("path")),YO;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(YO||(YO={}));var Me={root:"/",dot:"."},xt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},H=Object.create(Gh.default),x=Object.create(Gh.default.posix);H.cwd=()=>process.cwd();x.cwd=()=>oQ(process.cwd());x.resolve=(...r)=>r.length>0&&x.isAbsolute(r[0])?Gh.default.posix.resolve(...r):Gh.default.posix.resolve(x.cwd(),...r);var qO=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};H.fromPortablePath=JO;H.toPortablePath=oQ;H.contains=(r,e)=>qO(H,r,e);x.contains=(r,e)=>qO(x,r,e);var Cge=/^([a-zA-Z]:.*)$/,mge=/^\/\/(\.\/)?(.*)$/,Ege=/^\/([a-zA-Z]:.*)$/,Ige=/^\/unc\/(\.dot\/)?(.*)$/;function JO(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Ege))r=e[1];else if(t=r.match(Ige))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function oQ(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Cge))?r=`/${e[1]}`:(t=r.match(mge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function LE(r,e){return r===H?JO(e):oQ(e)}function Jr(r){if(H.parse(r).dir!==""||x.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var OE=new Date(rQ*1e3),Yh;(function(t){t.Allow="allow",t.ReadOnly="readOnly"})(Yh||(Yh={}));async function WO(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:OE,mtime:OE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await aQ(a,l,g,r,s,t,o,te(N({},n),{didParentExist:!0}));for(let f of a)await f();await Promise.all(l.map(f=>f()))}async function aQ(r,e,t,i,n,s,o,a){var h,p;let l=a.didParentExist?await yge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:OE,mtime:OE}:c,f;switch(!0){case c.isDirectory():f=await wge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():f=await Bge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():f=await bge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(f||((h=l==null?void 0:l.mtime)==null?void 0:h.getTime())!==g.getTime()||((p=l==null?void 0:l.atime)==null?void 0:p.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),f=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),f=!0),f}async function yge(r,e){try{return await r.lstatPromise(e)}catch(t){return null}}async function wge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(h){if(h.code!=="EEXIST")throw h}}),u=!0);let g=await o.readdirPromise(a),f=c.didParentExist&&!s?te(N({},c),{didParentExist:!1}):c;if(c.stableSort)for(let h of g.sort())await aQ(r,e,t,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),f)&&(u=!0);else(await Promise.all(g.map(async p=>{await aQ(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),f)}))).some(p=>p)&&(u=!0);return u}var AQ=new WeakMap;function lQ(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n===Yh.ReadOnly&&(i.mode&=~146,await r.chmodPromise(e,i.mode))}}function Qge(r,e,t,i,n){let s=AQ.get(r);return typeof s=="undefined"?async()=>{try{await r.copyFilePromise(t,e,TE.default.constants.COPYFILE_FICLONE_FORCE),AQ.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")AQ.set(r,!1),await lQ(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,TE.default.constants.COPYFILE_FICLONE_FORCE):lQ(r,e,t,i,n)}async function Bge(r,e,t,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?Qge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,TE.default.constants.COPYFILE_FICLONE):u!==null?lQ(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function bge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(LE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function Es(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function ME(r){return Es("EBUSY",r)}function qh(r,e){return Es("ENOSYS",`${r}, ${e}`)}function YA(r){return Es("EINVAL",`invalid argument, ${r}`)}function Ai(r){return Es("EBADF",`bad file descriptor, ${r}`)}function so(r){return Es("ENOENT",`no such file or directory, ${r}`)}function No(r){return Es("ENOTDIR",`not a directory, ${r}`)}function Jh(r){return Es("EISDIR",`illegal operation on a directory, ${r}`)}function UE(r){return Es("EEXIST",`file already exists, ${r}`)}function In(r){return Es("EROFS",`read-only filesystem, ${r}`)}function zO(r){return Es("ENOTEMPTY",`directory not empty, ${r}`)}function _O(r){return Es("EOPNOTSUPP",`operation not supported, ${r}`)}function VO(){return Es("ERR_DIR_CLOSED","Directory handle was closed")}var cQ=class extends Error{constructor(e,t){super(e);this.name="Libzip Error",this.code=t}};var XO=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw VO()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e!="undefined"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function KE(r,e,t,i){let n=()=>{let s=t.shift();return typeof s=="undefined"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new XO(e,n,i)}var ZO=ge(require("os"));var qA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await WO(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(LE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch(s){}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch(a){}let o=i?oc(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch(s){}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch(a){}let o=i?oc(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} +`)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} +`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},ac=class extends qA{constructor(){super(x)}};function Sge(r){let e=r.match(/\r?\n/g);if(e===null)return ZO.EOL;let t=e.filter(n=>n===`\r +`).length,i=e.length-t;return t>i?`\r +`:` +`}function oc(r,e){return e.replace(/\r?\n/g,Sge(r))}var _u=ge(require("fs")),uQ=ge(require("stream")),rM=ge(require("util")),gQ=ge(require("zlib"));var $O=ge(require("fs"));var ar=class extends ac{constructor(e=$O.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Me.root}resolve(e){return x.resolve(e)}async openPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.open(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}openSync(e,t,i){return this.realFs.openSync(H.fromPortablePath(e),t,i)}async opendirPromise(e,t){return await new Promise((i,n)=>{typeof t!="undefined"?this.realFs.opendir(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.opendir(H.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,t){let i=typeof t!="undefined"?this.realFs.opendirSync(H.fromPortablePath(e),t):this.realFs.opendirSync(H.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,t,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,t,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,t,i,n,s){return this.realFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return await new Promise((o,a)=>typeof t=="string"?this.realFs.write(e,t,i,this.makeCallback(o,a)):this.realFs.write(e,t,i,n,s,this.makeCallback(o,a)))}writeSync(e,t,i,n,s){return typeof t=="string"?this.realFs.writeSync(e,t,i):this.realFs.writeSync(e,t,i,n,s)}async closePromise(e){await new Promise((t,i)=>{this.realFs.close(e,this.makeCallback(t,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,t){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createReadStream(i,t)}createWriteStream(e,t){let i=e!==null?H.fromPortablePath(e):e;return this.realFs.createWriteStream(i,t)}async realpathPromise(e){return await new Promise((t,i)=>{this.realFs.realpath(H.fromPortablePath(e),{},this.makeCallback(t,i))}).then(t=>H.toPortablePath(t))}realpathSync(e){return H.toPortablePath(this.realFs.realpathSync(H.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(t=>{this.realFs.exists(H.fromPortablePath(e),t)})}accessSync(e,t){return this.realFs.accessSync(H.fromPortablePath(e),t)}async accessPromise(e,t){return await new Promise((i,n)=>{this.realFs.access(H.fromPortablePath(e),t,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(H.fromPortablePath(e))}async statPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.stat(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.stat(H.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,t){return t?this.realFs.statSync(H.fromPortablePath(e),t):this.realFs.statSync(H.fromPortablePath(e))}async fstatPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.fstat(e,t,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,t){return t?this.realFs.fstatSync(e,t):this.realFs.fstatSync(e)}async lstatPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.lstat(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.lstat(H.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,t){return t?this.realFs.lstatSync(H.fromPortablePath(e),t):this.realFs.lstatSync(H.fromPortablePath(e))}async fchmodPromise(e,t){return await new Promise((i,n)=>{this.realFs.fchmod(e,t,this.makeCallback(i,n))})}fchmodSync(e,t){return this.realFs.fchmodSync(e,t)}async chmodPromise(e,t){return await new Promise((i,n)=>{this.realFs.chmod(H.fromPortablePath(e),t,this.makeCallback(i,n))})}chmodSync(e,t){return this.realFs.chmodSync(H.fromPortablePath(e),t)}async chownPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.chown(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}chownSync(e,t,i){return this.realFs.chownSync(H.fromPortablePath(e),t,i)}async renamePromise(e,t){return await new Promise((i,n)=>{this.realFs.rename(H.fromPortablePath(e),H.fromPortablePath(t),this.makeCallback(i,n))})}renameSync(e,t){return this.realFs.renameSync(H.fromPortablePath(e),H.fromPortablePath(t))}async copyFilePromise(e,t,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(H.fromPortablePath(e),H.fromPortablePath(t),i,this.makeCallback(n,s))})}copyFileSync(e,t,i=0){return this.realFs.copyFileSync(H.fromPortablePath(e),H.fromPortablePath(t),i)}async appendFilePromise(e,t,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFile(o,t,i,this.makeCallback(n,s)):this.realFs.appendFile(o,t,this.makeCallback(n,s))})}appendFileSync(e,t,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,t,i):this.realFs.appendFileSync(n,t)}async writeFilePromise(e,t,i){return await new Promise((n,s)=>{let o=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFile(o,t,i,this.makeCallback(n,s)):this.realFs.writeFile(o,t,this.makeCallback(n,s))})}writeFileSync(e,t,i){let n=typeof e=="string"?H.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,t,i):this.realFs.writeFileSync(n,t)}async unlinkPromise(e){return await new Promise((t,i)=>{this.realFs.unlink(H.fromPortablePath(e),this.makeCallback(t,i))})}unlinkSync(e){return this.realFs.unlinkSync(H.fromPortablePath(e))}async utimesPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.utimes(H.fromPortablePath(e),t,i,this.makeCallback(n,s))})}utimesSync(e,t,i){this.realFs.utimesSync(H.fromPortablePath(e),t,i)}async lutimesPromiseImpl(e,t,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,H.fromPortablePath(e),t,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,t,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw qh("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,H.fromPortablePath(e),t,i)}async mkdirPromise(e,t){return await new Promise((i,n)=>{this.realFs.mkdir(H.fromPortablePath(e),t,this.makeCallback(i,n))})}mkdirSync(e,t){return this.realFs.mkdirSync(H.fromPortablePath(e),t)}async rmdirPromise(e,t){return await new Promise((i,n)=>{t?this.realFs.rmdir(H.fromPortablePath(e),t,this.makeCallback(i,n)):this.realFs.rmdir(H.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,t){return this.realFs.rmdirSync(H.fromPortablePath(e),t)}async linkPromise(e,t){return await new Promise((i,n)=>{this.realFs.link(H.fromPortablePath(e),H.fromPortablePath(t),this.makeCallback(i,n))})}linkSync(e,t){return this.realFs.linkSync(H.fromPortablePath(e),H.fromPortablePath(t))}async symlinkPromise(e,t,i){return await new Promise((n,s)=>{this.realFs.symlink(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(t),i,this.makeCallback(n,s))})}symlinkSync(e,t,i){return this.realFs.symlinkSync(H.fromPortablePath(e.replace(/\/+$/,"")),H.fromPortablePath(t),i)}async readFilePromise(e,t){return await new Promise((i,n)=>{let s=typeof e=="string"?H.fromPortablePath(e):e;this.realFs.readFile(s,t,this.makeCallback(i,n))})}readFileSync(e,t){let i=typeof e=="string"?H.fromPortablePath(e):e;return this.realFs.readFileSync(i,t)}async readdirPromise(e,t){return await new Promise((i,n)=>{(t==null?void 0:t.withFileTypes)?this.realFs.readdir(H.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(H.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,t){return(t==null?void 0:t.withFileTypes)?this.realFs.readdirSync(H.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(H.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((t,i)=>{this.realFs.readlink(H.fromPortablePath(e),this.makeCallback(t,i))}).then(t=>H.toPortablePath(t))}readlinkSync(e){return H.toPortablePath(this.realFs.readlinkSync(H.fromPortablePath(e)))}async truncatePromise(e,t){return await new Promise((i,n)=>{this.realFs.truncate(H.fromPortablePath(e),t,this.makeCallback(i,n))})}truncateSync(e,t){return this.realFs.truncateSync(H.fromPortablePath(e),t)}async ftruncatePromise(e,t){return await new Promise((i,n)=>{this.realFs.ftruncate(e,t,this.makeCallback(i,n))})}ftruncateSync(e,t){return this.realFs.ftruncateSync(e,t)}watch(e,t,i){return this.realFs.watch(H.fromPortablePath(e),t,i)}watchFile(e,t,i){return this.realFs.watchFile(H.fromPortablePath(e),t,i)}unwatchFile(e,t){return this.realFs.unwatchFile(H.fromPortablePath(e),t)}makeCallback(e,t){return(i,n)=>{i?t(i):e(n)}}};var eM=ge(require("events"));var Ac;(function(t){t.Change="change",t.Stop="stop"})(Ac||(Ac={}));var lc;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(lc||(lc={}));function tM(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Wh=class extends eM.EventEmitter{constructor(e,t,{bigint:i=!1}={}){super();this.status=lc.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=t,this.bigint=i,this.lastStats=this.stat()}static create(e,t,i){let n=new Wh(e,t,i);return n.start(),n}start(){tM(this.status,lc.Ready),this.status=lc.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(Ac.Change,this.lastStats,this.lastStats)},3)}stop(){tM(this.status,lc.Running),this.status=lc.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(Ac.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let t=this.bigint?new Hh:new GA;return FE(t)}}makeInterval(e){let t=setInterval(()=>{let i=this.stat(),n=this.lastStats;sQ(i,n)||(this.lastStats=i,this.emit(Ac.Change,i,n))},e.interval);return e.persistent?t:t.unref()}registerChangeListener(e,t){this.addListener(Ac.Change,e),this.changeListeners.set(e,this.makeInterval(t))}unregisterChangeListener(e){this.removeListener(Ac.Change,e);let t=this.changeListeners.get(e);typeof t!="undefined"&&clearInterval(t),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var HE=new WeakMap;function jE(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=HE.get(r);typeof l=="undefined"&&HE.set(r,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=Wh.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function zh(r,e,t){let i=HE.get(r);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof t=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function _h(r){let e=HE.get(r);if(typeof e!="undefined")for(let t of e.keys())zh(r,t)}var cc="mixed";function vge(r){if(typeof r=="string"&&String(+r)===r)return+r;if(Number.isFinite(r))return r<0?Date.now()/1e3:r;if(rM.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function iM(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var li=class extends ac{constructor(e,t){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=t.libzip;let i=t;if(this.level=typeof i.level!="undefined"?i.level:cc,e!=null||(e=iM()),typeof e=="string"){let{baseFs:o=new ar}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(t.stats)this.stats=t.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=jh();else throw o}else this.stats=jh();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),t.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(H.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Me.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(t,t+e);return Buffer.from(n)}finally{this.libzip.free(t)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw ME("archive closed, close");_h(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===Kh?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,iM(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return x.resolve(Me.root,e)}async openPromise(e,t,i){return this.openSync(e,t,i)}openSync(e,t,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,t){return this.opendirSync(e,t)}opendirSync(e,t={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw so(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw No(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return KE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,t,i,n,s){return this.readSync(e,t,i,n,s)}readSync(e,t,i=0,n=t.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw Ai("read");let a=s===-1||s===null?o.cursor:s,l=this.readFileSync(o.p);l.copy(t,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,t,i,n,s){return typeof t=="string"?this.writeSync(e,t,s):this.writeSync(e,t,i,n,s)}writeSync(e,t,i,n,s){throw typeof this.fds.get(e)=="undefined"?Ai("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw Ai("read");this.fds.delete(e)}createReadStream(e,{encoding:t}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new uQ.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,t);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:t}={}){if(this.readOnly)throw In(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new uQ.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),t),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let t=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(t)&&!this.listings.has(t))throw so(`lstat '${e}'`);return t}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw ME(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=x.resolve(Me.root,e);return this.entries.has(i)||this.listings.has(i)}let t;try{t=this.resolveFilename(`stat '${e}'`,e,void 0,!1)}catch(i){return!1}return t===void 0?!1:this.entries.has(t)||this.listings.has(t)}async accessPromise(e,t){return this.accessSync(e,t)}accessSync(e,t=_u.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw so(`access '${e}'`);if(this.readOnly&&t&_u.constants.W_OK)throw In(`access '${e}'`)}async statPromise(e,t={bigint:!1}){return t.bigint?this.statSync(e,{bigint:!0}):this.statSync(e)}statSync(e,t={bigint:!1,throwIfNoEntry:!0}){let i=this.resolveFilename(`stat '${e}'`,e,void 0,t.throwIfNoEntry);if(i!==void 0){if(!this.entries.has(i)&&!this.listings.has(i)){if(t.throwIfNoEntry===!1)return;throw so(`stat '${e}'`)}if(e[e.length-1]==="/"&&!this.listings.has(i))throw No(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,t)}}async fstatPromise(e,t){return this.fstatSync(e,t)}fstatSync(e,t){let i=this.fds.get(e);if(typeof i=="undefined")throw Ai("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw so(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw No(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,t)}async lstatPromise(e,t={bigint:!1}){return t.bigint?this.lstatSync(e,{bigint:!0}):this.lstatSync(e)}lstatSync(e,t={bigint:!1,throwIfNoEntry:!0}){let i=this.resolveFilename(`lstat '${e}'`,e,!1,t.throwIfNoEntry);if(i!==void 0){if(!this.entries.has(i)&&!this.listings.has(i)){if(t.throwIfNoEntry===!1)return;throw so(`lstat '${e}'`)}if(e[e.length-1]==="/"&&!this.listings.has(i))throw No(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,t)}}statImpl(e,t,i={}){let n=this.entries.get(t);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,m=f,y=new Date(h),b=new Date(p),v=new Date(m),k=new Date(f),T=this.listings.has(t)?Ra:this.isSymbolicLink(n)?Na:Fa,Y=T===Ra?493:420,q=T|this.getUnixMode(n,Y)&511,$=this.libzip.struct.statCrc(s),z=Object.assign(new GA,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:y,birthtime:b,ctime:v,mtime:k,atimeMs:h,birthtimeMs:p,ctimeMs:m,mtimeMs:f,mode:q,crc:$});return i.bigint===!0?NE(z):z}if(this.listings.has(t)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),m=new Date(g),y=new Date(f),b=new Date(h),v=Ra|493,k=0,T=Object.assign(new GA,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:m,ctime:y,mtime:b,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:v,crc:k});return i.bigint===!0?NE(T):T}throw new Error("Unreachable")}getUnixMode(e,t){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?t:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let t=this.listings.get(e);if(t)return t;this.registerListing(x.dirname(e)).add(x.basename(e));let n=new Set;return this.listings.set(e,n),n}registerEntry(e,t){this.registerListing(x.dirname(e)).add(x.basename(e)),this.entries.set(e,t)}unregisterListing(e){this.listings.delete(e);let t=this.listings.get(x.dirname(e));t==null||t.delete(x.basename(e))}unregisterEntry(e){this.unregisterListing(e);let t=this.entries.get(e);this.entries.delete(e),typeof t!="undefined"&&(this.fileSources.delete(t),this.isSymbolicLink(t)&&this.symlinkCount--)}deleteEntry(e,t){if(this.unregisterEntry(e),this.libzip.delete(this.zip,t)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,t,i=!0,n=!0){if(!this.ready)throw ME(`archive closed, ${e}`);let s=x.resolve(Me.root,t);if(s==="/")return Me.root;let o=this.entries.get(s);if(i&&o!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(o)){let a=this.getFileSource(o).toString();return this.resolveFilename(e,x.resolve(x.dirname(s),a),!0,n)}else return s;for(;;){let a=this.resolveFilename(e,x.dirname(s),!0,n);if(a===void 0)return a;let l=this.listings.has(a),c=this.entries.has(a);if(!l&&!c){if(n===!1)return;throw so(e)}if(!l)throw No(e);if(s=x.resolve(a,x.basename(s)),!i||this.symlinkCount===0)break;let u=this.libzip.name.locate(this.zip,s.slice(1));if(u===-1)break;if(this.isSymbolicLink(u)){let g=this.getFileSource(u).toString();s=x.resolve(x.dirname(s),g)}else break}return s}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let t=this.libzip.malloc(e.byteLength);if(!t)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,t,e.byteLength).set(e),{buffer:t,byteLength:e.byteLength}}allocateUnattachedSource(e){let t=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,t);if(s===0)throw this.libzip.free(t),this.makeLibzipError(t);return s}allocateSource(e){let{buffer:t,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,t,i,0,!0);if(n===0)throw this.libzip.free(t),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,t){let i=Buffer.isBuffer(t)?t:Buffer.from(t),n=x.relative(Me.root,e),s=this.allocateSource(t);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&Vn)===Na}getFileSource(e,t={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(t.asyncDecompress)return new Promise((h,p)=>{gQ.default.inflateRaw(f,(m,y)=>{m?p(m):(this.fileSources.set(e,y),h(y))})});{let h=gQ.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async fchmodPromise(e,t){return this.chmodPromise(this.fdToPath(e,"fchmod"),t)}fchmodSync(e,t){return this.chmodSync(this.fdToPath(e,"fchmodSync"),t)}async chmodPromise(e,t){return this.chmodSync(e,t)}chmodSync(e,t){if(this.readOnly)throw In(`chmod '${e}'`);t&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,Fa|0)&~511|t;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,t,i){return this.chownSync(e,t,i)}chownSync(e,t,i){throw new Error("Unimplemented")}async renamePromise(e,t){return this.renameSync(e,t)}renameSync(e,t){throw new Error("Unimplemented")}async copyFilePromise(e,t,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,t,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,t,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,t,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,t,i=0){if(this.readOnly)throw In(`copyfile '${e} -> '${t}'`);if((i&_u.constants.COPYFILE_FICLONE_FORCE)!=0)throw qh("unsupported clone operation",`copyfile '${e}' -> ${t}'`);let n=this.resolveFilename(`copyfile '${e} -> ${t}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw YA(`copyfile '${e}' -> '${t}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${t}'`,t),a=this.entries.get(o);if((i&(_u.constants.COPYFILE_EXCL|_u.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw UE(`copyfile '${e}' -> '${t}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,t,i){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFilePromise(e,t,i)}appendFileSync(e,t,i={}){if(this.readOnly)throw In(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=N({flag:"a"},i)),this.writeFileSync(e,t,i)}fdToPath(e,t){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw Ai(t);return i}async writeFilePromise(e,t,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(t=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(t)])),n!==null&&(t=t.toString(n));let l=this.setFileSource(a,t);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,t,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(t=Buffer.concat([this.getFileSource(o),Buffer.from(t)])),n!==null&&(t=t.toString(n));let l=this.setFileSource(a,t);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,t){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw In(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw Jh(`open '${e}'`);let n=null,s=null;typeof t=="string"?n=t:typeof t=="object"&&({encoding:n=null,mode:s=null}=t);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw In(`unlink '${e}'`);let t=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(t))throw Jh(`unlink '${e}'`);let i=this.entries.get(t);if(typeof i=="undefined")throw YA(`unlink '${e}'`);this.deleteEntry(t,i)}async utimesPromise(e,t,i){return this.utimesSync(e,t,i)}utimesSync(e,t,i){if(this.readOnly)throw In(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,t,i){return this.lutimesSync(e,t,i)}lutimesSync(e,t,i){if(this.readOnly)throw In(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,t){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,vge(t),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,t){return this.mkdirSync(e,t)}mkdirSync(e,{mode:t=493,recursive:i=!1}={}){if(i)return this.mkdirpSync(e,{chmod:t});if(this.readOnly)throw In(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw UE(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,t)}async rmdirPromise(e,t){return this.rmdirSync(e,t)}rmdirSync(e,{recursive:t=!1}={}){if(this.readOnly)throw In(`rmdir '${e}'`);if(t){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw No(`rmdir '${e}'`);if(n.size>0)throw zO(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw YA(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let t=this.libzip.dir.add(this.zip,x.relative(Me.root,e));if(t===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,t),t}async linkPromise(e,t){return this.linkSync(e,t)}linkSync(e,t){throw _O(`link '${e}' -> '${t}'`)}async symlinkPromise(e,t){return this.symlinkSync(e,t)}symlinkSync(e,t){if(this.readOnly)throw In(`symlink '${e}' -> '${t}'`);let i=this.resolveFilename(`symlink '${e}' -> '${t}'`,t);if(this.listings.has(i))throw Jh(`symlink '${e}' -> '${t}'`);if(this.entries.has(i))throw UE(`symlink '${e}' -> '${t}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(Na|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,t){typeof t=="object"&&(t=t?t.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return t?i.toString(t):i}readFileSync(e,t){typeof t=="object"&&(t=t?t.encoding:void 0);let i=this.readFileBuffer(e);return t?i.toString(t):i}readFileBuffer(e,t={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw so(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw No(`open '${e}'`);if(this.listings.has(i))throw Jh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,t)}async readdirPromise(e,t){return this.readdirSync(e,t)}readdirSync(e,t){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw so(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw No(`scandir '${e}'`);let s=[...n];return(t==null?void 0:t.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",x.join(e,o)),{name:o})):s}async readlinkPromise(e){let t=this.prepareReadlink(e);return(await this.getFileSource(t,{asyncDecompress:!0})).toString()}readlinkSync(e){let t=this.prepareReadlink(e);return this.getFileSource(t).toString()}prepareReadlink(e){let t=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(t)&&!this.listings.has(t))throw so(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(t))throw No(`open '${e}'`);if(this.listings.has(t))throw YA(`readlink '${e}'`);let i=this.entries.get(t);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw YA(`readlink '${e}'`);return i}async truncatePromise(e,t=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw YA(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(t,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,t=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw YA(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(t,0);return s.copy(o),this.writeFileSync(e,o)}async ftruncatePromise(e,t){return this.truncatePromise(this.fdToPath(e,"ftruncate"),t)}ftruncateSync(e,t){return this.truncateSync(this.fdToPath(e,"ftruncateSync"),t)}watch(e,t,i){let n;switch(typeof t){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=t);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,t,i){let n=x.resolve(Me.root,e);return jE(this,n,t,i)}unwatchFile(e,t){let i=x.resolve(Me.root,e);return zh(this,i,t)}};var Qi=class extends qA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return t==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),t):this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return t==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),t):this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var La=class extends Qi{constructor(e,{baseFs:t,pathUtils:i}){super(i);this.target=e,this.baseFs=t}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var _t=class extends Qi{constructor(e,{baseFs:t=new ar}={}){super(x);this.target=this.pathUtils.normalize(e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?x.normalize(e):this.baseFs.resolve(x.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var nM=Me.root,Ta=class extends Qi{constructor(e,{baseFs:t=new ar}={}){super(x);this.target=this.pathUtils.resolve(Me.root,e),this.baseFs=t}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Me.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let t=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(nM,e));if(t.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(nM,this.pathUtils.relative(this.target,e))}};var Vh=class extends Qi{constructor(e,t){super(t);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var et=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),fQ=class extends qA{constructor(){super(x)}getExtractHint(){throw et()}getRealPath(){throw et()}resolve(){throw et()}async openPromise(){throw et()}openSync(){throw et()}async opendirPromise(){throw et()}opendirSync(){throw et()}async readPromise(){throw et()}readSync(){throw et()}async writePromise(){throw et()}writeSync(){throw et()}async closePromise(){throw et()}closeSync(){throw et()}createWriteStream(){throw et()}createReadStream(){throw et()}async realpathPromise(){throw et()}realpathSync(){throw et()}async readdirPromise(){throw et()}readdirSync(){throw et()}async existsPromise(e){throw et()}existsSync(e){throw et()}async accessPromise(){throw et()}accessSync(){throw et()}async statPromise(){throw et()}statSync(){throw et()}async fstatPromise(e){throw et()}fstatSync(e){throw et()}async lstatPromise(e){throw et()}lstatSync(e){throw et()}async fchmodPromise(){throw et()}fchmodSync(){throw et()}async chmodPromise(){throw et()}chmodSync(){throw et()}async chownPromise(){throw et()}chownSync(){throw et()}async mkdirPromise(){throw et()}mkdirSync(){throw et()}async rmdirPromise(){throw et()}rmdirSync(){throw et()}async linkPromise(){throw et()}linkSync(){throw et()}async symlinkPromise(){throw et()}symlinkSync(){throw et()}async renamePromise(){throw et()}renameSync(){throw et()}async copyFilePromise(){throw et()}copyFileSync(){throw et()}async appendFilePromise(){throw et()}appendFileSync(){throw et()}async writeFilePromise(){throw et()}writeFileSync(){throw et()}async unlinkPromise(){throw et()}unlinkSync(){throw et()}async utimesPromise(){throw et()}utimesSync(){throw et()}async readFilePromise(){throw et()}readFileSync(){throw et()}async readlinkPromise(){throw et()}readlinkSync(){throw et()}async truncatePromise(){throw et()}truncateSync(){throw et()}async ftruncatePromise(e,t){throw et()}ftruncateSync(e,t){throw et()}watch(){throw et()}watchFile(){throw et()}unwatchFile(){throw et()}},GE=fQ;GE.instance=new fQ;var Xh=class extends Qi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return H.fromPortablePath(e)}mapToBase(e){return H.toPortablePath(e)}};var kge=/^[0-9]+$/,hQ=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,xge=/^([^/]+-)?[a-f0-9]+$/,Wr=class extends Qi{static makeVirtualPath(e,t,i){if(x.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!x.basename(t).match(xge))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=x.relative(x.dirname(e),i).split("/"),o=0;for(;o{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==x.sep);){if(r[t-1]===x.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==x.sep?null:r.slice(0,i)},ys=class extends ac{constructor({libzip:e,baseFs:t=new ar,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=t,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,t){let i=new ys(t);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:t}]of this.zipInstances.entries())t.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(_h(this),this.zipInstances)for(let[e,{zipFs:t}]of this.zipInstances.entries())t.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,t){let i=this.nextFd++|Xn;return this.fdMap.set(i,[e,t]),i}async openPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,t,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,t,i)))}openSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,t,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,t,i)))}async opendirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,t),async(i,{subPath:n})=>await i.opendirPromise(n,t),{requireSubpath:!1})}opendirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,t),(i,{subPath:n})=>i.opendirSync(n,t),{requireSubpath:!1})}async readPromise(e,t,i,n,s){if((e&Is)!==Xn)return await this.baseFs.readPromise(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("read");let[a,l]=o;return await a.readPromise(l,t,i,n,s)}readSync(e,t,i,n,s){if((e&Is)!==Xn)return this.baseFs.readSync(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("readSync");let[a,l]=o;return a.readSync(l,t,i,n,s)}async writePromise(e,t,i,n,s){if((e&Is)!==Xn)return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("write");let[a,l]=o;return typeof t=="string"?await a.writePromise(l,t,i):await a.writePromise(l,t,i,n,s)}writeSync(e,t,i,n,s){if((e&Is)!==Xn)return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Ai("writeSync");let[a,l]=o;return typeof t=="string"?a.writeSync(l,t,i):a.writeSync(l,t,i,n,s)}async closePromise(e){if((e&Is)!==Xn)return await this.baseFs.closePromise(e);let t=this.fdMap.get(e);if(typeof t=="undefined")throw Ai("close");this.fdMap.delete(e);let[i,n]=t;return await i.closePromise(n)}closeSync(e){if((e&Is)!==Xn)return this.baseFs.closeSync(e);let t=this.fdMap.get(e);if(typeof t=="undefined")throw Ai("closeSync");this.fdMap.delete(e);let[i,n]=t;return i.closeSync(n)}createReadStream(e,t){return e===null?this.baseFs.createReadStream(e,t):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,t),(i,{archivePath:n,subPath:s})=>{let o=i.createReadStream(s,t);return o.path=H.fromPortablePath(this.pathUtils.join(n,s)),o})}createWriteStream(e,t){return e===null?this.baseFs.createWriteStream(e,t):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,t),(i,{subPath:n})=>i.createWriteStream(n,t))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(t,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Me.root,await t.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(t,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Me.root,t.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(t,{subPath:i})=>await t.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(t,{subPath:i})=>t.existsSync(i))}async accessPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,t),async(i,{subPath:n})=>await i.accessPromise(n,t))}accessSync(e,t){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,t),(i,{subPath:n})=>i.accessSync(n,t))}async statPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,t),async(i,{subPath:n})=>await i.statPromise(n,t))}statSync(e,t){return this.makeCallSync(e,()=>this.baseFs.statSync(e,t),(i,{subPath:n})=>i.statSync(n,t))}async fstatPromise(e,t){if((e&Is)!==Xn)return this.baseFs.fstatPromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fstat");let[n,s]=i;return n.fstatPromise(s,t)}fstatSync(e,t){if((e&Is)!==Xn)return this.baseFs.fstatSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fstatSync");let[n,s]=i;return n.fstatSync(s,t)}async lstatPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,t),async(i,{subPath:n})=>await i.lstatPromise(n,t))}lstatSync(e,t){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,t),(i,{subPath:n})=>i.lstatSync(n,t))}async fchmodPromise(e,t){if((e&Is)!==Xn)return this.baseFs.fchmodPromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fchmod");let[n,s]=i;return n.fchmodPromise(s,t)}fchmodSync(e,t){if((e&Is)!==Xn)return this.baseFs.fchmodSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("fchmodSync");let[n,s]=i;return n.fchmodSync(s,t)}async chmodPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,t),async(i,{subPath:n})=>await i.chmodPromise(n,t))}chmodSync(e,t){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,t),(i,{subPath:n})=>i.chmodSync(n,t))}async chownPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,t,i),async(n,{subPath:s})=>await n.chownPromise(s,t,i))}chownSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,t,i),(n,{subPath:s})=>n.chownSync(s,t,i))}async renamePromise(e,t){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.renamePromise(e,t),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(t,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,t){return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.renameSync(e,t),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(t,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,t,i=0){let n=async(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(t,async()=>await this.baseFs.copyFilePromise(e,t,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(t,async()=>await n(s,o,this.baseFs,t),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,t,i=0){let n=(s,o,a,l)=>{if((i&Zh.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Zh.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(t,()=>this.baseFs.copyFileSync(e,t,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(t,()=>n(s,o,this.baseFs,t),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,t,i),async(n,{subPath:s})=>await n.appendFilePromise(s,t,i))}appendFileSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,t,i),(n,{subPath:s})=>n.appendFileSync(s,t,i))}async writeFilePromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,t,i),async(n,{subPath:s})=>await n.writeFilePromise(s,t,i))}writeFileSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,t,i),(n,{subPath:s})=>n.writeFileSync(s,t,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(t,{subPath:i})=>await t.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(t,{subPath:i})=>t.unlinkSync(i))}async utimesPromise(e,t,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,t,i),async(n,{subPath:s})=>await n.utimesPromise(s,t,i))}utimesSync(e,t,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,t,i),(n,{subPath:s})=>n.utimesSync(s,t,i))}async mkdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,t),async(i,{subPath:n})=>await i.mkdirPromise(n,t))}mkdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,t),(i,{subPath:n})=>i.mkdirSync(n,t))}async rmdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,t),async(i,{subPath:n})=>await i.rmdirPromise(n,t))}rmdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,t),(i,{subPath:n})=>i.rmdirSync(n,t))}async linkPromise(e,t){return await this.makeCallPromise(t,async()=>await this.baseFs.linkPromise(e,t),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,t){return this.makeCallSync(t,()=>this.baseFs.linkSync(e,t),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.symlinkPromise(e,t,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,t,i){return this.makeCallSync(t,()=>this.baseFs.symlinkSync(e,t,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,t){return this.makeCallPromise(e,async()=>{switch(t){case"utf8":return await this.baseFs.readFilePromise(e,t);default:return await this.baseFs.readFilePromise(e,t)}},async(i,{subPath:n})=>await i.readFilePromise(n,t))}readFileSync(e,t){return this.makeCallSync(e,()=>{switch(t){case"utf8":return this.baseFs.readFileSync(e,t);default:return this.baseFs.readFileSync(e,t)}},(i,{subPath:n})=>i.readFileSync(n,t))}async readdirPromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,t),async(i,{subPath:n})=>await i.readdirPromise(n,t),{requireSubpath:!1})}readdirSync(e,t){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,t),(i,{subPath:n})=>i.readdirSync(n,t),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(t,{subPath:i})=>await t.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(t,{subPath:i})=>t.readlinkSync(i))}async truncatePromise(e,t){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,t),async(i,{subPath:n})=>await i.truncatePromise(n,t))}truncateSync(e,t){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,t),(i,{subPath:n})=>i.truncateSync(n,t))}async ftruncatePromise(e,t){if((e&Is)!==Xn)return this.baseFs.ftruncatePromise(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("ftruncate");let[n,s]=i;return n.ftruncatePromise(s,t)}ftruncateSync(e,t){if((e&Is)!==Xn)return this.baseFs.ftruncateSync(e,t);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Ai("ftruncateSync");let[n,s]=i;return n.ftruncateSync(s,t)}watch(e,t,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,t,i),(n,{subPath:s})=>n.watch(s,t,i))}watchFile(e,t,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,t,i),()=>jE(this,e,t,i))}unwatchFile(e,t){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,t),()=>zh(this,e,t))}async makeCallPromise(e,t,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await t();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await t():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await t()}makeCallSync(e,t,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return t();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?t():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let t="";for(;;){let i=e.substring(t.length),n;if(!this.fileExtensions)n=sM(i,".zip");else for(let s of this.fileExtensions)if(n=sM(i,s),n)break;if(!n)return null;if(t=this.pathUtils.join(t,n),this.isZip.has(t)===!1){if(this.notZip.has(t))continue;try{if(!this.baseFs.lstatSync(t).isFile()){this.notZip.add(t);continue}}catch{return null}this.isZip.add(t)}return{archivePath:t,subPath:this.pathUtils.join(Me.root,e.substring(t.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let t=Date.now(),i=t+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(t>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-t).unref())}async getZipPromise(e,t){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new li(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await t(n.zipFs)}finally{n.refCount-=1}}else{let n=new li(e,await i());try{return await t(n)}finally{n.saveAndClose()}}}getZipSync(e,t){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new li(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,t(n.zipFs)}else{let n=new li(e,i());try{return t(n)}finally{n.saveAndClose()}}}};var Xu=ge(require("util"));var YE=ge(require("url"));var pQ=class extends Qi{constructor(e){super(H);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof YE.URL?(0,YE.fileURLToPath)(e):e}};var en=Symbol("kBaseFs"),Oa=Symbol("kFd"),JA=Symbol("kClosePromise"),qE=Symbol("kCloseResolve"),JE=Symbol("kCloseReject"),Vu=Symbol("kRefs"),Lo=Symbol("kRef"),To=Symbol("kUnref"),v6e,k6e,x6e,P6e,WE=class{constructor(e,t){this[v6e]=1;this[k6e]=void 0;this[x6e]=void 0;this[P6e]=void 0;this[en]=t,this[Oa]=e}get fd(){return this[Oa]}async appendFile(e,t){var i;try{this[Lo](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[en].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[To]()}}chown(e,t){throw new Error("Method not implemented.")}async chmod(e){try{return this[Lo](this.chmod),await this[en].fchmodPromise(this.fd,e)}finally{this[To]()}}createReadStream(e){return this[en].createReadStream(null,te(N({},e),{fd:this.fd}))}createWriteStream(e){return this[en].createWriteStream(null,te(N({},e),{fd:this.fd}))}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Lo](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[en].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[To]()}}async readFile(e){var t;try{this[Lo](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[en].readFilePromise(this.fd,i)}finally{this[To]()}}async stat(e){try{return this[Lo](this.stat),await this[en].fstatPromise(this.fd,e)}finally{this[To]()}}async truncate(e){try{return this[Lo](this.truncate),await this[en].ftruncatePromise(this.fd,e)}finally{this[To]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Lo](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[en].writeFilePromise(this.fd,e,n)}finally{this[To]()}}async write(...e){try{if(this[Lo](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[en].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[en].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[To]()}}async writev(e,t){try{this[Lo](this.writev);let i=0;if(typeof t!="undefined")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e)i+=(await this.write(n)).bytesWritten;return{buffers:e,bytesWritten:i}}finally{this[To]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Oa]===-1)return Promise.resolve();if(this[JA])return this[JA];if(this[Vu]--,this[Vu]===0){let e=this[Oa];this[Oa]=-1,this[JA]=this[en].closePromise(e).finally(()=>{this[JA]=void 0})}else this[JA]=new Promise((e,t)=>{this[qE]=e,this[JE]=t}).finally(()=>{this[JA]=void 0,this[JE]=void 0,this[qE]=void 0});return this[JA]}[(en,Oa,v6e=Vu,k6e=JA,x6e=qE,P6e=JE,Lo)](e){if(this[Oa]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[Vu]++}[To](){if(this[Vu]--,this[Vu]===0){let e=this[Oa];this[Oa]=-1,this[en].closePromise(e).then(this[qE],this[JE])}}};var Pge=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),oM=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function dQ(r,e){e=new pQ(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Xu.promisify.custom])!="undefined"&&(s[Xu.promisify.custom]=o[Xu.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of oM){let n=i.replace(/Promise$/,"");if(typeof r[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of Pge){let n=i;if(typeof r[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=r.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let s of oM){let o=s.replace(/Promise$/,"");if(typeof n[o]=="undefined")continue;let a=e[s];typeof a!="undefined"&&s!=="open"&&t(n,o,(l,...c)=>l instanceof WE?l[o].apply(l,c):a.call(e,l,...c))}t(n,"open",async(...s)=>{let o=await e.openPromise(...s);return new WE(o,e)})}}r.read[Xu.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Xu.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function zE(r,e){let t=Object.create(r);return dQ(t,e),t}var aM=ge(require("os"));function AM(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var oo=new Set,CQ=null;function lM(){if(CQ)return CQ;let r=H.toPortablePath(aM.default.tmpdir()),e=U.realpathSync(r);return process.once("exit",()=>{U.rmtempSync()}),CQ={tmpdir:r,realTmpdir:e}}var U=Object.assign(new ar,{detachTemp(r){oo.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=lM();for(;;){let i=AM("xfs-");try{this.mkdirSync(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(oo.add(n),typeof r=="undefined")return n;try{return r(n)}finally{if(oo.has(n)){oo.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=lM();for(;;){let i=AM("xfs-");try{await this.mkdirPromise(x.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=x.join(t,i);if(oo.add(n),typeof r=="undefined")return n;try{return await r(n)}finally{if(oo.has(n)){oo.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(oo.values()).map(async r=>{try{await U.removePromise(r,{maxRetries:0}),oo.delete(r)}catch{}}))},rmtempSync(){for(let r of oo)try{U.removeSync(r),oo.delete(r)}catch{}}});var Ex=ge(vQ());var ap={};ft(ap,{parseResolution:()=>eI,parseShell:()=>VE,parseSyml:()=>Si,stringifyArgument:()=>DQ,stringifyArgumentSegment:()=>RQ,stringifyArithmeticExpression:()=>$E,stringifyCommand:()=>PQ,stringifyCommandChain:()=>tg,stringifyCommandChainThen:()=>xQ,stringifyCommandLine:()=>XE,stringifyCommandLineThen:()=>kQ,stringifyEnvSegment:()=>ZE,stringifyRedirectArgument:()=>ep,stringifyResolution:()=>tI,stringifyShell:()=>eg,stringifyShellLine:()=>eg,stringifySyml:()=>Ua,stringifyValueArgument:()=>gc});var $M=ge(ZM());function VE(r,e={isGlobPattern:()=>!1}){try{return(0,$M.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function eg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${XE(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function XE(r){return`${tg(r.chain)}${r.then?` ${kQ(r.then)}`:""}`}function kQ(r){return`${r.type} ${XE(r.line)}`}function tg(r){return`${PQ(r)}${r.then?` ${xQ(r.then)}`:""}`}function xQ(r){return`${r.type} ${tg(r.chain)}`}function PQ(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>ZE(e)).join(" ")} `:""}${r.args.map(e=>DQ(e)).join(" ")}`;case"subshell":return`(${eg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>ep(e)).join(" ")}`:""}`;case"group":return`{ ${eg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>ep(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>ZE(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function ZE(r){return`${r.name}=${r.args[0]?gc(r.args[0]):""}`}function DQ(r){switch(r.type){case"redirection":return ep(r);case"argument":return gc(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function ep(r){return`${r.subtype} ${r.args.map(e=>gc(e)).join(" ")}`}function gc(r){return r.segments.map(e=>RQ(e)).join("")}function RQ(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${eg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue=="undefined"?typeof r.alternativeValue=="undefined"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>gc(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>gc(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${$E(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function $E(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t($E(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var r1=ge(t1());function eI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,r1.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function tI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var gI=ge(JU()),_U=ge(zU()),Upe=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,VU=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],qQ=class{constructor(e){this.data=e}};function XU(r){return r.match(Upe)?r:JSON.stringify(r)}function ZU(r){return typeof r=="undefined"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>ZU(r[e])):!1}function JQ(r,e,t){if(r===null)return`null +`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} +`;if(typeof r=="string")return`${XU(r)} +`;if(Array.isArray(r)){if(r.length===0)return`[] +`;let i=" ".repeat(e);return` +${r.map(s=>`${i}- ${JQ(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let i,n;r instanceof qQ?(i=r.data,n=!1):(i=r,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=VU.indexOf(l),g=VU.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!ZU(i[l])).map((l,c)=>{let u=i[l],g=XU(l),f=JQ(u,e+1,!0),h=c>0||t?s:"",p=g.length>1024?`? ${g} +${h}:`:`${g}:`,m=f.startsWith(` +`)?f:` ${f}`;return`${h}${p}${m}`}).join(e===0?` +`:"")||` +`;return t?` +${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Ua(r){try{let e=JQ(r,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Ua.PreserveOrdering=qQ;function Kpe(r){return r.endsWith(` +`)||(r+=` +`),(0,_U.parse)(r)}var Hpe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function jpe(r){if(Hpe.test(r))return Kpe(r);let e=(0,gI.safeLoad)(r,{schema:gI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Si(r){return jpe(r)}var K4=ge(eK()),Ew=ge(yc());var mp={};ft(mp,{Builtins:()=>aS,Cli:()=>Bs,Command:()=>Re,Option:()=>J,UsageError:()=>Pe,formatMarkdownish:()=>Ki});var wc=0,Ap=1,tn=2,zQ="",vi="\0",cg=-1,_Q=/^(-h|--help)(?:=([0-9]+))?$/,fI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,sK=/^-[a-zA-Z]{2,}$/,VQ=/^([^=]+)=([\s\S]*)$/,XQ=process.env.DEBUG_CLI==="1";var Pe=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},lp=class extends Error{constructor(e,t){super();if(this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} + +${this.candidates.map(({usage:n})=>`$ ${n}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${i} +${ZQ(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${ZQ(e)}`}},$Q=class extends Error{constructor(e,t){super();this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${ZQ(e)}`}},ZQ=r=>`While running ${r.filter(e=>e!==vi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var cp=Symbol("clipanion/isOption");function rn(r){return te(N({},r),{[cp]:!0})}function Uo(r,e){return typeof r=="undefined"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function hI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function up(r,e){return e.length===1?new Pe(`${r}: ${hI(e[0],!0)}`):new Pe(`${r}: +${e.map(t=>` +- ${hI(t)}`).join("")}`)}function gp(r,e,t){if(typeof t=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw up(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Re=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(ws(),ug)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw up("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i!="undefined"?i:0}};Re.isOption=cp;Re.Default=[];var pK=80,rS=Array(pK).fill("\u2501");for(let r=0;r<=24;++r)rS[rS.length-r]=`[38;5;${232+r}m\u2501`;var iS={header:r=>`\u2501\u2501\u2501 ${r}${r.length`${r}`,error:r=>`${r}`,code:r=>`${r}`},dK={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function bde(r){let e=r.split(` +`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` +`)}function Ki(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`),r=bde(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` +`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` +`)}).join(` + +`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} +`:""}var oS=ge(require("tty"));function wn(r){XQ&&console.log(r)}var CK={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:cg};function mK(){return{nodes:[sn(),sn(),sn()]}}function Sde(r){let e=mK(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(wc)}function kde(r,{prefix:e=""}={}){if(XQ){wn(`${e}Nodes are:`);for(let t=0;tl!==tn).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===tn))throw new lp(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=xde(a)}if(i.length>0){wn(" Results:");for(let s of i)wn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else wn(" No results");return i}function Pde(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,vi)){for(let{to:t}of r.statics[vi])if(t===Ap)return!0}return!1}function Rde(r,e,t){let i=t&&e.length>0?[""]:[],n=IK(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let m=r.nodes[p],y=Object.keys(m.statics);for(let b of Object.keys(m.statics)){let v=y[0];for(let{to:k,reducer:T}of m.statics[v])T==="pushPath"&&(u||l.push(v),g.push(k))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=Pde(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==vi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===tn)continue;let p=Dde(f,c);if(p!==null)for(let m of p)a([...i,m],l)}}return[...s].sort()}function Nde(r,e){let t=IK(r,[...e,vi]);return Fde(e,t.map(({state:i})=>i))}function xde(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function Fde(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new lp(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=Lde(c);if(u.length>1)throw new $Q(r,u.map(g=>g.candidateUsage));return u[0]}function Lde(r){let e=[],t=[];for(let i of r)i.selectedIndex===cg?t.push(i):e.push(i);return t.length>0&&e.push(te(N({},CK),{path:yK(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])})),e}function yK(r,e,...t){return e===void 0?Array.from(r):yK(r.filter((i,n)=>i===e[n]),...t)}function sn(){return{dynamics:[],shortcuts:[],statics:{}}}function EK(r){return r===Ap||r===tn}function sS(r,e=0){return{to:EK(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function Qde(r,e=0){let t=sn();for(let[i,n]of r.dynamics)t.dynamics.push([i,sS(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(sS(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>sS(s,e));return t}function ki(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function gg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Ka(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function dI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function Dde(r,e){let t=Array.isArray(r)?CI[r[0]]:CI[r];if(typeof t.suggest=="undefined")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var CI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&sK.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(VQ);return!r.ignoreOptions&&!!n&&fI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&_Q.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&fI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!fI.test(e)};CI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var nS={setCandidateState:(r,e,t)=>N(N({},r),t),setSelectedIndex:(r,e,t)=>te(N({},r),{selectedIndex:t}),pushBatch:(r,e)=>te(N({},r),{options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(VQ);return te(N({},r),{options:r.options.concat({name:t,value:i})})},pushPath:(r,e)=>te(N({},r),{path:r.path.concat(e)}),pushPositional:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>te(N({},r),{positionals:r.positionals.concat({value:e,extra:$n})}),pushTrue:(r,e,t=e)=>te(N({},r),{options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>te(N({},r),{options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>te(N({},r),{options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i=te(N({},r),{options:[...r.options]}),n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t=te(N({},r),{options:[...r.options]}),i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>te(N({},r),{ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(_Q);return typeof i!="undefined"?te(N({},r),{options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}):te(N({},r),{options:[{name:"-c",value:String(t)}]})},setError:(r,e,t)=>e===vi?te(N({},r),{errorMessage:`${t}.`}):te(N({},r),{errorMessage:`${t} ("${e}").`}),setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return te(N({},r),{errorMessage:`Not enough arguments to option ${t.name}.`})}},$n=Symbol(),wK=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===$n)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==$n?this.arity.extra.push(e):this.arity.extra!==$n&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===$n)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===$n?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=mK(),t=wc,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=ao(e,sn()),Ka(e,wc,zQ,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=ao(e,sn());gg(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=ao(e,sn());ki(e,l,"isHelp",f,["useHelp",this.cliIndex]),Ka(e,f,vi,Ap,["setSelectedIndex",cg]),this.registerOptions(e,l)}this.arity.leading.length>0&&Ka(e,l,vi,tn,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&Ka(e,h,vi,tn,["setError","Not enough positional arguments"]),ki(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===$n||this.arity.extra.length>0){let f=ao(e,sn());if(gg(e,c,f),this.arity.extra===$n){let h=ao(e,sn());this.arity.proxy||this.registerOptions(e,h),ki(e,c,s,h,"pushExtraNoLimits"),ki(e,h,s,h,"pushExtraNoLimits"),gg(e,h,f)}else for(let h=0;h0&&Ka(e,u,vi,tn,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)ki(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&ki(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=ao(e,sn());for(let o of i.names)ki(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eNde(i,n),suggest:(n,s)=>Rde(i,n,s)}}};var Cp=class extends Re{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,t){let i=new Cp(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}};var BK=Symbol("clipanion/errorCommand");function Tde(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY?8:1}var Bs=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new dp({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Bs(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Re.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case cg:return Cp.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[BK]=a,l}}break}}async run(e,t){var i;let n,s=N(N({},Bs.defaultContext),t),o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,N(N({},s),u)),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?Ode(s):bK,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Ki(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Ki(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Ki(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Ki(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Re?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ki(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` +`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} +`,a+=` +`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} +`,f.length>0){a+=` +`,a+=`${iS.header("Options")} +`;let h=f.reduce((p,m)=>Math.max(p,m.definition.length),0);a+=` +`;for(let{definition:p,description:m}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${Ki(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`,a+=`${this.format(t).header("Details")} +`,a+=` +`,a+=Ki(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=`${this.format(t).header("Examples")} +`;for(let[h,p]of u)a+=` +`,a+=Ki(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} +`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Ki(f.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(p);typeof m=="undefined"&&l.set(p,m=[]);let{usage:y}=this.getUsageByIndex(h);m.push({commandClass:f,usage:y})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} +`:a+=`${this.format(t).header(`${this.binaryVersion}`)} +`,a+=` ${this.format(t).bold(n)}${this.binaryName} +`):a+=`${this.format(t).bold(n)}${this.binaryName} +`;for(let f of c){let h=l.get(f).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` +`,a+=`${this.format(t).header(`${p}`)} +`;for(let{commandClass:m,usage:y}of h){let b=m.usage.description||"undocumented";a+=` +`,a+=` ${this.format(t).bold(y)} +`,a+=` ${Ki(b,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=Ki("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[BK])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` +`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Bs.defaultContext.colorDepth>1)?iS:dK}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Bs.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in oS.default.WriteStream.prototype?oS.default.WriteStream.prototype.getColorDepth():Tde()};var QK;function Ode(r){let e=QK;if(typeof e=="undefined"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return bK;let{AsyncLocalStorage:t}=require("async_hooks");e=QK=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l=="undefined"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function bK(r){return r()}var aS={};ft(aS,{DefinitionsCommand:()=>mI,HelpCommand:()=>EI,VersionCommand:()=>II});var mI=class extends Re{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};mI.paths=[["--clipanion=definitions"]];var EI=class extends Re{async execute(){this.context.stdout.write(this.cli.usage())}};EI.paths=[["-h"],["--help"]];var II=class extends Re{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};II.paths=[["-v"],["--version"]];var J={};ft(J,{Array:()=>SK,Boolean:()=>vK,Counter:()=>kK,Proxy:()=>xK,Rest:()=>PK,String:()=>DK,applyValidator:()=>gp,cleanValidationError:()=>hI,formatError:()=>up,isOptionSymbol:()=>cp,makeCommandOption:()=>rn,rerouteArguments:()=>Uo});function SK(r,e,t){let[i,n]=Uo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function vK(r,e,t){let[i,n]=Uo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function kK(r,e,t){let[i,n]=Uo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return rn({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function xK(r={}){return rn({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function PK(r={}){return rn({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===$n||a.extra===!1&&oo)}})}function Mde(r,e,t){let[i,n]=Uo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return rn({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?gp(g!=null?g:c,f,n.validator):f}})}function Ude(r={}){let{required:e=!0}=r;return rn({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;oz3,areIdentsEqual:()=>hd,areLocatorsEqual:()=>pd,areVirtualPackagesEquivalent:()=>cSe,bindDescriptor:()=>ASe,bindLocator:()=>lSe,convertDescriptorToLocator:()=>lw,convertLocatorToDescriptor:()=>Vk,convertPackageToLocator:()=>aSe,convertToIdent:()=>oSe,convertToManifestRange:()=>fSe,copyPackage:()=>ud,devirtualizeDescriptor:()=>gd,devirtualizeLocator:()=>fd,getIdentVendorPath:()=>tx,isPackageCompatible:()=>fw,isVirtualDescriptor:()=>ll,isVirtualLocator:()=>ta,makeDescriptor:()=>rr,makeIdent:()=>ea,makeLocator:()=>cn,makeRange:()=>uw,parseDescriptor:()=>cl,parseFileStyleRange:()=>uSe,parseIdent:()=>An,parseLocator:()=>qc,parseRange:()=>Jg,prettyDependent:()=>Tv,prettyDescriptor:()=>sr,prettyIdent:()=>fi,prettyLocator:()=>It,prettyLocatorNoColors:()=>ex,prettyRange:()=>Aw,prettyReference:()=>Cd,prettyResolution:()=>Ov,prettyWorkspace:()=>md,renamePackage:()=>cd,slugifyIdent:()=>$k,slugifyLocator:()=>Wg,sortDescriptors:()=>zg,stringifyDescriptor:()=>Pn,stringifyIdent:()=>Ot,stringifyLocator:()=>Fs,tryParseDescriptor:()=>dd,tryParseIdent:()=>_3,tryParseLocator:()=>cw,virtualizeDescriptor:()=>Xk,virtualizePackage:()=>Zk});var qg=ge(require("querystring")),q3=ge(ri()),J3=ge(AY());var ae={};ft(ae,{LogLevel:()=>Co,Style:()=>Oc,Type:()=>Ye,addLogFilterSupport:()=>sd,applyColor:()=>Dn,applyHyperlink:()=>Ug,applyStyle:()=>Fy,json:()=>Mc,jsonOrPretty:()=>jBe,mark:()=>jv,pretty:()=>tt,prettyField:()=>Xo,prettyList:()=>Hv,supportsColor:()=>Dy,supportsHyperlinks:()=>Uv,tuple:()=>po});var id=ge(gv()),nd=ge(yc());var lJ=ge(ns()),cJ=ge(Vq());var Se={};ft(Se,{AsyncActions:()=>iJ,BufferStream:()=>rJ,CachingStrategy:()=>Tc,DefaultStream:()=>nJ,allSettledSafe:()=>ho,assertNever:()=>Dv,bufferStream:()=>Og,buildIgnorePattern:()=>MBe,convertMapsToIndexableObjects:()=>Py,dynamicRequire:()=>Mg,escapeRegExp:()=>FBe,getArrayWithDefault:()=>Ng,getFactoryWithDefault:()=>Va,getMapWithDefault:()=>Lg,getSetWithDefault:()=>Lc,isIndexableObject:()=>Rv,isPathLike:()=>UBe,isTaggedYarnVersion:()=>RBe,mapAndFilter:()=>Vo,mapAndFind:()=>ed,overrideType:()=>Pv,parseBoolean:()=>rd,parseOptionalBoolean:()=>AJ,prettifyAsyncErrors:()=>Tg,prettifySyncErrors:()=>Fv,releaseAfterUseAsync:()=>LBe,replaceEnvVariables:()=>Nv,sortMap:()=>xn,tryParseOptionalBoolean:()=>Lv,validateEnum:()=>NBe});var Xq=ge(ns()),Zq=ge(fg()),$q=ge(ri()),xv=ge(require("stream"));function RBe(r){return!!($q.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function FBe(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Pv(r){}function Dv(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function NBe(r,e){let t=Object.values(r);if(!t.includes(e))throw new Pe(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Vo(r,e){let t=[];for(let i of r){let n=e(i);n!==eJ&&t.push(n)}return t}var eJ=Symbol();Vo.skip=eJ;function ed(r,e){for(let t of r){let i=e(t);if(i!==tJ)return i}}var tJ=Symbol();ed.skip=tJ;function Rv(r){return typeof r=="object"&&r!==null}async function ho(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function Py(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Rv(r))for(let e of Object.keys(r)){let t=r[e];Rv(t)&&(r[e]=Py(t))}return r}function Va(r,e,t){let i=r.get(e);return typeof i=="undefined"&&r.set(e,i=t()),i}function Ng(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=[]),t}function Lc(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=new Set),t}function Lg(r,e){let t=r.get(e);return typeof t=="undefined"&&r.set(e,t=new Map),t}async function LBe(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function Tg(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Fv(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Og(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var rJ=class extends xv.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,t,i){if(t!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}};function TBe(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var iJ=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,Zq.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=TBe());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},nJ=class extends xv.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,t,i){if(t!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},td=eval("require");function sJ(r){return td(H.fromPortablePath(r))}function oJ(path){let physicalPath=H.fromPortablePath(path),currentCacheEntry=td.cache[physicalPath];delete td.cache[physicalPath];let result;try{result=sJ(physicalPath);let freshCacheEntry=td.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{td.cache[physicalPath]=currentCacheEntry}return result}var aJ=new Map;function OBe(r){let e=aJ.get(r),t=U.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=oJ(r);return aJ.set(r,{mtime:t.mtimeMs,instance:i}),i}var Tc;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Tc||(Tc={}));function Mg(r,{cachingStrategy:e=2}={}){switch(e){case 0:return oJ(r);case 1:return OBe(r);case 2:return sJ(r);default:throw new Error("Unsupported caching strategy")}}function xn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function MBe(r){return r.length===0?null:r.map(e=>`(${Xq.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Nv(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new Pe(`Environment variable not found (${n})`)})}function rd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function AJ(r){return typeof r=="undefined"?r:rd(r)}function Lv(r){try{return AJ(r)}catch{return null}}function UBe(r){return!!(H.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Qt;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(Qt||(Qt={}));var wi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(wi||(wi={}));var qi;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(qi||(qi={}));var Ye={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},Oc;(function(e){e[e.BOLD=2]="BOLD"})(Oc||(Oc={}));var Mv=nd.default.GITHUB_ACTIONS?{level:2}:id.default.supportsColor?{level:id.default.supportsColor.level}:{level:0},Dy=Mv.level!==0,Uv=Dy&&!nd.default.GITHUB_ACTIONS&&!nd.default.CIRCLE&&!nd.default.GITLAB,Kv=new id.default.Instance(Mv),KBe=new Map([[Ye.NO_HINT,null],[Ye.NULL,["#a853b5",129]],[Ye.SCOPE,["#d75f00",166]],[Ye.NAME,["#d7875f",173]],[Ye.RANGE,["#00afaf",37]],[Ye.REFERENCE,["#87afff",111]],[Ye.NUMBER,["#ffd700",220]],[Ye.PATH,["#d75fd7",170]],[Ye.URL,["#d75fd7",170]],[Ye.ADDED,["#5faf00",70]],[Ye.REMOVED,["#d70000",160]],[Ye.CODE,["#87afff",111]],[Ye.SIZE,["#ffd700",220]]]),Ns=r=>r,Ry={[Ye.NUMBER]:Ns({pretty:(r,e)=>Dn(r,`${e}`,Ye.NUMBER),json:r=>r}),[Ye.IDENT]:Ns({pretty:(r,e)=>fi(r,e),json:r=>Ot(r)}),[Ye.LOCATOR]:Ns({pretty:(r,e)=>It(r,e),json:r=>Fs(r)}),[Ye.DESCRIPTOR]:Ns({pretty:(r,e)=>sr(r,e),json:r=>Pn(r)}),[Ye.RESOLUTION]:Ns({pretty:(r,{descriptor:e,locator:t})=>Ov(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Pn(r),locator:e!==null?Fs(e):null})}),[Ye.DEPENDENT]:Ns({pretty:(r,{locator:e,descriptor:t})=>Tv(r,e,t),json:({locator:r,descriptor:e})=>({locator:Fs(r),descriptor:Pn(e)})}),[Ye.PACKAGE_EXTENSION]:Ns({pretty:(r,e)=>{switch(e.type){case wi.Dependency:return`${fi(r,e.parentDescriptor)} \u27A4 ${Dn(r,"dependencies",Ye.CODE)} \u27A4 ${fi(r,e.descriptor)}`;case wi.PeerDependency:return`${fi(r,e.parentDescriptor)} \u27A4 ${Dn(r,"peerDependencies",Ye.CODE)} \u27A4 ${fi(r,e.descriptor)}`;case wi.PeerDependencyMeta:return`${fi(r,e.parentDescriptor)} \u27A4 ${Dn(r,"peerDependenciesMeta",Ye.CODE)} \u27A4 ${fi(r,An(e.selector))} \u27A4 ${Dn(r,e.key,Ye.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case wi.Dependency:return`${Ot(r.parentDescriptor)} > ${Ot(r.descriptor)}`;case wi.PeerDependency:return`${Ot(r.parentDescriptor)} >> ${Ot(r.descriptor)}`;case wi.PeerDependencyMeta:return`${Ot(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ye.SETTING]:Ns({pretty:(r,e)=>(r.get(e),Ug(r,Dn(r,e,Ye.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ye.DURATION]:Ns({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ye.SIZE]:Ns({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Dn(r,`${s} ${t[i-1]}`,Ye.NUMBER)},json:r=>r}),[Ye.PATH]:Ns({pretty:(r,e)=>Dn(r,H.fromPortablePath(e),Ye.PATH),json:r=>H.fromPortablePath(r)}),[Ye.MARKDOWN]:Ns({pretty:(r,{text:e,format:t,paragraphs:i})=>Ki(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function po(r,e){return[e,r]}function Fy(r,e,t){return r.get("enableColors")&&t&2&&(e=id.default.bold(e)),e}function Dn(r,e,t){if(!r.get("enableColors"))return e;let i=KBe.get(t);if(i===null)return e;let n=typeof i=="undefined"?t:Mv.level>=3?i[0]:i[1],s=typeof n=="number"?Kv.ansi256(n):n.startsWith("#")?Kv.hex(n):Kv[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var HBe=!!process.env.KONSOLE_VERSION;function Ug(r,e,t){return r.get("enableHyperlinks")?HBe?`]8;;${t}\\${e}]8;;\\`:`]8;;${t}\x07${e}]8;;\x07`:e}function tt(r,e,t){if(e===null)return Dn(r,"null",Ye.NULL);if(Object.prototype.hasOwnProperty.call(Ry,t))return Ry[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Dn(r,e,t)}function Hv(r,e,t,{separator:i=", "}={}){return[...e].map(n=>tt(r,n,t)).join(i)}function Mc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Ry,e))return Pv(e),Ry[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function jBe(r,e,[t,i]){return r?Mc(t,i):tt(e,t,i)}function jv(r){return{Check:Dn(r,"\u2713","green"),Cross:Dn(r,"\u2718","red"),Question:Dn(r,"?","cyan")}}function Xo(r,{label:e,value:[t,i]}){return`${tt(r,e,Ye.CODE)}: ${tt(r,t,i)}`}var Co;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(Co||(Co={}));function sd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let m=g.get("pattern");typeof m!="undefined"&&s.push([lJ.default.matcher(m,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===X.UNNAMED)return h;let p=n.size>0||s.length>0?(0,cJ.default)(f):f;if(n.size>0){let m=n.get(p);if(typeof m!="undefined")return m!=null?m:h}if(s.length>0){for(let[m,y]of s)if(m(p))return y!=null?y:h}if(i.size>0){let m=i.get(VA(g));if(typeof m!="undefined")return m!=null?m:h}return h},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case Co.Info:a.call(g,f,h);break;case Co.Warning:l.call(g,f!=null?f:X.UNNAMED,h);break;case Co.Error:c.call(g,f!=null?f:X.UNNAMED,h);break}};r.reportInfo=function(...g){return u(this,...g,Co.Info)},r.reportWarning=function(...g){return u(this,...g,Co.Warning)},r.reportError=function(...g){return u(this,...g,Co.Error)}}var Rn={};ft(Rn,{checksumFile:()=>ow,checksumPattern:()=>aw,makeHash:()=>ln});var sw=ge(require("crypto")),_k=ge(zk());function ln(...r){let e=(0,sw.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function ow(r,{baseFs:e,algorithm:t}={baseFs:U,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,sw.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function aw(r,{cwd:e}){let i=(await(0,_k.default)(r,{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,_k.default)([r,...i],{cwd:H.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=H.toPortablePath(a),u=await U.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await U.readlinkPromise(c))):u.isFile()&&l.push(await U.readFilePromise(c)),l.join("\0")})),o=(0,sw.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var ld="virtual:",nSe=5,W3=/(os|cpu|libc)=([a-z0-9_-]+)/,sSe=(0,J3.makeParser)(W3);function ea(r,e){if(r==null?void 0:r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:ln(r,e),scope:r,name:e}}function rr(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:ln(r.identHash,e),range:e}}function cn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:ln(r.identHash,e),reference:e}}function oSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function lw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Vk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function aSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function cd(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function ud(r){return cd(r,r)}function Xk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rr(r,`virtual:${e}#${r.range}`)}function Zk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return cd(r,cn(r,`virtual:${e}#${r.reference}`))}function ll(r){return r.range.startsWith(ld)}function ta(r){return r.reference.startsWith(ld)}function gd(r){if(!ll(r))throw new Error("Not a virtual descriptor");return rr(r,r.range.replace(/^[^#]*#/,""))}function fd(r){if(!ta(r))throw new Error("Not a virtual descriptor");return cn(r,r.reference.replace(/^[^#]*#/,""))}function ASe(r,e){return r.range.includes("::")?r:rr(r,`${r.range}::${qg.default.stringify(e)}`)}function lSe(r,e){return r.reference.includes("::")?r:cn(r,`${r.reference}::${qg.default.stringify(e)}`)}function hd(r,e){return r.identHash===e.identHash}function z3(r,e){return r.descriptorHash===e.descriptorHash}function pd(r,e){return r.locatorHash===e.locatorHash}function cSe(r,e){if(!ta(r))throw new Error("Invalid package type");if(!ta(e))throw new Error("Invalid package type");if(!hd(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!z3(t,i))return!1}return!0}function An(r){let e=_3(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function _3(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e,n=typeof t!="undefined"?t:null;return ea(n,i)}function cl(r,e=!1){let t=dd(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function dd(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return rr(ea(o,n),a)}function qc(r,e=!1){let t=cw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function cw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return cn(ea(o,n),a)}function Jg(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]!="undefined"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]!="undefined"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]!="undefined"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=(e==null?void 0:e.parseSelector)?qg.default.parse(s):s,a=typeof t[4]!="undefined"?qg.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function uSe(r,{protocol:e}){let{selector:t,params:i}=Jg(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:qc(i.locator,!0),path:t}}function V3(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function gSe(r){return r===null?!1:Object.entries(r).length>0}function uw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${V3(e)}#`),n+=V3(t),gSe(i)&&(n+=`::${qg.default.stringify(i)}`),n}function fSe(r){let{params:e,protocol:t,source:i,selector:n}=Jg(r);for(let s in e)s.startsWith("__")&&delete e[s];return uw({protocol:t,source:i,params:e,selector:n})}function Ot(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Pn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function Fs(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function $k(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function Wg(r){let{protocol:e,selector:t}=Jg(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=q3.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${$k(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${$k(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Jr(a)}function fi(r,e){return e.scope?`${tt(r,`@${e.scope}/`,Ye.SCOPE)}${tt(r,e.name,Ye.NAME)}`:`${tt(r,e.name,Ye.NAME)}`}function gw(r){if(r.startsWith(ld)){let e=gw(r.substring(r.indexOf("#")+1)),t=r.substring(ld.length,ld.length+nSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Aw(r,e){return`${tt(r,gw(e),Ye.RANGE)}`}function sr(r,e){return`${fi(r,e)}${tt(r,"@",Ye.RANGE)}${Aw(r,e.range)}`}function Cd(r,e){return`${tt(r,gw(e),Ye.REFERENCE)}`}function It(r,e){return`${fi(r,e)}${tt(r,"@",Ye.REFERENCE)}${Cd(r,e.reference)}`}function ex(r){return`${Ot(r)}@${gw(r.reference)}`}function zg(r){return xn(r,[e=>Ot(e),e=>e.range])}function md(r,e){return fi(r,e.locator)}function Ov(r,e,t){let i=ll(e)?gd(e):e;return t===null?`${sr(r,i)} \u2192 ${jv(r).Cross}`:i.identHash===t.identHash?`${sr(r,i)} \u2192 ${Cd(r,t.reference)}`:`${sr(r,i)} \u2192 ${It(r,t)}`}function Tv(r,e,t){return t===null?`${It(r,e)}`:`${It(r,e)} (via ${Aw(r,t.range)})`}function tx(r){return`node_modules/${Ot(r)}`}function fw(r,e){return r.conditions?sSe(r.conditions,t=>{let[,i,n]=t.match(W3),s=e[i];return s?s.includes(n):!0}):!0}var X3={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Ot(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Ot(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(rr(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=md(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(X.INVALID_MANIFEST,i.message)}}};var t4=ge(ri());var Ed=class{supportsDescriptor(e,t){return!!(e.range.startsWith(Ed.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(Ed.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(Ed.protocol.length));return te(N({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:Qt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},oi=Ed;oi.protocol="workspace:";var Wt={};ft(Wt,{SemVer:()=>Z3.SemVer,clean:()=>pSe,satisfiesWithPrereleases:()=>Jc,validRange:()=>mo});var hw=ge(ri()),Z3=ge(ri()),$3=new Map;function Jc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=$3.get(i);if(typeof n=="undefined")try{n=new hw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{$3.set(i,n||null)}else if(n===null)return!1;let s;try{s=new hw.default.SemVer(r,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var e4=new Map;function mo(r){if(r.indexOf(":")!==-1)return null;let e=e4.get(r);if(typeof e!="undefined")return e;try{e=new hw.default.Range(r)}catch{e=null}return e4.set(r,e),e}var hSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function pSe(r){let e=hSe.exec(r);return e?e[1]:null}var ul=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new ar}={}){let i=x.join(e,"package.json");try{return await ul.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await ul.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new ar}={}){let i=new ul;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new ul;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(i4(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=r4(e)}async loadFile(e,{baseFs:t=new ar}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(i4(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=r4(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=An(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=un(e.main):this.main=null,typeof e.module=="string"?this.module=un(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=un(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(un(s),typeof o=="string"?un(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,un(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=An(s);this.bin.set(a.name,un(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=An(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(oi.protocol)&&!mo(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=rr(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=cl(s),l=this.ensureDependencyMeta(a),c=pw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=pw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=pw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=cl(s),l=this.ensurePeerDependencyMeta(a),c=pw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:eI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=un(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=un(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=un(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(un(s),typeof o=="string"?un(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,un(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,un(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(un(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=An(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=rr(a,o);this.dependencies.set(l.identHash,l);let c=rr(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(rx("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(rx("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(rx("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return ul.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return ul.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!t4.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pn(e)}'`);let t=Ot(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pn(e)}'`);let t=Ot(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Ot(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=te(N({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Ot(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...zg(i).map(o=>({[Ot(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...zg(n).map(o=>({[Ot(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...zg(this.devDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...zg(this.peerDependencies.values()).map(o=>({[Ot(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of xn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of xn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Pn(rr(An(o),l)):o,g=N({},c);t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...xn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[tI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},At=ul;At.fileName="package.json",At.allDependencies=["dependencies","devDependencies","peerDependencies"],At.hardDependencies=["dependencies","devDependencies"];function r4(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function i4(r){return r.charCodeAt(0)===65279?r.slice(1):r}function un(r){return r.replace(/\\/g,"/")}function pw(r,{yamlCompatibilityMode:e}){return e?Lv(r):typeof r=="undefined"||typeof r=="boolean"?r:null}function n4(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2==0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function rx(r,e){return e.length===1?n4(r,e[0]):`(${e.map(t=>n4(r,t)).join(" | ")})`}var L4=ge(N4()),T4=ge(require("stream")),O4=ge(require("string_decoder"));var Ave=15,ct=class extends Error{constructor(e,t,i){super(t);this.reportExtra=i;this.reportCode=e}};function lve(r){return typeof r.reportCode!="undefined"}var Ji=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,L4.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/Ave),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){lve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(X.EXCEPTION,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new T4.PassThrough,i=new O4.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var wd=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new ct(X.FETCHER_NOT_FOUND,`${It(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Bd=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${sr(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${It(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var M4=ge(ri());var _g=/^(?!v)[a-z0-9._-]+$/i,sx=class{supportsDescriptor(e,t){return!!(mo(e.range)||_g.test(e.range))}supportsLocator(e,t){return!!(M4.default.valid(e.reference)||_g.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return cd(i,e)}forwardDescriptor(e,t){return rr(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return cn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var bd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=cn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return Wg(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Wr.makeVirtualPath(s,o,n),l=new La(a,{baseFs:t.packageFs,pathUtils:x});return te(N({},t),{packageFs:l})}};var Vg=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Vg.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Vg.protocol)}supportsDescriptor(e,t){return Vg.isVirtualDescriptor(e)}supportsLocator(e,t){return Vg.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},dw=Vg;dw.protocol="virtual:";var Qd=class{supports(e){return!!e.reference.startsWith(oi.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new _t(i),prefixPath:Me.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(oi.protocol.length))}};var ox={};ft(ox,{getDefaultGlobalFolder:()=>Ax,getHomeFolder:()=>Sd,isFolderInside:()=>lx});var ax=ge(require("os"));function Ax(){if(process.platform==="win32"){let r=H.toPortablePath(process.env.LOCALAPPDATA||H.join((0,ax.homedir)(),"AppData","Local"));return x.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=H.toPortablePath(process.env.XDG_DATA_HOME);return x.resolve(r,"yarn/berry")}return x.resolve(Sd(),".yarn/berry")}function Sd(){return H.toPortablePath((0,ax.homedir)()||"/usr/local/share")}function lx(r,e){let t=x.relative(e,r);return t&&!t.startsWith("..")&&!x.isAbsolute(t)}var Xg={};ft(Xg,{builtinModules:()=>cx,getArchitecture:()=>vd,getArchitectureName:()=>uve,getArchitectureSet:()=>ux});var U4=ge(require("module"));function cx(){return new Set(U4.default.builtinModules||Object.keys(process.binding("natives")))}function cve(){var i,n,s,o;if(process.platform==="win32")return null;let e=(s=((n=(i=process.report)==null?void 0:i.getReport())!=null?n:{}).sharedObjects)!=null?s:[],t=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(o=ed(e,a=>{let l=a.match(t);if(!l)return ed.skip;if(l[1])return"glibc";if(l[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?o:null}var Cw,mw;function vd(){return Cw=Cw!=null?Cw:{os:process.platform,cpu:process.arch,libc:cve()}}function uve(r=vd()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function ux(){let r=vd();return mw=mw!=null?mw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}var gve=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),Iw="yarn_",fx=".yarnrc.yml",hx="yarn.lock",fve="********",Ie;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(Ie||(Ie={}));var Ri=Ye,px={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:Ie.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:Ie.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:Ie.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:Ie.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:Ie.STRING,default:null},globalFolder:{description:"Folder where all system-global files are stored",type:Ie.ABSOLUTE_PATH,default:Ax()},cacheFolder:{description:"Folder where the cache files must be written",type:Ie.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:Ie.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:cc},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:Ie.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:Ie.STRING,default:hx},installStatePath:{description:"Path of the file where the install state will be persisted",type:Ie.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:Ie.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:Ie.STRING,default:yw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:Ie.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:Ie.BOOLEAN,default:Dy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:Ie.BOOLEAN,default:Uv,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:Ie.BOOLEAN,default:Ew.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:Ie.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:Ie.BOOLEAN,default:!Ew.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:Ie.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:Ie.BOOLEAN,default:Ew.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:Ie.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:Ie.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:Ie.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:Ie.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:Ie.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:Ie.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:Ie.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:Ie.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:Ie.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:Ie.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:Ie.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:Ie.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:Ie.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:Ie.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:Ie.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:Ie.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:Ie.MAP,valueDefinition:{description:"",type:Ie.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:Ie.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:Ie.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:Ie.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:Ie.STRING,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:Ie.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:Ie.ABSOLUTE_PATH,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:Ie.ABSOLUTE_PATH,default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:Ie.ABSOLUTE_PATH,default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:Ie.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:Ie.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:Ie.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:Ie.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:Ie.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:Ie.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:Ie.STRING,values:Object.values(Co),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:Ie.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:Ie.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:Ie.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:Ie.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:Ie.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:Ie.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:Ie.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:Ie.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:Ie.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:Ie.MAP,valueDefinition:{description:"A range",type:Ie.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:Ie.MAP,valueDefinition:{description:"A semver range",type:Ie.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:Ie.MAP,valueDefinition:{description:"The peerDependency meta",type:Ie.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:Ie.BOOLEAN,default:!1}}}}}}}};function Cx(r,e,t,i,n){if(i.isArray||i.type===Ie.ANY&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>dx(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>dx(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return dx(r,e,t,i,n)}function dx(r,e,t,i,n){var a;switch(i.type){case Ie.ANY:return t;case Ie.SHAPE:return hve(r,e,t,i,n);case Ie.MAP:return pve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(t))return t;let o=(()=>{if(i.type===Ie.BOOLEAN&&typeof t!="string")return rd(t);if(typeof t!="string")throw new Error(`Expected value (${t}) to be a string`);let l=Nv(t,{env:process.env});switch(i.type){case Ie.ABSOLUTE_PATH:return x.resolve(n,H.toPortablePath(l));case Ie.LOCATOR_LOOSE:return qc(l,!1);case Ie.NUMBER:return parseInt(l);case Ie.LOCATOR:return qc(l);case Ie.BOOLEAN:return rd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function hve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new Pe(`Object configuration settings "${e}" must be an object`);let s=mx(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new Pe(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,Cx(r,l,a,i.properties[o],n))}return s}function pve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new Pe(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,Cx(r,c,a,u,n))}return s}function mx(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case Ie.SHAPE:{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,mx(r,s));return i}break;case Ie.MAP:return e.isArray&&!t?[]:new Map;case Ie.ABSOLUTE_PATH:return e.default===null?null:r.projectCwd===null?x.isAbsolute(e.default)?x.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>x.resolve(r.projectCwd,i)):x.resolve(r.projectCwd,e.default);default:return e.default}}function ww(r,e,t){if(e.type===Ie.SECRET&&typeof r=="string"&&t.hideSecrets)return fve;if(e.type===Ie.ABSOLUTE_PATH&&typeof r=="string"&&t.getNativePaths)return H.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(ww(n,e,t));return i}if(e.type===Ie.MAP&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,ww(s,e.valueDefinition,t));return i}if(e.type===Ie.SHAPE&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,ww(s,o,t))}return i}return r}function dve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(Iw)&&(e=(0,K4.default)(e.slice(Iw.length)),r[e]=t);return r}function yw(){let r=`${Iw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return fx}var gl;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(gl||(gl={}));var rA=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new rA(e);typeof t!="undefined"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(px);let s=typeof i!="undefined"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=dve();delete a.rcFilename;let l=await rA.findRcFiles(e),c=await rA.findHomeRcFile();if(c){let b=l.find(v=>v.path===c.path);b?b.strict=!1:l.push(te(N({},c),{strict:!1}))}let u=({ignoreCwd:b,yarnPath:v,ignorePath:k,lockfileFilename:T})=>({ignoreCwd:b,yarnPath:v,ignorePath:k,lockfileFilename:T}),g=q=>{var $=q,{ignoreCwd:b,yarnPath:v,ignorePath:k,lockfileFilename:T}=$,Y=Or($,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return Y},f=new rA(e);f.importSettings(u(px)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:b,cwd:v,data:k}of l)f.useWithSource(b,u(k),v,{strict:!1});if(s){let b=f.get("yarnPath"),v=f.get("ignorePath");if(b!==null&&!v)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await rA.findProjectCwd(e,h);break;case 1:p=await rA.findProjectCwd(e,null);break;case 2:U.existsSync(x.join(e,"package.json"))?p=x.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(px));let m=new Map([["@@core",X3]]),y=b=>"default"in b?b.default:b;if(t!==null){for(let T of t.plugins.keys())m.set(T,y(t.modules.get(T)));let b=new Map;for(let T of cx())b.set(T,()=>Mg(T));for(let[T,Y]of t.modules)b.set(T,()=>Y);let v=new Set,k=async(T,Y)=>{let{factory:q,name:$}=Mg(T);if(v.has($))return;let z=new Map(b),ne=A=>{if(z.has(A))return z.get(A)();throw new Pe(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},ee=await Tg(async()=>y(await q(ne)),A=>`${A} (when initializing ${$}, defined in ${Y})`);b.set($,()=>ee),v.add($),m.set($,ee)};if(a.plugins)for(let T of a.plugins.split(";")){let Y=x.resolve(e,H.toPortablePath(T));await k(Y,"")}for(let{path:T,cwd:Y,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let $ of q.plugins){let z=typeof $!="string"?$.path:$,ne=x.resolve(Y,H.toPortablePath(z));await k(ne,T)}}for(let[b,v]of m)f.activatePlugin(b,v);f.useWithSource("",g(a),e,{strict:n});for(let{path:b,cwd:v,data:k,strict:T}of l)f.useWithSource(b,g(k),v,{strict:T!=null?T:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let t=yw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=x.join(s,t);if(U.existsSync(o)){let a=await U.readFilePromise(o,"utf8"),l;try{l=Si(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new Pe(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=x.dirname(s)}return i}static async findHomeRcFile(){let e=yw(),t=Sd(),i=x.join(t,e);if(U.existsSync(i)){let n=await U.readFilePromise(i,"utf8"),s=Si(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,U.existsSync(x.join(s,"package.json"))&&(i=s),t!==null){if(U.existsSync(x.join(s,t))){i=s;break}}else if(i!==null)break;n=x.dirname(s)}return i}static async updateConfiguration(e,t){let i=yw(),n=x.join(e,i),s=U.existsSync(n)?Si(await U.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await U.changeFilePromise(n,Ua(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=Sd();return await rA.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration!="undefined"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,mx(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${tt(this,e,Ye.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]=="undefined"||o==="plugins"||e===""&&gve.has(o))continue;if(o==="rcFilename")throw new Pe(`The rcFilename settings can only be set via ${`${Iw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new Pe(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===Ie.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=Cx(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${tt(this,e,Ye.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===Ie.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new Pe(`Couldn't find a configuration settings named "${e}"`);return ww(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=U.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${tt(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${tt(this,"STDERR","red")}`);s=new gx.PassThrough,s.pipe(l),s.pipe(a),o=new gx.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t!="undefined"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Bd([new dw,new oi,new sx,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new wd([new bd,new Qd,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=vd(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Vo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Vo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!mo(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new At;o.load(n,{yamlCompatibilityMode:!0});let a=Ng(e,i.identHash),l=[];a.push([i.range,l]);let c={status:qi.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(te(N({},c),{type:wi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(te(N({},c),{type:wi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(te(N({},c),{type:wi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(cl(i,!0),Py(n),{userProvided:!0})}normalizePackage(e){let t=ud(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Jc(s,o))for(let l of a)switch(l.status===qi.Inactive&&(l.status=qi.Redundant),l.type){case wi.Dependency:typeof t.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case wi.PeerDependency:typeof t.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=qi.Active,t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case wi.PeerDependencyMeta:{let c=t.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=qi.Active,Va(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:Dv(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=An(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,rr(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=ea("types",o),l=Ot(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,rr(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(xn(t.dependencies,([,s])=>Pn(s))),t.peerDependencies=new Map(xn(t.peerDependencies,([,s])=>Pn(s))),t}getLimit(e){return Va(this.limits,e,()=>(0,H4.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o!="undefined")return o}return null}},ye=rA;ye.telemetry=null;var ss;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(ss||(ss={}));var Bw=class extends ct{constructor({fileName:e,code:t,signal:i}){let n=ye.create(x.cwd()),s=tt(n,e,Ye.PATH);super(X.EXCEPTION,`Child ${s} reported an error`,o=>{Cve(t,i,{configuration:n,report:o})});this.code=Ix(t,i)}},yx=class extends Bw{constructor({fileName:e,code:t,signal:i,stdout:n,stderr:s}){super({fileName:e,code:t,signal:i});this.stdout=n,this.stderr=s}};function _c(r){return r!==null&&typeof r.fd=="number"}var Vc=new Set;function wx(){}function Bx(){for(let r of Vc)r.kill()}async function ia(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":_c(s)&&(c[0]=s),_c(o)&&(c[1]=o),_c(a)&&(c[2]=a);let u=(0,Ex.default)(r,e,{cwd:H.fromPortablePath(t),env:te(N({},i),{PWD:H.fromPortablePath(t)}),stdio:c});Vc.add(u),Vc.size===1&&(process.on("SIGINT",wx),process.on("SIGTERM",Bx)),!_c(s)&&s!==null&&s.pipe(u.stdin),_c(o)||u.stdout.pipe(o,{end:!1}),_c(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))_c(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Vc.delete(u),Vc.size===0&&(process.off("SIGINT",wx),process.off("SIGTERM",Bx)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,m)=>{Vc.delete(u),Vc.size===0&&(process.off("SIGINT",wx),process.off("SIGTERM",Bx)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:Ix(p,m)}):h(new Bw({fileName:r,code:p,signal:m}))})})}async function mve(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=H.fromPortablePath(t);typeof i.PWD!="undefined"&&(i=te(N({},i),{PWD:c}));let u=(0,Ex.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",h=>{let p=ye.create(t),m=tt(p,r,Ye.PATH);f(new ct(X.EXCEPTION,`Process ${m} failed to spawn`,y=>{y.reportError(X.EXCEPTION,` ${Xo(p,{label:"Thrown Error",value:po(Ye.NO_HINT,h.message)})}`)}))}),u.on("close",(h,p)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:Ix(h,p),stdout:m,stderr:y}):f(new yx({fileName:r,code:h,signal:p,stdout:m,stderr:y}))})})}var Eve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function Ix(r,e){let t=Eve.get(e);return typeof t!="undefined"?128+t:r!=null?r:1}function Cve(r,e,{configuration:t,report:i}){i.reportError(X.EXCEPTION,` ${Xo(t,r!==null?{label:"Exit Code",value:po(Ye.NUMBER,r)}:{label:"Exit Signal",value:po(Ye.CODE,e)})}`)}var ir={};ft(ir,{Method:()=>ml,RequestError:()=>S5.RequestError,del:()=>DPe,get:()=>xPe,getNetworkSettings:()=>P5,post:()=>jP,put:()=>PPe,request:()=>Md});var B5=ge(Hw()),b5=ge(require("https")),Q5=ge(require("http")),UP=ge(ns()),KP=ge(w5()),jw=ge(require("url"));var S5=ge(Hw()),v5=new Map,k5=new Map,QPe=new Q5.Agent({keepAlive:!0}),SPe=new b5.Agent({keepAlive:!0});function x5(r){let e=new jw.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),{proxy:t}}async function HP(r){return Va(k5,r,()=>U.readFilePromise(r).then(e=>(k5.set(r,e),e)))}function vPe({statusCode:r,statusMessage:e},t){let i=tt(t,r,Ye.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return Ug(t,`${i}${e?` (${e})`:""}`,n)}async function Gw(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof B5.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${tt(e,"httpTimeout",Ye.SETTING)})`);let a=new ct(X.NETWORK_ERROR,o,l=>{s.response&&l.reportError(X.NETWORK_ERROR,` ${Xo(e,{label:"Response Code",value:po(Ye.NO_HINT,vPe(s.response,e))})}`),s.request&&(l.reportError(X.NETWORK_ERROR,` ${Xo(e,{label:"Request Method",value:po(Ye.NO_HINT,s.request.options.method)})}`),l.reportError(X.NETWORK_ERROR,` ${Xo(e,{label:"Request URL",value:po(Ye.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(X.NETWORK_ERROR,` ${Xo(e,{label:"Request Redirects",value:po(Ye.NO_HINT,Hv(e,s.request.redirects,Ye.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(X.NETWORK_ERROR,` ${Xo(e,{label:"Request Retry Count",value:po(Ye.NO_HINT,`${tt(e,s.request.retryCount,Ye.NUMBER)} (can be increased via ${tt(e,"httpRetry",Ye.SETTING)})`)})}`)});throw a.originalError=s,a}}function P5(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new jw.URL(r):r;for(let[o,a]of t)if(UP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var ml;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(ml||(ml={}));async function Md(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=ml.GET}){let a=async()=>await kPe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function xPe(r,n){var s=n,{configuration:e,jsonResponse:t}=s,i=Or(s,["configuration","jsonResponse"]);let o=Va(v5,r,()=>Gw(Md(r,null,N({configuration:e},i)),{configuration:e}).then(a=>(v5.set(r,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),t?JSON.parse(o.toString()):o}async function PPe(r,e,n){var s=n,{customErrorMessage:t}=s,i=Or(s,["customErrorMessage"]);return(await Gw(Md(r,e,te(N({},i),{method:ml.PUT})),i)).body}async function jP(r,e,n){var s=n,{customErrorMessage:t}=s,i=Or(s,["customErrorMessage"]);return(await Gw(Md(r,e,te(N({},i),{method:ml.POST})),i)).body}async function DPe(r,i){var n=i,{customErrorMessage:e}=n,t=Or(n,["customErrorMessage"]);return(await Gw(Md(r,null,te(N({},t),{method:ml.DELETE})),t)).body}async function kPe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o=ml.GET}){let a=typeof r=="string"?new jw.URL(r):r,l=P5(a,{configuration:t});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!UP.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?KP.default.httpOverHttp(x5(l.httpProxy)):QPe,https:l.httpsProxy?KP.default.httpsOverHttp(x5(l.httpsProxy)):SPe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),f=t.get("httpRetry"),h=t.get("enableStrictSsl"),p=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:b}=await Promise.resolve().then(()=>ge(Hw())),v=p?await HP(p):void 0,k=m?await HP(m):void 0,T=y?await HP(y):void 0,Y=b.extend(N({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:v,certificate:k,key:T}},u));return t.getLimit("networkConcurrency")(()=>Y(a))}var Zt={};ft(Zt,{PackageManager:()=>hn,detectPackageManager:()=>G9,executePackageAccessibleBinary:()=>z9,executePackageScript:()=>sB,executePackageShellcode:()=>iD,executeWorkspaceAccessibleBinary:()=>VDe,executeWorkspaceLifecycleScript:()=>W9,executeWorkspaceScript:()=>J9,getPackageAccessibleBinaries:()=>oB,getWorkspaceAccessibleBinaries:()=>q9,hasPackageScript:()=>WDe,hasWorkspaceScript:()=>rD,makeScriptEnv:()=>qd,maybeExecuteWorkspaceLifecycleScript:()=>_De,prepareExternalProject:()=>JDe});var Ud={};ft(Ud,{getLibzipPromise:()=>fn,getLibzipSync:()=>L5});var N5=ge(R5());var El=["number","number"],qP;(function(L){L[L.ZIP_ER_OK=0]="ZIP_ER_OK",L[L.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",L[L.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",L[L.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",L[L.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",L[L.ZIP_ER_READ=5]="ZIP_ER_READ",L[L.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",L[L.ZIP_ER_CRC=7]="ZIP_ER_CRC",L[L.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",L[L.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",L[L.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",L[L.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",L[L.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",L[L.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",L[L.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",L[L.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",L[L.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",L[L.ZIP_ER_EOF=17]="ZIP_ER_EOF",L[L.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",L[L.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",L[L.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",L[L.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",L[L.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",L[L.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",L[L.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",L[L.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",L[L.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",L[L.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",L[L.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",L[L.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",L[L.ZIP_ER_TELL=30]="ZIP_ER_TELL",L[L.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(qP||(qP={}));var F5=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:qP,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...El,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...El,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...El,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...El,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...El,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...El,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...El,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...El,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var JP=null;function L5(){return JP===null&&(JP=F5((0,N5.default)())),JP}async function fn(){return L5()}var Hd={};ft(Hd,{ShellError:()=>Ks,execute:()=>Zw,globUtils:()=>qw});var W5=ge(gv()),z5=ge(require("os")),os=ge(require("stream")),_5=ge(require("util"));var Ks=class extends Error{constructor(e){super(e);this.name="ShellError"}};var qw={};ft(qw,{fastGlobOptions:()=>M5,isBraceExpansion:()=>U5,isGlobPattern:()=>RPe,match:()=>FPe,micromatchOptions:()=>Ww});var T5=ge($y()),O5=ge(require("fs")),Jw=ge(ns()),Ww={strictBrackets:!0},M5={onlyDirectories:!1,onlyFiles:!1};function RPe(r){if(!Jw.default.scan(r,Ww).isGlob)return!1;try{Jw.default.parse(r,Ww)}catch{return!1}return!0}function FPe(r,{cwd:e,baseFs:t}){return(0,T5.default)(r,te(N({},M5),{cwd:H.fromPortablePath(e),fs:zE(O5.default,new Xh(t))}))}function U5(r){return Jw.default.scan(r,Ww).isBrace}var K5=ge(vQ()),sa=ge(require("stream")),H5=ge(require("string_decoder")),Nn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(Nn||(Nn={}));var Zc=new Set;function WP(){}function zP(){for(let r of Zc)r.kill()}function j5(r,e,t,i){return n=>{let s=n[0]instanceof sa.Transform?"pipe":n[0],o=n[1]instanceof sa.Transform?"pipe":n[1],a=n[2]instanceof sa.Transform?"pipe":n[2],l=(0,K5.default)(r,e,te(N({},i),{stdio:[s,o,a]}));return Zc.add(l),Zc.size===1&&(process.on("SIGINT",WP),process.on("SIGTERM",zP)),n[0]instanceof sa.Transform&&n[0].pipe(l.stdin),n[1]instanceof sa.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof sa.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Zc.delete(l),Zc.size===0&&(process.off("SIGINT",WP),process.off("SIGTERM",zP)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} +`),c(128);break;default:n[2].write(`uncaught error: ${u.message} +`),c(1);break}}),l.on("close",u=>{Zc.delete(l),Zc.size===0&&(process.off("SIGINT",WP),process.off("SIGTERM",zP)),c(u!==null?u:129)})})}}}function G5(r){return e=>{let t=e[0]==="pipe"?new sa.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Io=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},Y5=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Kd=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new Kd(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new Kd(this,e),n=new Y5;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function zw(r,e){return Kd.start(r,e)}function q5(r,e=null){let t=new sa.PassThrough,i=new H5.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function J5(r,{prefix:e}){return{stdout:q5(t=>r.stdout.write(`${t} +`),r.stdout.isTTY?e:null),stderr:q5(t=>r.stderr.write(`${t} +`),r.stderr.isTTY?e:null)}}var NPe=(0,_5.promisify)(setTimeout);var zi;(function(t){t[t.Readable=1]="Readable",t[t.Writable=2]="Writable"})(zi||(zi={}));function V5(r,e,t){let i=new os.PassThrough({autoDestroy:!0});switch(r){case Nn.STDIN:(e&1)==1&&t.stdin.pipe(i,{end:!1}),(e&2)==2&&t.stdin instanceof os.Writable&&i.pipe(t.stdin,{end:!1});break;case Nn.STDOUT:(e&1)==1&&t.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(t.stdout,{end:!1});break;case Nn.STDERR:(e&1)==1&&t.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(t.stderr,{end:!1});break;default:throw new Ks(`Bad file descriptor: "${r}"`)}return i}function _w(r,e={}){let t=N(N({},r),e);return t.environment=N(N({},r.environment),e.environment),t.variables=N(N({},r.variables),e.variables),t}var LPe=new Map([["cd",async([r=(0,z5.homedir)(),...e],t,i)=>{let n=x.resolve(i.cwd,H.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new Ks(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new Ks(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${H.fromPortablePath(t.cwd)} +`),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} +`),0)],["sleep",async([r],e,t)=>{if(typeof r=="undefined")throw new Ks("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new Ks(`sleep: invalid time interval '${r}'`);return await NPe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await zw(i,{stdin:new Io(t.stdin),stdout:new Io(t.stdout),stderr:new Io(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:f,fd:h}=JSON.parse(g),p=v=>{switch(h){case null:case 0:o.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=v=>{switch(h){case null:case 1:a.push(v);break;case 2:l.push(v);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},y=Number(r[c++]),b=c+y;for(let v=c;ve.baseFs.createReadStream(x.resolve(t.cwd,H.toPortablePath(r[v]))));break;case"<<<":p(()=>{let k=new os.PassThrough;return process.nextTick(()=>{k.write(`${r[v]} +`),k.end()}),k});break;case"<&":p(()=>V5(Number(r[v]),1,t));break;case">":case">>":{let k=x.resolve(t.cwd,H.toPortablePath(r[v]));m(k==="/dev/null"?new os.Writable({autoDestroy:!0,emitClose:!0,write(T,Y,q){setImmediate(q)}}):e.baseFs.createWriteStream(k,f===">>"?{flags:"a"}:void 0))}break;case">&":m(V5(Number(r[v]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new os.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new os.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new os.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await zw(jd(r.slice(c+1),e,t),{stdin:new Io(i),stdout:new Io(n),stderr:new Io(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function TPe(r,e,t){let i=[],n=new os.PassThrough;return n.on("data",s=>i.push(s)),await Vw(r,e,_w(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function X5(r,e,t){let i=r.map(async s=>{let o=await AA(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function Xw(r){return r.match(/[^ \r\n\t]+/g)||[]}async function Z5(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=Xw(s);for(let a=0;a=0&&sr+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function Gd(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await Z5(te(N({},r),{quoted:!0}),e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?Gd({type:"variable",name:i.join(" ")},e,t):Gd({type:"number",value:n},e,t)}else return OPe[r.type](await Gd(r.left,e,t),await Gd(r.right,e,t))}async function AA(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let f=await AA(u.args,e,t);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await TPe(f.shell,e,t);if(f.quoted)o(h);else{let p=Xw(h);for(let m=0;m0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function jd(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=H.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD!="undefined"&&(n=te(N({},n),{PWD:i}));let[s,...o]=r;if(s==="command")return j5(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return G5(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=f,t.stderr=h}})}function MPe(r,e,t){return i=>{let n=new os.PassThrough,s=Vw(r,e,_w(t,{stdin:n}));return{stdin:n,promise:s}}}function UPe(r,e,t){return i=>{let n=new os.PassThrough,s=Vw(r,e,t);return{stdin:n,promise:s}}}function $5(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=N({},i.procedures),i.procedures[n]=r,jd([...e,"__ysh_run_procedure",n],t,i)}}async function e9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?N({},t):t,a;switch(i.type){case"command":{let l=await AA(i.args,e,t),c=await X5(i.envs,e,t);a=i.envs.length?jd(l,e,_w(o,{environment:c})):jd(l,e,o)}break;case"subshell":{let l=await AA(i.args,e,t),c=MPe(i.subshell,e,o);a=$5(c,l,e,o)}break;case"group":{let l=await AA(i.args,e,t),c=UPe(i.group,e,o);a=$5(c,l,e,o)}break;case"envs":{let l=await X5(i.envs,e,t);o.environment=N(N({},o.environment),l),a=jd(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=zw(a,{stdin:new Io(o.stdin),stdout:new Io(o.stdout),stderr:new Io(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,Nn.STDOUT);break;case"|&":s=s.pipeTo(a,Nn.STDOUT|Nn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function KPe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return W5.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=J5(t,{prefix:l});return t.backgroundJobs.push(e9(r,e,_w(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(tg(r))}' has ended +`)})),0}return await e9(r,e,t)}async function HPe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await KPe(a.chain,e,t,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof Ks))throw l;return t.stderr.write(`${l.message} +`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function Vw(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await HPe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function t9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>Yd(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>Yd(e));case"arithmetic":return _P(r.arithmetic);case"shell":return VP(r.shell);default:return!1}}function Yd(r){switch(r.type){case"redirection":return r.args.some(e=>Yd(e));case"argument":return r.segments.some(e=>t9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function _P(r){switch(r.type){case"variable":return t9(r);case"number":return!1;default:return _P(r.left)||_P(r.right)}}function VP(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=VP(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>Yd(s)))||t.args.some(n=>Yd(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function Zw(r,e=[],{baseFs:t=new ar,builtins:i={},cwd:n=H.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=qw}={}){let g={};for(let[p,m]of Object.entries(s))typeof m!="undefined"&&(g[p]=m);let f=new Map(LPe);for(let[p,m]of Object.entries(i))f.set(p,m);o===null&&(o=new os.PassThrough,o.end());let h=VE(r,u);if(!VP(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let m=p.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await Vw(h,{args:e,baseFs:t,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var H9=ge($w()),j9=ge(fg()),Il=ge(require("stream"));var T9=ge(L9()),rB=ge(yc());var O9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],M9=80,UDe=new Set([X.FETCH_NOT_CACHED,X.UNUSED_CACHE_ENTRY]),KDe=5,iB=rB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} +`,end:r=>`::endgroup:: +`}:rB.default.TRAVIS?{start:r=>`travis_fold:start:${r} +`,end:r=>`travis_fold:end:${r} +`}:rB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${r} +`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r`}:null,U9=new Date,HDe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,jDe=r=>r,nB=jDe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),GDe=HDe&&Object.keys(nB).find(r=>{let e=nB[r];return!(e.date&&(e.date[0]!==U9.getDate()||e.date[1]!==U9.getMonth()+1))})||"default";function K9(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=VA(r===null?0:r);return!t&&r===null?tt(e,n,"grey"):n}function tD(r,{configuration:e,json:t}){let i=K9(r,{configuration:e,json:t});if(!i||r===null||r===X.UNNAMED)return i;let n=X[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Ug(e,i,s)}var Je=class extends Ji{constructor({configuration:e,stdout:t,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=KDe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(sd(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...UDe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=t,e.get("enableProgressBars")&&!i&&t.isTTY&&t.columns>22){let u=e.get("progressBarStyle")||GDe;if(!Object.prototype.hasOwnProperty.call(nB,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=nB[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(t.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}}static async start(e,t){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning(X.UNNAMED,a)};try{await t(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,t){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof t!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(X.FETCH_NOT_CACHED,t)}startSectionSync({reportHeader:e,reportFooter:t,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(t==null||t(a-o))}}async startSectionPromise({reportHeader:e,reportFooter:t,skipIfEmpty:i},n){let s={committed:!1,action:()=>{e==null||e()}};i?this.uncommitted.add(s):(s.action(),s.committed=!0);let o=Date.now();try{return await n()}catch(a){throw this.reportExceptionOnce(a),a}finally{let a=Date.now();this.uncommitted.delete(s),s.committed&&(t==null||t(a-o))}}startTimerImpl(e,t,i){let n=typeof t=="function"?{}:t;return{cb:typeof t=="function"?t:i,reportHeader:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,iB!==null&&!this.json&&this.includeInfos&&this.stdout.write(iB.start(e))},reportFooter:o=>{this.indent-=1,iB!==null&&!this.json&&this.includeInfos&&this.stdout.write(iB.end(e)),this.configuration.get("enableTimers")&&o>200?this.reportInfo(null,`\u2514 Completed in ${tt(this.configuration,o,Ye.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:n.skipIfEmpty}}startTimerSync(e,t,i){let o=this.startTimerImpl(e,t,i),{cb:n}=o,s=Or(o,["cb"]);return this.startSectionSync(s,n)}async startTimerPromise(e,t,i){let o=this.startTimerImpl(e,t,i),{cb:n}=o,s=Or(o,["cb"]);return this.startSectionPromise(s,n)}async startCacheReport(e){let t=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{t!==null&&this.reportCacheChanges(t)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,t){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${tt(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${t}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,t){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${tt(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${t}`)}reportError(e,t){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:t}):this.writeLineWithForgettableReset(`${tt(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${t}`,{truncate:!1})}reportProgress(e){if(this.progressStyle===null)return te(N({},Promise.resolve()),{stop:()=>{}});if(e.hasProgress&&e.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let t=!1,i=Promise.resolve().then(async()=>{let s={progress:e.hasProgress?0:void 0,title:e.hasTitle?"":void 0};this.progress.set(e,{definition:s,lastScaledSize:e.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:o,title:a}of e)t||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{t||(t=!0,this.progress.delete(e),this.refreshProgress({delta:1}))};return te(N({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let t=tt(this.configuration,Date.now()-this.startTime,Ye.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${t}`:e;this.errorCount>0?this.reportError(X.UNNAMED,i):this.warningCount>0?this.reportWarning(X.UNNAMED,i):this.reportInfo(X.UNNAMED,i)}writeLine(e,{truncate:t}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:t})} +`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:t}={}){this.forgettableLines=[],this.writeLine(e,{truncate:t})}writeLines(e,{truncate:t}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:t})} +`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:t}){let i=this.cacheHitCount-e,n=this.cacheMissCount-t;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${It(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${It(this.configuration,this.lastCacheMiss)})`),this.reportInfo(X.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let t of e)t.committed=!0,t.action()}clearProgress({delta:e=0,clear:t=!1}){this.progressStyle!==null&&this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||t)&&this.stdout.write(""))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>M9&&(this.progressFrame=(this.progressFrame+1)%O9.length,this.progressTime=e);let t=O9[this.progressFrame];for(let i of this.progress.values()){let n="";if(typeof i.lastScaledSize!="undefined"){let l=this.progressStyle.chars[0].repeat(i.lastScaledSize),c=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize);n=` ${l}${c}`}let s=this.formatName(null),o=s?`${s}: `:"",a=i.definition.title?` ${i.definition.title}`:"";this.stdout.write(`${tt(this.configuration,"\u27A4","blueBright")} ${o}${t}${n}${a} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},M9)}refreshProgress({delta:e=0,force:t=!1}={}){let i=!1,n=!1;if(t||this.progress.size===0)i=!0;else for(let s of this.progress.values()){let o=typeof s.definition.progress!="undefined"?Math.trunc(this.progressMaxScaledSize*s.definition.progress):void 0,a=s.lastScaledSize;s.lastScaledSize=o;let l=s.lastTitle;if(s.lastTitle=s.definition.title,o!==a||(n=l!==s.definition.title)){i=!0;break}}i&&(this.clearProgress({delta:e,clear:n}),this.writeProgress())}truncate(e,{truncate:t}={}){return this.progressStyle===null&&(t=!1),typeof t=="undefined"&&(t=this.configuration.get("preferTruncatedLines")),t&&(e=(0,T9.default)(e,0,this.stdout.columns-1)),e}formatName(e){return K9(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return tD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Kr="3.2.3";var hn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(hn||(hn={}));async function lA(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await U.writeFilePromise(x.format({dir:r,name:e,ext:".cmd"}),n)}await U.writeFilePromise(x.join(r,e),`#!/bin/sh +exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function G9(r){let e=await At.tryFind(r);if(e==null?void 0:e.packageManager){let i=cw(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?hn.Yarn1:hn.Yarn2,reason:n};case"npm":return{packageManager:hn.Npm,reason:n};case"pnpm":return{packageManager:hn.Pnpm,reason:n}}}}let t;try{t=await U.readFilePromise(x.join(r,xt.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:hn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:hn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:U.existsSync(x.join(r,"package-lock.json"))?{packageManager:hn.Npm,reason:`found npm's "package-lock.json" lockfile`}:U.existsSync(x.join(r,"pnpm-lock.yaml"))?{packageManager:hn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function qd({project:r,locator:e,binFolder:t,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=H.fromPortablePath(t);n.BERRY_BIN_FOLDER=H.fromPortablePath(s);let o=process.env.COREPACK_ROOT?H.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([lA(t,"node",process.execPath),...Kr!==null?[lA(t,"run",process.execPath,[o,"run"]),lA(t,"yarn",process.execPath,[o]),lA(t,"yarnpkg",process.execPath,[o]),lA(t,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),r&&(n.INIT_CWD=H.fromPortablePath(r.configuration.startingCwd),n.PROJECT_CWD=H.fromPortablePath(r.cwd)),n.PATH=n.PATH?`${s}${H.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${H.sep}yarn`,n.npm_node_execpath=`${s}${H.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let u=r.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=r.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=Ot(e),n.npm_package_version=g;let f;if(u)f=u.cwd;else{let h=r.storedPackages.get(e.locatorHash);if(!h)throw new Error(`Package for ${It(r.configuration,e)} not found in the project`);let p=r.configuration.getLinkers(),m={project:r,report:new Je({stdout:new Il.PassThrough,configuration:r.configuration})},y=p.find(b=>b.supportsPackage(h,m));if(!y)throw new Error(`The package ${It(r.configuration,h)} isn't supported by any of the available linkers`);f=await y.findPackageLocation(h,m)}n.npm_package_json=H.fromPortablePath(x.join(f,xt.manifest))}let a=Kr!==null?`yarn/${Kr}`:`yarn/${Mg("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.version} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),r&&await r.configuration.triggerHook(u=>u.setupScriptEnvironment,r,n,async(u,g,f)=>await lA(t,Jr(u),g,f)),n}var YDe=2,qDe=(0,j9.default)(YDe);async function JDe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await qDe(async()=>{await U.mktempPromise(async o=>{let a=x.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:H.fromPortablePath(r),report:i}),g=s&&ta(s)?fd(s):s,f=g?Fs(g):"an external project";c.write(`Packing ${f} from sources +`);let h=await G9(r),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} + +`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn + +`),p=hn.Yarn2),await U.mktempPromise(async m=>{let y=await qd({binFolder:m}),v=new Map([[hn.Yarn1,async()=>{let T=n!==null?["workspace",n]:[],Y=x.join(r,xt.manifest),q=await U.readFilePromise(Y),$=await ia(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if($.code!==0)return $.code;await U.writeFilePromise(Y,q),await U.appendFilePromise(x.join(r,".npmignore"),`/.yarn +`),c.write(` +`),delete y.NODE_ENV;let z=await ia("yarn",["install"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if(z.code!==0)return z.code;c.write(` +`);let ne=await ia("yarn",[...T,"pack","--filename",H.fromPortablePath(e)],{cwd:r,env:y,stdin:l,stdout:c,stderr:u});return ne.code!==0?ne.code:0}],[hn.Yarn2,async()=>{let T=n!==null?["workspace",n]:[];y.YARN_ENABLE_INLINE_BUILDS="1";let Y=x.join(r,xt.lockfile);await U.existsPromise(Y)||await U.writeFilePromise(Y,"");let q=await ia("yarn",[...T,"pack","--install-if-needed","--filename",H.fromPortablePath(e)],{cwd:r,env:y,stdin:l,stdout:c,stderr:u});return q.code!==0?q.code:0}],[hn.Npm,async()=>{if(n!==null){let A=new Il.PassThrough,oe=Og(A);A.pipe(c,{end:!1});let ce=await ia("npm",["--version"],{cwd:r,env:y,stdin:l,stdout:A,stderr:u,end:ss.Never});if(A.end(),ce.code!==0)return c.end(),u.end(),ce.code;let Z=(await oe).toString().trim();if(!Jc(Z,">=7.x")){let O=ea(null,"npm"),L=rr(O,Z),de=rr(O,">=7.x");throw new Error(`Workspaces aren't supported by ${sr(t,L)}; please upgrade to ${sr(t,de)} (npm has been detected as the primary package manager for ${tt(t,r,Ye.PATH)})`)}}let T=n!==null?["--workspace",n]:[];delete y.npm_config_user_agent,delete y.npm_config_production,delete y.NPM_CONFIG_PRODUCTION,delete y.NODE_ENV;let Y=await ia("npm",["install"],{cwd:r,env:y,stdin:l,stdout:c,stderr:u,end:ss.ErrorCode});if(Y.code!==0)return Y.code;let q=new Il.PassThrough,$=Og(q);q.pipe(c);let z=await ia("npm",["pack","--silent",...T],{cwd:r,env:y,stdin:l,stdout:q,stderr:u});if(z.code!==0)return z.code;let ne=(await $).toString().trim().replace(/^.*\n/s,""),ee=x.resolve(r,H.toPortablePath(ne));return await U.renamePromise(ee,e),0}]]).get(p);if(typeof v=="undefined")throw new Error("Assertion failed: Unsupported workflow");let k=await v();if(!(k===0||typeof k=="undefined"))throw U.detachTemp(o),new ct(X.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${k}, logs can be found here: ${tt(t,a,Ye.PATH)})`)})})})}async function WDe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return rD(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${It(t.configuration,r)} not found in the project`);return await ys.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new Je({stdout:new Il.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${It(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new _t(u,{baseFs:s});return(await At.find(Me.dot,{baseFs:g})).scripts.has(e)},{libzip:await fn()})}async function sB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await U.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await Y9(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await Zw(f,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,h,n,r,e,{script:f,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function iD(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await U.mktempPromise(async l=>{let{env:c,cwd:u}=await Y9(r,{project:n,binFolder:l,cwd:i});return await Zw(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function zDe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await qd({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await q9(r),([s,[,o]])=>lA(e,Jr(s),process.execPath,[o]))),typeof t=="undefined"&&(t=x.dirname(await U.realpathPromise(x.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function Y9(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return zDe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${It(e.configuration,r)} not found in the project`);return await ys.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Je({stdout:new Il.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${It(e.configuration,o)} isn't supported by any of the available linkers`);let f=await qd({project:e,locator:r,binFolder:t,lifecycleScript:n});await Promise.all(Array.from(await oB(r,{project:e}),([y,[,b]])=>lA(t,Jr(y),process.execPath,[b])));let h=await g.findPackageLocation(o,u),p=new _t(h,{baseFs:a}),m=await At.find(Me.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:m,binFolder:t,env:f,cwd:i}},{libzip:await fn()})}async function J9(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await sB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function rD(r,e){return r.manifest.scripts.has(e)}async function W9(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await U.mktempPromise(async o=>{let a=x.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${H.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:It(n,r.anchoredLocator),header:l});i.reportInfo(X.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await J9(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw U.detachTemp(o),new ct(X.LIFECYCLE_SCRIPT,`${(0,H9.default)(e)} script failed (exit code ${tt(n,g,Ye.NUMBER)}, logs can be found here: ${tt(n,a,Ye.PATH)}); run ${tt(n,`yarn ${e}`,Ye.CODE)} to investigate`)})}async function _De(r,e,t){rD(r,e)&&await W9(r,e,t)}async function oB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${It(t,r)} not found in the project`);let s=new Il.Writable,o=t.getLinkers(),a={project:e,report:new Je({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${sr(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Vo.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return Vo.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return Vo.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===Vo.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,H.fromPortablePath(x.resolve(f,p))])}return i}async function q9(r){return await oB(r.anchoredLocator,{project:r.project})}async function z9(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await oB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${It(n.configuration,r)}`);return await U.mktempPromise(async g=>{let[,f]=u,h=await qd({project:n,locator:r,binFolder:g});await Promise.all(Array.from(c,([m,[,y]])=>lA(h.BERRY_BIN_FOLDER,Jr(m),process.execPath,[y])));let p;try{p=await ia(process.execPath,[...l,f,...t],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await U.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function VDe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await z9(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Bi={};ft(Bi,{convertToZip:()=>oNe,extractArchiveTo:()=>ANe,makeArchiveFromDirectory:()=>sNe});var K6=ge(require("stream")),H6=ge(N6());var L6=ge(require("os")),T6=ge(fg()),O6=ge(require("worker_threads")),Rl=Symbol("kTaskInfo"),dR=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,T6.default)(Math.max(1,(0,L6.cpus)().length));this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new O6.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[Rl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[Rl].resolve(t),e[Rl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[Rl])==null||i.reject(t),e[Rl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[Rl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[Rl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[Rl]={resolve:n,reject:s},t.postMessage(e)})})}};var j6=ge(U6());async function sNe(r,{baseFs:e=new ar,prefixPath:t=Me.root,compressionLevel:i,inMemory:n=!1}={}){let s=await fn(),o;if(n)o=new li(null,{libzip:s,level:i});else{let l=await U.mktempPromise(),c=x.join(l,"archive.zip");o=new li(c,{create:!0,libzip:s,level:i})}let a=x.resolve(Me.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var G6;async function oNe(r,e){let t=await U.mktempPromise(),i=x.join(t,"archive.zip");return G6||(G6=new dR((0,j6.getContent)())),await G6.run({tmpFile:i,tgz:r,opts:e}),new li(i,{libzip:await fn(),level:e.compressionLevel})}async function*aNe(r){let e=new H6.default.Parse,t=new K6.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ANe(r,e,{stripComponents:t=0,prefixPath:i=Me.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aNe(r)){if(n(a))continue;let l=x.normalize(H.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=x.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,Rr.SAFE_TIME,Rr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.writeFileSync(u,await Og(a),{mode:g}),e.utimesSync(u,Rr.SAFE_TIME,Rr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(x.dirname(u),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,Rr.SAFE_TIME,Rr.SAFE_TIME);break}}return e}var ls={};ft(ls,{emitList:()=>lNe,emitTree:()=>_6,treeNodeToJson:()=>z6,treeNodeToTreeify:()=>W6});var J6=ge(q6());function W6(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Fy(e,l,Oc.BOLD)),typeof c!="undefined"&&g.push(tt(e,c[0],c[1])),g.length===0&&g.push(Fy(e,`${a}`,Oc.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof r.children=="undefined")throw new Error("The root node must only contain children");return i(r.children,t),t}function z6(r){let e=t=>{var s;if(typeof t.children=="undefined"){if(typeof t.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Mc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value=="undefined"?n:{value:Mc(t.value[0],t.value[1]),children:n}};return e(r)}function lNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));_6({children:n},{configuration:e,stdout:t,json:i})}function _6(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(z6(l))} +`);return}let s=(0,J6.asTree)(W6(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var V6=ge(require("crypto")),ER=ge(require("fs"));var cNe=8,Nt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,V6.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==cc?`c${o}`:"";this.cacheKey=[cNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Nt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Wg(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uNe(t).slice(0,10);return`${Wg(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?x.resolve(this.cwd,this.getVersionFilename(e)):t===null||IR(t)!==this.cacheKey?null:x.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?x.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await U.existsPromise(this.cwd))throw new ct(X.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await U.mkdirPromise(this.cwd,{recursive:!0});let e=x.resolve(this.cwd,".gitignore");await U.changeFilePromise(e,`/.gitignore +*.flock +*.tmp +`)}(this.mirrorCwd||!this.immutable)&&await U.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=Or(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new ar,g=()=>{let oe=new li(null,{libzip:Y}),ce=x.join(Me.root,tx(e));return oe.mkdirSync(ce,{recursive:!0}),oe.writeJsonSync(x.join(ce,xt.manifest),{name:Ot(e),mocked:!0}),oe},f=async(oe,ce=null)=>{var O;if(ce===null&&((O=o.unstablePackages)==null?void 0:O.has(e.locatorHash)))return null;let Z=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await ow(oe)}`:t;if(ce!==null){let L=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await ow(ce)}`:t;if(Z!==L)throw new ct(X.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&Z!==t){let L;switch(this.check?L="throw":IR(t)!==IR(Z)?L="update":L=this.configuration.get("checksumBehavior"),L){case"ignore":return t;case"update":return Z;default:case"throw":throw new ct(X.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return Z},h=async oe=>{if(!s)throw new Error(`Cache check required but no loader configured for ${It(this.configuration,e)}`);let ce=await s(),Z=ce.getRealPath();return ce.saveAndClose(),await U.chmodPromise(Z,420),await f(oe,Z)},p=async()=>{if(c===null||!await U.existsPromise(c)){let oe=await s(),ce=oe.getRealPath();return oe.saveAndClose(),{source:"loader",path:ce}}return{source:"mirror",path:c}},m=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${It(this.configuration,e)}`);if(this.immutable)throw new ct(X.IMMUTABLE_CACHE,`Cache entry required but missing for ${It(this.configuration,e)}`);let{path:oe,source:ce}=await p(),Z=await f(oe),O=this.getLocatorPath(e,Z,o);if(!O)throw new Error("Assertion failed: Expected the cache path to be available");let L=[];ce!=="mirror"&&c!==null&&L.push(async()=>{let Be=`${c}${this.cacheId}`;await U.copyFilePromise(oe,Be,ER.default.constants.COPYFILE_FICLONE),await U.chmodPromise(Be,420),await U.renamePromise(Be,c)}),(!o.mirrorWriteOnly||c===null)&&L.push(async()=>{let Be=`${O}${this.cacheId}`;await U.copyFilePromise(oe,Be,ER.default.constants.COPYFILE_FICLONE),await U.chmodPromise(Be,420),await U.renamePromise(Be,O)});let de=o.mirrorWriteOnly&&c!=null?c:O;return await Promise.all(L.map(Be=>Be())),[!1,de,Z]},y=async()=>{let ce=(async()=>{var Ge;let Z=this.getLocatorPath(e,t,o),O=Z!==null?await u.existsPromise(Z):!1,L=!!((Ge=o.mockedPackages)==null?void 0:Ge.has(e.locatorHash))&&(!this.check||!O),de=L||O,Be=de?i:n;if(Be&&Be(),de){let re=null,se=Z;return L||(re=this.check?await h(se):await f(se)),[L,se,re]}else return m()})();this.mutexes.set(e.locatorHash,ce);try{return await ce}finally{this.mutexes.delete(e.locatorHash)}};for(let oe;oe=this.mutexes.get(e.locatorHash);)await oe;let[b,v,k]=await y();this.markedFiles.add(v);let T,Y=await fn(),q=b?()=>g():()=>new li(v,{baseFs:u,libzip:Y,readOnly:!0}),$=new Vh(()=>Fv(()=>T=q(),oe=>`Failed to open the cache entry for ${It(this.configuration,e)}: ${oe}`),x),z=new La(v,{baseFs:$,pathUtils:x}),ne=()=>{T==null||T.discardAndClose()},ee=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:k;return[z,ne,ee]}};function IR(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uNe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var cs;(function(t){t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE"})(cs||(cs={}));var dA=class extends Ji{constructor({configuration:e,stdout:t,suggestInstall:i=!0}){super();this.errorCount=0;sd(this,{configuration:e}),this.configuration=e,this.stdout=t,this.suggestInstall=i}static async start(e,t){let i=new this(e);try{await t(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){this.errorCount+=1,this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${t} +`)}reportProgress(e){let t=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return te(N({},t),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${tt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(e){return tD(e,{configuration:this.configuration,json:!1})}};var n0=ge(require("crypto"));function CA(){}CA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(t),count:t.length}]);function h(){for(var m=-1*c;m<=c;m+=2){var y=void 0,b=g[m-1],v=g[m+1],k=(v?v.newPos:0)-m;b&&(g[m-1]=void 0);var T=b&&b.newPos+1=a&&k+1>=l)return o(gNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();h()||m()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?m:h}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&r.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function fNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var oAt=new CA;var X6=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,Z6=/\S/,$6=new CA;$6.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!Z6.test(r)&&!Z6.test(e)};$6.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t0?l(q.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(Y=f).push.apply(Y,wR(T.map(function(Z){return(k.added?"+":"-")+Z}))),k.added?p+=T.length:h+=T.length}else{if(u)if(T.length<=o.context*2&&v=a.length-2&&T.length<=o.context){var A=/\n$/.test(t),oe=/\n$/.test(i),ce=T.length==0&&f.length>ee.oldLines;!A&&ce&&t.length>0&&f.splice(ee.oldLines,0,"\\ No newline at end of file"),(!A&&!ce||!oe)&&f.push("\\ No newline at end of file")}c.push(ee),u=0,g=0,f=[]}h+=T.length,p+=T.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>uw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],LR=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=x.join(e.cwd,e.configuration.get("lockfileFilename"));if(!U.existsSync(i))return;let n=await U.readFilePromise(i,"utf8"),s=Si(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=dd(a);if(!l){t.reportWarning(X.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}mo(l.range)&&(l=rr(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of _Oe){let m=u.match(h);if(m){g=p(c,...m);break}}if(!g){t.reportWarning(X.YARN_IMPORT_FAILED,`${sr(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=Jg(l.range),p=dd(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,cn(f,g))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Vk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var TR=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(lw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(lw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var OR=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new ct(X.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var di=class extends Ji{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){let t=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return te(N({},t),{stop:i})}reportJson(e){}async finalize(){}};var aZ=ge(zk());var mC=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await At.tryFind(this.cwd))!=null?s:new At,this.relativeCwd=x.relative(this.project.cwd,this.cwd)||Me.dot;let e=this.manifest.name?this.manifest.name:ea(null,`${this.computeCandidateName()}-${ln(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=cn(e,t),this.anchoredDescriptor=rr(this.locator,`${oi.protocol}${this.relativeCwd}`),this.anchoredLocator=cn(this.locator,`${oi.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o),n=await(0,aZ.default)(i,{cwd:H.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let o of n){let a=x.resolve(this.cwd,H.toPortablePath(o));U.existsSync(x.join(a,"package.json"))&&this.workspacesCwds.add(a)}}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===oi.protocol&&x.normalize(n)===this.relativeCwd||i===oi.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=mo(n);return s?i===oi.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${x.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=At.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=At.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&pd(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=[];for(let t of this.workspacesCwds){let i=this.project.workspacesByCwd.get(t);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let t=x.join(this.cwd,At.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await U.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var cZ=6,VOe=1,XOe=/ *, */g,uZ=/\/$/,ZOe=32,$Oe=(0,MR.promisify)(KR.default.gzip),eMe=(0,MR.promisify)(KR.default.gunzip),Ci;(function(t){t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build"})(Ci||(Ci={}));var HR={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},gZ=r=>ln(`${VOe}`,r),ze=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var p,m,y;if(!e.projectCwd)throw new Pe(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,U.existsSync(x.join(s,xt.manifest))){i=s;break}n=x.dirname(s)}let o=new ze(e.projectCwd,{configuration:e});(p=ye.telemetry)==null||p.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=ye.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=ye.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((b,v)=>b+v.manifest.dependencies.size+v.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=tt(e,o.cwd,Ye.PATH),u=tt(e,x.relative(o.cwd,i),Ye.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,f=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,h=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new Pe(`The nearest package directory (${tt(e,i,Ye.PATH)}) doesn't seem to be part of the project declared in ${tt(e,o.cwd,Ye.PATH)}. + +${[g,f,h].join(` +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(U.existsSync(e)){let n=await U.readFilePromise(e,"utf8");this.lockFileChecksum=gZ(n);let s=Si(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let t=e;e=[];for(let i of t){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let t=new mC(e,{project:this});await t.setup();let i=this.workspacesByIdent.get(t.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${fi(this.configuration,t.locator)}: ${H.fromPortablePath(e)} conflicts with ${H.fromPortablePath(i.cwd)}`);return this.workspaces.push(t),this.workspacesByCwd.set(e,t),this.workspacesByIdent.set(t.locator.identHash,t),t}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){x.isAbsolute(e)||(e=x.resolve(this.cwd,e)),e=x.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)x.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t=="undefined"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${fi(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(ll(e)&&(e=gd(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${sr(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(ta(e)&&(e=fd(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${It(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${md(this.configuration,e)} (${tt(this.configuration,x.join(e.cwd,xt.manifest),Ye.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}forgetResolution(e){let t=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);t(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&t(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let t of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(t,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(t)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)ll(i)&&e.dependencies.set(t,gd(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Ot(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!lZ.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new di,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(uZ,"")!==e.replace(uZ,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new LR(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new OR(t)]:[i,t],s=new Bd([new TR(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],b=ux(),v=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ji.progressViaTitle(),async ne=>{let ee=async O=>{let L=await Tg(async()=>await s.resolve(O,a),Ge=>`${It(this.configuration,O)}: ${Ge}`);if(!pd(O,L))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${It(this.configuration,O)} to ${It(this.configuration,L)})`);g.set(L.locatorHash,L);let de=this.configuration.normalizePackage(L);for(let[Ge,re]of de.dependencies){let se=await this.configuration.reduceHook(he=>he.reduceDependency,re,this,de,re,{resolver:s,resolveOptions:a});if(!hd(re,se))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let be=s.bindDescriptor(se,O,a);de.dependencies.set(Ge,be)}let Be=ho([...de.dependencies.values()].map(Ge=>Z(Ge)));return y.push(Be),Be.catch(()=>{}),c.set(de.locatorHash,de),de},A=async O=>{let L=f.get(O.locatorHash);if(typeof L!="undefined")return L;let de=Promise.resolve().then(()=>ee(O));return f.set(O.locatorHash,de),de},oe=async(O,L)=>{let de=await Z(L);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,de.locatorHash),de},ce=async O=>{ne.setTitle(sr(this.configuration,O));let L=this.resolutionAliases.get(O.descriptorHash);if(typeof L!="undefined")return oe(O,this.storedDescriptors.get(L));let de=s.getResolutionDependencies(O,a),Be=new Map(await ho(de.map(async se=>{let be=s.bindDescriptor(se,p,a),he=await Z(be);return m.add(he.locatorHash),[se.descriptorHash,he]}))),re=(await Tg(async()=>await s.getCandidates(O,Be,a),se=>`${sr(this.configuration,O)}: ${se}`))[0];if(typeof re=="undefined")throw new Error(`${sr(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,re.locatorHash),A(re)},Z=O=>{let L=h.get(O.descriptorHash);if(typeof L!="undefined")return L;l.set(O.descriptorHash,O);let de=Promise.resolve().then(()=>ce(O));return h.set(O.descriptorHash,de),de};for(let O of this.workspaces){let L=O.anchoredDescriptor;y.push(Z(L))}for(;y.length>0;){let O=[...y];y.length=0,await ho(O)}});let k=new Set(this.resolutionAliases.values()),T=new Set(c.keys()),Y=new Set,q=new Map;tMe({project:this,report:e.report,accessibleLocators:Y,volatileDescriptors:k,optionalBuilds:T,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let ne of m)T.delete(ne);for(let ne of k)l.delete(ne),u.delete(ne);let $=new Set,z=new Set;for(let ne of c.values())ne.conditions!=null&&(!T.has(ne.locatorHash)||(fw(ne,v)||(fw(ne,b)&&e.report.reportWarningOnce(X.GHOST_ARCHITECTURE,`${It(this.configuration,ne)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${tt(this.configuration,"supportedArchitectures",Ri.SETTING)} setting`),z.add(ne.locatorHash)),$.add(ne.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=Y,this.conditionalLocators=$,this.disabledLocators=z,this.originalPackages=g,this.optionalBuilds=T,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(xn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return Fs(h)}])));n===Ci.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Ji.progressViaCounter(l.length);t.reportProgress(u);let g=(0,AZ.default)(ZOe);if(await t.startCacheReport(async()=>{await ho(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(ta(h))return;let p;try{p=await o.fetch(h,a)}catch(m){m.message=`${It(this.configuration,h)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var A,oe,ce;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(Z=>{let O=Z.makeInstaller(c),L=O.getCustomDataKey(),de=this.installersCustomData.get(L);return typeof de!="undefined"&&O.attachCustomData(de),[Z,O]})),g=new Map,f=new Map,h=new Map,p=new Map(await ho([...this.accessibleLocators].map(async Z=>{let O=this.storedPackages.get(Z);if(!O)throw new Error("Assertion failed: The locator should have been registered");return[Z,await o.fetch(O,a)]}))),m=[];for(let Z of this.accessibleLocators){let O=this.storedPackages.get(Z);if(typeof O=="undefined")throw new Error("Assertion failed: The locator should have been registered");let L=p.get(O.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let de=[],Be=re=>{de.push(re)},Ge=this.tryWorkspaceByLocator(O);if(Ge!==null){let re=[],{scripts:se}=Ge.manifest;for(let he of["preinstall","install","postinstall"])se.has(he)&&re.push([cs.SCRIPT,he]);try{for(let[he,Fe]of u)if(he.supportsPackage(O,c)&&(await Fe.installPackage(O,L,{holdFetchResult:Be})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{de.length===0?(A=L.releaseFs)==null||A.call(L):m.push(ho(de).catch(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}let be=x.join(L.packageFs.getRealPath(),L.prefixPath);f.set(O.locatorHash,be),!ta(O)&&re.length>0&&h.set(O.locatorHash,{directives:re,buildLocations:[be]})}else{let re=l.find(he=>he.supportsPackage(O,c));if(!re)throw new ct(X.LINKER_NOT_FOUND,`${It(this.configuration,O)} isn't supported by any available linker`);let se=u.get(re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let be;try{be=await se.installPackage(O,L,{holdFetchResult:Be})}finally{de.length===0?(oe=L.releaseFs)==null||oe.call(L):m.push(ho(de).then(()=>{}).then(()=>{var he;(he=L.releaseFs)==null||he.call(L)}))}g.set(O.locatorHash,re),f.set(O.locatorHash,be.packageLocation),be.buildDirective&&be.buildDirective.length>0&&be.packageLocation&&h.set(O.locatorHash,{directives:be.buildDirective,buildLocations:[be.packageLocation]})}}let y=new Map;for(let Z of this.accessibleLocators){let O=this.storedPackages.get(Z);if(!O)throw new Error("Assertion failed: The locator should have been registered");let L=this.tryWorkspaceByLocator(O)!==null,de=async(Be,Ge)=>{let re=f.get(O.locatorHash);if(typeof re=="undefined")throw new Error(`Assertion failed: The package (${It(this.configuration,O)}) should have been registered`);let se=[];for(let be of O.dependencies.values()){let he=this.storedResolutions.get(be.descriptorHash);if(typeof he=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,be)}, from ${It(this.configuration,O)})should have been registered`);let Fe=this.storedPackages.get(he);if(typeof Fe=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);let Ue=this.tryWorkspaceByLocator(Fe)===null?g.get(he):null;if(typeof Ue=="undefined")throw new Error(`Assertion failed: The package (${he}, resolved from ${sr(this.configuration,be)}) should have been registered`);Ue===Be||Ue===null?f.get(Fe.locatorHash)!==null&&se.push([be,Fe]):!L&&re!==null&&Ng(y,he).push(re)}re!==null&&await Ge.attachInternalDependencies(O,se)};if(L)for(let[Be,Ge]of u)Be.supportsPackage(O,c)&&await de(Be,Ge);else{let Be=g.get(O.locatorHash);if(!Be)throw new Error("Assertion failed: The linker should have been found");let Ge=u.get(Be);if(!Ge)throw new Error("Assertion failed: The installer should have been registered");await de(Be,Ge)}}for(let[Z,O]of y){let L=this.storedPackages.get(Z);if(!L)throw new Error("Assertion failed: The package should have been registered");let de=g.get(L.locatorHash);if(!de)throw new Error("Assertion failed: The linker should have been found");let Be=u.get(de);if(!Be)throw new Error("Assertion failed: The installer should have been registered");await Be.attachExternalDependents(L,O)}let b=new Map;for(let Z of u.values()){let O=await Z.finalizeInstall();for(let L of(ce=O==null?void 0:O.records)!=null?ce:[])h.set(L.locatorHash,{directives:L.buildDirective,buildLocations:L.buildLocations});typeof(O==null?void 0:O.customData)!="undefined"&&b.set(Z.getCustomDataKey(),O.customData)}if(this.installersCustomData=b,await ho(m),n===Ci.SkipBuild)return;let v=new Set(this.storedPackages.keys()),k=new Set(h.keys());for(let Z of k)v.delete(Z);let T=(0,n0.createHash)("sha512");T.update(process.versions.node),await this.configuration.triggerHook(Z=>Z.globalHashGeneration,this,Z=>{T.update("\0"),T.update(Z)});let Y=T.digest("hex"),q=new Map,$=Z=>{let O=q.get(Z.locatorHash);if(typeof O!="undefined")return O;let L=this.storedPackages.get(Z.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: The package should have been registered");let de=(0,n0.createHash)("sha512");de.update(Z.locatorHash),q.set(Z.locatorHash,"");for(let Be of L.dependencies.values()){let Ge=this.storedResolutions.get(Be.descriptorHash);if(typeof Ge=="undefined")throw new Error(`Assertion failed: The resolution (${sr(this.configuration,Be)}) should have been registered`);let re=this.storedPackages.get(Ge);if(typeof re=="undefined")throw new Error("Assertion failed: The package should have been registered");de.update($(re))}return O=de.digest("hex"),q.set(Z.locatorHash,O),O},z=(Z,O)=>{let L=(0,n0.createHash)("sha512");L.update(Y),L.update($(Z));for(let de of O)L.update(de);return L.digest("hex")},ne=new Map,ee=!1;for(;k.size>0;){let Z=k.size,O=[];for(let L of k){let de=this.storedPackages.get(L);if(!de)throw new Error("Assertion failed: The package should have been registered");let Be=!0;for(let se of de.dependencies.values()){let be=this.storedResolutions.get(se.descriptorHash);if(!be)throw new Error(`Assertion failed: The resolution (${sr(this.configuration,se)}) should have been registered`);if(k.has(be)){Be=!1;break}}if(!Be)continue;k.delete(L);let Ge=h.get(de.locatorHash);if(!Ge)throw new Error("Assertion failed: The build directive should have been registered");let re=z(de,Ge.buildLocations);if(this.storedBuildState.get(de.locatorHash)===re){ne.set(de.locatorHash,re);continue}ee||(await this.persistInstallStateFile(),ee=!0),this.storedBuildState.has(de.locatorHash)?t.reportInfo(X.MUST_REBUILD,`${It(this.configuration,de)} must be rebuilt because its dependency tree changed`):t.reportInfo(X.MUST_BUILD,`${It(this.configuration,de)} must be built because it never has been before or the last one failed`);for(let se of Ge.buildLocations){if(!x.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);O.push((async()=>{for(let[be,he]of Ge.directives){let Fe=`# This file contains the result of Yarn building a package (${Fs(de)}) +`;switch(be){case cs.SCRIPT:Fe+=`# Script name: ${he} +`;break;case cs.SHELLCODE:Fe+=`# Script code: ${he} +`;break}let Ue=null;if(!await U.mktempPromise(async ve=>{let pe=x.join(ve,"build.log"),{stdout:V,stderr:Qe}=this.configuration.getSubprocessStreams(pe,{header:Fe,prefix:It(this.configuration,de),report:t}),le;try{switch(be){case cs.SCRIPT:le=await sB(de,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break;case cs.SHELLCODE:le=await iD(de,he,[],{cwd:se,project:this,stdin:Ue,stdout:V,stderr:Qe});break}}catch(gt){Qe.write(gt.stack),le=1}if(V.end(),Qe.end(),le===0)return ne.set(de.locatorHash,re),!0;U.detachTemp(ve);let fe=`${It(this.configuration,de)} couldn't be built successfully (exit code ${tt(this.configuration,le,Ye.NUMBER)}, logs can be found here: ${tt(this.configuration,pe,Ye.PATH)})`;return this.optionalBuilds.has(de.locatorHash)?(t.reportInfo(X.BUILD_FAILED,fe),ne.set(de.locatorHash,re),!0):(t.reportError(X.BUILD_FAILED,fe),!1)}))return}})())}}if(await ho(O),Z===k.size){let L=Array.from(k).map(de=>{let Be=this.storedPackages.get(de);if(!Be)throw new Error("Assertion failed: The package should have been registered");return It(this.configuration,Be)}).join(", ");t.reportError(X.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${L})`);break}}this.storedBuildState=ne}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=ye.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=qi.Inactive;let i=x.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await U.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new ct(X.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=tt(this.configuration,g,Ye.PACKAGE_EXTENSION);switch(g.status){case qi.Inactive:e.report.reportWarning(X.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case qi.Redundant:e.report.reportWarning(X.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=oc(n,this.generateLockfile());if(c!==n){let u=e7(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(X.FROZEN_LOCKFILE_EXCEPTION,tt(this.configuration,f,Ye.ADDED)):f.startsWith("-")?e.report.reportError(X.FROZEN_LOCKFILE_EXCEPTION,tt(this.configuration,f,Ye.REMOVED)):e.report.reportInfo(null,tt(this.configuration,f,"grey"))}e.report.reportSeparator()}throw new ct(X.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===qi.Active&&((l=ye.telemetry)==null||l.reportPackageExtension(Mc(g,Ye.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==Ci.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>aw(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===Ci.UpdateLockfile){e.report.reportWarning(X.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${tt(this.configuration,"mode=update-lockfile",Ye.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>aw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:cZ,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>Pn(f)).sort().join(", "),c=new At;c.version=o.linkType===Qt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof t.__metadata.cacheKey=="undefined"&&(t.__metadata.cacheKey=h),h===t.__metadata.cacheKey?u=p:u=g}t[l]=te(N({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:Fs(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+Ua(t)}async persistLockfile(){let e=x.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await U.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=oc(t,i);n!==t&&(await U.writeFilePromise(e,n),this.lockFileChecksum=gZ(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(HR))e.push(...o);let t=(0,s0.default)(this,e),i=UR.default.serialize(t),n=ln(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await U.mkdirPromise(x.dirname(s),{recursive:!0}),await U.writeFilePromise(s,await $Oe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await eMe(await U.readFilePromise(n));s=UR.default.deserialize(o),this.installStateChecksum=ln(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData!="undefined"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,s0.default)(s,HR.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,s0.default)(s,HR.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new di}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!lx(e.cwd,this.cwd)||!await U.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await U.readdirPromise(e.cwd)){if(i.has(a))continue;let l=x.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(X.IMMUTABLE_CACHE,`${tt(this.configuration,x.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(X.UNUSED_CACHE_ENTRY,`${tt(this.configuration,x.basename(l),"magenta")} appears to be unused - removing`),await U.removePromise(l)))}n&&s!==0&&t.reportInfo(X.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function tMe({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l,tolerateMissingPackages:c=!1}){var ne;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,m=new Map,y=new Map,b=new Map(r.workspaces.map(ee=>{let A=ee.anchoredLocator.locatorHash,oe=i.get(A);if(typeof oe=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ud(oe)]})),v=()=>{let ee=U.mktempSync(),A=x.join(ee,"stacktrace.log"),oe=String(g.length+1).length,ce=g.map((Z,O)=>`${`${O+1}.`.padStart(oe," ")} ${Fs(Z)} +`).join("");throw U.writeFileSync(A,ce),U.detachTemp(ee),new ct(X.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${H.fromPortablePath(A)}`)},k=ee=>{let A=t.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let oe=i.get(A);if(!oe)throw new Error("Assertion failed: The package could not be found");return oe},T=(ee,A,oe,{top:ce,optional:Z})=>{g.length>1e3&&v(),g.push(A);let O=Y(ee,A,oe,{top:ce,optional:Z});return g.pop(),O},Y=(ee,A,oe,{top:ce,optional:Z})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),Z||s.delete(A.locatorHash);let O=i.get(A.locatorHash);if(!O){if(c)return;throw new Error(`Assertion failed: The package (${It(r.configuration,A)}) should have been registered`)}let L=[],de=[],Be=[],Ge=[],re=[];for(let be of Array.from(O.dependencies.values())){if(O.peerDependencies.has(be.identHash)&&O.locatorHash!==ce)continue;if(ll(be))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(be.descriptorHash);let he=Z;if(!he){let Qe=O.dependenciesMeta.get(Ot(be));if(typeof Qe!="undefined"){let le=Qe.get(null);typeof le!="undefined"&&le.optional&&(he=!0)}}let Fe=t.get(be.descriptorHash);if(!Fe){if(c)continue;throw new Error(`Assertion failed: The resolution (${sr(r.configuration,be)}) should have been registered`)}let Ue=b.get(Fe)||i.get(Fe);if(!Ue)throw new Error(`Assertion failed: The package (${Fe}, resolved from ${sr(r.configuration,be)}) should have been registered`);if(Ue.peerDependencies.size===0){T(be,Ue,new Map,{top:ce,optional:he});continue}let xe,ve,pe=new Set,V;de.push(()=>{xe=Xk(be,A.locatorHash),ve=Zk(Ue,A.locatorHash),O.dependencies.delete(be.identHash),O.dependencies.set(xe.identHash,xe),t.set(xe.descriptorHash,ve.locatorHash),e.set(xe.descriptorHash,xe),i.set(ve.locatorHash,ve),L.push([Ue,xe,ve])}),Be.push(()=>{var Qe;V=new Map;for(let le of ve.peerDependencies.values()){let fe=O.dependencies.get(le.identHash);if(!fe&&hd(A,le)&&(ee.identHash===A.identHash?fe=ee:(fe=rr(A,ee.range),e.set(fe.descriptorHash,fe),t.set(fe.descriptorHash,A.locatorHash),a.delete(fe.descriptorHash))),(!fe||fe.range==="missing:")&&ve.dependencies.has(le.identHash)){ve.peerDependencies.delete(le.identHash);continue}fe||(fe=rr(le,"missing:")),ve.dependencies.set(fe.identHash,fe),ll(fe)&&Lc(p,fe.descriptorHash).add(ve.locatorHash),f.set(fe.identHash,fe),fe.range==="missing:"&&pe.add(fe.identHash),V.set(le.identHash,(Qe=oe.get(le.identHash))!=null?Qe:ve.locatorHash)}ve.dependencies=new Map(xn(ve.dependencies,([le,fe])=>Ot(fe)))}),Ge.push(()=>{if(!i.has(ve.locatorHash))return;let Qe=u.get(Ue.locatorHash);typeof Qe=="number"&&Qe>=2&&v();let le=u.get(Ue.locatorHash),fe=typeof le!="undefined"?le+1:1;u.set(Ue.locatorHash,fe),T(xe,ve,V,{top:ce,optional:he}),u.set(Ue.locatorHash,fe-1)}),re.push(()=>{let Qe=O.dependencies.get(be.identHash);if(typeof Qe=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let le=t.get(Qe.descriptorHash);if(typeof le=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Lc(y,le).add(A.locatorHash),!!i.has(ve.locatorHash)){for(let fe of ve.peerDependencies.values()){let gt=V.get(fe.identHash);if(typeof gt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Ng(Lg(m,gt),Ot(fe)).push(ve.locatorHash)}for(let fe of pe)ve.dependencies.delete(fe)}})}for(let be of[...de,...Be])be();let se;do{se=!0;for(let[be,he,Fe]of L){let Ue=Lg(h,be.locatorHash),xe=ln(...[...Fe.dependencies.values()].map(Qe=>{let le=Qe.range!=="missing:"?t.get(Qe.descriptorHash):"missing:";if(typeof le=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${sr(r.configuration,Qe)} to have been registered`);return le===ce?`${le} (top)`:le}),he.identHash),ve=Ue.get(xe);if(typeof ve=="undefined"){Ue.set(xe,he);continue}if(ve===he)continue;i.delete(Fe.locatorHash),e.delete(he.descriptorHash),t.delete(he.descriptorHash),n.delete(Fe.locatorHash);let pe=p.get(he.descriptorHash)||[],V=[O.locatorHash,...pe];p.delete(he.descriptorHash);for(let Qe of V){let le=i.get(Qe);typeof le!="undefined"&&(le.dependencies.get(he.identHash).descriptorHash!==ve.descriptorHash&&(se=!1),le.dependencies.set(he.identHash,ve))}}}while(!se);for(let be of[...Ge,...re])be()};for(let ee of r.workspaces){let A=ee.anchoredLocator;a.delete(ee.anchoredDescriptor.descriptorHash),T(ee.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var q;(function(oe){oe[oe.NotProvided=0]="NotProvided",oe[oe.NotCompatible=1]="NotCompatible"})(q||(q={}));let $=[];for(let[ee,A]of y){let oe=i.get(ee);if(typeof oe=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let ce=m.get(ee);if(typeof ce!="undefined")for(let Z of A){let O=i.get(Z);if(typeof O!="undefined")for(let[L,de]of ce){let Be=An(L);if(O.peerDependencies.has(Be.identHash))continue;let Ge=`p${ln(Z,L,ee).slice(0,5)}`;o.set(Ge,{subject:Z,requested:Be,rootRequester:ee,allRequesters:de});let re=oe.dependencies.get(Be.identHash);if(typeof re!="undefined"){let se=k(re),be=(ne=se.version)!=null?ne:"0.0.0",he=new Set;for(let Ue of de){let xe=i.get(Ue);if(typeof xe=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let ve=xe.peerDependencies.get(Be.identHash);if(typeof ve=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");he.add(ve.range)}[...he].every(Ue=>{if(Ue.startsWith(oi.protocol)){if(!r.tryWorkspaceByLocator(se))return!1;Ue=Ue.slice(oi.protocol.length),(Ue==="^"||Ue==="~")&&(Ue="*")}return Jc(be,Ue)})||$.push({type:1,subject:O,requested:Be,requester:oe,version:be,hash:Ge,requirementCount:de.length})}else{let se=oe.peerDependenciesMeta.get(L);(se==null?void 0:se.optional)||$.push({type:0,subject:O,requested:Be,requester:oe,hash:Ge})}}}}let z=[ee=>ex(ee.subject),ee=>Ot(ee.requested),ee=>`${ee.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(X.UNNAMED,`Some peer dependencies are incorrectly met; run ${tt(r.configuration,"yarn explain peer-requirements ",Ye.CODE)} for details, where ${tt(r.configuration,"",Ye.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let ee of xn($,z))switch(ee.type){case 0:l.reportWarning(X.MISSING_PEER_DEPENDENCY,`${It(r.configuration,ee.subject)} doesn't provide ${fi(r.configuration,ee.requested)} (${tt(r.configuration,ee.hash,Ye.CODE)}), requested by ${fi(r.configuration,ee.requester)}`);break;case 1:{let A=ee.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(X.INCOMPATIBLE_PEER_DEPENDENCY,`${It(r.configuration,ee.subject)} provides ${fi(r.configuration,ee.requested)} (${tt(r.configuration,ee.hash,Ye.CODE)}) with version ${Cd(r.configuration,ee.version)}, which doesn't satisfy what ${fi(r.configuration,ee.requester)} ${A}`)}break}})}var ua;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(ua||(ua={}));var EC=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!U.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue(ua.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(ua.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(ua.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(ua.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(ua.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(ua.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(ua.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(ua.DEPENDENCY_COUNT,String(e))}reportValue(e,t){Lc(this.values,e).add(t)}reportEnumerator(e,t){Lc(this.enumerators,e).add(ln(t))}reportHit(e,t="*"){let i=Lg(this.hits,e),n=Va(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return x.join(e,"telemetry.json")}sendReport(e){var u,g,f;let t=this.getRegistryPath(),i;try{i=U.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{U.mkdirSync(x.dirname(t),{recursive:!0}),U.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>jP(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let m=p;m.userId=h,m.reportType="primary";for(let v of Object.keys((f=m.enumerators)!=null?f:{}))m.enumerators[v]=m.enumerators[v].length;c(m);let y=new Map,b=20;for(let[v,k]of Object.entries(m.values))k.length>0&&y.set(v,k.slice(0,b));for(;y.size>0;){let v={};v.userId=h,v.reportType="secondary",v.metrics={};for(let[k,T]of y)v.metrics[k]=T.shift(),T.length===0&&y.delete(k);c(v)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),t;try{t=U.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},b=y[m]=(u=y[m])!=null?u:{};for(let[v,k]of this.hits.get(m))b[v]=((g=b[v])!=null?g:0)+k}for(let m of["values","enumerators"])for(let y of this[m].keys()){let b=s[m]=(f=s[m])!=null?f:{};b[y]=[...new Set([...(h=b[y])!=null?h:[],...(p=this[m].get(y))!=null?p:[]])]}U.mkdirSync(x.dirname(e),{recursive:!0}),U.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var jR=ge(require("child_process")),fZ=ge(yc());var GR=ge(require("fs"));var Tf=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function rMe(r){let e=H.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,jR.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:te(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,jR.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:te(N({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function o0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new Bs({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,b,v,k;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!Se.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Wt.satisfiesWithPrereleases(s,o))throw new Pe(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await ye.find(H.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),f=H.toPortablePath(H.resolve(process.argv[1])),h=T=>U.readFilePromise(T).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===f||Buffer.compare(...await Promise.all([h(c),h(f)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!U.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{rMe(c)}catch(T){process.exitCode=T.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!fZ.isCI&&process.stdout.isTTY&&(ye.telemetry=new EC(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=ye.telemetry)==null||m.reportVersion(r);for(let[$,z]of l.plugins.entries()){Tf.has((b=(y=$.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?b:"")&&((v=ye.telemetry)==null||v.reportPluginName($));for(let ne of z.commands||[])n.register(ne)}let Y=n.process(process.argv.slice(2));Y.help||(k=ye.telemetry)==null||k.reportCommandName(Y.path.join(" "));let q=Y.cwd;if(typeof q!="undefined"&&!g){let $=(0,GR.realpathSync)(process.cwd()),z=(0,GR.realpathSync)(q);if($!==z){process.chdir(q),await t();return}}await n.runExit(Y,{cwd:H.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>U.rmtempPromise())}function hZ(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var YC={};ft(YC,{BaseCommand:()=>Le,WorkspaceRequiredError:()=>ht,getDynamicLibs:()=>kre,getPluginConfiguration:()=>T0,main:()=>o0,openWorkspace:()=>zf,pluginCommands:()=>Tf});var Le=class extends Re{constructor(){super(...arguments);this.cwd=J.String("--cwd",{hidden:!0})}};var ht=class extends Pe{constructor(e,t){let i=x.relative(e,t),n=x.join(e,At.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AGe=ge(ri());ws();var lGe=ge(HF()),kre=()=>new Map([["@yarnpkg/cli",YC],["@yarnpkg/core",IC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Ud],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",mp],["semver",AGe],["typanion",ug],["yup",lGe]]);async function zf(r,e){let{project:t,workspace:i}=await ze.find(r,e);if(!i)throw new ht(t.cwd,e);return i}var v_e=ge(ri());ws();var k_e=ge(HF());var YN={};ft(YN,{dedupeUtils:()=>BN,default:()=>y3e,suggestUtils:()=>cN});var Pae=ge(yc());var One=ge(zC());ws();var cN={};ft(cN,{Modifier:()=>da,Strategy:()=>Vr,Target:()=>Hr,WorkspaceModifier:()=>Zf,applyModifier:()=>Fne,extractDescriptorFromPath:()=>fN,extractRangeModifier:()=>Rne,fetchDescriptorFrom:()=>gN,findProjectDescriptors:()=>Tne,getModifier:()=>_C,getSuggestedDescriptors:()=>VC,makeWorkspaceDescriptor:()=>Lne,toWorkspaceModifier:()=>Nne});var uN=ge(ri()),vYe="workspace:",Hr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(Hr||(Hr={}));var da;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(da||(da={}));var Zf;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(Zf||(Zf={}));var Vr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Vr||(Vr={}));function _C(r,e){return r.exact?da.EXACT:r.caret?da.CARET:r.tilde?da.TILDE:e.configuration.get("defaultSemverRangePrefix")}var kYe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Rne(r,{project:e}){let t=r.match(kYe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Fne(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return uN.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Nne(r){switch(r){case da.CARET:return Zf.CARET;case da.TILDE:return Zf.TILDE;case da.EXACT:return Zf.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Lne(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${vYe}${Nne(e)}`)}async function Tne(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t===Hr.PEER){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t===Hr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function fN(r,{cwd:e,workspace:t}){return await xYe(async i=>{x.isAbsolute(r)||(r=x.relative(t.cwd,x.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await gN(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new di,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await At.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(h.name,r)})}async function VC(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t!="undefined"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Vr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Vr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await Tne(r,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes(Vr.KEEP))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,p[0])}`;m+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:m})}});break;case Vr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===r.identHash&&c.push({descriptor:h,name:`Reuse ${P.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Vr.PROJECT:await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(r);if(h===null)return;let p=Lne(h,s);c.push({descriptor:p,name:`Attach ${P.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ae.pretty(e.configuration,h.relativeCwd,ae.Type.PATH)})`})});break;case Vr.LATEST:await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n===Hr.PEER)c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ae.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await gN(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});h&&(h=Fne(h,s),c.push({descriptor:h,name:`Use ${P.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function gN(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new di,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=te(N({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:m,source:y,params:b,selector:v}=P.parseRange(P.convertToManifestRange(p.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),uN.default.valid(v)&&s!==!1){let k=typeof s=="string"?s:o.range;v=Rne(k,{project:t})+v}return P.makeDescriptor(p,P.makeRange({protocol:m,source:y,params:b,selector:v}))}async function xYe(r){return await U.mktempPromise(async e=>{let t=ye.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Nt(e,{configuration:t,check:!1,immutable:!1}))})}var XC=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=J.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=J.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=J.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=J.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=J.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=J.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=J.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=J.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=J.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.silent=J.Boolean("--silent",{hidden:!0});this.packages=J.Rest()}async execute(){var m;let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=_C(this,t),a=[...s?[Vr.REUSE]:[],Vr.PROJECT,...this.cached?[Vr.CACHE]:[],Vr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async y=>{let b=y.match(/^\.{0,2}\//)?await fN(y,{cwd:this.context.cwd,workspace:i}):P.tryParseDescriptor(y),v=y.match(/^(https?:|git@github)/);if(v)throw new Pe(`It seems you are trying to add a package using a ${ae.pretty(e,`${v[0]}...`,Ri.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${ae.pretty(e,"yarn add",Ri.CODE)} ${ae.pretty(e,P.makeDescriptor(P.makeIdent(null,"my-package"),`${v[0]}...`),Ri.DESCRIPTOR)}`);if(!b)throw new Pe(`The ${ae.pretty(e,y,Ri.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let k=PYe(i,b,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),T=await VC(b,{project:t,workspace:i,cache:n,target:k,modifier:o,strategies:a,maxResults:l});return[b,T,k]})),u=await dA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[b,{suggestions:v,rejections:k}]of c)if(v.filter(Y=>Y.descriptor!==null).length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");t.configuration.get("enableNetwork")?y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range`):y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),y.reportSeparator(),y.reportExceptionOnce(Y)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:y},b]of c){let v,k=y.filter($=>$.descriptor!==null),T=k[0].descriptor,Y=k.every($=>P.areDescriptorsEqual($.descriptor,T));k.length===1||Y?v=T:(g=!0,{answer:v}=await(0,One.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:y.map(({descriptor:$,name:z,reason:ne})=>$?{name:z,hint:ne,descriptor:$}:{name:z,hint:ne,disabled:!0}),onCancel:()=>process.exit(130),result($){return this.find($,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let q=i.manifest[b].get(v.identHash);(typeof q=="undefined"||q.descriptorHash!==v.descriptorHash)&&(i.manifest[b].set(v.identHash,v),this.optional&&(b==="dependencies"?i.manifest.ensureDependencyMeta(te(N({},v),{range:"unknown"})).optional=!0:b==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(te(N({},v),{range:"unknown"})).optional=!0)),typeof q=="undefined"?f.push([i,b,v,a]):h.push([i,b,q,v]))}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` +`),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async y=>{await t.install({cache:n,report:y,mode:this.mode})})).exitCode()}};XC.paths=[["add"]],XC.usage=Re.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var Mne=XC;function PYe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest[Hr.REGULAR].has(e.identHash),a=r.manifest[Hr.DEVELOPMENT].has(e.identHash),l=r.manifest[Hr.PEER].has(e.identHash);if((t||i)&&o)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new Pe(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?Hr.PEER:t||n?Hr.DEVELOPMENT:o?Hr.REGULAR:a?Hr.DEVELOPMENT:Hr.REGULAR}var ZC=class extends Le{constructor(){super(...arguments);this.verbose=J.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=J.String({required:!1})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,locator:i}=await ze.find(e,this.context.cwd);if(await t.restoreInstallState(),this.name){let o=(await Zt.getPackageAccessibleBinaries(i,{project:t})).get(this.name);if(!o)throw new Pe(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} +`),0}return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Zt.getPackageAccessibleBinaries(i,{project:t}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:P.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${P.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};ZC.paths=[["bin"]],ZC.usage=Re.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var Une=ZC;var $C=class extends Le{constructor(){super(...arguments);this.mirror=J.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=J.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=await Nt.find(e);return(await Je.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&t.mirrorCwd!==null,s=!this.mirror;n&&(await U.removePromise(t.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await U.removePromise(t.cwd)})).exitCode()}};$C.paths=[["cache","clean"],["cache","clear"]],$C.usage=Re.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Kne=$C;var Hne=ge(m0()),hN=ge(require("util")),em=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=J.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(t)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${t}"`);let s=e.getSpecial(t,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=Se.convertMapsToIndexableObjects(s),a=i?(0,Hne.default)(o,i):o,l=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} +`),l.exitCode();hN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,hN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} +`)}return l.exitCode()}};em.paths=[["config","get"]],em.usage=Re.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var jne=em;var eoe=ge(IN()),toe=ge(m0()),roe=ge($se()),yN=ge(require("util")),rm=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=J.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=J.String();this.value=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new Pe("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>ye.updateHomeConfiguration(h):h=>ye.updateConfiguration(t(),h))(h=>{if(n){let p=(0,eoe.default)(h);return(0,roe.default)(p,this.name,o),p}else return te(N({},h),{[i]:o})});let c=(await ye.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=Se.convertMapsToIndexableObjects(c),g=n?(0,toe.default)(u,n):u;return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{yN.inspect.styles.name="cyan",h.reportInfo(X.UNNAMED,`Successfully set ${this.name} to ${(0,yN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};rm.paths=[["config","set"]],rm.usage=Re.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var ioe=rm;var goe=ge(IN()),foe=ge(wC()),hoe=ge(uoe()),im=class extends Le{constructor(){super(...arguments);this.home=J.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=()=>{if(!e.projectCwd)throw new Pe("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new Pe(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>ye.updateHomeConfiguration(l):l=>ye.updateConfiguration(t(),l);return(await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,foe.default)(u,this.name))return l.reportWarning(X.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,goe.default)(u):N({},u);return(0,hoe.default)(g,this.name),g}),c||l.reportInfo(X.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};im.paths=[["config","unset"]],im.usage=Re.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var poe=im;var wN=ge(require("util")),nm=class extends Le{constructor(){super(...arguments);this.verbose=J.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=J.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError(X.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=Se.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(N({key:s,effective:a,source:l},o))}}else{let n=Se.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,wN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,wN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};nm.paths=[["config"]],nm.usage=Re.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]});var doe=nm;ws();var BN={};ft(BN,{Strategy:()=>bu,acceptedStrategies:()=>FWe,dedupe:()=>bN});var Coe=ge(ns()),bu;(function(e){e.HIGHEST="highest"})(bu||(bu={}));var FWe=new Set(Object.values(bu)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);Se.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!Coe.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c=="undefined"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let b=r.originalPackages.get(y);if(typeof b=="undefined")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return b.reference}),f=await t.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,m=r.originalPackages.get(p);if(typeof m=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function bN(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new di,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await NWe[e](r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Ji.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(b=>b.then(v=>{if(v===null)return;p++;let{descriptor:k,currentPackage:T,updatedPackage:Y}=v;n.reportInfo(X.UNNAMED,`${P.prettyDescriptor(s,k)} can be deduped from ${P.prettyLocator(s,T)} to ${P.prettyLocator(s,Y)}`),n.reportJson({descriptor:P.stringifyDescriptor(k),currentResolution:P.stringifyLocator(T),updatedResolution:P.stringifyLocator(Y)}),r.storedResolutions.set(k.descriptorHash,Y.locatorHash)}).finally(()=>h.tick())));let m;switch(p){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${p} packages`}let y=ae.pretty(s,e,ae.Type.CODE);return n.reportInfo(X.UNNAMED,`${m} can be deduped using the ${y} strategy`),p})}var sm=class extends Le{constructor(){super(...arguments);this.strategy=J.String("-s,--strategy",bu.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:nn(bu)});this.check=J.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=await Nt.find(e);await t.restoreInstallState({restoreResolutions:!1});let n=0,s=await Je.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await bN(t,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await t.install({cache:i,report:a,mode:this.mode})})).exitCode()}};sm.paths=[["dedupe"]],sm.usage=Re.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var moe=sm;var W0=class extends Le{async execute(){let{plugins:e}=await ye.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Bs.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Ioe()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};W0.paths=[["--clipanion=definitions"]];var yoe=W0;var z0=class extends Le{async execute(){this.context.stdout.write(this.cli.usage(null))}};z0.paths=[["help"],["--help"],["-h"]];var woe=z0;var QN=class extends Le{constructor(){super(...arguments);this.leadingArgument=J.String();this.args=J.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let e=x.resolve(this.context.cwd,H.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Boe=QN;var _0=class extends Le{async execute(){this.context.stdout.write(`${Kr||""} +`)}};_0.paths=[["-v"],["--version"]];var boe=_0;var om=class extends Le{constructor(){super(...arguments);this.commandName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,locator:i}=await ze.find(e,this.context.cwd);return await t.restoreInstallState(),await Zt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:t})}};om.paths=[["exec"]],om.usage=Re.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var Qoe=om;ws();var am=class extends Le{constructor(){super(...arguments);this.hash=J.String({required:!1,validator:hp(fp(),[pp(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return await t.restoreInstallState({restoreResolutions:!1}),await t.applyLightResolution(),typeof this.hash!="undefined"?await LWe(this.hash,t,{stdout:this.context.stdout}):(await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>P.stringifyLocator(t.storedPackages.get(a.subject)),([,a])=>P.stringifyIdent(a.requested)];for(let[a,l]of Se.sortMap(t.peerRequirements,s)){let c=t.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=t.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=ae.pretty(e,a,ae.Type.CODE),h=P.prettyLocator(e,c),p=P.prettyIdent(e,l.requested),m=P.prettyIdent(e,u),y=l.allRequesters.length-1,b=`descendant${y===1?"":"s"}`,v=y>0?` and ${y} ${b}`:"",k=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${k} ${p} to ${m}${v}`)}})).exitCode()}};am.paths=[["explain","peer-requirements"]],am.usage=Re.Usage({description:"explain a set of peer requirements",details:` + A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. + + When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. + + When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var Soe=am;async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await Je.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var b,v;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(b=a.dependencies.get(n.requested.identHash))!=null?b:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(k=>{let T=e.storedPackages.get(k);if(typeof T=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let Y=P.devirtualizeLocator(T),q=e.storedPackages.get(Y.locatorHash);if(typeof q=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let $=q.peerDependencies.get(n.requested.identHash);if(typeof $=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:T,peerDependency:$}});if(g!==null){let k=f.every(({peerDependency:T})=>Wt.satisfiesWithPrereleases(g.version,T.range));o.reportInfo(X.UNNAMED,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(v=g.version)!=null?v:"")}, which ${k?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(X.UNNAMED,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ae.mark(i),p=[];for(let{pkg:k,peerDependency:T}of Se.sortMap(f,Y=>P.stringifyLocator(Y.pkg))){let q=(g!==null?Wt.satisfiesWithPrereleases(g.version,T.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:P.stringifyLocator(k),prettyLocator:P.prettyLocator(i,k),prettyRange:P.prettyRange(i,T.range),mark:q})}let m=Math.max(...p.map(({stringifiedLocator:k})=>k.length)),y=Math.max(...p.map(({prettyRange:k})=>k.length));for(let{stringifiedLocator:k,prettyLocator:T,prettyRange:Y,mark:q}of Se.sortMap(p,({stringifiedLocator:$})=>$))o.reportInfo(null,`${T.padEnd(m+(T.length-k.length)," ")} \u2192 ${Y.padEnd(y," ")} ${q}`);p.length>1&&(o.reportSeparator(),o.reportInfo(X.UNNAMED,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}ws();var voe=ge(ri()),Am=class extends Le{constructor(){super(...arguments);this.onlyIfNeeded=J.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let t=()=>{if(typeof Kr=="undefined")throw new Pe("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=t();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await lm(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await lm(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))i=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.version))i=`file://${H.resolve(this.version)}`;else if(Wt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Wt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Wt.validRange(this.version))i=`https://repo.yarnpkg.com/${await TWe(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new Pe(`Invalid version descriptor "${this.version}"`);return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo(X.UNNAMED,`Downloading ${ae.pretty(e,i,Ri.URL)}`),a=await U.readFilePromise(H.toPortablePath(i.slice(o.length)))):(s.reportInfo(X.UNNAMED,`Retrieving ${ae.pretty(e,i,Ri.PATH)}`),a=await ir.get(i,{configuration:e})),await SN(e,null,a,{report:s})})).exitCode()}};Am.paths=[["set","version"]],Am.usage=Re.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});var koe=Am;async function TWe(r,e){let i=(await ir.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Wt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new Pe(`No matching release found for range ${ae.pretty(r,e,ae.Type.RANGE)}.`);return i[0]}async function lm(r,e){let t=await ir.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new Pe(`Tag ${ae.pretty(r,e,ae.Type.RANGE)} not found`);return t.latest[e]}async function SN(r,e,t,{report:i}){var g;e===null&&await U.mktempPromise(async f=>{let h=x.join(f,"yarn.cjs");await U.writeFilePromise(h,t);let{stdout:p}=await Nr.execvp(process.execPath,[H.fromPortablePath(h),"--version"],{cwd:f,env:te(N({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!voe.default.valid(e))throw new Error(`Invalid semver version. ${ae.pretty(r,"yarn --version",ae.Type.CODE)} returned: +${e}`)});let n=(g=r.projectCwd)!=null?g:r.startingCwd,s=x.resolve(n,".yarn/releases"),o=x.resolve(s,`yarn-${e}.cjs`),a=x.relative(r.startingCwd,o),l=x.relative(n,o),c=r.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo(X.UNNAMED,`Saving the new release in ${ae.pretty(r,a,"magenta")}`),await U.removePromise(x.dirname(o)),await U.mkdirPromise(x.dirname(o),{recursive:!0}),await U.writeFilePromise(o,t,{mode:493}),u){await ye.updateConfiguration(n,{yarnPath:l});let f=await At.tryFind(n)||new At;f.packageManager=`yarn@${e&&Se.isTaggedYarnVersion(e)?e:await lm(r,"stable")}`;let h={};f.exportTo(h);let p=x.join(n,At.fileName),m=`${JSON.stringify(h,null,f.indent)} +`;await U.changeFilePromise(p,m,{automaticNewlines:!0})}}function xoe(r){return X[yI(r)]}var OWe=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function MWe(r){let t=`https://repo.yarnpkg.com/${Se.isTaggedYarnVersion(Kr)?Kr:await lm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await ir.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(OWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=xoe(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var cm=class extends Le{constructor(){super(...arguments);this.code=J.String({required:!1,validator:hp(fp(),[pp(/^YN[0-9]{4}$/)])});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);if(typeof this.code!="undefined"){let t=xoe(this.code),i=ae.pretty(e,t,ae.Type.CODE),n=this.cli.format().header(`${this.code} - ${i}`),o=(await MWe(e)).get(this.code),a=typeof o!="undefined"?ae.jsonOrPretty(this.json,e,ae.tuple(ae.Type.MARKDOWN,{text:o,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${ae.jsonOrPretty(this.json,e,ae.tuple(ae.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:t,details:a})} +`):this.context.stdout.write(`${n} + +${a} +`)}else{let t={children:Se.mapAndFilter(Object.entries(X),([i,n])=>Number.isNaN(Number(i))?Se.mapAndFilter.skip:{label:VA(Number(i)),value:ae.tuple(ae.Type.CODE,n)})};ls.emitTree(t,{configuration:e,stdout:this.context.stdout,json:this.json})}}};cm.paths=[["explain"]],cm.usage=Re.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Poe=cm;var Doe=ge(ns()),um=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=J.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=J.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=J.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=J.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=J.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=J.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i&&!this.all)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(k,{recursive:T})=>{let Y=k.anchoredLocator.locatorHash,q=new Map,$=[Y];for(;$.length>0;){let z=$.shift();if(q.has(z))continue;let ne=t.storedPackages.get(z);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(q.set(z,ne),P.isVirtualLocator(ne)&&$.push(P.devirtualizeLocator(ne).locatorHash),!(!T&&z!==Y))for(let ee of ne.dependencies.values()){let A=t.storedResolutions.get(ee.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");$.push(A)}}return q.values()},a=({recursive:k})=>{let T=new Map;for(let Y of t.workspaces)for(let q of o(Y,{recursive:k}))T.set(q.locatorHash,q);return T.values()},l=({all:k,recursive:T})=>k&&T?t.storedPackages.values():k?a({recursive:T}):o(i,{recursive:T}),c=({all:k,recursive:T})=>{let Y=l({all:k,recursive:T}),q=this.patterns.map(ne=>{let ee=P.parseLocator(ne),A=Doe.default.makeRe(P.stringifyIdent(ee)),oe=P.isVirtualLocator(ee),ce=oe?P.devirtualizeLocator(ee):ee;return Z=>{let O=P.stringifyIdent(Z);if(!A.test(O))return!1;if(ee.reference==="unknown")return!0;let L=P.isVirtualLocator(Z),de=L?P.devirtualizeLocator(Z):Z;return!(oe&&L&&ee.reference!==Z.reference||ce.reference!==de.reference)}}),$=Se.sortMap([...Y],ne=>P.stringifyLocator(ne));return{selection:$.filter(ne=>q.length===0||q.some(ee=>ee(ne))),sortedLookup:$}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new Pe("No package matched your request");let f=new Map;if(this.dependents)for(let k of g)for(let T of k.dependencies.values()){let Y=t.storedResolutions.get(T.descriptorHash);if(typeof Y=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");Se.getArrayWithDefault(f,Y).push(k)}let h=new Map;for(let k of g){if(!P.isVirtualLocator(k))continue;let T=P.devirtualizeLocator(k);Se.getArrayWithDefault(h,T.locatorHash).push(k)}let p={},m={children:p},y=e.makeFetcher(),b={project:t,fetcher:y,cache:n,checksums:t.storedChecksums,report:new di,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},v=[async(k,T,Y)=>{var z,ne;if(!T.has("manifest"))return;let q=await y.fetch(k,b),$;try{$=await At.find(q.prefixPath,{baseFs:q.packageFs})}finally{(z=q.releaseFs)==null||z.call(q)}Y("Manifest",{License:ae.tuple(ae.Type.NO_HINT,$.license),Homepage:ae.tuple(ae.Type.URL,(ne=$.raw.homepage)!=null?ne:null)})},async(k,T,Y)=>{var A;if(!T.has("cache"))return;let q={mockedPackages:t.disabledLocators,unstablePackages:t.conditionalLocators},$=(A=t.storedChecksums.get(k.locatorHash))!=null?A:null,z=n.getLocatorPath(k,$,q),ne;if(z!==null)try{ne=U.statSync(z)}catch{}let ee=typeof ne!="undefined"?[ne.size,ae.Type.SIZE]:void 0;Y("Cache",{Checksum:ae.tuple(ae.Type.NO_HINT,$),Path:ae.tuple(ae.Type.PATH,z),Size:ee})}];for(let k of u){let T=P.isVirtualLocator(k);if(!this.virtuals&&T)continue;let Y={},q={value:[k,ae.Type.LOCATOR],children:Y};if(p[P.stringifyLocator(k)]=q,this.nameOnly){delete q.children;continue}let $=h.get(k.locatorHash);typeof $!="undefined"&&(Y.Instances={label:"Instances",value:ae.tuple(ae.Type.NUMBER,$.length)}),Y.Version={label:"Version",value:ae.tuple(ae.Type.NO_HINT,k.version)};let z=(ee,A)=>{let oe={};if(Y[ee]=oe,Array.isArray(A))oe.children=A.map(ce=>({value:ce}));else{let ce={};oe.children=ce;for(let[Z,O]of Object.entries(A))typeof O!="undefined"&&(ce[Z]={label:Z,value:O})}};if(!T){for(let ee of v)await ee(k,s,z);await e.triggerHook(ee=>ee.fetchPackageInfo,k,s,z)}k.bin.size>0&&!T&&z("Exported Binaries",[...k.bin.keys()].map(ee=>ae.tuple(ae.Type.PATH,ee)));let ne=f.get(k.locatorHash);typeof ne!="undefined"&&ne.length>0&&z("Dependents",ne.map(ee=>ae.tuple(ae.Type.LOCATOR,ee))),k.dependencies.size>0&&!T&&z("Dependencies",[...k.dependencies.values()].map(ee=>{var ce;let A=t.storedResolutions.get(ee.descriptorHash),oe=typeof A!="undefined"&&(ce=t.storedPackages.get(A))!=null?ce:null;return ae.tuple(ae.Type.RESOLUTION,{descriptor:ee,locator:oe})})),k.peerDependencies.size>0&&T&&z("Peer dependencies",[...k.peerDependencies.values()].map(ee=>{var Z,O;let A=k.dependencies.get(ee.identHash),oe=typeof A!="undefined"&&(Z=t.storedResolutions.get(A.descriptorHash))!=null?Z:null,ce=oe!==null&&(O=t.storedPackages.get(oe))!=null?O:null;return ae.tuple(ae.Type.RESOLUTION,{descriptor:ee,locator:ce})}))}ls.emitTree(m,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};um.paths=[["info"]],um.usage=Re.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Roe=um;var V0=ge(yc());ws();var gm=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=J.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=J.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=J.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=J.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.cacheFolder=J.String("--cache-folder",{hidden:!0});this.frozenLockfile=J.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=J.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=J.Boolean("--non-interactive",{hidden:!0});this.preferOffline=J.Boolean("--prefer-offline",{hidden:!0});this.production=J.Boolean("--production",{hidden:!0});this.registry=J.String("--registry",{hidden:!0});this.silent=J.Boolean("--silent",{hidden:!0});this.networkTimeout=J.String("--network-timeout",{hidden:!0})}async execute(){var g;let e=await ye.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let t=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(f,{error:h})=>{let p=await Je.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async m=>{h?m.reportError(X.DEPRECATED_CLI_SETTINGS,f):m.reportWarning(X.DEPRECATED_CLI_SETTINGS,f)});return p.hasErrors()?p.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let f=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!V0.default.VERCEL});if(f!==null)return f}if(typeof this.registry!="undefined"){let f=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(f!==null)return f}if(typeof this.preferOffline!="undefined"){let f=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!V0.default.VERCEL});if(f!==null)return f}if(typeof this.production!="undefined"){let f=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(f!==null)return f}if(typeof this.nonInteractive!="undefined"){let f=await i("The --non-interactive option is deprecated",{error:!t});if(f!==null)return f}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let f=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!V0.default.NETLIFY});if(f!==null)return f}let n=this.mode===Ci.UpdateLockfile;if(n&&(this.immutable||this.immutableCache))throw new Pe(`${ae.pretty(e,"--immutable",ae.Type.CODE)} and ${ae.pretty(e,"--immutable-cache",ae.Type.CODE)} cannot be used with ${ae.pretty(e,"--mode=update-lockfile",ae.Type.CODE)}`);let s=((g=this.immutable)!=null?g:e.get("enableImmutableInstalls"))&&!n,o=this.immutableCache&&!n;if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{await UWe(e,s)&&(h.reportInfo(X.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let f=e.projectCwd,h;try{h=await U.readFilePromise(x.join(f,xt.lockfile),"utf8")}catch{}if(h==null?void 0:h.includes("yarn lockfile v1")){let p=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async m=>{m.reportInfo(X.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),m.reportSeparator(),e.use("",{nodeLinker:"node-modules"},f,{overwrite:!0}),await ye.updateConfiguration(f,{nodeLinker:"node-modules"})});if(p.hasErrors())return p.exitCode()}}if(e.projectCwd!==null){let f=await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{var p;((p=ye.telemetry)==null?void 0:p.isNew)&&(h.reportInfo(X.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),h.reportInfo(X.TELEMETRY_NOTICE,`Run ${ae.pretty(e,"yarn config set --home enableTelemetry 0",ae.Type.CODE)} to disable`),h.reportSeparator())});if(f.hasErrors())return f.exitCode()}let{project:a,workspace:l}=await ze.find(e,this.context.cwd),c=await Nt.find(e,{immutable:o,check:this.checkCache});if(!l)throw new ht(a.cwd,this.context.cwd);return await a.restoreInstallState({restoreResolutions:!1}),(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async f=>{await a.install({cache:c,report:f,immutable:s,mode:this.mode})})).exitCode()}};gm.paths=[["install"],Re.Default],gm.usage=Re.Usage({description:"install the project dependencies",details:` + This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: + + - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). + + - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). + + - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). + + - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. + + Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. + + If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. + + If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). + + If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. + + If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var Foe=gm,KWe="|||||||",HWe=">>>>>>>",jWe="=======",Noe="<<<<<<<";async function UWe(r,e){if(!r.projectCwd)return!1;let t=x.join(r.projectCwd,r.get("lockfileFilename"));if(!await U.existsPromise(t))return!1;let i=await U.readFilePromise(t,"utf8");if(!i.includes(Noe))return!1;if(e)throw new ct(X.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=GWe(i),o,a;try{o=Si(n),a=Si(s)}catch(c){throw new ct(X.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=N(N({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await U.changeFilePromise(t,Ua(l),{automaticNewlines:!0}),!0}function GWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Noe)){for(;t.length>0;){let s=t.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(KWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` +`),e[1].join(` +`)]}var fm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=J.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=J.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=x.resolve(this.context.cwd,H.toPortablePath(this.destination)),o=await ye.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await ze.find(o,s);if(t.cwd===a.cwd)throw new Pe("Invalid destination; Can't link the project to itself");if(!l)throw new ht(a.cwd,s);let c=t.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new Pe("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new Pe("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=P.stringifyIdent(f.locator),p=this.relative?x.relative(t.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Je.start({configuration:e,stdout:this.context.stdout},async f=>{await t.install({cache:n,report:f})})).exitCode()}};fm.paths=[["link"]],fm.usage=Re.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Loe=fm;var hm=class extends Le{constructor(){super(...arguments);this.args=J.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};hm.paths=[["node"]],hm.usage=Re.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Toe=hm;var qoe=ge(require("os"));var Moe=ge(require("os"));var YWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Qu(r){let e=await ir.get(YWe,{configuration:r});return Si(e.toString())}var pm=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await Qu(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=Or(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(N({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};pm.paths=[["plugin","list"]],pm.usage=Re.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Ooe=pm;var qWe=/^[0-9]+$/;function Uoe(r){return qWe.test(r)?`pull/${r}/head`:r}var JWe=({repository:r,branch:e},t)=>[["git","init",H.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Uoe(e)],["git","reset","--hard","FETCH_HEAD"]],WWe=({branch:r})=>[["git","fetch","origin","--depth=1",Uoe(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],zWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",x.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],dm=class extends Le{constructor(){super(...arguments);this.installPath=J.String("--path",{description:"The path where the repository should be cloned to"});this.repository=J.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=J.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=J.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=J.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=J.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=J.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,Moe.tmpdir)()),"yarnpkg-sources",Rn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{await kN(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo(X.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await Cm(zWe(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=x.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await U.readFilePromise(o);await SN(e,"sources",a,{report:s}),this.skipPlugins||await _We(this,{project:t,report:s,target:i})})).exitCode()}};dm.paths=[["set","version","from","sources"]],dm.usage=Re.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]});var Koe=dm;async function Cm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await Nr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${ae.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} +`);try{await Nr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function kN(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&U.existsSync(x.join(i,".git"))){t.reportInfo(X.UNNAMED,"Fetching the latest commits"),t.reportSeparator();try{await Cm(WWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch(s){t.reportSeparator(),t.reportWarning(X.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(X.UNNAMED,"Cloning the remote repository"),t.reportSeparator(),await U.removePromise(i),await U.mkdirPromise(i,{recursive:!0}),await Cm(JWe(r,i),{configuration:e,context:r.context,target:i}))}async function _We(r,{project:e,report:t,target:i}){let n=await Qu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await vN(o,r,{project:e,report:t,target:i})}var Hoe=ge(ri()),joe=ge(require("url")),Goe=ge(require("vm"));var mm=class extends Le{constructor(){super(...arguments);this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await ze.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||H.isAbsolute(this.name)){let a=x.resolve(this.context.cwd,H.toPortablePath(this.name));i.reportInfo(X.UNNAMED,`Reading ${ae.pretty(e,a,ae.Type.PATH)}`),s=x.relative(n.cwd,a),o=await U.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new joe.URL(this.name)}catch{throw new ct(X.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!Hoe.default.valid(l.reference))throw new ct(X.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=P.stringifyIdent(l),u=await Qu(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new ct(X.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Kr!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Kr}/`))}i.reportInfo(X.UNNAMED,`Downloading ${ae.pretty(e,a,"green")}`),o=await ir.get(a,{configuration:e})}await xN(s,o,{project:n,report:i})})).exitCode()}};mm.paths=[["plugin","import"]],mm.usage=Re.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var Yoe=mm;async function xN(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Goe.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=x.resolve(t.cwd,l);i.reportInfo(X.UNNAMED,`Saving the new plugin in ${ae.pretty(n,l,"magenta")}`),await U.mkdirPromise(x.dirname(c),{recursive:!0}),await U.writeFilePromise(c,e);let u={path:l,spec:r};await ye.updateConfiguration(t.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let m=typeof p!="string"?p.path:p,y=x.resolve(t.cwd,H.toPortablePath(m)),{name:b}=Se.dynamicRequire(y);b!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),te(N({},g),{plugins:f})})}var VWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],Em=class extends Le{constructor(){super(...arguments);this.installPath=J.String("--path",{description:"The path where the repository should be cloned to"});this.repository=J.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=J.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=J.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=J.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=typeof this.installPath!="undefined"?x.resolve(this.context.cwd,H.toPortablePath(this.installPath)):x.resolve(H.toPortablePath((0,qoe.tmpdir)()),"yarnpkg-sources",Rn.makeHash(this.repository).slice(0,6));return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await ze.find(e,this.context.cwd),o=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=P.stringifyIdent(o),l=await Qu(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new ct(X.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await kN(this,{configuration:e,report:n,target:t}),await vN(c,this,{project:s,report:n,target:t})})).exitCode()}};Em.paths=[["plugin","import","from","sources"]],Em.usage=Re.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var Joe=Em;async function vN(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(X.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await Cm(VWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=x.resolve(s,`packages/${o}/bundles/${r}.js`),c=await U.readFilePromise(l);await xN(r,c,{project:i,report:n})}var Im=class extends Le{constructor(){super(...arguments);this.name=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=P.parseIdent(s);if(!e.plugins.has(s))throw new Pe(`${P.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=x.resolve(t.cwd,a);U.existsSync(l)&&(n.reportInfo(X.UNNAMED,`Removing ${ae.pretty(e,a,ae.Type.PATH)}...`),await U.removePromise(l)),n.reportInfo(X.UNNAMED,"Updating the configuration..."),await ye.updateConfiguration(t.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:te(N({},c),{plugins:u})})})).exitCode()}};Im.paths=[["plugin","remove"]],Im.usage=Re.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Woe=Im;var ym=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};ym.paths=[["plugin","runtime"]],ym.usage=Re.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var zoe=ym;var wm=class extends Le{constructor(){super(...arguments);this.idents=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(P.parseIdent(a).identHash);if(await t.restoreInstallState({restoreResolutions:!1}),await t.resolveEverything({cache:n,report:new di}),s.size>0)for(let a of t.storedPackages.values())s.has(a.identHash)&&t.storedBuildState.delete(a.locatorHash);else t.storedBuildState.clear();return(await Je.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await t.install({cache:n,report:a})})).exitCode()}};wm.paths=[["rebuild"]],wm.usage=Re.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var _oe=wm;var PN=ge(ns());ws();var Bm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=this.all?t.workspaces:[i],o=[Hr.REGULAR,Hr.DEVELOPMENT,Hr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,m=P.parseIdent(h);for(let y of s){let b=[...y.manifest.peerDependenciesMeta.keys()];for(let v of(0,PN.default)(b,h))y.manifest.peerDependenciesMeta.delete(v),l=!0,p=!0;for(let v of o){let k=y.manifest.getForScope(v),T=[...k.values()].map(Y=>P.stringifyIdent(Y));for(let Y of(0,PN.default)(T,P.stringifyIdent(m))){let{identHash:q}=P.parseIdent(Y),$=k.get(q);if(typeof $=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");y.manifest[v].delete(q),c.push([y,v,$]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new Pe(`${u} ${ae.prettyList(e,a,Ri.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Je.start({configuration:e,stdout:this.context.stdout},async p=>{await t.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};Bm.paths=[["remove"]],Bm.usage=Re.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Voe=Bm;var Xoe=ge(require("util")),X0=class extends Le{async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);return(await Je.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=Se.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Xoe.inspect)(g,l)}`)})).exitCode()}};X0.paths=[["run"]];var Zoe=X0;var bm=class extends Le{constructor(){super(...arguments);this.inspect=J.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=J.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=J.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=J.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=J.Boolean("--silent",{hidden:!0});this.scriptName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i,locator:n}=await ze.find(e,this.context.cwd);await t.restoreInstallState();let s=this.topLevel?t.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Zt.hasPackageScript(s,this.scriptName,{project:t}))return await Zt.executePackageScript(s,this.scriptName,this.args,{project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Zt.getPackageAccessibleBinaries(s,{project:t});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Zt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:t,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(t.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Zt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new Pe(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new Pe("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Tf)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new Pe(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new Pe(`Couldn't find a script named "${this.scriptName}".`)}}};bm.paths=[["run"]],bm.usage=Re.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var $oe=bm;var Qm=class extends Le{constructor(){super(...arguments);this.save=J.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=J.String();this.resolution=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(await t.restoreInstallState({restoreResolutions:!1}),!i)throw new ht(t.cwd,this.context.cwd);let s=P.parseDescriptor(this.descriptor,!0),o=P.makeDescriptor(s,this.resolution);return t.storedDescriptors.set(s.descriptorHash,s),t.storedDescriptors.set(o.descriptorHash,o),t.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await t.install({cache:n,report:l})})).exitCode()}};Qm.paths=[["set","resolution"]],Qm.usage=Re.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var eae=Qm;var tae=ge(ns()),Sm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);let s=t.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=x.resolve(this.context.cwd,H.toPortablePath(l));if(Se.isPathLike(l)){let u=await ye.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await ze.find(u,c);if(!f)throw new ht(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(P.stringifyIdent(h.locator));if(o.size===0)throw new Pe("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new Pe("The target workspace doesn't have a name and thus cannot be unlinked");o.add(P.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,tae.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{await t.install({cache:n,report:l})})).exitCode()}};Sm.paths=[["unlink"]],Sm.usage=Re.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var rae=Sm;var iae=ge(zC()),DN=ge(ns());ws();var rh=class extends Le{constructor(){super(...arguments);this.interactive=J.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=J.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=J.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=J.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=J.String("--mode",{description:"Change what artifacts installs generate",validator:nn(Ci)});this.patterns=J.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=[...t.storedDescriptors.values()],o=s.map(u=>P.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(P.parseDescriptor(u).range!=="unknown")throw new Pe("Ranges aren't allowed when using --recursive");for(let g of(0,DN.default)(o,u)){let f=P.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)t.storedDescriptors.delete(u.descriptorHash),t.storedResolutions.delete(u.descriptorHash);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{await t.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var m;let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState({restoreResolutions:!1});let s=(m=this.interactive)!=null?m:e.get("preferInteractive"),o=_C(this,t),a=s?[Vr.KEEP,Vr.REUSE,Vr.PROJECT,Vr.LATEST]:[Vr.PROJECT,Vr.LATEST],l=[],c=[];for(let y of this.patterns){let b=!1,v=P.parseDescriptor(y);for(let k of t.workspaces)for(let T of[Hr.REGULAR,Hr.DEVELOPMENT]){let q=[...k.manifest.getForScope(T).values()].map($=>P.stringifyIdent($));for(let $ of(0,DN.default)(q,P.stringifyIdent(v))){let z=P.parseIdent($),ne=k.manifest[T].get(z.identHash);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let ee=P.makeDescriptor(z,v.range);l.push(Promise.resolve().then(async()=>[k,T,ne,await VC(ee,{project:t,workspace:k,cache:n,target:T,modifier:o,strategies:a})])),b=!0}}b||c.push(y)}if(c.length>1)throw new Pe(`Patterns ${ae.prettyList(e,c,Ri.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new Pe(`Pattern ${ae.prettyList(e,c,Ri.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await dA.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async y=>{for(let[,,b,{suggestions:v,rejections:k}]of u){let T=v.filter(Y=>Y.descriptor!==null);if(T.length===0){let[Y]=k;if(typeof Y=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let q=this.cli.error(Y);t.configuration.get("enableNetwork")?y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range + +${q}`):y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${q}`)}else T.length>1&&!s&&y.reportError(X.CANT_SUGGEST_RESOLUTIONS,`${P.prettyDescriptor(e,b)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[y,b,,{suggestions:v}]of u){let k,T=v.filter(z=>z.descriptor!==null),Y=T[0].descriptor,q=T.every(z=>P.areDescriptorsEqual(z.descriptor,Y));T.length===1||q?k=Y:(f=!0,{answer:k}=await(0,iae.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${P.prettyWorkspace(e,y)} \u276F ${b}?`,choices:v.map(({descriptor:z,name:ne,reason:ee})=>z?{name:ne,hint:ee,descriptor:z}:{name:ne,hint:ee,disabled:!0}),onCancel:()=>process.exit(130),result(z){return this.find(z,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let $=y.manifest[b].get(k.identHash);if(typeof $=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if($.descriptorHash!==k.descriptorHash)y.manifest[b].set(k.identHash,k),h.push([y,b,$,k]);else{let z=e.makeResolver(),ne={project:t,resolver:z},ee=z.bindDescriptor($,y.anchoredLocator,ne);t.forgetResolution(ee)}}return await e.triggerMultipleHooks(y=>y.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` +`),(await Je.start({configuration:e,stdout:this.context.stdout},async y=>{await t.install({cache:n,report:y,mode:this.mode})})).exitCode()}};rh.paths=[["up"]],rh.usage=Re.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),rh.schema=[tS("recursive",bc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var nae=rh;var vm=class extends Le{constructor(){super(...arguments);this.recursive=J.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=J.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=P.parseIdent(this.package).identHash,s=this.recursive?ZWe(t,n,{configuration:e,peers:this.peers}):XWe(t,n,{configuration:e,peers:this.peers});ls.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};vm.paths=[["why"]],vm.usage=Re.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var sae=vm;function XWe(r,e,{configuration:t,peers:i}){let n=Se.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=r.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=P.stringifyLocator(a);s[p]={value:[a,ae.Type.LOCATOR],children:l}}let h=P.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ae.Type.DEPENDENT]}}}return o}function ZWe(r,e,{configuration:t,peers:i}){let n=Se.sortMap(r.workspaces,f=>P.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let m=r.storedResolutions.get(p.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let m=p!==null?ae.tuple(ae.Type.DEPENDENT,{locator:f,descriptor:p}):ae.tuple(ae.Type.LOCATOR,f),y={},b={value:m,children:y},v=P.stringifyLocator(f);if(h[v]=b,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&r.tryWorkspaceByLocator(f))))for(let k of f.dependencies.values()){if(!i&&f.peerDependencies.has(k.identHash))continue;let T=r.storedResolutions.get(k.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let Y=r.storedPackages.get(T);if(!Y)throw new Error("Assertion failed: The package should have been registered");g(Y,y,k)}};for(let f of n){let h=r.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var GN={};ft(GN,{default:()=>E3e,gitUtils:()=>Su});var Su={};ft(Su,{TreeishProtocols:()=>Mn,clone:()=>KN,fetchBase:()=>Sae,fetchChangedFiles:()=>vae,fetchChangedWorkspaces:()=>C3e,fetchRoot:()=>Qae,isGitUrl:()=>nh,lsRemote:()=>bae,normalizeLocator:()=>ON,normalizeRepoUrl:()=>km,resolveUrl:()=>UN,splitRepoUrl:()=>xm});var LN=ge(Iae()),yae=ge($w()),ih=ge(require("querystring")),TN=ge(ri()),wae=ge(require("url"));function Bae(){return te(N({},process.env),{GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`})}var d3e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Mn;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(Mn||(Mn={}));function nh(r){return r?d3e.some(e=>!!r.match(e)):!1}function xm(r){r=km(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:Mn.Head,request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=ih.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Mn).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=Mn.Head,a="HEAD");for(let l of Object.values(Mn))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function km(r,{git:e=!1}={}){var t;if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){r=r.replace(/^git\+([^:]+):/,"$1:");let i;try{i=wae.default.parse(r)}catch{i=null}i&&i.protocol==="ssh:"&&((t=i.path)==null?void 0:t.startsWith("/:"))&&(r=r.replace(/^ssh:\/\//,""))}return r}function ON(r){return P.makeLocator(r,km(r.reference))}async function bae(r,e){let t=km(r,{git:!0});if(!ir.getNetworkSettings(`https://${(0,LN.default)(t).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${t}' has been blocked because of your configuration settings`);let n=await MN("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Bae()},{configuration:e,normalizedRepoUrl:t}),s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function UN(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=xm(r),o=await bae(t,e),a=(c,u)=>{switch(c){case Mn.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return ih.default.stringify(te(N({},s),{commit:u}))}case Mn.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return ih.default.stringify(te(N({},s),{commit:g}))}case Mn.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return ih.default.stringify(te(N({},s),{commit:g}))}case Mn.Semver:{let g=Wt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,m])=>[TN.default.parse(p.slice(10)),m]).filter(p=>p[0]!==null)),h=TN.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return ih.default.stringify(te(N({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(Mn.Commit,u))!==null||(g=l(Mn.Tag,u))!==null||(g=l(Mn.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${t}#${a(i,n)}`}async function KN(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=xm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=km(t,{git:!0});if(ir.getNetworkSettings(`https://${(0,LN.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await U.mktempPromise(),a={cwd:o,env:Bae()};return await MN("cloning the repository",["clone","-c core.autocrlf=false",s,H.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await MN("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Qae(r){let e=null,t,i=r;do t=i,await U.existsPromise(x.join(t,".git"))&&(e=t),i=x.dirname(t);while(e===null&&i!==t);return e}async function Sae(r,{baseRefs:e}){if(e.length===0)throw new Pe("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await Nr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new Pe(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await Nr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await Nr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function vae(r,{base:e,project:t}){let i=Se.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await Nr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,H.toPortablePath(c))),{stdout:o}=await Nr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>x.resolve(r,H.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!x.relative(t.cwd,c).match(i)):l}async function C3e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new Pe("This command can only be run from within a Yarn project");let t=[x.resolve(e.cwd,e.configuration.get("cacheFolder")),x.resolve(e.cwd,e.configuration.get("installStatePath")),x.resolve(e.cwd,e.configuration.get("lockfileFilename")),x.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Qae(e.configuration.projectCwd);if(i==null)throw new Pe("This command can only be run on Git repositories");let n=await Sae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await vae(i,{base:n.hash,project:e});return new Set(Se.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?Se.mapAndFilter.skip:t.some(l=>o.startsWith(l))?Se.mapAndFilter.skip:a}))}async function MN(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await Nr.execvp("git",e,te(N({},t),{strict:!0}))}catch(s){if(!(s instanceof Nr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new ct(X.EXCEPTION,`Failed ${r}`,l=>{l.reportError(X.EXCEPTION,` ${ae.prettyField(i,{label:"Repository URL",value:ae.tuple(ae.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let f=u==="error"?"Error":`${(0,yae.default)(u)} Error`;l.reportError(X.EXCEPTION,` ${ae.prettyField(i,{label:f,value:ae.tuple(ae.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var HN=class{supports(e,t){return nh(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=ON(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o=te(N({},t),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await KN(e.reference,t.project.configuration),n=xm(e.reference),s=x.join(i,"package.tgz");await Zt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await U.readFilePromise(s);return await Se.releaseAfterUseAsync(async()=>await Bi.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var jN=class{supportsDescriptor(e,t){return nh(e.range)}supportsLocator(e,t){return nh(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await UN(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var m3e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:Ie.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:Ie.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:Ie.NUMBER,default:2}},fetchers:[HN],resolvers:[jN]};var E3e=m3e;var Pm=class extends Le{constructor(){super(...arguments);this.since=J.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=J.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd);return(await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Su.fetchChangedWorkspaces({ref:this.since,project:t}):t.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of At.hardDependencies)for(let[h,p]of l.getForScope(f)){let m=t.tryWorkspaceByDescriptor(p);m===null?t.workspacesByIdent.has(h)&&g.add(p):u.add(m)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>P.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(N({location:a.relativeCwd,name:l.name?P.stringifyIdent(l.name):null},c))}})).exitCode()}};Pm.paths=[["workspaces","list"]],Pm.usage=Re.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var kae=Pm;var Dm=class extends Le{constructor(){super(...arguments);this.workspaceName=J.String();this.commandName=J.String();this.args=J.Proxy()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=t.workspaces,s=new Map(n.map(a=>{let l=P.convertToIdent(a.locator);return[P.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new Pe(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${a.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};Dm.paths=[["workspace"]],Dm.usage=Re.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var xae=Dm;var I3e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:Ie.BOOLEAN,default:Pae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:Ie.STRING,values:["^","~",""],default:da.CARET}},commands:[Kne,jne,ioe,poe,eae,Koe,koe,kae,yoe,woe,Boe,boe,Mne,Une,doe,moe,Qoe,Soe,Poe,Roe,Foe,Loe,rae,Toe,Joe,Yoe,Woe,Ooe,zoe,_oe,Voe,Zoe,$oe,nae,sae,xae]},y3e=I3e;var _N={};ft(_N,{default:()=>B3e});var He={optional:!0},qN=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:He,zenObservable:He}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:He,zenObservable:He}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:He}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:He,["postcss-jsx"]:He,["postcss-less"]:He,["postcss-markdown"]:He,["postcss-scss"]:He}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:He}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:He}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:He,"vue-template-compiler":He}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:He,"utf-8-validate":He}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":He,"vuetify-loader":He}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":He}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":He}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":He}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:He}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:He,tinyliquid:He,"liquid-node":He,jade:He,"then-jade":He,dust:He,"dustjs-helpers":He,"dustjs-linkedin":He,swig:He,"swig-templates":He,"razor-tmpl":He,atpl:He,liquor:He,twig:He,ejs:He,eco:He,jazz:He,jqtpl:He,hamljs:He,hamlet:He,whiskers:He,"haml-coffee":He,"hogan.js":He,templayed:He,handlebars:He,underscore:He,lodash:He,pug:He,"then-pug":He,qejs:He,walrus:He,mustache:He,just:He,ect:He,mote:He,toffee:He,dot:He,"bracket-template":He,ractive:He,nunjucks:He,htmling:He,"babel-core":He,plates:He,"react-dom":He,react:He,"arc-templates":He,vash:He,slm:He,marko:He,teacup:He,"coffee-script":He,squirrelly:He,twing:He}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":He}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":He,vue:He}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:He}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:He}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":He,"webpack-command":He}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":He}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":He}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:He,jimp:He}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":He,"eslint-import-resolver-typescript":He,"eslint-import-resolver-webpack":He,"@typescript-eslint/parser":He}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":He}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":He}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.0"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:He}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:He}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@*",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:He}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@*",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:He}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:He}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}]];var JN;function Dae(){return typeof JN=="undefined"&&(JN=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),JN}var WN;function Rae(){return typeof WN=="undefined"&&(WN=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),WN}var zN;function Fae(){return typeof zN=="undefined"&&(zN=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),zN}var Nae=new Map([[P.makeIdent(null,"fsevents").identHash,Dae],[P.makeIdent(null,"resolve").identHash,Rae],[P.makeIdent(null,"typescript").identHash,Fae]]),w3e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of qN)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=Nae.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(r,e,t,i)=>typeof Nae.get(r.identHash)=="undefined"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},B3e=w3e;var VN={};ft(VN,{default:()=>Q3e});var Z0=class extends Le{constructor(){super(...arguments);this.pkg=J.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=J.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=J.String();this.args=J.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let t=P.parseDescriptor(this.command),i;t.scope?i=P.makeIdent(t.scope,`create-${t.name}`):t.name.startsWith("@")?i=P.makeIdent(t.name.substring(1),"create"):i=P.makeIdent(null,`create-${t.name}`);let n=P.stringifyIdent(i);return t.range!=="unknown"&&(n+=`@${t.range}`),this.cli.run(["dlx",...e,n,...this.args])}};Z0.paths=[["create"]];var Lae=Z0;var Rm=class extends Le{constructor(){super(...arguments);this.packages=J.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=J.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=J.String();this.args=J.Proxy()}async execute(){return ye.telemetry=null,await U.mktempPromise(async e=>{var p;let t=x.join(e,`dlx-${process.pid}`);await U.mkdirPromise(t),await U.writeFilePromise(x.join(t,"package.json"),`{} +`),await U.writeFilePromise(x.join(t,"yarn.lock"),"");let i=x.join(t,".yarnrc.yml"),n=await ye.findProjectCwd(this.context.cwd,xt.lockfile),s=!(await ye.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?x.join(n,".yarnrc.yml"):null;o!==null&&U.existsSync(o)?(await U.copyFilePromise(o,i),await ye.updateConfiguration(t,m=>{let y=te(N({},m),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(m.plugins)&&(y.plugins=m.plugins.map(b=>{let v=typeof b=="string"?b:b.path,k=H.isAbsolute(v)?v:H.resolve(H.fromPortablePath(n),v);return typeof b=="string"?k:{path:k,spec:b.spec}})),y})):await U.writeFilePromise(i,`enableGlobalCache: ${s} +enableTelemetry: false +`);let a=(p=this.packages)!=null?p:[this.command],l=P.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:t,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` +`);let u=await ye.find(t,this.context.plugins),{project:g,workspace:f}=await ze.find(u,t);if(f===null)throw new ht(g.cwd,t);await g.restoreInstallState();let h=await Zt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Zt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Rm.paths=[["dlx"]],Rm.usage=Re.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Tae=Rm;var b3e={commands:[Lae,Tae]},Q3e=b3e;var sL={};ft(sL,{default:()=>k3e,fileUtils:()=>XN});var sh=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Fm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Xr="file:";var XN={};ft(XN,{makeArchiveFromLocator:()=>$0,makeBufferFromLocator:()=>eL,makeLocator:()=>$N,makeSpec:()=>Oae,parseSpec:()=>ZN});function ZN(r){let{params:e,selector:t}=P.parseRange(r),i=H.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function Oae({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t!="undefined"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:N(N({},s),n)})}function $N(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,Oae({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function $0(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=x.isAbsolute(s)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new _t(Me.root),prefixPath:x.relative(Me.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=x.join(a.prefixPath,s);return await Se.releaseAfterUseAsync(async()=>await Bi.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function eL(r,{protocol:e,fetchOptions:t}){return(await $0(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var tL=class{supports(e,t){return!!e.reference.startsWith(Xr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return $0(e,{protocol:Xr,fetchOptions:t})}};var S3e=2,rL=class{supportsDescriptor(e,t){return e.range.match(sh)?!0:!!e.range.startsWith(Xr)}supportsLocator(e,t){return!!e.reference.startsWith(Xr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=ZN(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await eL(P.makeLocator(e,P.makeRange({protocol:Xr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Xr,fetchOptions:i.fetchOptions}),a=Rn.makeHash(`${S3e}`,o).slice(0,6);return[$N(e,{parentLocator:s,path:n,folderHash:a,protocol:Xr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var iL=class{supports(e,t){return Fm.test(e.reference)?!!e.reference.startsWith(Xr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Xr}),s=x.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:x.relative(Me.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.join(o.prefixPath,n),c=await a.readFilePromise(l);return await Se.releaseAfterUseAsync(async()=>await Bi.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var nL=class{supportsDescriptor(e,t){return Fm.test(e.range)?!!(e.range.startsWith(Xr)||sh.test(e.range)):!1}supportsLocator(e,t){return Fm.test(e.reference)?!!e.reference.startsWith(Xr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return sh.test(e.range)&&(e=P.makeDescriptor(e,`${Xr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range;return n.startsWith(Xr)&&(n=n.slice(Xr.length)),[P.makeLocator(e,`${Xr}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var v3e={fetchers:[iL,tL],resolvers:[nL,rL]},k3e=v3e;var aL={};ft(aL,{default:()=>D3e});var Mae=ge(require("querystring")),Uae=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function Kae(r){return r?Uae.some(e=>!!r.match(e)):!1}function Hae(r){let e;for(let a of Uae)if(e=r.match(a),e)break;if(!e)throw new Error(x3e(r));let[,t,i,n,s="master"]=e,{commit:o}=Mae.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function x3e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var oL=class{supports(e,t){return!!Kae(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await ir.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await U.mktempPromise(async n=>{let s=new _t(n);await Bi.extractArchiveTo(i,s,{stripComponents:1});let o=Su.splitRepoUrl(e.reference),a=x.join(n,"package.tgz");await Zt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await U.readFilePromise(a);return await Bi.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=Hae(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var P3e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new oL;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch(n){return null}}}},D3e=P3e;var cL={};ft(cL,{default:()=>F3e});var Nm=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,Lm=/^https?:/;var AL=class{supports(e,t){return Nm.test(e.reference)?!!Lm.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await ir.get(e.reference,{configuration:t.project.configuration});return await Bi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var lL=class{supportsDescriptor(e,t){return Nm.test(e.range)?!!Lm.test(e.range):!1}supportsLocator(e,t){return Nm.test(e.reference)?!!Lm.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var R3e={fetchers:[AL],resolvers:[lL]},F3e=R3e;var hL={};ft(hL,{default:()=>N4e});var hAe=ge(fAe()),fL=ge(require("util")),Tm=class extends Le{constructor(){super(...arguments);this.private=J.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=J.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=J.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=J.Boolean("-2",!1,{hidden:!0});this.yes=J.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=J.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return t!==null?await this.executeProxy(e,t):await this.executeRegular(e)}async executeProxy(e,t){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new Pe("Cannot use the --install flag from within a project subdirectory");U.existsSync(this.context.cwd)||await U.mkdirPromise(this.context.cwd,{recursive:!0});let i=x.join(this.context.cwd,e.get("lockfileFilename"));U.existsSync(i)||await U.writeFilePromise(i,"");let n=await this.cli.run(["set","version",t],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await U.mktempPromise(async o=>{let{code:a}=await Nr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Zt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let t=null;try{t=(await ze.find(e,this.context.cwd)).project}catch{t=null}U.existsSync(this.context.cwd)||await U.mkdirPromise(this.context.cwd,{recursive:!0});let i=await At.tryFind(this.context.cwd)||new At,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:P.makeIdent(e.get("initScope"),x.basename(this.context.cwd)),i.packageManager=Kr&&Se.isTaggedYarnVersion(Kr)?`yarn@${Kr}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await U.mkdirPromise(x.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),fL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,fL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} +`);let o=x.join(this.context.cwd,At.fileName);await U.changeFilePromise(o,`${JSON.stringify(s,null,2)} +`,{automaticNewlines:!0});let a=x.join(this.context.cwd,"README.md");if(U.existsSync(a)||await U.writeFilePromise(a,`# ${P.stringifyIdent(i.name)} +`),!t||t.cwd===this.context.cwd){let c=x.join(this.context.cwd,xt.lockfile);U.existsSync(c)||await U.writeFilePromise(c,"");let g=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(y=>`${y} +`).join(""),f=x.join(this.context.cwd,".gitignore");U.existsSync(f)||await U.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,hAe.default)(h,e.get("initEditorConfig"));let p=`root = true +`;for(let[y,b]of Object.entries(h)){p+=` +[${y}] +`;for(let[v,k]of Object.entries(b))p+=`${v.replace(/[A-Z]/g,Y=>`_${Y.toLowerCase()}`)} = ${k} +`}let m=x.join(this.context.cwd,".editorconfig");U.existsSync(m)||await U.writeFilePromise(m,p),U.existsSync(x.join(this.context.cwd,".git"))||await Nr.execvp("git",["init"],{cwd:this.context.cwd})}}};Tm.paths=[["init"]],Tm.usage=Re.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var pAe=Tm;var F4e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:Ie.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:Ie.MAP,valueDefinition:{description:"",type:Ie.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:Ie.MAP,valueDefinition:{description:"",type:Ie.ANY}}},commands:[pAe]},N4e=F4e;var EL={};ft(EL,{default:()=>T4e});var BA="portal:",bA="link:";var pL=class{supports(e,t){return!!e.reference.startsWith(BA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:BA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:BA}),s=x.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,localPath:l}:{packageFs:new Ta(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot}}};var dL=class{supportsDescriptor(e,t){return!!e.range.startsWith(BA)}supportsLocator(e,t){return!!e.reference.startsWith(BA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(BA.length);return[P.makeLocator(e,`${BA}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await Se.releaseAfterUseAsync(async()=>await At.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return te(N({},e),{version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var CL=class{supports(e,t){return!!e.reference.startsWith(bA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:bA});if(x.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:x.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:bA}),s=x.isAbsolute(n)?{packageFs:new _t(Me.root),prefixPath:Me.dot,localPath:Me.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new _t(Me.root),prefixPath:x.relative(Me.root,s.localPath),localPath:Me.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=x.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new _t(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Ta(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Me.dot,discardFromLookup:!0}}};var mL=class{supportsDescriptor(e,t){return!!e.range.startsWith(bA)}supportsLocator(e,t){return!!e.reference.startsWith(bA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(bA.length);return[P.makeLocator(e,`${bA}${H.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return te(N({},e),{version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:Qt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var L4e={fetchers:[CL,pL],resolvers:[mL,dL]},T4e=L4e;var WL={};ft(WL,{default:()=>qze});var Un;(function(i){i[i.REGULAR=0]="REGULAR",i[i.WORKSPACE=1]="WORKSPACE",i[i.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(Un||(Un={}));var QA;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(QA||(QA={}));var IL=(r,e)=>`${r}@${e}`,dAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return IL(r,i)},Bo;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(Bo||(Bo={}));var mAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=O4e(r,s),l=!1,c=0;do l=yL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=Om(a);if(yL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${u}, next tree: +${Om(a)}`);let f=CAe(a);if(f)throw new Error(`${f}, after hoisting finished: +${Om(a)}`)}return s.debugLevel>=2&&console.log(Om(a)),M4e(a)},U4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},EAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:p,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,dependencyKind:h,hoistedFrom:new Map(p),hoistedTo:new Map(m)},b=y.dependencies.get(t);return b&&b.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},H4e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},wL=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},yL=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=G4e(o),l=H4e(o,a),c=r==o?new Map:n.fastLookupPossible?U4e(e):K4e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),p=new Map;do{let m=j4e(r,e,t,c,h,l,i,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,b]of l)b.length>1&&!o.dependencies.has(y)&&(h.delete(y),b.shift(),h.set(y,b[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=yL(r,[...e,m],t,p,n);y.isGraphChanged&&(f=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},Y4e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},q4e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(y=>Li(y)).join("\u2192")}`);let h=t[t.length-1],m=!(i.ident===h.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!Y4e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=h.dependencyKind!==1||h.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=h.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Li(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,b=n.get(i.name);if(y=!b||b.ident===i.ident,l&&!y&&(g=`- filled by: ${Li(b.locator)} at ${u}`),y)for(let v=t.length-1;v>=1;v--){let T=t[v].dependencies.get(i.name);if(T&&T.ident!==i.ident){y=!1;let Y=a.get(h);Y||(Y=new Set,a.set(h,Y)),Y.add(i.name),l&&(g=`- filled by ${Li(T.locator)} at ${t.slice(0,v).map(q=>Li(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Li(o.get(i.name)[0])} at ${u}`)),m){let y=!0,b=new Set(i.peerNames);for(let v=t.length-1;v>=1;v--){let k=t[v];for(let T of b){if(k.peerNames.has(T)&&k.originalDependencies.has(T))continue;let Y=k.dependencies.get(T);Y&&r.dependencies.get(T)!==Y&&(v===t.length-1?f.add(Y):(f=null,y=!1,l&&(g=`- peer dependency ${Li(Y.locator)} from parent ${Li(k.locator)} was not hoisted to ${u}`))),b.delete(T)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let b=n.get(y.name)||r.dependencies.get(y.name);if(!b||y.ident!==b.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Li(y.locator)}, available: ${Li(b==null?void 0:b.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:m?0:1,reason:g}},eb=r=>`${r.name}@${r.locator}`,j4e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(b,v,k,T,Y)=>{if(u.has(T))return;let q=[...v,eb(T)],$=[...k,eb(T)],z=new Map,ne=new Map;for(let Z of wL(T)){let O=q4e(c,t,[c,...b,T],Z,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(ne.set(Z,O),O.isHoistable===2)for(let L of O.dependsOn){let de=z.get(L.name)||new Set;de.add(Z.name),z.set(L.name,de)}}let ee=new Set,A=(Z,O,L)=>{if(!ee.has(Z)){ee.add(Z),ne.set(Z,{isHoistable:1,reason:L});for(let de of z.get(Z.name)||[])A(T.dependencies.get(de),O,l.debugLevel>=2?`- peer dependency ${Li(Z.locator)} from parent ${Li(T.locator)} was not hoisted`:"")}};for(let[Z,O]of ne)O.isHoistable===1&&A(Z,O,O.reason);let oe=!1;for(let Z of ne.keys())if(!ee.has(Z)){f=!0;let O=o.get(T);O&&O.has(Z.name)&&(g=!0),oe=!0,T.dependencies.delete(Z.name),T.hoistedDependencies.set(Z.name,Z),T.reasons.delete(Z.name);let L=c.dependencies.get(Z.name);if(l.debugLevel>=2){let de=Array.from(v).concat([T.locator]).map(Ge=>Li(Ge)).join("\u2192"),Be=c.hoistedFrom.get(Z.name);Be||(Be=[],c.hoistedFrom.set(Z.name,Be)),Be.push(de),T.hoistedTo.set(Z.name,Array.from(e).map(Ge=>Li(Ge.locator)).join("\u2192"))}if(!L)c.ident!==Z.ident&&(c.dependencies.set(Z.name,Z),Y.add(Z));else for(let de of Z.references)L.references.add(de)}if(T.dependencyKind===2&&oe&&(g=!0),l.check){let Z=CAe(r);if(Z)throw new Error(`${Z}, after hoisting dependencies of ${[c,...b,T].map(O=>Li(O.locator)).join("\u2192")}: +${Om(r)}`)}let ce=wL(T);for(let Z of ce)if(ee.has(Z)){let O=ne.get(Z);if((n.get(Z.name)===Z.ident||!T.reasons.has(Z.name))&&O.isHoistable!==0&&T.reasons.set(Z.name,O.reason),!Z.isHoistBorder&&$.indexOf(eb(Z))<0){u.add(T);let de=EAe(T,Z);h([...b,T],q,$,de,m),u.delete(T)}}},p,m=new Set(wL(c)),y=Array.from(e).map(b=>eb(b));do{p=m,m=new Set;for(let b of p){if(b.locator===c.locator||b.isHoistBorder)continue;let v=EAe(c,b);h([],Array.from(t),y,v,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},CAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>Li(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,m=`${h?` hoisted to ${h}`:""}`,y=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},O4e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:IL(t,n),ident:dAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:m,peerNames:y,hoistPriority:b,dependencyKind:v}=c,k=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([m]),locator:IL(p,m),ident:dAe(p,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:k?k.has(h):!1,hoistPriority:b||0,dependencyKind:v||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=m=>{if(!h.has(m)){h.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||p(y)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of r.dependencies)l(c,o);return o},BL=r=>r.substring(0,r.indexOf("@",1)),M4e=r=>{let e={name:r.name,identName:BL(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:BL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},G4e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Li=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},IAe=5e4,Om=r=>{let e=0,t=(n,s,o="")=>{if(e>IAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+Li(u.locator)+(g?` ${g}`:"")} +`,l+=t(u,s,`${o}${cIAe?` +Tree is too large, part of the tree has been dunped +`:"")};var bo;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(bo||(bo={}));var Kn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Kn||(Kn={}));var yAe="node_modules",vu="$wsroot$";var Mm=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=J4e(r,e),o=null;if(n.length===0){let a=mAe(t,{hoistingLimits:i});o=W4e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},Ca=r=>`${r.name}@${r.reference}`,bL=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(x.delimiter).length,o=n.split(x.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},wAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},QL=(r,e,t,i)=>{if(r.linkType!==bo.SOFT)return!1;let n=H.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return x.contains(i,n)===null},z4e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=H.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=Ca(f);if(l.has(p))return;l.add(p);let m=r.getPackageInformation(f);if(m){let y=h?Ca(h):"";if(Ca(f)!==y&&m.linkType===bo.SOFT&&!QL(m,f,r,i)){let b=BAe(m,f,r);(!a.get(b)||f.reference.startsWith("workspace:"))&&a.set(b,f)}for(let[b,v]of m.packageDependencies)v!==null&&(m.packagePeers.has(b)||c(r.getLocator(b,v),f))}};for(let f of o)c(f,null);let u=i.split(x.sep);for(let f of a.values()){let h=r.getPackageInformation(f),m=H.toPortablePath(h.packageLocation.slice(0,-1)).split(x.sep).slice(u.length),y=s;for(let b of m){let v=y.children.get(b);v||(v={children:new Map},y.children.set(b,v)),y=v}y.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=Ca(h),m=n.get(p);m||(m=new Set,n.set(p,m)),m.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},J4e=(r,e)=>{let t=[],i=!1,n=new Map,s=z4e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=H.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:Un.WORKSPACE},u=new Map,g=(h,p)=>`${Ca(p)}:${h}`,f=(h,p,m,y,b,v,k,T)=>{var Z,O;let Y=g(h,m),q=u.get(Y),$=!!q;!$&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(Y,c));let z=QL(p,m,r,l);if(!q){let L=Un.REGULAR;z?L=Un.EXTERNAL_SOFT_LINK:p.linkType===bo.SOFT&&m.name.endsWith(vu)&&(L=Un.WORKSPACE),q={name:h,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:L===Un.WORKSPACE?new Set:p.packagePeers,dependencyKind:L},u.set(Y,q)}let ne;if(z?ne=2:b.linkType===bo.SOFT?ne=1:ne=0,q.hoistPriority=Math.max(q.hoistPriority||0,ne),T&&!z){let L=Ca({name:y.identName,reference:y.reference}),de=n.get(L)||new Set;n.set(L,de),de.add(q.name)}let ee=new Map(p.packageDependencies);if(e.project){let L=e.project.workspacesByCwd.get(H.toPortablePath(p.packageLocation.slice(0,-1)));if(L){let de=new Set([...Array.from(L.manifest.peerDependencies.values(),Be=>P.stringifyIdent(Be)),...Array.from(L.manifest.peerDependenciesMeta.keys())]);for(let Be of de)ee.has(Be)||(ee.set(Be,v.get(Be)||null),q.peerNames.add(Be))}}let A=Ca({name:m.name.replace(vu,""),reference:m.reference}),oe=s.get(A);if(oe)for(let L of oe)ee.set(`${L.name}${vu}`,L.reference);(p!==b||p.linkType!==bo.SOFT||!z&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(k)))&&y.dependencies.add(q);let ce=m!==a&&p.linkType===bo.SOFT&&!m.name.endsWith(vu)&&!z;if(!$&&!ce){let L=new Map;for(let[de,Be]of ee)if(Be!==null){let Ge=r.getLocator(de,Be),re=r.getLocator(de.replace(vu,""),Be),se=r.getPackageInformation(re);if(se===null)throw new Error("Assertion failed: Expected the package to have been registered");let be=QL(se,Ge,r,l);if(e.validateExternalSoftLinks&&e.project&&be){se.packageDependencies.size>0&&(i=!0);for(let[ve,pe]of se.packageDependencies)if(pe!==null){let V=P.parseLocator(Array.isArray(pe)?`${pe[0]}@${pe[1]}`:`${ve}@${pe}`);if(Ca(V)!==Ca(Ge)){let Qe=ee.get(ve);if(Qe){let le=P.parseLocator(Array.isArray(Qe)?`${Qe[0]}@${Qe[1]}`:`${ve}@${Qe}`);wAe(le,V)||t.push({messageName:X.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Ge.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,le)}`})}else{let le=L.get(ve);if(le){let fe=le.target,gt=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${ve}@${fe}`);wAe(gt,V)||t.push({messageName:X.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(Ge.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,V)} conflicts with dependency ${P.prettyLocator(e.project.configuration,gt)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(le.portal.name))}`})}else L.set(ve,{target:V.reference,portal:Ge})}}}}let he=(Z=e.hoistingLimitsByCwd)==null?void 0:Z.get(k),Fe=be?k:x.relative(l,H.toPortablePath(se.packageLocation))||Me.dot,Ue=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(Fe),xe=he===Kn.DEPENDENCIES||Ue===Kn.DEPENDENCIES||Ue===Kn.WORKSPACES;f(de,se,Ge,q,p,ee,Fe,xe)}}};return f(a.name,o,a,c,o,o.packageDependencies,Me.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function BAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return H.toPortablePath(i||r.packageLocation)}function _4e(r,e,t){let i=e.getLocator(r.name.replace(vu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return t.pnpifyFs?(o=H.toPortablePath(n.packageLocation),s=bo.SOFT):(o=BAe(n,r,e),s=n.linkType),{linkType:s,target:o}}var W4e=(r,e,t)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=_4e(u,r,t);return{locator:Ca(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:Jr(g),name:Jr(f)}:{scope:null,name:Jr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),m={name:h.identName,reference:p[0]},{name:y,scope:b}=s(h.name),v=b?[b,y]:[y],k=x.join(g,yAe),T=x.join(k,...v),Y=`${f}/${m.name}`,q=n(m,f,p.slice(1)),$=!1;if(q.linkType===bo.SOFT&&t.project){let z=t.project.workspacesByCwd.get(q.target.slice(0,-1));$=!!(z&&!z.manifest.name)}if(!h.name.endsWith(vu)&&!$){let z=i.get(T);if(z){if(z.dirList)throw new Error(`Assertion failed: ${T} cannot merge dir node with leaf node`);{let oe=P.parseLocator(z.locator),ce=P.parseLocator(q.locator);if(z.linkType!==q.linkType)throw new Error(`Assertion failed: ${T} cannot merge nodes with different link types ${z.nodePath}/${P.stringifyLocator(oe)} and ${f}/${P.stringifyLocator(ce)}`);if(oe.identHash!==ce.identHash)throw new Error(`Assertion failed: ${T} cannot merge nodes with different idents ${z.nodePath}/${P.stringifyLocator(oe)} and ${f}/s${P.stringifyLocator(ce)}`);q.aliases=[...q.aliases,...z.aliases,P.parseLocator(z.locator).reference]}}i.set(T,q);let ne=T.split("/"),ee=ne.indexOf(yAe),A=ne.length-1;for(;ee>=0&&A>ee;){let oe=H.toPortablePath(ne.slice(0,A).join(x.sep)),ce=Jr(ne[A]),Z=i.get(oe);if(!Z)i.set(oe,{dirList:new Set([ce])});else if(Z.dirList){if(Z.dirList.has(ce))break;Z.dirList.add(ce)}A--}}a(h,q.linkType===bo.SOFT?q.target:T,Y)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var TL={};ft(TL,{PnpInstaller:()=>ah,PnpLinker:()=>xu,default:()=>Eze,getPnpPath:()=>Ol,jsInstallUtils:()=>ma,pnpUtils:()=>NL,quotePathIfNeeded:()=>WAe});var qAe=ge(ri()),JAe=ge(require("url"));var bAe;(function(t){t.HARD="HARD",t.SOFT="SOFT"})(bAe||(bAe={}));var er;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(er||(er={}));var QAe={[er.DEFAULT]:{collapsed:!1,next:{["*"]:er.DEFAULT}},[er.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:er.FALLBACK_EXCLUSION_LIST,packageRegistryData:er.PACKAGE_REGISTRY_DATA,["*"]:er.DEFAULT}},[er.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:er.FALLBACK_EXCLUSION_ENTRIES}},[er.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:er.FALLBACK_EXCLUSION_DATA}},[er.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:er.DEFAULT}},[er.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_REGISTRY_ENTRIES}},[er.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_STORE_DATA}},[er.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:er.PACKAGE_STORE_ENTRIES}},[er.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:er.PACKAGE_INFORMATION_DATA}},[er.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:er.PACKAGE_DEPENDENCIES,["*"]:er.DEFAULT}},[er.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:er.PACKAGE_DEPENDENCY}},[er.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:er.DEFAULT}}};function V4e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;ns(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function eze(r){let e=new Map,t=Um(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function tze(r){return Um(r.fallbackPool||[],([e])=>e)}function rze(r){let e=[];for(let[t,i]of Um(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of Um(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[p,m]of Um(a.entries(),([y])=>y))g.push([p,m]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function Km(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:eze(r),fallbackPool:tze(r),packageRegistryData:rze(r)}}var PAe=ge(xAe());function DAe(r,e){return[r?`${r} +`:"",`/* eslint-disable */ + +`,`try { +`,` Object.freeze({}).detectStrictMode = true; +`,`} catch (error) { +`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} +`,` +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,e.replace(/^/gm," "),`} +`,` +`,(0,PAe.default)()].join("")}function ize(r){return JSON.stringify(r,null,2)}function nze(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function sze(r){return[`return hydrateRuntimeState(JSON.parse(${nze(vAe(r))}), {basePath: basePath || __dirname}); +`].join("")}function oze(r){return[`var path = require('path'); +`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); +`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); +`].join("")}function RAe(r){let e=Km(r),t=sze(e);return DAe(r.shebang,t)}function FAe(r){let e=Km(r),t=oze(r.dataLocation),i=DAe(r.shebang,t);return{dataFile:ize(e),loaderFile:i}}var TAe=ge(require("fs")),gze=ge(require("path")),OAe=ge(require("util"));function vL(r,{basePath:e}){let t=H.toPortablePath(e),i=x.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var k;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(k=p.discardFromLookup)!=null?k:!1,y={name:g,reference:h},b=s.get(p.packageLocation);b?(b.discardFromLookup=b.discardFromLookup&&m,m||(b.locator=y)):s.set(p.packageLocation,{locator:y,discardFromLookup:m});let v=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:m,get packageLocation(){return v||(v=x.join(i,p.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var Hm=ge(require("module"));function oh(r,e){if(typeof r=="string")return r;if(r){let t,i;if(Array.isArray(r)){for(t=0;t0)return(f=oh(n[g],u))?f.replace("*",c.substring(g.length-1)):ku(i,c,1)}return ku(i,c)}}var kL=ge(require("util"));var ur;(function(c){c.API_ERROR="API_ERROR",c.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",c.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",c.MISSING_DEPENDENCY="MISSING_DEPENDENCY",c.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",c.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",c.INTERNAL="INTERNAL",c.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",c.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var Aze=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ai(r,e,t={},i){i!=null||(i=Aze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:te(N({},n),{value:i}),pnpCode:te(N({},n),{value:r}),data:te(N({},n),{value:t})})}function Qo(r){return H.normalize(H.fromPortablePath(r))}var lze=ge(require("fs")),LAe=ge(require("module")),cze=ge(require("path")),uze=new Set(LAe.Module.builtinModules||Object.keys(process.binding("natives"))),rb=r=>r.startsWith("node:")||uze.has(r);function xL(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let re of["react-scripts","gatsby"]){let se=r.packageRegistry.get(re);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:re,reference:be})}}let{ignorePattern:g,packageRegistry:f,packageLocatorsByLocations:h}=r;function p(re,se){return{fn:re,args:se,error:null,result:null}}function m(re){var Ue,xe,ve,pe,V,Qe;let se=(ve=(xe=(Ue=process.stderr)==null?void 0:Ue.hasColors)==null?void 0:xe.call(Ue))!=null?ve:process.stdout.isTTY,be=(le,fe)=>`[${le}m${fe}`,he=re.error;console.error(he?be("31;1",`\u2716 ${(pe=re.error)==null?void 0:pe.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),re.args.length>0&&console.error();for(let le of re.args)console.error(` ${be("37;1","In \u2190")} ${(0,kL.inspect)(le,{colors:se,compact:!0})}`);re.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,kL.inspect)(re.result,{colors:se,compact:!0})}`));let Fe=(Qe=(V=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:V.slice(2))!=null?Qe:[];if(Fe.length>0){console.error();for(let le of Fe)console.error(` ${be("38;5;244",le)}`)}console.error()}function y(re,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let he=p(re,be);try{return he.result=se(...be)}catch(Fe){throw he.error=Fe}finally{m(he)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(he){let Fe=p(re,be);throw Fe.error=he,m(Fe),he}}}return se}function b(re){let se=A(re);if(!se)throw ai(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function v(re){if(re.name===null)return!0;for(let se of r.dependencyTreeRoots)if(se.name===re.name&&se.reference===re.reference)return!0;return!1}let k=new Set(["default","node","require"]);function T(re,se=k){let be=Z(x.join(re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ai(ur.INTERNAL,`The locator that owns the "${re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:he}=b(be),Fe=x.join(he,xt.manifest);if(!e.fakeFs.existsSync(Fe))return null;let Ue=JSON.parse(e.fakeFs.readFileSync(Fe,"utf8")),xe=x.contains(he,re);if(xe===null)throw ai(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");a.test(xe)||(xe=`./${xe}`);let ve;try{ve=NAe(Ue,x.normalize(xe),{conditions:se,unsafe:!0})}catch(pe){throw ai(ur.EXPORTS_RESOLUTION_FAILED,pe.message,{unqualifiedPath:Qo(re),locator:be,pkgJson:Ue,subpath:Qo(xe),conditions:se},"ERR_PACKAGE_PATH_NOT_EXPORTED")}return typeof ve=="string"?x.join(he,ve):null}function Y(re,se,{extensions:be}){let he;try{se.push(re),he=e.fakeFs.statSync(re)}catch(Fe){}if(he&&!he.isDirectory())return e.fakeFs.realpathSync(re);if(he&&he.isDirectory()){let Fe;try{Fe=JSON.parse(e.fakeFs.readFileSync(x.join(re,xt.manifest),"utf8"))}catch(xe){}let Ue;if(Fe&&Fe.main&&(Ue=x.resolve(re,Fe.main)),Ue&&Ue!==re){let xe=Y(Ue,se,{extensions:be});if(xe!==null)return xe}}for(let Fe=0,Ue=be.length;Fe{let ve=JSON.stringify(xe.name);if(he.has(ve))return;he.add(ve);let pe=oe(xe);for(let V of pe)if(b(V).packagePeers.has(re))Fe(V);else{let le=be.get(V.name);typeof le=="undefined"&&be.set(V.name,le=new Set),le.add(V.reference)}};Fe(se);let Ue=[];for(let xe of[...be.keys()].sort())for(let ve of[...be.get(xe)].sort())Ue.push({name:xe,reference:ve});return Ue}function Z(re,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(z(re)&&!se)return null;let he=x.relative(r.basePath,re);he.match(s)||(he=`./${he}`),he.endsWith("/")||(he=`${he}/`);do{let Fe=h.get(he);if(typeof Fe=="undefined"||Fe.discardFromLookup&&!be){he=he.substring(0,he.lastIndexOf("/",he.length-2)+1);continue}return Fe.locator}while(he!=="");return null}function O(re,se,{considerBuiltins:be=!0}={}){if(re==="pnpapi")return H.toPortablePath(e.pnpapiResolution);if(be&&rb(re))return null;let he=Qo(re),Fe=se&&Qo(se);if(se&&z(se)&&(!x.isAbsolute(re)||Z(re)===null)){let ve=$(re,se);if(ve===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${he}" +Required by: ${Fe} +`,{request:he,issuer:Fe});return H.toPortablePath(ve)}let Ue,xe=re.match(n);if(xe){if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let[,ve,pe]=xe,V=Z(se);if(!V){let jt=$(re,se);if(jt===!1)throw ai(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${he}" +Required by: ${Fe} +`,{request:he,issuer:Fe});return H.toPortablePath(jt)}let le=b(V).packageDependencies.get(ve),fe=null;if(le==null&&V.name!==null){let jt=r.fallbackExclusionList.get(V.name);if(!jt||!jt.has(V.reference)){for(let Oi=0,$s=c.length;Oi<$s;++Oi){let jn=b(c[Oi]).packageDependencies.get(ve);if(jn!=null){t?fe=jn:le=jn;break}}if(r.enableTopLevelFallback&&le==null&&fe===null){let Oi=r.fallbackPool.get(ve);Oi!=null&&(fe=Oi)}}}let gt=null;if(le===null)if(v(V))gt=ai(ur.MISSING_PEER_DEPENDENCY,`Your application tried to access ${ve} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,dependencyName:ve});else{let jt=ce(ve,V);jt.every(Qr=>v(Qr))?gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${ve} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +${jt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} +`).join("")} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve,brokenAncestors:jt}):gt=ai(ur.MISSING_PEER_DEPENDENCY,`${V.name} tried to access ${ve} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) + +${jt.map(Qr=>`Ancestor breaking the chain: ${Qr.name}@${Qr.reference} +`).join("")} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve,brokenAncestors:jt})}else le===void 0&&(!be&&rb(re)?v(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${ve}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${ve} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,dependencyName:ve}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${ve}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${ve} isn't otherwise declared in ${V.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve}):v(V)?gt=ai(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${ve}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${Fe} +`,{request:he,issuer:Fe,dependencyName:ve}):gt=ai(ur.UNDECLARED_DEPENDENCY,`${V.name} tried to access ${ve}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${ve}${ve!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +`,{request:he,issuer:Fe,issuerLocator:Object.assign({},V),dependencyName:ve}));if(le==null){if(fe===null||gt===null)throw gt||new Error("Assertion failed: Expected an error to have been set");le=fe;let jt=gt.message.replace(/\n.*/g,"");gt.message=jt,!u.has(jt)&&i!==0&&(u.add(jt),process.emitWarning(gt))}let Ht=Array.isArray(le)?{name:le[0],reference:le[1]}:{name:ve,reference:le},Mt=b(Ht);if(!Mt.packageLocation)throw ai(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${Ht.name}@${Ht.reference}${Ht.name!==he?` (via "${he}")`:""} +Required by: ${V.name}@${V.reference} (via ${Fe}) +`,{request:he,issuer:Fe,dependencyLocator:Object.assign({},Ht)});let Ei=Mt.packageLocation;pe?Ue=x.join(Ei,pe):Ue=Ei}else if(x.isAbsolute(re))Ue=x.normalize(re);else{if(!se)throw ai(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:he,issuer:Fe});let ve=x.resolve(se);se.match(o)?Ue=x.normalize(x.join(ve,re)):Ue=x.normalize(x.join(x.dirname(ve),re))}return x.normalize(Ue)}function L(re,se,be=k){if(s.test(re))return se;let he=T(se,be);return he?x.normalize(he):se}function de(re,{extensions:se=Object.keys(Hm.Module._extensions)}={}){var Fe,Ue;let be=[],he=Y(re,be,{extensions:se});if(he)return x.normalize(he);{let xe=Qo(re),ve=Z(re);if(ve){let{packageLocation:pe}=b(ve),V=!0;try{e.fakeFs.accessSync(pe)}catch(Qe){if((Qe==null?void 0:Qe.code)==="ENOENT")V=!1;else{let le=((Ue=(Fe=Qe==null?void 0:Qe.message)!=null?Fe:Qe)!=null?Ue:"empty exception thrown").replace(/^[A-Z]/,fe=>fe.toLowerCase());throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Required package exists but could not be accessed (${le}). + +Missing package: ${ve.name}@${ve.reference} +Expected package location: ${Qo(pe)} +`,{unqualifiedPath:xe,extensions:se})}}if(!V){let Qe=pe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${Qe} + +Missing package: ${ve.name}@${ve.reference} +Expected package location: ${Qo(pe)} +`,{unqualifiedPath:xe,extensions:se})}}throw ai(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${xe} +${be.map(pe=>`Not found: ${Qo(pe)} +`).join("")}`,{unqualifiedPath:xe,extensions:se})}}function Be(re,se,{considerBuiltins:be,extensions:he,conditions:Fe}={}){try{let Ue=O(re,se,{considerBuiltins:be});if(re==="pnpapi")return Ue;if(Ue===null)return null;let xe=()=>se!==null?z(se):!1,ve=(!be||!rb(re))&&!xe()?L(re,Ue,Fe):Ue;return de(ve,{extensions:he})}catch(Ue){throw Object.prototype.hasOwnProperty.call(Ue,"pnpCode")&&Object.assign(Ue.data,{request:Qo(re),issuer:se&&Qo(se)}),Ue}}function Ge(re){let se=x.normalize(re),be=Wr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:ne,topLevel:ee,getLocator:(re,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:re,reference:se},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let re=[];for(let[se,be]of f)for(let he of be.keys())se!==null&&he!==null&&re.push({name:se,reference:he});return re},getPackageInformation:re=>{let se=A(re);if(se===null)return null;let be=H.fromPortablePath(se.packageLocation);return te(N({},se),{packageLocation:be})},findPackageLocator:re=>Z(H.toPortablePath(re)),resolveToUnqualified:y("resolveToUnqualified",(re,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=O(H.toPortablePath(re),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveUnqualified:y("resolveUnqualified",(re,se)=>H.fromPortablePath(de(H.toPortablePath(re),se))),resolveRequest:y("resolveRequest",(re,se,be)=>{let he=se!==null?H.toPortablePath(se):null,Fe=Be(H.toPortablePath(re),he,be);return Fe===null?null:H.fromPortablePath(Fe)}),resolveVirtual:y("resolveVirtual",re=>{let se=Ge(H.toPortablePath(re));return se!==null?H.fromPortablePath(se):null})}}var U0t=(0,OAe.promisify)(TAe.readFile);var MAe=(r,e,t)=>{let i=Km(r),n=vL(i,{basePath:e}),s=H.join(e,xt.pnpCjs);return xL(n,{fakeFs:t,pnpapiResolution:s})};var DL=ge(KAe());var ma={};ft(ma,{checkAndReportManifestCompatibility:()=>jAe,checkManifestCompatibility:()=>HAe,extractBuildScripts:()=>ib,getExtractHint:()=>RL,hasBindingGyp:()=>FL});function HAe(r){return P.isPackageCompatible(r,Xg.getArchitectureSet())}function jAe(r,e,{configuration:t,report:i}){return HAe(r)?!0:(i==null||i.reportWarningOnce(X.INCOMPATIBLE_ARCHITECTURE,`${P.prettyLocator(t,r)} The ${Xg.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function ib(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([cs.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([cs.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:r.linkType!==Qt.HARD?(n==null||n.reportWarningOnce(X.SOFT_LINK_BUILD,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(X.BUILD_DISABLED,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(X.DISABLED_BUILD_SCRIPTS,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):jAe(r,"build",{configuration:i,report:n})?s:[]}var fze=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function RL(r){return r.packageFs.getExtractHint({relevantExtensions:fze})}function FL(r){let e=x.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var NL={};ft(NL,{getUnpluggedPath:()=>jm});function jm(r,{configuration:e}){return x.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var hze=new Set([P.makeIdent(null,"nan").identHash,P.makeIdent(null,"node-gyp").identHash,P.makeIdent(null,"node-pre-gyp").identHash,P.makeIdent(null,"node-addon-api").identHash,P.makeIdent(null,"fsevents").identHash,P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),xu=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=Ol(t.project).cjs;if(!U.existsSync(i))throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=Se.getFactoryWithDefault(this.pnpCache,i,()=>Se.dynamicRequire(i,{cachingStrategy:Se.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return H.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=Ol(t.project).cjs;if(!U.existsSync(i))return null;let s=Se.getFactoryWithDefault(this.pnpCache,i,()=>Se.dynamicRequire(i,{cachingStrategy:Se.CachingStrategy.FsTime})).findPackageLocator(H.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new ah(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},ah=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new Se.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!==Qt.SOFT,g,f;if(c||u){let k=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(k.locatorHash),typeof g=="undefined"&&(g=await pze(t),e.linkType===Qt.HARD&&this.customData.store.set(k.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),f=this.opts.project.getDependencyMeta(k,e.version)}let h=c?ib(e,g,f,{configuration:this.opts.project.configuration,report:this.opts.report}):[],p=u?await this.unplugPackageIfNeeded(e,g,t,f,i):t.packageFs;if(x.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=x.resolve(p.getRealPath(),t.prefixPath),y=LL(this.opts.project.cwd,m),b=new Map,v=new Set;if(a){for(let k of e.peerDependencies.values())b.set(P.stringifyIdent(k),null),v.add(P.stringifyIdent(k));if(!o){let k=P.devirtualizeLocator(e);this.virtualTemplates.set(k.locatorHash,{location:LL(this.opts.project.cwd,Wr.resolveVirtual(m)),locator:k})}}return Se.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:b,packagePeers:v,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:h.length>0?h:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Ol(this.opts.project);if(U.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(X.UNNAMED,`Removing the old ${ae.pretty(this.opts.project.configuration,xt.pnpJs,ae.Type.PATH)} file. You might need to manually update existing references to reference the new ${ae.pretty(this.opts.project.configuration,xt.pnpCjs,ae.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ae.pretty(this.opts.project.configuration,"yarn sdks",ae.Type.CODE)}.`),await U.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await U.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await U.removePromise(e.cjs),await U.removePromise(this.opts.project.configuration.get("pnpDataPath")),await U.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())Se.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=Se.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=Ol(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(X.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await U.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=RAe(e);await U.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await U.removePromise(i)}else{let o=x.relative(x.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=FAe(te(N({},e),{dataLocation:o}));await U.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await U.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(X.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await U.changeFilePromise(t.esmLoader,(0,DL.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await U.removePromise(s);else for(let o of await U.readdirPromise(s)){let a=x.resolve(s,o);this.unpluggedPaths.has(a)||await U.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=x.join(n.cwd,"node_modules");if(i&&i.test(x.relative(this.opts.project.cwd,n.cwd))||!U.existsSync(s))continue;let o=await U.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(x.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged!="undefined"?i.unplugged:hze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(ib(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=jm(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new La(n,{baseFs:t.packageFs,pathUtils:x}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=x.join(n,t.prefixPath,".ready");await U.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await U.mkdirPromise(n,{recursive:!0}),await U.copyPromise(n,Me.dot,{baseFs:t.packageFs,overwrite:!1}),await U.writeFilePromise(s,""))})),new _t(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=Se.getMapWithDefault(this.packageRegistry,"@@disk"),i=LL(this.opts.project.cwd,e);return Se.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:Qt.SOFT,discardFromLookup:!1}))}};function LL(r,e){let t=x.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function pze(r){var i;let e=(i=await At.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new At,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:RL(r),hasBindingGyp:FL(r)}}}var GAe=ge(ns());var Gm=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new Pe("This command can only be used if the `nodeLinker` option is set to `pnp`");await t.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=P.parseDescriptor(f),p=h.range!=="unknown"?h:P.makeDescriptor(h,"*");if(!Wt.validRange(p.range))throw new Pe(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(e,p)})`);return m=>{let y=P.stringifyIdent(m);return!GAe.default.isMatch(y,P.stringifyIdent(p))||m.version&&!Wt.satisfiesWithPrereleases(m.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of t.storedPackages.values())!t.tryWorkspaceByLocator(h)&&!P.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],m=(y,b)=>{if(!h.has(y.locatorHash)&&(h.add(y.locatorHash),!t.tryWorkspaceByLocator(y)&&o.some(v=>v(y))&&p.push(y),!(b>0&&!this.recursive)))for(let v of y.dependencies.values()){let k=t.storedResolutions.get(v.descriptorHash);if(!k)throw new Error("Assertion failed: The resolution should have been registered");let T=t.storedPackages.get(k);if(!T)throw new Error("Assertion failed: The package should have been registered");m(T,b+1)}};for(let y of f){let b=t.storedPackages.get(y.anchoredLocator.locatorHash);if(!b)throw new Error("Assertion failed: The package should have been registered");m(b,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(t.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new Pe(`Patterns ${ae.prettyList(e,s,ae.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new Pe(`Pattern ${ae.prettyList(e,s,ae.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=Se.sortMap(c,f=>P.stringifyLocator(f)),(await Je.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let m=(h=p.version)!=null?h:"unknown",y=t.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(p,m));y.unplugged=!0,f.reportInfo(X.UNNAMED,`Will unpack ${P.prettyLocator(e,p)} to ${ae.pretty(e,jm(p,{configuration:e}),ae.Type.PATH)}`),f.reportJson({locator:P.stringifyLocator(p),version:m})}await t.topLevelWorkspace.persistManifest(),f.reportSeparator(),await t.install({cache:n,report:f})})).exitCode()}};Gm.paths=[["unplug"]],Gm.usage=Re.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var YAe=Gm;var Ol=r=>({cjs:x.join(r.cwd,xt.pnpCjs),cjsLegacy:x.join(r.cwd,xt.pnpJs),esmLoader:x.join(r.cwd,".pnp.loader.mjs")}),WAe=r=>/\s/.test(r)?JSON.stringify(r):r;async function dze(r,e,t){let i=Ol(r),n=`--require ${WAe(H.fromPortablePath(i.cjs))}`;if(U.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,JAe.pathToFileURL)(H.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&qAe.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(U.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function Cze(r,e){let t=Ol(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var mze={hooks:{populateYarnPaths:Cze,setupScriptEnvironment:dze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:Ie.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:Ie.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:Ie.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:Ie.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:Ie.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:Ie.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:Ie.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:Ie.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:Ie.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[xu],commands:[YAe]},Eze=mze;var $Ae=ge(ZAe());var HL=ge(require("crypto")),ele=ge(require("fs")),tle=1,jr="node_modules",nb=".bin",rle=".yarn-state.yml",Ti;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Ti||(Ti={}));var jL=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await Se.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await GL(t.project,{unrollAliases:!0}));if(n===null)throw new Pe("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let a=new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=t.project.configuration.startingCwd;return s.locations.find(a=>x.contains(o,a))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await Se.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await GL(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(x.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new ile(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},ile=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=x.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await Tze(e,t),e.linkType===Qt.HARD&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${H.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Wr({baseFs:new ys({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await GL(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=Se.validateEnum(Kn,(m=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?m:h)}catch(y){let b=P.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(X.INVALID_MANIFEST,`${b}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Kn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,m;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(m=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?m:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:P.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(H.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:P.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>H.fromPortablePath(Wr.resolveVirtual(H.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=Mm(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=bL(a);await Oze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=P.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(nle(f))continue;let p=P.parseLocator(f),m=this.localStore.get(p.locatorHash);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=ma.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(X.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${ae.pretty(this.opts.project.configuration,"--preserve-symlinks",ae.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function Tze(r,e){var n;let t=(n=await At.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new At,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:ma.getExtractHint(e),hasBindingGyp:ma.hasBindingGyp(e)}}}async function Mze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,s+=`# cause your node_modules installation to become invalidated. +`,s+=` +`,s+=`__metadata: +`,s+=` version: ${tle} +`,s+=` nmMode: ${i.value} +`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` +`,s+=`${JSON.stringify(u)}: +`,s+=` locations: +`;for(let f of g.locations){let h=x.contains(r.cwd,f);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` - ${JSON.stringify(h)} +`}if(g.aliases.length>0){s+=` aliases: +`;for(let f of g.aliases)s+=` - ${JSON.stringify(f)} +`}if(u===a&&t.size>0){s+=` bin: +`;for(let[f,h]of t){let p=x.contains(r.cwd,f);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${f})`);s+=` ${JSON.stringify(p)}: +`;for(let[m,y]of h){let b=x.relative(x.join(f,jr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(b)} +`}}}}let l=r.cwd,c=x.join(l,jr,rle);n&&await U.removePromise(c),await U.changeFilePromise(c,s,{automaticNewlines:!0})}async function GL(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=x.join(t,jr,rle),n;try{n=await U.statPromise(i)}catch(c){}if(!n)return null;let s=Si(await U.readFilePromise(i,"utf8"));if(s.__metadata.version>tle)return null;let o=s.__metadata.nmMode||Ti.CLASSIC,a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(h=>x.join(t,h)),f=u.bin;if(f)for(let[h,p]of Object.entries(f)){let m=x.join(t,H.toPortablePath(h)),y=Se.getMapWithDefault(l,m);for(let[b,v]of Object.entries(p))y.set(Jr(b),H.toPortablePath([m,jr,v].join(x.sep)))}if(a.set(c,{target:Me.dot,linkType:Qt.HARD,locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let h of u.aliases){let{scope:p,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(p,m),h),b=P.stringifyLocator(y);a.set(b,{target:Me.dot,linkType:Qt.HARD,locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:sle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var lh=async(r,e)=>{if(r.split(x.sep).indexOf(jr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await U.statPromise(r):await U.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await U.unlinkPromise(r);return}}let t=await U.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=x.join(r,Jr(i.name));i.isDirectory()?(i.name!==jr||e&&e.innerLoop)&&await lh(n,{innerLoop:!0,contentsOnly:!1}):await U.unlinkPromise(n)}e.contentsOnly||await U.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},ole=4,sb=(r,{skipPrefix:e})=>{let t=x.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(x.sep).filter(l=>l!==""),n=i.indexOf(jr),s=i.slice(0,n).join(x.sep),o=x.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},sle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:Qt.HARD});for(let[n,s]of r.entries()){if(s.linkType===Qt.SOFT&&x.contains(e,s.target)!==null){let a=Se.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=Se.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await U.lstatPromise(r))}catch(i){}process.platform=="win32"&&(!t||t.isDirectory())?await U.symlinkPromise(r,e,"junction"):await U.symlinkPromise(x.relative(x.dirname(e),r),e)};async function ale(r,e,t){let i=x.join(r,Jr(`${HL.default.randomBytes(16).toString("hex")}.tmp`));try{await U.writeFilePromise(i,t);try{await U.linkPromise(i,e)}catch(n){}}finally{await U.unlinkPromise(i)}}async function Uze({srcPath:r,dstPath:e,srcMode:t,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Ti.HARDLINKS_GLOBAL&&i&&o){let l=x.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await Rn.checksumFile(l,{baseFs:U,algorithm:"sha1"})!==o){let g=x.join(i,Jr(`${HL.default.randomBytes(16).toString("hex")}.tmp`));await U.renamePromise(l,g);let f=await n.readFilePromise(r);await U.writeFilePromise(g,f);try{await U.linkPromise(g,l),await U.unlinkPromise(g)}catch(h){}}await U.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(r);await ale(i,l,u);try{await U.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Ti.HARDLINKS_LOCAL,await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let a=t&511;a!==420&&await U.chmodPromise(e,a)}var Ml;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(Ml||(Ml={}));var Kze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await U.mkdirPromise(r,{recursive:!0});let o=async(l=Me.dot)=>{let c=x.join(e,l),u=await t.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=x.join(l,f.name),p,m=x.join(c,f.name);if(f.isFile()){if(p={kind:Ml.FILE,mode:(await t.lstatPromise(m)).mode},n.value===Ti.HARDLINKS_GLOBAL){let y=await Rn.checksumFile(m,{baseFs:t,algorithm:"sha1"});p.digest=y}}else if(f.isDirectory())p={kind:Ml.DIRECTORY};else if(f.isSymbolicLink())p={kind:Ml.SYMLINK,symlinkTo:await t.readlinkPromise(m)};else throw new Error(`Unsupported file type (file: ${m}, mode: 0o${await t.statSync(m).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==jr){let y=await o(h);for(let[b,v]of y)g.set(b,v)}}return g},a;if(n.value===Ti.HARDLINKS_GLOBAL&&i&&s){let l=x.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await U.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await ale(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=x.join(e,l),g=x.join(r,l);c.kind===Ml.DIRECTORY?await U.mkdirPromise(g,{recursive:!0}):c.kind===Ml.FILE?await Uze({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:t,globalHardlinksStore:i}):c.kind===Ml.SYMLINK&&await YL(x.resolve(x.dirname(g),c.symlinkTo),g)}};function Hze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,f,h)=>{let p=!0,m=x.join(c,u),y=new Set;if(u===jr||u.startsWith("@")){let v;try{v=U.statSync(m)}catch(T){}p=!!v,v?v.mtimeMs>t?(a=!0,y=new Set(U.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let k=e.get(c);if(k){let T=x.join(c,jr,nb),Y;try{Y=U.statSync(T)}catch(q){}if(!Y)a=!0;else if(Y.mtimeMs>t){a=!0;let q=new Set(U.readdirSync(T)),$=new Map;s.set(c,$);for(let[z,ne]of k)q.has(z)&&$.set(z,ne)}else s.set(c,k)}}else p=h.has(u);let b=g.children.get(u);if(p){let{linkType:v,locator:k}=b,T={children:new Map,linkType:v,locator:k};if(f.children.set(u,T),k){let Y=Se.getSetWithDefault(o,k);Y.add(m),o.set(k,Y)}for(let Y of b.children.keys())l(m,Y,b,T,y)}else b.locator&&i.storedBuildState.delete(P.parseLocator(b.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:f}=u,h={children:new Map,linkType:g,locator:f};if(n.set(c,h),f){let p=Se.getSetWithDefault(o,u.locator);p.add(c),o.set(u.locator,p)}u.children.has(jr)&&l(c,jr,u,h,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function nle(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function jze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=nle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=x.join(l[0],f);f!==""&&U.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=x.contains(t,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let m=x.join(a,H.toPortablePath(p));u.set(Jr(h),m)}for(let[h,p]of c.children){let m=x.join(a,h),y=o(m,m,p);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[f,h]of c.children){let p=o(x.join(a,f),l,h);for(let[m,y]of p)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Ale=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function qL(r){return x.join(r.get("globalFolder"),"store")}async function Oze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=x.join(i.cwd,jr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Hze(r.locationTree,r.binSymlinks,r.mtimeMs,i),f=sle(e,{skipPrefix:i.cwd}),h=[],p=async({srcDir:z,dstDir:ne,linkType:ee,globalHardlinksStore:A,nmMode:oe,packageChecksum:ce})=>{let Z=(async()=>{try{ee===Qt.SOFT?(await U.mkdirPromise(x.dirname(ne),{recursive:!0}),await YL(x.resolve(z),ne)):await Kze(ne,z,{baseFs:t,globalHardlinksStore:A,nmMode:oe,packageChecksum:ce})}catch(O){throw O.message=`While persisting ${z} -> ${ne} ${O.message}`,O}finally{T.tick()}})().then(()=>h.splice(h.indexOf(Z),1));h.push(Z),h.length>ole&&await Promise.race(h)},m=async(z,ne,ee)=>{let A=(async()=>{let oe=async(ce,Z,O)=>{try{O.innerLoop||await U.mkdirPromise(Z,{recursive:!0});let L=await U.readdirPromise(ce,{withFileTypes:!0});for(let de of L){if(!O.innerLoop&&de.name===nb)continue;let Be=x.join(ce,de.name),Ge=x.join(Z,de.name);de.isDirectory()?(de.name!==jr||O&&O.innerLoop)&&(await U.mkdirPromise(Ge,{recursive:!0}),await oe(Be,Ge,te(N({},O),{innerLoop:!0}))):$.value===Ti.HARDLINKS_LOCAL||$.value===Ti.HARDLINKS_GLOBAL?await U.linkPromise(Be,Ge):await U.copyFilePromise(Be,Ge,ele.default.constants.COPYFILE_FICLONE)}}catch(L){throw O.innerLoop||(L.message=`While cloning ${ce} -> ${Z} ${L.message}`),L}finally{O.innerLoop||T.tick()}};await oe(z,ne,ee)})().then(()=>h.splice(h.indexOf(A),1));h.push(A),h.length>ole&&await Promise.race(h)},y=async(z,ne,ee)=>{if(ee)for(let[A,oe]of ne.children){let ce=ee.children.get(A);await y(x.join(z,A),oe,ce)}else{ne.children.has(jr)&&await lh(x.join(z,jr),{contentsOnly:!1});let A=x.basename(z)===jr&&f.has(x.join(x.dirname(z),x.sep));await lh(z,{contentsOnly:z===a,allowSymlink:A})}};for(let[z,ne]of l){let ee=f.get(z);for(let[A,oe]of ne.children){if(A===".")continue;let ce=ee&&ee.children.get(A),Z=x.join(z,A);await y(Z,oe,ce)}}let b=async(z,ne,ee)=>{if(ee){Ale(ne.locator,ee.locator)||await lh(z,{contentsOnly:ne.linkType===Qt.HARD});for(let[A,oe]of ne.children){let ce=ee.children.get(A);await b(x.join(z,A),oe,ce)}}else{ne.children.has(jr)&&await lh(x.join(z,jr),{contentsOnly:!0});let A=x.basename(z)===jr&&f.has(x.join(x.dirname(z),x.sep));await lh(z,{contentsOnly:ne.linkType===Qt.HARD,allowSymlink:A})}};for(let[z,ne]of f){let ee=l.get(z);for(let[A,oe]of ne.children){if(A===".")continue;let ce=ee&&ee.children.get(A);await b(x.join(z,A),oe,ce)}}let v=new Map,k=[];for(let[z,ne]of u)for(let ee of ne){let{locationRoot:A,segments:oe}=sb(ee,{skipPrefix:i.cwd}),ce=f.get(A),Z=A;if(ce){for(let O of oe)if(Z=x.join(Z,O),ce=ce.children.get(O),!ce)break;if(ce){let O=Ale(ce.locator,z),L=e.get(ce.locator),de=L.target,Be=Z,Ge=L.linkType;if(O)v.has(de)||v.set(de,Be);else if(de!==Be){let re=P.parseLocator(ce.locator);P.isVirtualLocator(re)&&(re=P.devirtualizeLocator(re)),k.push({srcDir:de,dstDir:Be,linkType:Ge,realLocatorHash:re.locatorHash})}}}}for(let[z,{locations:ne}]of e.entries())for(let ee of ne){let{locationRoot:A,segments:oe}=sb(ee,{skipPrefix:i.cwd}),ce=l.get(A),Z=f.get(A),O=A,L=e.get(z),de=P.parseLocator(z);P.isVirtualLocator(de)&&(de=P.devirtualizeLocator(de));let Be=de.locatorHash,Ge=L.target,re=ee;if(Ge===re)continue;let se=L.linkType;for(let be of oe)Z=Z.children.get(be);if(!ce)k.push({srcDir:Ge,dstDir:re,linkType:se,realLocatorHash:Be});else for(let be of oe)if(O=x.join(O,be),ce=ce.children.get(be),!ce){k.push({srcDir:Ge,dstDir:re,linkType:se,realLocatorHash:Be});break}}let T=Ji.progressViaCounter(k.length),Y=n.reportProgress(T),q=i.configuration.get("nmMode"),$={value:q};try{let z=$.value===Ti.HARDLINKS_GLOBAL?`${qL(i.configuration)}/v1`:null;if(z&&!await U.existsPromise(z)){await U.mkdirpPromise(z);for(let ee=0;ee<256;ee++)await U.mkdirPromise(x.join(z,ee.toString(16).padStart(2,"0")))}for(let ee of k)(ee.linkType===Qt.SOFT||!v.has(ee.srcDir))&&(v.set(ee.srcDir,ee.dstDir),await p(te(N({},ee),{globalHardlinksStore:z,nmMode:$,packageChecksum:o.get(ee.realLocatorHash)||null})));await Promise.all(h),h.length=0;for(let ee of k){let A=v.get(ee.srcDir);ee.linkType!==Qt.SOFT&&ee.dstDir!==A&&await m(A,ee.dstDir,{nmMode:$})}await Promise.all(h),await U.mkdirPromise(a,{recursive:!0});let ne=await jze(e,f,i.cwd,{loadManifest:s});await Gze(c,ne,i.cwd),await Mze(i,e,ne,$,{installChangedByUser:g}),q==Ti.HARDLINKS_GLOBAL&&$.value==Ti.HARDLINKS_LOCAL&&n.reportWarningOnce(X.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{Y.stop()}}async function Gze(r,e,t){for(let i of r.keys()){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=x.join(i,jr,nb);await U.removePromise(n)}}for(let[i,n]of e){if(x.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=x.join(i,jr,nb),o=r.get(i)||new Map;await U.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await U.removePromise(x.join(s,a)),process.platform==="win32"&&await U.removePromise(x.join(s,Jr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=x.join(s,a);c!==l&&(process.platform==="win32"?await(0,$Ae.default)(H.fromPortablePath(l),H.fromPortablePath(u),{createPwshFile:!1}):(await U.removePromise(u),await YL(l,u),x.contains(t,await U.realpathPromise(l))!==null&&await U.chmodPromise(l,493)))}}}var JL=class extends xu{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new lle(e)}},lle=class extends ah{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let t=new Wr({baseFs:new ys({libzip:await fn(),maxOpenFiles:80,readOnlyArchives:!0})}),i=MAe(e,this.opts.project.cwd,t),{tree:n,errors:s}=Mm(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=P.parseLocator(g.locator),h=P.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=x.join(this.opts.project.cwd,xt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=x.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=x.join(g,h),m=n.get(p);if(typeof m=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in m)a(`${u}/${h}`,m);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var Yze={hooks:{cleanGlobalArtifacts:async r=>{let e=qL(r);await U.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:Ie.STRING,values:[Kn.WORKSPACES,Kn.DEPENDENCIES,Kn.NONE],default:Kn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:Ie.STRING,values:[Ti.CLASSIC,Ti.HARDLINKS_LOCAL,Ti.HARDLINKS_GLOBAL],default:Ti.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:Ie.BOOLEAN,default:!0}},linkers:[jL,JL]},qze=Yze;var JT={};ft(JT,{default:()=>$9e,npmConfigUtils:()=>br,npmHttpUtils:()=>zt,npmPublishUtils:()=>Bh});var hle=ge(ri());var Cr="npm:";var zt={};ft(zt,{AuthType:()=>us,customPackageError:()=>zze,del:()=>Xze,get:()=>So,getIdentUrl:()=>Kl,handleInvalidAuthenticationError:()=>Ul,post:()=>_ze,put:()=>Vze});var gle=ge(zC()),fle=ge(require("url"));var br={};ft(br,{RegistryType:()=>SA,getAuditRegistry:()=>Jze,getAuthConfiguration:()=>_L,getDefaultRegistry:()=>ob,getPublishRegistry:()=>cle,getRegistryConfiguration:()=>ule,getScopeConfiguration:()=>zL,getScopeRegistry:()=>vA,normalizeRegistry:()=>Ea});var SA;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(SA||(SA={}));function Ea(r){return r.replace(/\/$/,"")}function Jze(r,{configuration:e}){let t=e.get(SA.AUDIT_REGISTRY);return t!==null?Ea(t):cle(r,{configuration:e})}function cle(r,{configuration:e}){var t;return((t=r.publishConfig)==null?void 0:t.registry)?Ea(r.publishConfig.registry):r.name?vA(r.name.scope,{configuration:e,type:SA.PUBLISH_REGISTRY}):ob({configuration:e,type:SA.PUBLISH_REGISTRY})}function vA(r,{configuration:e,type:t=SA.FETCH_REGISTRY}){let i=zL(r,{configuration:e});if(i===null)return ob({configuration:e,type:t});let n=i.get(t);return n===null?ob({configuration:e,type:t}):Ea(n)}function ob({configuration:r,type:e=SA.FETCH_REGISTRY}){let t=r.get(e);return Ea(t!==null?t:r.get(SA.FETCH_REGISTRY))}function ule(r,{configuration:e}){let t=e.get("npmRegistries"),i=Ea(r),n=t.get(i);if(typeof n!="undefined")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function zL(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function _L(r,{configuration:e,ident:t}){let i=t&&zL(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:ule(r,{configuration:e})||e}var us;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(us||(us={}));async function Ul(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(ab(r))throw new ct(X.AUTHENTICATION_INVALID,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new ct(X.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await Wze(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function zze(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Kl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function So(r,a){var l=a,{configuration:e,headers:t,ident:i,authType:n,registry:s}=l,o=Or(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=vA(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(s,{authType:n,configuration:e,ident:i});c&&(t=te(N({},t),{authorization:c}));try{return await ir.get(r.charAt(0)==="/"?`${s}${r}`:r,N({configuration:e,headers:t},o))}catch(u){throw await Ul(u,{registry:s,configuration:e,headers:t}),u}}async function _ze(r,e,u){var g=u,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Or(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=vA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Ab(a,{authType:o,configuration:i,ident:s});f&&(n=te(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.post(a+r,e,N({configuration:i,headers:n},c))}catch(h){if(!ab(h)||l)throw await Ul(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h;l=await VL();let p=N(N({},n),ch(l));try{return await ir.post(`${a}${r}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Ul(m,{attemptedAs:t,registry:a,configuration:i,headers:n}),m}}}async function Vze(r,e,u){var g=u,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l}=g,c=Or(g,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(s&&typeof a=="undefined"&&(a=vA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let f=await Ab(a,{authType:o,configuration:i,ident:s});f&&(n=te(N({},n),{authorization:f})),l&&(n=N(N({},n),ch(l)));try{return await ir.put(a+r,e,N({configuration:i,headers:n},c))}catch(h){if(!ab(h))throw await Ul(h,{attemptedAs:t,registry:a,configuration:i,headers:n}),h;l=await VL();let p=N(N({},n),ch(l));try{return await ir.put(`${a}${r}`,e,N({configuration:i,headers:p},c))}catch(m){throw await Ul(m,{attemptedAs:t,registry:a,configuration:i,headers:n}),m}}}async function Xze(r,c){var u=c,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a}=u,l=Or(u,["attemptedAs","configuration","headers","ident","authType","registry","otp"]);if(n&&typeof o=="undefined"&&(o=vA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let g=await Ab(o,{authType:s,configuration:t,ident:n});g&&(i=te(N({},i),{authorization:g})),a&&(i=N(N({},i),ch(a)));try{return await ir.del(o+r,N({configuration:t,headers:i},l))}catch(f){if(!ab(f)||a)throw await Ul(f,{attemptedAs:e,registry:o,configuration:t,headers:i}),f;a=await VL();let h=N(N({},i),ch(a));try{return await ir.del(`${o}${r}`,N({configuration:t,headers:h},l))}catch(p){throw await Ul(p,{attemptedAs:e,registry:o,configuration:t,headers:i}),p}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=_L(r,{configuration:t,ident:i}),s=Zze(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new ct(X.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function Zze(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function Wze(r,e,{configuration:t}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await ir.get(new fle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function VL(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:r}=await(0,gle.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return r}function ab(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function ch(r){return{["npm-otp"]:r}}var XL=class{supports(e,t){if(!e.reference.startsWith(Cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!hle.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await So(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Bi.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var ZL=class{supportsDescriptor(e,t){return!(!e.range.startsWith(Cr)||!P.tryParseDescriptor(e.range.slice(Cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(Cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(Cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var ple=ge(ri()),dle=ge(require("url"));var vo=class{supports(e,t){if(!e.reference.startsWith(Cr))return!1;let i=new dle.URL(e.reference);return!(!ple.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await So(vo.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch(n){i=await So(vo.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Bi.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=vA(e.scope,{configuration:i}),s=vo.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Wt.clean(e.reference.slice(Cr.length));if(t===null)throw new ct(X.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${Kl(e)}/-/${e.name}-${t}.tgz`}};var Cle=ge(ri());var lb=P.makeIdent(null,"node-gyp"),$ze=/\b(node-gyp|prebuild-install)\b/,$L=class{supportsDescriptor(e,t){return e.range.startsWith(Cr)?!!Wt.validRange(e.range.slice(Cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(Cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!Cle.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);let s=await So(Kl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=Se.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Wt.SemVer(c);if(n.test(u))return u}catch{}return Se.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${Cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return vo.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Wt.validRange(e.range.slice(Cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Cr.length)}`);return Se.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:Cr}),a=new Wt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return Se.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=Wt.clean(i);if(n===null)throw new ct(X.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await So(Kl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new ct(X.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new At;if(o.load(s.versions[n]),!o.dependencies.has(lb.identHash)&&!o.peerDependencies.has(lb.identHash)){for(let a of o.scripts.values())if(a.match($ze)){o.dependencies.set(lb.identHash,P.makeDescriptor(lb,"latest")),t.report.reportWarningOnce(X.NODE_GYP_INJECTED,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(X.DEPRECATED_PACKAGE,l)}return te(N({},e),{version:n,languageName:"node",linkType:Qt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var eT=class{supportsDescriptor(e,t){return!(!e.range.startsWith(Cr)||!_g.test(e.range.slice(Cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(Cr.length),s=await So(Kl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new ct(X.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${Cr}${a}`),c=s.versions[a].dist.tarball;return vo.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Bh={};ft(Bh,{getGitHead:()=>X9e,makePublishBody:()=>V9e});var jT={};ft(jT,{default:()=>R9e,packUtils:()=>DA});var DA={};ft(DA,{genPackList:()=>Db,genPackStream:()=>HT,genPackageManifest:()=>qce,hasPackScripts:()=>UT,prepareForPack:()=>KT});var MT=ge(ns()),Gce=ge(jce()),Yce=ge(require("zlib")),y9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],w9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function UT(r){return!!(Zt.hasWorkspaceScript(r,"prepack")||Zt.hasWorkspaceScript(r,"postpack"))}async function KT(r,{report:e},t){await Zt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=x.join(r.cwd,At.fileName);await U.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:U}),await t()}finally{await Zt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function HT(r,e){var s,o;typeof e=="undefined"&&(e=await Db(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(x.normalize(a));for(let a of r.manifest.bin.values())t.add(x.normalize(a));let i=Gce.default.pack();process.nextTick(async()=>{for(let a of e){let l=x.normalize(a),c=x.resolve(r.cwd,l),u=x.join("package",l),g=await U.lstatPromise(c),f={name:u,mtime:new Date(Rr.SAFE_TIME*1e3)},h=t.has(l)?493:420,p,m,y=new Promise((v,k)=>{p=v,m=k}),b=v=>{v?m(v):p()};if(g.isFile()){let v;l==="package.json"?v=Buffer.from(JSON.stringify(await qce(r),null,2)):v=await U.readFilePromise(c),i.entry(te(N({},f),{mode:h,type:"file"}),v,b)}else g.isSymbolicLink()?i.entry(te(N({},f),{mode:h,type:"symlink",linkname:await U.readlinkPromise(c)}),b):b(new Error(`Unsupported file type ${g.mode} for ${H.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Yce.createGzip)();return i.pipe(n),n}async function qce(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Db(r){var g,f,h,p,m,y,b,v;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let k of w9e)i.reject.push(k);for(let k of y9e)i.accept.push(k);i.reject.push(t.get("rcFilename"));let n=k=>{if(k===null||!k.startsWith(`${r.cwd}/`))return;let T=x.relative(r.cwd,k),Y=x.resolve(Me.root,T);i.reject.push(Y)};n(x.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(k=>k.populateYarnPaths,e,k=>{n(k)});for(let k of e.workspaces){let T=x.relative(r.cwd,k.cwd);T!==""&&!T.match(/^(\.\.)?\//)&&i.reject.push(`/${T}`)}let s={accept:[],reject:[]},o=(f=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?f:r.manifest.main,a=(p=(h=r.manifest.publishConfig)==null?void 0:h.module)!=null?p:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(v=(b=r.manifest.publishConfig)==null?void 0:b.bin)!=null?v:r.manifest.bin;o!=null&&s.accept.push(x.resolve(Me.root,o)),a!=null&&s.accept.push(x.resolve(Me.root,a)),typeof l=="string"&&s.accept.push(x.resolve(Me.root,l));for(let k of c.values())s.accept.push(x.resolve(Me.root,k));if(l instanceof Map)for(let[k,T]of l.entries())s.accept.push(x.resolve(Me.root,k)),typeof T=="string"&&s.accept.push(x.resolve(Me.root,T));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let k of r.manifest.files)Jce(s.accept,k,{cwd:Me.root})}return await B9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function B9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new Ta(r),o=[[Me.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!zce(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Me.root)for(let m of u)g=g||m===".gitignore",f=f||m===".npmignore";let h=f?await Wce(s,a,".npmignore"):g?await Wce(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;zce(a,{globalList:t,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([x.resolve(a,m),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(x.relative(Me.root,a))}return n.sort()}async function Wce(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(x.join(e,t),"utf8");for(let s of n.split(/\n/g))Jce(i.reject,s,{cwd:e});return i}function b9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=x.resolve(e,r)),t&&(r=`!${r}`),r}function Jce(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(b9e(i,{cwd:t}))}var gs;(function(i){i[i.None=0]="None",i[i.Match=1]="Match",i[i.NegatedMatch=2]="NegatedMatch"})(gs||(gs={}));function zce(r,{globalList:e,ignoreLists:t}){let i=Rb(r,e.accept);if(i!==0)return i===2;let n=Rb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Rb(r,s.accept);if(o!==0)return o===2;let a=Rb(r,s.reject);if(a!==0)return a===1}return!1}function Rb(r,e){let t=e,i=[];for(let n=0;n{await KT(i,{report:l},async()=>{l.reportJson({base:H.fromPortablePath(i.cwd)});let c=await Db(i);for(let u of c)l.reportInfo(null,H.fromPortablePath(u)),l.reportJson({location:H.fromPortablePath(u)});if(!this.dryRun){let u=await HT(i,c),g=U.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo(X.UNNAMED,`Package archive generated in ${ae.pretty(e,s,ae.Type.PATH)}`),l.reportJson({output:H.fromPortablePath(s)}))})).exitCode()}};iE.paths=[["pack"]],iE.usage=Re.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var Vce=iE;function Q9e(r,{workspace:e}){let t=r.replace("%s",S9e(e)).replace("%v",v9e(e));return H.toPortablePath(t)}function S9e(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function v9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var k9e=["dependencies","devDependencies","peerDependencies"],x9e="workspace:",P9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of k9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===x9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new ct(X.WORKSPACE_NOT_FOUND,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},D9e={hooks:{beforeWorkspacePacking:P9e},commands:[Vce]},R9e=D9e;var sue=ge(require("crypto")),oue=ge(nue()),aue=ge(require("url"));async function V9e(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.project.configuration,a=r.manifest.name,l=r.manifest.version,c=P.stringifyIdent(a),u=(0,sue.createHash)("sha1").update(e).digest("hex"),g=oue.default.fromData(e).toString();typeof t=="undefined"&&(r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?t=r.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?t=o.get("npmPublishAccess"):a.scope?t="restricted":t="public");let f=await DA.genPackageManifest(r),h=`${c}-${l}.tgz`,p=new aue.URL(`${Ea(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:t,["dist-tags"]:{[i]:l},versions:{[l]:te(N({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function X9e(r){try{let{stdout:e}=await Nr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}var WT={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:Ie.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:Ie.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:Ie.SECRET,default:null}},Aue={npmAuditRegistry:{description:"Registry to query for audit reports",type:Ie.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:Ie.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:Ie.STRING,default:"https://registry.yarnpkg.com"}},Z9e={configuration:te(N(N({},WT),Aue),{npmScopes:{description:"Settings per package scope",type:Ie.MAP,valueDefinition:{description:"",type:Ie.SHAPE,properties:N(N({},WT),Aue)}},npmRegistries:{description:"Settings per registry",type:Ie.MAP,normalizeKeys:Ea,valueDefinition:{description:"",type:Ie.SHAPE,properties:N({},WT)}}}),fetchers:[XL,vo],resolvers:[ZL,$L,eT]},$9e=Z9e;var XT={};ft(XT,{default:()=>A_e});ws();var ba;(function(i){i.All="all",i.Production="production",i.Development="development"})(ba||(ba={}));var xo;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(xo||(xo={}));var Fb=[xo.Info,xo.Low,xo.Moderate,xo.High,xo.Critical];function lue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function e_e(r,e){return new Set([...r].filter(t=>!e.has(t)))}function t_e(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=lue(r,l),g=lue(r,c);return e_e(g,u)}function cue(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function uue(r){if(typeof r=="undefined")return new Set;let e=Fb.indexOf(r),t=Fb.slice(e);return new Set(t)}function r_e(r,e){let t=uue(e),i={};for(let n of t)i[n]=r[n];return i}function gue(r,e){var i;let t=r_e(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function fue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=uue(e);n=n.filter(a=>o.has(a.severity))}for(let o of Se.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:ae.tuple(ae.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:ae.tuple(ae.Type.NO_HINT,o.title)},URL:{label:"URL",value:ae.tuple(ae.Type.URL,o.url)},Severity:{label:"Severity",value:ae.tuple(ae.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ae.tuple(ae.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ae.tuple(ae.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ae.tuple(ae.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ae.tuple(ae.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function hue(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=[ba.All,ba.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[ba.All,ba.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return cue([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function pue(r,e,{all:t}){var s;let i=t_e(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:cue(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var oE=class extends Le{constructor(){super(...arguments);this.all=J.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=J.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=J.String("--environment",ba.All,{description:"Which environments to cover",validator:nn(ba)});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=J.String("--severity",xo.Info,{description:"Minimal severity requested for packages to be displayed",validator:nn(xo)})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=hue(t,i,{all:this.all,environment:this.environment}),s=pue(t,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=br.getAuditRegistry(i.manifest,{configuration:e}),l,c=await dA.start({configuration:e,stdout:this.context.stdout},async()=>{l=await zt.post("/-/npm/v1/security/audits/quick",o,{authType:zt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=gue(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(ls.emitTree(fue(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo(X.EXCEPTION,"No audit suggestions")})).exitCode()}};oE.paths=[["npm","audit"]],oE.usage=Re.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${Fb.map(e=>`\`${e}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var due=oE;var zT=ge(ri()),_T=ge(require("util")),aE=class extends Le{constructor(){super(...arguments);this.fields=J.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=J.Rest()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t}=await ze.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Je.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let k=t.topLevelWorkspace;if(!k.manifest.name)throw new Pe(`Missing ${ae.pretty(e,"name",ae.Type.CODE)} field in ${H.fromPortablePath(x.join(k.cwd,xt.manifest))}`);c=P.makeDescriptor(k.manifest.name,"unknown")}else c=P.parseDescriptor(l);let u=zt.getIdentUrl(c),g=VT(await zt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:zt.customPackageError})),f=Object.keys(g.versions).sort(zT.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],m=Wt.validRange(c.range);if(m){let k=zT.default.maxSatisfying(f,m);k!==null?p=k:(a.reportWarning(X.UNNAMED,`Unmet range ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else Object.prototype.hasOwnProperty.call(g["dist-tags"],c.range)?p=g["dist-tags"][c.range]:c.range!=="unknown"&&(a.reportWarning(X.UNNAMED,`Unknown tag ${P.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let y=g.versions[p],b=te(N(N({},g),y),{version:p,versions:f}),v;if(i!==null){v={};for(let k of i){let T=b[k];if(typeof T!="undefined")v[k]=T;else{a.reportWarning(X.EXCEPTION,`The ${ae.pretty(e,k,ae.Type.CODE)} field doesn't exist inside ${P.prettyIdent(e,c)}'s information`),s=!0;continue}}}else this.json||(delete b.dist,delete b.readme,delete b.users),v=b;a.reportJson(v),this.json||n.push(v)}});_T.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,_T.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} +`);return o.exitCode()}};aE.paths=[["npm","info"]],aE.usage=Re.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var Cue=aE;function VT(r){if(Array.isArray(r)){let e=[];for(let t of r)t=VT(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=VT(r[t]);i&&(e[t]=i)}return e}else return r||null}var mue=ge(zC()),AE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=await Nb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await n_e({registry:t,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await zt.put(o,s,{attemptedAs:s.name,configuration:e,registry:t,jsonResponse:!0,authType:zt.AuthType.NO_AUTH});return await i_e(t,a.token,{configuration:e,scope:this.scope}),n.reportInfo(X.UNNAMED,"Successfully logged in")})).exitCode()}};AE.paths=[["npm","login"]],AE.usage=Re.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Eue=AE;async function Nb({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?br.getScopeRegistry(r,{configuration:t,type:br.RegistryType.PUBLISH_REGISTRY}):r?br.getScopeRegistry(r,{configuration:t}):e?br.getPublishRegistry((await zf(t,i)).manifest,{configuration:t}):br.getDefaultRegistry({configuration:t})}async function i_e(r,e,{configuration:t,scope:i}){let n=o=>a=>{let l=Se.isIndexableObject(a)?a:{},c=l[o],u=Se.isIndexableObject(c)?c:{};return te(N({},l),{[o]:te(N({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await ye.updateHomeConfiguration(s)}async function n_e({registry:r,report:e,stdin:t,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(X.UNNAMED,`Logging in to ${r}`);let n=!1;r.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(X.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,mue.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:t,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:t,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var bh=new Set(["npmAuthIdent","npmAuthToken"]),lE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=J.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t=async()=>{var l;let n=await Nb({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await ye.find(this.context.cwd,this.context.plugins),o=P.makeIdent((l=this.scope)!=null?l:null,"pkg");return!br.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await s_e(),n.reportInfo(X.UNNAMED,"Successfully logged out from everything")),this.scope){await Iue("npmScopes",this.scope),await t()?n.reportInfo(X.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(X.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await Nb({configuration:e,cwd:this.context.cwd,publish:this.publish});await Iue("npmRegistries",s),await t()?n.reportInfo(X.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(X.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};lE.paths=[["npm","logout"]],lE.usage=Re.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var yue=lE;function o_e(r,e){let t=r[e];if(!Se.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...bh].every(s=>!i.has(s)))return!1;for(let s of bh)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n=N({},t);for(let s of bh)delete n[s];return r[e]=n,!0}async function s_e(){let r=e=>{let t=!1,i=Se.isIndexableObject(e)?N({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))o_e(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await ye.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function Iue(r,e){return await ye.updateHomeConfiguration({[r]:t=>{let i=Se.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=Se.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...bh].every(l=>!o.has(l)))return t;for(let l of bh)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:te(N({},i),{[e]:void 0});let a={};for(let l of bh)a[l]=void 0;return te(N({},i),{[e]:N(N({},s),a)})}})}var cE=class extends Le{constructor(){super(...arguments);this.access=J.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=J.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=J.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=J.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);if(i.manifest.private)throw new Pe("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new Pe("Workspaces must have valid names and versions to be published on an external registry");await t.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=br.getPublishRegistry(i.manifest,{configuration:e});return(await Je.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await zt.get(zt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new ct(X.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(X.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Zt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await DA.prepareForPack(i,{report:l},async()=>{let g=await DA.genPackList(i);for(let y of g)l.reportInfo(null,y);let f=await DA.genPackStream(i,g),h=await Se.bufferStream(f),p=await Bh.getGitHead(i.cwd),m=await Bh.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await zt.put(zt.getIdentUrl(n),m,{configuration:e,registry:o,ident:n,otp:this.otp,jsonResponse:!0})}),l.reportInfo(X.UNNAMED,"Package archive published")})).exitCode()}};cE.paths=[["npm","publish"]],cE.usage=Re.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var wue=cE;var bue=ge(ri());var uE=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=J.String({required:!1})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=P.parseIdent(this.package);else{if(!i)throw new ht(t.cwd,this.context.cwd);if(!i.manifest.name)throw new Pe(`Missing 'name' field in ${H.fromPortablePath(x.join(i.cwd,xt.manifest))}`);n=i.manifest.name}let s=await gE(n,e),a={children:Se.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ae.tuple(ae.Type.RESOLUTION,{descriptor:P.makeDescriptor(n,l),locator:P.makeLocator(n,c)})}))};return ls.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};uE.paths=[["npm","tag","list"]],uE.usage=Re.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var Bue=uE;async function gE(r,e){let t=`/-/package${zt.getIdentUrl(r)}/dist-tags`;return zt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:zt.customPackageError})}var fE=class extends Le{constructor(){super(...arguments);this.package=J.String();this.tag=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=P.parseDescriptor(this.package,!0),s=n.range;if(!bue.default.valid(s))throw new Pe(`The range ${ae.pretty(e,n.range,ae.Type.RANGE)} must be a valid semver version`);let o=br.getPublishRegistry(i.manifest,{configuration:e}),a=ae.pretty(e,n,ae.Type.IDENT),l=ae.pretty(e,s,ae.Type.RANGE),c=ae.pretty(e,this.tag,ae.Type.CODE);return(await Je.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await gE(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning(X.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo(X.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};fE.paths=[["npm","tag","add"]],fE.usage=Re.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Que=fE;var hE=class extends Le{constructor(){super(...arguments);this.package=J.String();this.tag=J.String()}async execute(){if(this.tag==="latest")throw new Pe("The 'latest' tag cannot be removed.");let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);let n=P.parseIdent(this.package),s=br.getPublishRegistry(i.manifest,{configuration:e}),o=ae.pretty(e,this.tag,ae.Type.CODE),a=ae.pretty(e,n,ae.Type.IDENT),l=await gE(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new Pe(`${o} is not a tag of package ${a}`);return(await Je.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${zt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await zt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo(X.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};hE.paths=[["npm","tag","remove"]],hE.usage=Re.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Sue=hE;var pE=class extends Le{constructor(){super(...arguments);this.scope=J.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=J.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),t;return this.scope&&this.publish?t=br.getScopeRegistry(this.scope,{configuration:e,type:br.RegistryType.PUBLISH_REGISTRY}):this.scope?t=br.getScopeRegistry(this.scope,{configuration:e}):this.publish?t=br.getPublishRegistry((await zf(e,this.context.cwd)).manifest,{configuration:e}):t=br.getDefaultRegistry({configuration:e}),(await Je.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await zt.get("/-/whoami",{configuration:e,registry:t,authType:zt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(X.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(X.UNNAMED,s.username)})).exitCode()}};pE.paths=[["npm","whoami"]],pE.usage=Re.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var vue=pE;var a_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:Ie.STRING,default:null}},commands:[due,Cue,Eue,yue,wue,Que,Bue,Sue,vue]},A_e=a_e;var AO={};ft(AO,{default:()=>B_e,patchUtils:()=>ZT});var ZT={};ft(ZT,{applyPatchFile:()=>Ob,diffFolders:()=>sO,ensureUnpatchedDescriptor:()=>eO,extractPackageToDisk:()=>nO,extractPatchFlags:()=>Nue,isParentRequired:()=>iO,loadPatchFiles:()=>EE,makeDescriptor:()=>tO,makeLocator:()=>rO,parseDescriptor:()=>CE,parseLocator:()=>mE,parsePatchFile:()=>Tb});var dE=class extends Error{constructor(e,t){super(`Cannot apply hunk #${e+1}`);this.hunk=t}};var l_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Qh(r){return x.relative(Me.root,x.resolve(Me.root,H.toPortablePath(r)))}function c_e(r){let e=r.trim().match(l_e);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var u_e=420,g_e=493,Zr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Zr||(Zr={}));var kue=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),f_e=r=>({header:c_e(r),parts:[]}),h_e={["@"]:"header",["-"]:Zr.Deletion,["+"]:Zr.Insertion,[" "]:Zr.Context,["\\"]:"pragma",undefined:Zr.Context};function d_e(r){let e=[],t=kue(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=kue()}for(let l=0;l0?"patch":"mode change",v=null;switch(b){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Qh(u),toPath:Qh(g)}),v=g}break;case"file deletion":{let k=n||p;if(!k)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Lb(l),hash:f})}break;case"file creation":{let k=s||m;if(!k)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Qh(k),mode:Lb(c),hash:h})}break;case"patch":case"mode change":v=m||s;break;default:Se.assertNever(b);break}v&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Qh(v),oldMode:Lb(o),newMode:Lb(a)}),v&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Qh(v),hunks:y,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Lb(r){let e=parseInt(r,8)&511;if(e!==u_e&&e!==g_e)throw new Error(`Unexpected file mode string: ${r}`);return e}function Tb(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),C_e(d_e(e))}function p_e(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case Zr.Context:t+=n.length,e+=n.length;break;case Zr.Deletion:e+=n.length;break;case Zr.Insertion:t+=n.length;break;default:Se.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}async function Sh(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n!="undefined"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function Ob(r,{baseFs:e=new ar,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Wt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Sh(e,x.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Sh(e,x.dirname(n.fromPath),async()=>{await Sh(e,x.dirname(n.toPath),async()=>{await Sh(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` +`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(x.dirname(n.path),{chmod:493,utimes:[Rr.SAFE_TIME,Rr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,Rr.SAFE_TIME,Rr.SAFE_TIME)}break;case"patch":await Sh(e,n.path,async()=>{await m_e(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(xue(n.newMode)!==xue(o))continue;await Sh(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:Se.assertNever(n);break}}function xue(r){return(r&64)>0}function Pue(r){return r.replace(/\s+$/,"")}function E_e(r,e){return Pue(r)===Pue(e)}async function m_e({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),m=Math.max(h,p),y=0,b=0,v=null;for(;y<=m;){if(y<=h&&(b=f-y,v=Due(g,o,b),v!==null)){y=-y;break}if(y<=p&&(b=f+y,v=Due(g,o,b),v!==null))break;y+=1}if(v===null)throw new dE(r.indexOf(g),g);a.push(v),l+=y,c=b+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:Se.assertNever(f);break}await t.writeFilePromise(e,o.join(` +`),{mode:n})}function Due(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case Zr.Context:case Zr.Deletion:{for(let s of n.lines){let o=e[t];if(o==null||!E_e(o,s))return null;t+=1}n.type===Zr.Deletion&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Zr.Insertion:i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:Se.assertNever(n.type);break}return i}var I_e=/^builtin<([^>]+)>$/;function $T(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>H.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function CE(r){let i=$T(r.range,P.parseDescriptor),{sourceItem:e}=i,t=Or(i,["sourceItem"]);return te(N({},t),{sourceDescriptor:e})}function mE(r){let i=$T(r.reference,P.parseLocator),{sourceItem:e}=i,t=Or(i,["sourceItem"]);return te(N({},t),{sourceLocator:e})}function eO(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=$T(r.range,P.parseDescriptor);return e}function Rue({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:N(N(N({},a),l),o)})}function tO(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,Rue({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function rO(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,Rue({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function Fue({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(I_e);return s!==null?t(s[1]):x.isAbsolute(i)?r(i):e(i)}function Nue(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function iO(r){return Fue({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function EE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new _t(Me.root),prefixPath:x.relative(Me.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await Se.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Nue(o),l=await Fue({onAbsolute:async()=>await U.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(x.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return te(N({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function nO(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new di,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await U.mktempPromise(),c=x.join(l,"source"),u=x.join(l,"user"),g=x.join(l,".yarn-patch.json");return await Promise.all([U.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),U.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),U.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),U.detachTemp(l),u}async function sO(r,e){let t=H.fromPortablePath(r).replace(/\\/g,"/"),i=H.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await Nr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:H.toPortablePath(process.cwd()),env:te(N({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${Se.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Se.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(Se.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(Se.escapeRegExp(`${i}/`),"g"),"")}function Lue(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case Zr.Context:t.reportInfo(null,` ${ae.pretty(e,n,"grey")}`);break;case Zr.Deletion:t.reportError(X.FROZEN_LOCKFILE_EXCEPTION,`- ${ae.pretty(e,n,ae.Type.REMOVED)}`);break;case Zr.Insertion:t.reportError(X.FROZEN_LOCKFILE_EXCEPTION,`+ ${ae.pretty(e,n,ae.Type.ADDED)}`);break;default:Se.assertNever(i.type)}}var oO=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,N({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=mE(e),a=await EE(i,o,t),l=await U.mktempPromise(),c=x.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),f=await fn(),h=new li(c,{libzip:f,create:!0,level:t.project.configuration.get("compressionLevel")});await Se.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:m}of a){if(p===null)continue;let y=new li(c,{libzip:f,level:t.project.configuration.get("compressionLevel")}),b=new _t(x.resolve(Me.root,g),{baseFs:y});try{await Ob(Tb(p),{baseFs:b,version:s})}catch(v){if(!(v instanceof dE))throw v;let k=t.project.configuration.get("enableInlineHunks"),T=!k&&!m?" (set enableInlineHunks for details)":"",Y=`${P.prettyLocator(t.project.configuration,e)}: ${v.message}${T}`,q=$=>{!k||Lue(v.hunk,{configuration:t.project.configuration,report:$})};if(y.discardAndClose(),m){t.report.reportWarningOnce(X.PATCH_HUNK_FAILED,Y,{reportExtra:q});continue}else throw new ct(X.PATCH_HUNK_FAILED,Y,q)}y.saveAndClose()}return new li(c,{libzip:f,level:t.project.configuration.get("compressionLevel")})}};var y_e=3,aO=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=CE(e);return n.every(s=>!iO(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=CE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=CE(e),a=await EE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=Rn.makeHash(`${y_e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[rO(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=mE(e),n=await t.resolver.resolve(i,t);return N(N({},n),e)}};var IE=class extends Le{constructor(){super(...arguments);this.save=J.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let n=x.resolve(this.context.cwd,H.toPortablePath(this.patchFolder)),s=x.join(n,"../source"),o=x.join(n,"../.yarn-patch.json");if(!U.existsSync(s))throw new Pe("The argument folder didn't get created by 'yarn patch'");let a=await sO(s,n),l=await U.readJsonPromise(o),c=P.parseLocator(l.locator,!0);if(!t.storedPackages.has(c.locatorHash))throw new Pe("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=x.join(u,`${P.slugifyLocator(c)}.patch`);await U.mkdirPromise(u,{recursive:!0}),await U.writeFilePromise(g,a);let f=new Map;for(let h of t.storedPackages.values()){if(P.isVirtualLocator(h))continue;let p=h.dependencies.get(c.identHash);if(!p)continue;let m=P.isVirtualDescriptor(p)?P.devirtualizeDescriptor(p):p,y=eO(m),b=t.storedResolutions.get(y.descriptorHash);if(!b)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!t.storedPackages.get(b))throw new Error("Assertion failed: Expected the package to have been registered");let k=t.originalPackages.get(h.locatorHash);if(!k)throw new Error("Assertion failed: Expected the original package to have been registered");let T=k.dependencies.get(p.identHash);if(!T)throw new Error("Assertion failed: Expected the original dependency to have been registered");f.set(T.descriptorHash,T)}for(let h of f.values()){let p=tO(h,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(c),sourceVersion:null,patchPaths:[`./${x.relative(t.cwd,g)}`]});t.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(p),description:h.range}},reference:p.range})}await t.persist()}};IE.paths=[["patch-commit"]],IE.usage=Re.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var Tue=IE;var yE=class extends Le{constructor(){super(...arguments);this.json=J.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=J.String()}async execute(){let e=await ye.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await ze.find(e,this.context.cwd),n=await Nt.find(e);if(!i)throw new ht(t.cwd,this.context.cwd);await t.restoreInstallState();let s=P.parseLocator(this.package);if(s.reference==="unknown"){let o=Se.mapAndFilter([...t.storedPackages.values()],a=>a.identHash!==s.identHash?Se.mapAndFilter.skip:P.isVirtualLocator(a)?Se.mapAndFilter.skip:a);if(o.length===0)throw new Pe("No package found in the project for the given locator");if(o.length>1)throw new Pe(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${o.map(a=>` +- ${P.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!t.storedPackages.has(s.locatorHash))throw new Pe("No package found in the project for the given locator");await Je.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await nO(s,{cache:n,project:t});o.reportJson({locator:P.stringifyLocator(s),path:H.fromPortablePath(a)}),o.reportInfo(X.UNNAMED,`Package ${P.prettyLocator(e,s)} got extracted with success!`),o.reportInfo(X.UNNAMED,`You can now edit the following folder: ${ae.pretty(e,H.fromPortablePath(a),"magenta")}`),o.reportInfo(X.UNNAMED,`Once you are done run ${ae.pretty(e,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${H.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};yE.paths=[["patch"]],yE.usage=Re.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var Oue=yE;var w_e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:Ie.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:Ie.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[Tue,Oue],fetchers:[oO],resolvers:[aO]},B_e=w_e;var gO={};ft(gO,{default:()=>S_e});var lO=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=cO(),n=t.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s=="undefined")throw new Pe(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=cO(),n=t.project.installersCustomData.get(i);if(!n)throw new Pe(`The project in ${ae.pretty(t.project.configuration,`${t.project.cwd}/package.json`,ae.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=x.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new Mue(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Mue=class{constructor(e){this.opts=e;this.asyncActions=new Se.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return cO()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case Qt.SOFT:return this.installPackageSoft(e,t,i);case Qt.HARD:return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=x.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=b_e(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await U.mkdirPromise(n,{recursive:!0}),await U.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await At.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new At,misc:{hasBindingGyp:ma.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=ma.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!Hue(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=x.join(n,xt.nodeModules),o=[],a=await jue(s);for(let[l,c]of t){let u=c;Hue(c,{project:this.opts.project})||(this.opts.report.reportWarning(X.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let f=P.stringifyIdent(l),h=x.join(s,f),p=x.relative(x.dirname(h),g),m=a.get(f);a.delete(f),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await U.readlinkPromise(h)===p)return;await U.removePromise(h)}await U.mkdirpPromise(x.dirname(h)),process.platform=="win32"?await U.symlinkPromise(g,h,"junction"):await U.symlinkPromise(p,h)}))}o.push(Gue(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Kue(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await U.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=x.contains(e,s);if(o!==null){let[a,,...l]=o.split(x.sep);i.add(a);let c=x.join(e,a);t.push(U.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let f=x.join(c,g);if(g===xt.nodeModules){let h=await jue(f);return h.delete(l.join(x.sep)),Gue(f,h)}else return U.removePromise(f)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await U.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(U.removePromise(x.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await uO(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await uO(Uue(this.opts.project)),{customData:this.customData}}};function cO(){return JSON.stringify({name:"PnpmInstaller",version:2})}function Uue(r){return x.join(r.cwd,xt.nodeModules)}function Kue(r){return x.join(Uue(r),".store")}function b_e(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return x.join(Kue(e),t,i)}function Hue(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function jue(r){let e=new Map,t=[];try{t=await U.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await U.readdirPromise(x.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function Gue(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(U.removePromise(x.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>uO(x.join(r,s)))))}async function uO(r){try{await U.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var Q_e={linkers:[lO]},S_e=Q_e;var T0=()=>({modules:new Map([["@yarnpkg/cli",YC],["@yarnpkg/core",IC],["@yarnpkg/fslib",$h],["@yarnpkg/libzip",Ud],["@yarnpkg/parsers",ap],["@yarnpkg/shell",Hd],["clipanion",hZ(mp)],["semver",v_e],["typanion",ug],["yup",k_e],["@yarnpkg/plugin-essentials",YN],["@yarnpkg/plugin-compat",_N],["@yarnpkg/plugin-dlx",VN],["@yarnpkg/plugin-file",sL],["@yarnpkg/plugin-git",GN],["@yarnpkg/plugin-github",aL],["@yarnpkg/plugin-http",cL],["@yarnpkg/plugin-init",hL],["@yarnpkg/plugin-link",EL],["@yarnpkg/plugin-nm",WL],["@yarnpkg/plugin-npm",JT],["@yarnpkg/plugin-npm-cli",XT],["@yarnpkg/plugin-pack",jT],["@yarnpkg/plugin-patch",AO],["@yarnpkg/plugin-pnp",TL],["@yarnpkg/plugin-pnpm",gO]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});o0({binaryVersion:Kr||"",pluginConfiguration:T0()});})(); +/*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + */ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/.yarn/releases/yarn-3.2.4.cjs b/.yarn/releases/yarn-3.2.4.cjs new file mode 100755 index 000000000..78b905ef1 --- /dev/null +++ b/.yarn/releases/yarn-3.2.4.cjs @@ -0,0 +1,800 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var nfe=Object.create;var HS=Object.defineProperty;var sfe=Object.getOwnPropertyDescriptor;var ofe=Object.getOwnPropertyNames;var afe=Object.getPrototypeOf,Afe=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var y=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ht=(r,e)=>{for(var t in e)HS(r,t,{get:e[t],enumerable:!0})},lfe=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ofe(e))!Afe.call(r,n)&&n!==t&&HS(r,n,{get:()=>e[n],enumerable:!(i=sfe(e,n))||i.enumerable});return r};var ne=(r,e,t)=>(t=r!=null?nfe(afe(r)):{},lfe(e||!r||!r.__esModule?HS(t,"default",{value:r,enumerable:!0}):t,r));var ZU=y(($_e,_U)=>{_U.exports=XU;XU.sync=Dfe;var zU=J("fs");function Pfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{r1.exports=e1;e1.sync=kfe;var $U=J("fs");function e1(r,e,t){$U.stat(r,function(i,n){t(i,i?!1:t1(n,e))})}function kfe(r,e){return t1($U.statSync(r),e)}function t1(r,e){return r.isFile()&&Rfe(r,e)}function Rfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var s1=y((rZe,n1)=>{var tZe=J("fs"),RI;process.platform==="win32"||global.TESTING_WINDOWS?RI=ZU():RI=i1();n1.exports=nv;nv.sync=Ffe;function nv(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){nv(r,e||{},function(s,o){s?n(s):i(o)})})}RI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function Ffe(r,e){try{return RI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var g1=y((iZe,u1)=>{var Xg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",o1=J("path"),Nfe=Xg?";":":",a1=s1(),A1=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),l1=(r,e)=>{let t=e.colon||Nfe,i=r.match(/\//)||Xg&&r.match(/\\/)?[""]:[...Xg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Xg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Xg?n.split(t):[""];return Xg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},c1=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=l1(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(A1(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=o1.join(h,r),m=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(m,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];a1(c+p,{pathExt:s},(m,w)=>{if(!m&&w)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Lfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=l1(r,e),s=[];for(let o=0;o{"use strict";var f1=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};sv.exports=f1;sv.exports.default=f1});var m1=y((sZe,C1)=>{"use strict";var p1=J("path"),Tfe=g1(),Ofe=h1();function d1(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=Tfe.sync(r.command,{path:t[Ofe({env:t})],pathExt:e?p1.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=p1.resolve(n?r.options.cwd:"",o)),o}function Mfe(r){return d1(r)||d1(r,!0)}C1.exports=Mfe});var E1=y((oZe,av)=>{"use strict";var ov=/([()\][%!^"`<>&|;, *?])/g;function Kfe(r){return r=r.replace(ov,"^$1"),r}function Ufe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(ov,"^$1"),e&&(r=r.replace(ov,"^$1")),r}av.exports.command=Kfe;av.exports.argument=Ufe});var y1=y((aZe,I1)=>{"use strict";I1.exports=/^#!(.*)/});var B1=y((AZe,w1)=>{"use strict";var Hfe=y1();w1.exports=(r="")=>{let e=r.match(Hfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var b1=y((lZe,Q1)=>{"use strict";var Av=J("fs"),Gfe=B1();function Yfe(r){let t=Buffer.alloc(150),i;try{i=Av.openSync(r,"r"),Av.readSync(i,t,0,150,0),Av.closeSync(i)}catch{}return Gfe(t.toString())}Q1.exports=Yfe});var P1=y((cZe,x1)=>{"use strict";var jfe=J("path"),S1=m1(),v1=E1(),qfe=b1(),Jfe=process.platform==="win32",Wfe=/\.(?:com|exe)$/i,zfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Vfe(r){r.file=S1(r);let e=r.file&&qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,S1(r)):r.file}function Xfe(r){if(!Jfe)return r;let e=Vfe(r),t=!Wfe.test(e);if(r.options.forceShell||t){let i=zfe.test(e);r.command=jfe.normalize(r.command),r.command=v1.command(r.command),r.args=r.args.map(s=>v1.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function _fe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Xfe(i)}x1.exports=_fe});var R1=y((uZe,k1)=>{"use strict";var lv=process.platform==="win32";function cv(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Zfe(r,e){if(!lv)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=D1(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function D1(r,e){return lv&&r===1&&!e.file?cv(e.original,"spawn"):null}function $fe(r,e){return lv&&r===1&&!e.file?cv(e.original,"spawnSync"):null}k1.exports={hookChildProcess:Zfe,verifyENOENT:D1,verifyENOENTSync:$fe,notFoundError:cv}});var fv=y((gZe,_g)=>{"use strict";var F1=J("child_process"),uv=P1(),gv=R1();function N1(r,e,t){let i=uv(r,e,t),n=F1.spawn(i.command,i.args,i.options);return gv.hookChildProcess(n,i),n}function ehe(r,e,t){let i=uv(r,e,t),n=F1.spawnSync(i.command,i.args,i.options);return n.error=n.error||gv.verifyENOENTSync(n.status,i),n}_g.exports=N1;_g.exports.spawn=N1;_g.exports.sync=ehe;_g.exports._parse=uv;_g.exports._enoent=gv});var T1=y((fZe,L1)=>{"use strict";function the(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function cc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,cc)}the(cc,Error);cc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",te=de(">>",!1),me=">&",tt=de(">&",!1),Rt=">",It=de(">",!1),Kr="<<<",oi=de("<<<",!1),pi="<&",pr=de("<&",!1),di="<",ai=de("<",!1),Os=function(C){return{type:"argument",segments:[].concat(...C)}},dr=function(C){return C},Bi="$'",_n=de("$'",!1),ga="'",CA=de("'",!1),Dg=function(C){return[{type:"text",text:C}]},Zn='""',mA=de('""',!1),fa=function(){return{type:"text",text:""}},jp='"',EA=de('"',!1),IA=function(C){return C},wr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},zl=function(C){return{type:"shell",shell:C,quoted:!0}},kg=function(C){return{type:"variable",...C,quoted:!0}},mo=function(C){return{type:"text",text:C}},Rg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},qp=function(C){return{type:"shell",shell:C,quoted:!1}},Jp=function(C){return{type:"variable",...C,quoted:!1}},xr=function(C){return{type:"glob",pattern:C}},oe=/^[^']/,Eo=Ye(["'"],!0,!1),Dn=function(C){return C.join("")},Fg=/^[^$"]/,Qt=Ye(["$",'"'],!0,!1),Vl=`\\ +`,kn=de(`\\ +`,!1),$n=function(){return""},es="\\",ut=de("\\",!1),Io=/^[\\$"`]/,at=Ye(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},S="\\a",Tt=de("\\a",!1),Ng=function(){return"a"},Xl="\\b",Wp=de("\\b",!1),zp=function(){return"\b"},Vp=/^[Ee]/,Xp=Ye(["E","e"],!1,!1),_p=function(){return"\x1B"},G="\\f",yt=de("\\f",!1),yA=function(){return"\f"},Wi="\\n",_l=de("\\n",!1),We=function(){return` +`},ha="\\r",Lg=de("\\r",!1),oI=function(){return"\r"},Zp="\\t",aI=de("\\t",!1),ar=function(){return" "},Rn="\\v",Zl=de("\\v",!1),$p=function(){return"\v"},Ms=/^[\\'"?]/,pa=Ye(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},De="\\x",Tg=de("\\x",!1),$l="\\u",Ks=de("\\u",!1),ec="\\U",wA=de("\\U",!1),Og=function(C){return String.fromCodePoint(parseInt(C,16))},Mg=/^[0-7]/,da=Ye([["0","7"]],!1,!1),Ca=/^[0-9a-fA-f]/,$e=Ye([["0","9"],["a","f"],["A","f"]],!1,!1),yo=rt(),BA="-",tc=de("-",!1),Us="+",rc=de("+",!1),AI=".",ed=de(".",!1),Kg=function(C,b,N){return{type:"number",value:(C==="-"?-1:1)*parseFloat(b.join("")+"."+N.join(""))}},td=function(C,b){return{type:"number",value:(C==="-"?-1:1)*parseInt(b.join(""))}},lI=function(C){return{type:"variable",...C}},ic=function(C){return{type:"variable",name:C}},cI=function(C){return C},Ug="*",QA=de("*",!1),Rr="/",uI=de("/",!1),Hs=function(C,b,N){return{type:b==="*"?"multiplication":"division",right:N}},Gs=function(C,b){return b.reduce((N,U)=>({left:N,...U}),C)},Hg=function(C,b,N){return{type:b==="+"?"addition":"subtraction",right:N}},bA="$((",R=de("$((",!1),q="))",pe=de("))",!1),Ne=function(C){return C},xe="$(",qe=de("$(",!1),dt=function(C){return C},Ft="${",Fn=de("${",!1),QS=":-",tU=de(":-",!1),rU=function(C,b){return{name:C,defaultValue:b}},bS=":-}",iU=de(":-}",!1),nU=function(C){return{name:C,defaultValue:[]}},SS=":+",sU=de(":+",!1),oU=function(C,b){return{name:C,alternativeValue:b}},vS=":+}",aU=de(":+}",!1),AU=function(C){return{name:C,alternativeValue:[]}},xS=function(C){return{name:C}},lU="$",cU=de("$",!1),uU=function(C){return e.isGlobPattern(C)},gU=function(C){return C},PS=/^[a-zA-Z0-9_]/,DS=Ye([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),kS=function(){return O()},RS=/^[$@*?#a-zA-Z0-9_\-]/,FS=Ye(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),fU=/^[(){}<>$|&; \t"']/,Gg=Ye(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),NS=/^[<>&; \t"']/,LS=Ye(["<",">","&",";"," "," ",'"',"'"],!1,!1),gI=/^[ \t]/,fI=Ye([" "," "],!1,!1),Q=0,Re=0,SA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function O(){return r.substring(Re,Q)}function X(){return Et(Re,Q)}function ee(C,b){throw b=b!==void 0?b:Et(Re,Q),Fi([At(C)],r.substring(Re,Q),b)}function ye(C,b){throw b=b!==void 0?b:Et(Re,Q),Nn(C,b)}function de(C,b){return{type:"literal",text:C,ignoreCase:b}}function Ye(C,b,N){return{type:"class",parts:C,inverted:b,ignoreCase:N}}function rt(){return{type:"any"}}function wt(){return{type:"end"}}function At(C){return{type:"other",description:C}}function et(C){var b=SA[C],N;if(b)return b;for(N=C-1;!SA[N];)N--;for(b=SA[N],b={line:b.line,column:b.column};Nd&&(d=Q,E=[]),E.push(C))}function Nn(C,b){return new cc(C,null,null,b)}function Fi(C,b,N){return new cc(cc.buildMessage(C,b),C,b,N)}function vA(){var C,b;return C=Q,b=Ur(),b===t&&(b=null),b!==t&&(Re=C,b=s(b)),C=b,C}function Ur(){var C,b,N,U,ce;if(C=Q,b=Hr(),b!==t){for(N=[],U=Me();U!==t;)N.push(U),U=Me();N!==t?(U=ma(),U!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Re=C,b=o(b,U,ce),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)}else Q=C,C=t;if(C===t)if(C=Q,b=Hr(),b!==t){for(N=[],U=Me();U!==t;)N.push(U),U=Me();N!==t?(U=ma(),U===t&&(U=null),U!==t?(Re=C,b=a(b,U),C=b):(Q=C,C=t)):(Q=C,C=t)}else Q=C,C=t;return C}function ts(){var C,b,N,U,ce;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t)if(N=Ur(),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=C,b=l(N),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t;return C}function ma(){var C;return r.charCodeAt(Q)===59?(C=c,Q++):(C=t,I===0&&Be(u)),C===t&&(r.charCodeAt(Q)===38?(C=g,Q++):(C=t,I===0&&Be(f))),C}function Hr(){var C,b,N;return C=Q,b=hU(),b!==t?(N=Hge(),N===t&&(N=null),N!==t?(Re=C,b=h(b,N),C=b):(Q=C,C=t)):(Q=C,C=t),C}function Hge(){var C,b,N,U,ce,be,ft;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t)if(N=Gge(),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Hr(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=C,b=p(N,ce),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t;return C}function Gge(){var C;return r.substr(Q,2)===m?(C=m,Q+=2):(C=t,I===0&&Be(w)),C===t&&(r.substr(Q,2)===B?(C=B,Q+=2):(C=t,I===0&&Be(v))),C}function hU(){var C,b,N;return C=Q,b=qge(),b!==t?(N=Yge(),N===t&&(N=null),N!==t?(Re=C,b=D(b,N),C=b):(Q=C,C=t)):(Q=C,C=t),C}function Yge(){var C,b,N,U,ce,be,ft;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t)if(N=jge(),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=hU(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=C,b=F(N,ce),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t;return C}function jge(){var C;return r.substr(Q,2)===H?(C=H,Q+=2):(C=t,I===0&&Be(j)),C===t&&(r.charCodeAt(Q)===124?(C=$,Q++):(C=t,I===0&&Be(z))),C}function hI(){var C,b,N,U,ce,be;if(C=Q,b=SU(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Be(Z)),N!==t)if(U=CU(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(Re=C,b=A(b,U),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t;else Q=C,C=t;if(C===t)if(C=Q,b=SU(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Be(Z)),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=C,b=ae(b),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t;return C}function qge(){var C,b,N,U,ce,be,ft,Bt,Vr,Ci,rs;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t)if(r.charCodeAt(Q)===40?(N=ue,Q++):(N=t,I===0&&Be(_)),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Ur(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(Q)===41?(ft=T,Q++):(ft=t,I===0&&Be(L)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=rd();Ci!==t;)Vr.push(Ci),Ci=rd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Re=C,b=ge(ce,Vr),C=b):(Q=C,C=t)}else Q=C,C=t}else Q=C,C=t}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t;if(C===t){for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t)if(r.charCodeAt(Q)===123?(N=we,Q++):(N=t,I===0&&Be(Le)),N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t)if(ce=Ur(),ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(Q)===125?(ft=Pe,Q++):(ft=t,I===0&&Be(Te)),ft!==t){for(Bt=[],Vr=Me();Vr!==t;)Bt.push(Vr),Vr=Me();if(Bt!==t){for(Vr=[],Ci=rd();Ci!==t;)Vr.push(Ci),Ci=rd();if(Vr!==t){for(Ci=[],rs=Me();rs!==t;)Ci.push(rs),rs=Me();Ci!==t?(Re=C,b=se(ce,Vr),C=b):(Q=C,C=t)}else Q=C,C=t}else Q=C,C=t}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;else Q=C,C=t;if(C===t){for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t){for(N=[],U=hI();U!==t;)N.push(U),U=hI();if(N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();if(U!==t){if(ce=[],be=dU(),be!==t)for(;be!==t;)ce.push(be),be=dU();else ce=t;if(ce!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(Re=C,b=Ae(N,ce),C=b):(Q=C,C=t)}else Q=C,C=t}else Q=C,C=t}else Q=C,C=t}else Q=C,C=t;if(C===t){for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t){if(N=[],U=hI(),U!==t)for(;U!==t;)N.push(U),U=hI();else N=t;if(N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=C,b=Qe(N),C=b):(Q=C,C=t)}else Q=C,C=t}else Q=C,C=t}}}return C}function pU(){var C,b,N,U,ce;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t){if(N=[],U=pI(),U!==t)for(;U!==t;)N.push(U),U=pI();else N=t;if(N!==t){for(U=[],ce=Me();ce!==t;)U.push(ce),ce=Me();U!==t?(Re=C,b=fe(N),C=b):(Q=C,C=t)}else Q=C,C=t}else Q=C,C=t;return C}function dU(){var C,b,N;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();if(b!==t?(N=rd(),N!==t?(Re=C,b=le(N),C=b):(Q=C,C=t)):(Q=C,C=t),C===t){for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();b!==t?(N=pI(),N!==t?(Re=C,b=le(N),C=b):(Q=C,C=t)):(Q=C,C=t)}return C}function rd(){var C,b,N,U,ce;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();return b!==t?(Ge.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(ie)),N===t&&(N=null),N!==t?(U=Jge(),U!==t?(ce=pI(),ce!==t?(Re=C,b=Y(N,U,ce),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C}function Jge(){var C;return r.substr(Q,2)===he?(C=he,Q+=2):(C=t,I===0&&Be(te)),C===t&&(r.substr(Q,2)===me?(C=me,Q+=2):(C=t,I===0&&Be(tt)),C===t&&(r.charCodeAt(Q)===62?(C=Rt,Q++):(C=t,I===0&&Be(It)),C===t&&(r.substr(Q,3)===Kr?(C=Kr,Q+=3):(C=t,I===0&&Be(oi)),C===t&&(r.substr(Q,2)===pi?(C=pi,Q+=2):(C=t,I===0&&Be(pr)),C===t&&(r.charCodeAt(Q)===60?(C=di,Q++):(C=t,I===0&&Be(ai))))))),C}function pI(){var C,b,N;for(C=Q,b=[],N=Me();N!==t;)b.push(N),N=Me();return b!==t?(N=CU(),N!==t?(Re=C,b=le(N),C=b):(Q=C,C=t)):(Q=C,C=t),C}function CU(){var C,b,N;if(C=Q,b=[],N=mU(),N!==t)for(;N!==t;)b.push(N),N=mU();else b=t;return b!==t&&(Re=C,b=Os(b)),C=b,C}function mU(){var C,b;return C=Q,b=Wge(),b!==t&&(Re=C,b=dr(b)),C=b,C===t&&(C=Q,b=zge(),b!==t&&(Re=C,b=dr(b)),C=b,C===t&&(C=Q,b=Vge(),b!==t&&(Re=C,b=dr(b)),C=b,C===t&&(C=Q,b=Xge(),b!==t&&(Re=C,b=dr(b)),C=b))),C}function Wge(){var C,b,N,U;return C=Q,r.substr(Q,2)===Bi?(b=Bi,Q+=2):(b=t,I===0&&Be(_n)),b!==t?(N=$ge(),N!==t?(r.charCodeAt(Q)===39?(U=ga,Q++):(U=t,I===0&&Be(CA)),U!==t?(Re=C,b=Dg(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C}function zge(){var C,b,N,U;return C=Q,r.charCodeAt(Q)===39?(b=ga,Q++):(b=t,I===0&&Be(CA)),b!==t?(N=_ge(),N!==t?(r.charCodeAt(Q)===39?(U=ga,Q++):(U=t,I===0&&Be(CA)),U!==t?(Re=C,b=Dg(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C}function Vge(){var C,b,N,U;if(C=Q,r.substr(Q,2)===Zn?(b=Zn,Q+=2):(b=t,I===0&&Be(mA)),b!==t&&(Re=C,b=fa()),C=b,C===t)if(C=Q,r.charCodeAt(Q)===34?(b=jp,Q++):(b=t,I===0&&Be(EA)),b!==t){for(N=[],U=EU();U!==t;)N.push(U),U=EU();N!==t?(r.charCodeAt(Q)===34?(U=jp,Q++):(U=t,I===0&&Be(EA)),U!==t?(Re=C,b=IA(N),C=b):(Q=C,C=t)):(Q=C,C=t)}else Q=C,C=t;return C}function Xge(){var C,b,N;if(C=Q,b=[],N=IU(),N!==t)for(;N!==t;)b.push(N),N=IU();else b=t;return b!==t&&(Re=C,b=IA(b)),C=b,C}function EU(){var C,b;return C=Q,b=QU(),b!==t&&(Re=C,b=wr(b)),C=b,C===t&&(C=Q,b=bU(),b!==t&&(Re=C,b=zl(b)),C=b,C===t&&(C=Q,b=KS(),b!==t&&(Re=C,b=kg(b)),C=b,C===t&&(C=Q,b=Zge(),b!==t&&(Re=C,b=mo(b)),C=b))),C}function IU(){var C,b;return C=Q,b=QU(),b!==t&&(Re=C,b=Rg(b)),C=b,C===t&&(C=Q,b=bU(),b!==t&&(Re=C,b=qp(b)),C=b,C===t&&(C=Q,b=KS(),b!==t&&(Re=C,b=Jp(b)),C=b,C===t&&(C=Q,b=rfe(),b!==t&&(Re=C,b=xr(b)),C=b,C===t&&(C=Q,b=tfe(),b!==t&&(Re=C,b=mo(b)),C=b)))),C}function _ge(){var C,b,N;for(C=Q,b=[],oe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Eo));N!==t;)b.push(N),oe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Eo));return b!==t&&(Re=C,b=Dn(b)),C=b,C}function Zge(){var C,b,N;if(C=Q,b=[],N=yU(),N===t&&(Fg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Qt))),N!==t)for(;N!==t;)b.push(N),N=yU(),N===t&&(Fg.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Qt)));else b=t;return b!==t&&(Re=C,b=Dn(b)),C=b,C}function yU(){var C,b,N;return C=Q,r.substr(Q,2)===Vl?(b=Vl,Q+=2):(b=t,I===0&&Be(kn)),b!==t&&(Re=C,b=$n()),C=b,C===t&&(C=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(Io.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(at)),N!==t?(Re=C,b=ln(N),C=b):(Q=C,C=t)):(Q=C,C=t)),C}function $ge(){var C,b,N;for(C=Q,b=[],N=wU(),N===t&&(oe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Eo)));N!==t;)b.push(N),N=wU(),N===t&&(oe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Eo)));return b!==t&&(Re=C,b=Dn(b)),C=b,C}function wU(){var C,b,N;return C=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Be(Tt)),b!==t&&(Re=C,b=Ng()),C=b,C===t&&(C=Q,r.substr(Q,2)===Xl?(b=Xl,Q+=2):(b=t,I===0&&Be(Wp)),b!==t&&(Re=C,b=zp()),C=b,C===t&&(C=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(Vp.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(Xp)),N!==t?(Re=C,b=_p(),C=b):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Be(yt)),b!==t&&(Re=C,b=yA()),C=b,C===t&&(C=Q,r.substr(Q,2)===Wi?(b=Wi,Q+=2):(b=t,I===0&&Be(_l)),b!==t&&(Re=C,b=We()),C=b,C===t&&(C=Q,r.substr(Q,2)===ha?(b=ha,Q+=2):(b=t,I===0&&Be(Lg)),b!==t&&(Re=C,b=oI()),C=b,C===t&&(C=Q,r.substr(Q,2)===Zp?(b=Zp,Q+=2):(b=t,I===0&&Be(aI)),b!==t&&(Re=C,b=ar()),C=b,C===t&&(C=Q,r.substr(Q,2)===Rn?(b=Rn,Q+=2):(b=t,I===0&&Be(Zl)),b!==t&&(Re=C,b=$p()),C=b,C===t&&(C=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(Ms.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(pa)),N!==t?(Re=C,b=ln(N),C=b):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=efe()))))))))),C}function efe(){var C,b,N,U,ce,be,ft,Bt,Vr,Ci,rs,US;return C=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Be(ut)),b!==t?(N=TS(),N!==t?(Re=C,b=cn(N),C=b):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===De?(b=De,Q+=2):(b=t,I===0&&Be(Tg)),b!==t?(N=Q,U=Q,ce=TS(),ce!==t?(be=Ln(),be!==t?(ce=[ce,be],U=ce):(Q=U,U=t)):(Q=U,U=t),U===t&&(U=TS()),U!==t?N=r.substring(N,Q):N=U,N!==t?(Re=C,b=cn(N),C=b):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===$l?(b=$l,Q+=2):(b=t,I===0&&Be(Ks)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(be=Ln(),be!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(ce=[ce,be,ft,Bt],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Re=C,b=cn(N),C=b):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===ec?(b=ec,Q+=2):(b=t,I===0&&Be(wA)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(be=Ln(),be!==t?(ft=Ln(),ft!==t?(Bt=Ln(),Bt!==t?(Vr=Ln(),Vr!==t?(Ci=Ln(),Ci!==t?(rs=Ln(),rs!==t?(US=Ln(),US!==t?(ce=[ce,be,ft,Bt,Vr,Ci,rs,US],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Re=C,b=Og(N),C=b):(Q=C,C=t)):(Q=C,C=t)))),C}function TS(){var C;return Mg.test(r.charAt(Q))?(C=r.charAt(Q),Q++):(C=t,I===0&&Be(da)),C}function Ln(){var C;return Ca.test(r.charAt(Q))?(C=r.charAt(Q),Q++):(C=t,I===0&&Be($e)),C}function tfe(){var C,b,N,U,ce;if(C=Q,b=[],N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Be(ut)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=vU(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t)),N!==t)for(;N!==t;)b.push(N),N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Be(ut)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=vU(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t));else b=t;return b!==t&&(Re=C,b=Dn(b)),C=b,C}function OS(){var C,b,N,U,ce,be;if(C=Q,r.charCodeAt(Q)===45?(b=BA,Q++):(b=t,I===0&&Be(tc)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Be(rc))),b===t&&(b=null),b!==t){if(N=[],Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie)),U!==t)for(;U!==t;)N.push(U),Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie));else N=t;if(N!==t)if(r.charCodeAt(Q)===46?(U=AI,Q++):(U=t,I===0&&Be(ed)),U!==t){if(ce=[],Ge.test(r.charAt(Q))?(be=r.charAt(Q),Q++):(be=t,I===0&&Be(ie)),be!==t)for(;be!==t;)ce.push(be),Ge.test(r.charAt(Q))?(be=r.charAt(Q),Q++):(be=t,I===0&&Be(ie));else ce=t;ce!==t?(Re=C,b=Kg(b,N,ce),C=b):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;if(C===t){if(C=Q,r.charCodeAt(Q)===45?(b=BA,Q++):(b=t,I===0&&Be(tc)),b===t&&(r.charCodeAt(Q)===43?(b=Us,Q++):(b=t,I===0&&Be(rc))),b===t&&(b=null),b!==t){if(N=[],Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie)),U!==t)for(;U!==t;)N.push(U),Ge.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Be(ie));else N=t;N!==t?(Re=C,b=td(b,N),C=b):(Q=C,C=t)}else Q=C,C=t;if(C===t&&(C=Q,b=KS(),b!==t&&(Re=C,b=lI(b)),C=b,C===t&&(C=Q,b=nc(),b!==t&&(Re=C,b=ic(b)),C=b,C===t)))if(C=Q,r.charCodeAt(Q)===40?(b=ue,Q++):(b=t,I===0&&Be(_)),b!==t){for(N=[],U=Me();U!==t;)N.push(U),U=Me();if(N!==t)if(U=BU(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(r.charCodeAt(Q)===41?(be=T,Q++):(be=t,I===0&&Be(L)),be!==t?(Re=C,b=cI(U),C=b):(Q=C,C=t)):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t}return C}function MS(){var C,b,N,U,ce,be,ft,Bt;if(C=Q,b=OS(),b!==t){for(N=[],U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===42?(be=Ug,Q++):(be=t,I===0&&Be(QA)),be===t&&(r.charCodeAt(Q)===47?(be=Rr,Q++):(be=t,I===0&&Be(uI))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=OS(),Bt!==t?(Re=U,ce=Hs(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===42?(be=Ug,Q++):(be=t,I===0&&Be(QA)),be===t&&(r.charCodeAt(Q)===47?(be=Rr,Q++):(be=t,I===0&&Be(uI))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=OS(),Bt!==t?(Re=U,ce=Hs(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Re=C,b=Gs(b,N),C=b):(Q=C,C=t)}else Q=C,C=t;return C}function BU(){var C,b,N,U,ce,be,ft,Bt;if(C=Q,b=MS(),b!==t){for(N=[],U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===43?(be=Us,Q++):(be=t,I===0&&Be(rc)),be===t&&(r.charCodeAt(Q)===45?(be=BA,Q++):(be=t,I===0&&Be(tc))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=MS(),Bt!==t?(Re=U,ce=Hg(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],be=Me();be!==t;)ce.push(be),be=Me();if(ce!==t)if(r.charCodeAt(Q)===43?(be=Us,Q++):(be=t,I===0&&Be(rc)),be===t&&(r.charCodeAt(Q)===45?(be=BA,Q++):(be=t,I===0&&Be(tc))),be!==t){for(ft=[],Bt=Me();Bt!==t;)ft.push(Bt),Bt=Me();ft!==t?(Bt=MS(),Bt!==t?(Re=U,ce=Hg(b,be,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Re=C,b=Gs(b,N),C=b):(Q=C,C=t)}else Q=C,C=t;return C}function QU(){var C,b,N,U,ce,be;if(C=Q,r.substr(Q,3)===bA?(b=bA,Q+=3):(b=t,I===0&&Be(R)),b!==t){for(N=[],U=Me();U!==t;)N.push(U),U=Me();if(N!==t)if(U=BU(),U!==t){for(ce=[],be=Me();be!==t;)ce.push(be),be=Me();ce!==t?(r.substr(Q,2)===q?(be=q,Q+=2):(be=t,I===0&&Be(pe)),be!==t?(Re=C,b=Ne(U),C=b):(Q=C,C=t)):(Q=C,C=t)}else Q=C,C=t;else Q=C,C=t}else Q=C,C=t;return C}function bU(){var C,b,N,U;return C=Q,r.substr(Q,2)===xe?(b=xe,Q+=2):(b=t,I===0&&Be(qe)),b!==t?(N=Ur(),N!==t?(r.charCodeAt(Q)===41?(U=T,Q++):(U=t,I===0&&Be(L)),U!==t?(Re=C,b=dt(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C}function KS(){var C,b,N,U,ce,be;return C=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Fn)),b!==t?(N=nc(),N!==t?(r.substr(Q,2)===QS?(U=QS,Q+=2):(U=t,I===0&&Be(tU)),U!==t?(ce=pU(),ce!==t?(r.charCodeAt(Q)===125?(be=Pe,Q++):(be=t,I===0&&Be(Te)),be!==t?(Re=C,b=rU(N,ce),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Fn)),b!==t?(N=nc(),N!==t?(r.substr(Q,3)===bS?(U=bS,Q+=3):(U=t,I===0&&Be(iU)),U!==t?(Re=C,b=nU(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Fn)),b!==t?(N=nc(),N!==t?(r.substr(Q,2)===SS?(U=SS,Q+=2):(U=t,I===0&&Be(sU)),U!==t?(ce=pU(),ce!==t?(r.charCodeAt(Q)===125?(be=Pe,Q++):(be=t,I===0&&Be(Te)),be!==t?(Re=C,b=oU(N,ce),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Fn)),b!==t?(N=nc(),N!==t?(r.substr(Q,3)===vS?(U=vS,Q+=3):(U=t,I===0&&Be(aU)),U!==t?(Re=C,b=AU(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Be(Fn)),b!==t?(N=nc(),N!==t?(r.charCodeAt(Q)===125?(U=Pe,Q++):(U=t,I===0&&Be(Te)),U!==t?(Re=C,b=xS(N),C=b):(Q=C,C=t)):(Q=C,C=t)):(Q=C,C=t),C===t&&(C=Q,r.charCodeAt(Q)===36?(b=lU,Q++):(b=t,I===0&&Be(cU)),b!==t?(N=nc(),N!==t?(Re=C,b=xS(N),C=b):(Q=C,C=t)):(Q=C,C=t)))))),C}function rfe(){var C,b,N;return C=Q,b=ife(),b!==t?(Re=Q,N=uU(b),N?N=void 0:N=t,N!==t?(Re=C,b=gU(b),C=b):(Q=C,C=t)):(Q=C,C=t),C}function ife(){var C,b,N,U,ce;if(C=Q,b=[],N=Q,U=Q,I++,ce=xU(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N!==t)for(;N!==t;)b.push(N),N=Q,U=Q,I++,ce=xU(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Be(yo)),ce!==t?(Re=N,U=ln(ce),N=U):(Q=N,N=t)):(Q=N,N=t);else b=t;return b!==t&&(Re=C,b=Dn(b)),C=b,C}function SU(){var C,b,N;if(C=Q,b=[],PS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(DS)),N!==t)for(;N!==t;)b.push(N),PS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(DS));else b=t;return b!==t&&(Re=C,b=kS()),C=b,C}function nc(){var C,b,N;if(C=Q,b=[],RS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(FS)),N!==t)for(;N!==t;)b.push(N),RS.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Be(FS));else b=t;return b!==t&&(Re=C,b=kS()),C=b,C}function vU(){var C;return fU.test(r.charAt(Q))?(C=r.charAt(Q),Q++):(C=t,I===0&&Be(Gg)),C}function xU(){var C;return NS.test(r.charAt(Q))?(C=r.charAt(Q),Q++):(C=t,I===0&&Be(LS)),C}function Me(){var C,b;if(C=[],gI.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Be(fI)),b!==t)for(;b!==t;)C.push(b),gI.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Be(fI));else C=t;return C}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q{"use strict";function ihe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function gc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,gc)}ihe(gc,Error);gc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ie))}function Te(ie,Y){return new gc(ie,null,null,Y)}function se(ie,Y,he){return new gc(gc.buildMessage(ie,Y),ie,Y,he)}function Ae(){var ie,Y,he,te;return ie=v,Y=Qe(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Pe(o)),he!==t?(te=Qe(),te!==t?(D=ie,Y=a(Y,te),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=Qe(),Y!==t&&(D=ie,Y=l(Y)),ie=Y),ie}function Qe(){var ie,Y,he,te;return ie=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Pe(u)),he!==t?(te=Ge(),te!==t?(D=ie,Y=g(Y,te),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=fe(),Y!==t&&(D=ie,Y=f(Y)),ie=Y),ie}function fe(){var ie,Y,he,te,me;return ie=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Pe(u)),Y!==t?(he=le(),he!==t?(r.charCodeAt(v)===47?(te=s,v++):(te=t,$===0&&Pe(o)),te!==t?(me=le(),me!==t?(D=ie,Y=h(),ie=Y):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t)):(v=ie,ie=t),ie===t&&(ie=v,Y=le(),Y!==t&&(D=ie,Y=h()),ie=Y),ie}function le(){var ie,Y,he;if(ie=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(m)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(m));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}function Ge(){var ie,Y,he;if(ie=v,Y=[],w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B)),he!==t)for(;he!==t;)Y.push(he),w.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Pe(B));else Y=t;return Y!==t&&(D=ie,Y=h()),ie=Y,ie}if(z=n(),z!==t&&v===r.length)return z;throw z!==t&&v{"use strict";function H1(r){return typeof r>"u"||r===null}function she(r){return typeof r=="object"&&r!==null}function ohe(r){return Array.isArray(r)?r:H1(r)?[]:[r]}function ahe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function dd(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}dd.prototype=Object.create(Error.prototype);dd.prototype.constructor=dd;dd.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};G1.exports=dd});var q1=y((kZe,j1)=>{"use strict";var Y1=hc();function Ev(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}Ev.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),Y1.repeat(" ",e)+i+a+s+` +`+Y1.repeat(" ",e+this.position-n+i.length)+"^"};Ev.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};j1.exports=Ev});var Ai=y((RZe,W1)=>{"use strict";var J1=ef(),che=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],uhe=["scalar","sequence","mapping"];function ghe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function fhe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(che.indexOf(t)===-1)throw new J1('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=ghe(e.styleAliases||null),uhe.indexOf(this.kind)===-1)throw new J1('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}W1.exports=fhe});var pc=y((FZe,V1)=>{"use strict";var z1=hc(),KI=ef(),hhe=Ai();function Iv(r,e,t){var i=[];return r.include.forEach(function(n){t=Iv(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function phe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var dhe=Ai();X1.exports=new dhe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var $1=y((LZe,Z1)=>{"use strict";var Che=Ai();Z1.exports=new Che("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var t2=y((TZe,e2)=>{"use strict";var mhe=Ai();e2.exports=new mhe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var UI=y((OZe,r2)=>{"use strict";var Ehe=pc();r2.exports=new Ehe({explicit:[_1(),$1(),t2()]})});var n2=y((MZe,i2)=>{"use strict";var Ihe=Ai();function yhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function whe(){return null}function Bhe(r){return r===null}i2.exports=new Ihe("tag:yaml.org,2002:null",{kind:"scalar",resolve:yhe,construct:whe,predicate:Bhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var o2=y((KZe,s2)=>{"use strict";var Qhe=Ai();function bhe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function She(r){return r==="true"||r==="True"||r==="TRUE"}function vhe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}s2.exports=new Qhe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:bhe,construct:She,predicate:vhe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var A2=y((UZe,a2)=>{"use strict";var xhe=hc(),Phe=Ai();function Dhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function khe(r){return 48<=r&&r<=55}function Rhe(r){return 48<=r&&r<=57}function Fhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var u2=y((HZe,c2)=>{"use strict";var l2=hc(),The=Ai(),Ohe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Mhe(r){return!(r===null||!Ohe.test(r)||r[r.length-1]==="_")}function Khe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var Uhe=/^[-+]?[0-9]+e/;function Hhe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(l2.isNegativeZero(r))return"-0.0";return t=r.toString(10),Uhe.test(t)?t.replace("e",".e"):t}function Ghe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||l2.isNegativeZero(r))}c2.exports=new The("tag:yaml.org,2002:float",{kind:"scalar",resolve:Mhe,construct:Khe,predicate:Ghe,represent:Hhe,defaultStyle:"lowercase"})});var yv=y((GZe,g2)=>{"use strict";var Yhe=pc();g2.exports=new Yhe({include:[UI()],implicit:[n2(),o2(),A2(),u2()]})});var wv=y((YZe,f2)=>{"use strict";var jhe=pc();f2.exports=new jhe({include:[yv()]})});var C2=y((jZe,d2)=>{"use strict";var qhe=Ai(),h2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),p2=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Jhe(r){return r===null?!1:h2.exec(r)!==null||p2.exec(r)!==null}function Whe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=h2.exec(r),e===null&&(e=p2.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function zhe(r){return r.toISOString()}d2.exports=new qhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Jhe,construct:Whe,instanceOf:Date,represent:zhe})});var E2=y((qZe,m2)=>{"use strict";var Vhe=Ai();function Xhe(r){return r==="<<"||r===null}m2.exports=new Vhe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Xhe})});var w2=y((JZe,y2)=>{"use strict";var dc;try{I2=J,dc=I2("buffer").Buffer}catch{}var I2,_he=Ai(),Bv=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Zhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=Bv;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function $he(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=Bv,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),dc?dc.from?dc.from(a):new dc(a):a}function epe(r){var e="",t=0,i,n,s=r.length,o=Bv;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function tpe(r){return dc&&dc.isBuffer(r)}y2.exports=new _he("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Zhe,construct:$he,predicate:tpe,represent:epe})});var Q2=y((WZe,B2)=>{"use strict";var rpe=Ai(),ipe=Object.prototype.hasOwnProperty,npe=Object.prototype.toString;function spe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var ape=Ai(),Ape=Object.prototype.toString;function lpe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var upe=Ai(),gpe=Object.prototype.hasOwnProperty;function fpe(r){if(r===null)return!0;var e,t=r;for(e in t)if(gpe.call(t,e)&&t[e]!==null)return!1;return!0}function hpe(r){return r!==null?r:{}}v2.exports=new upe("tag:yaml.org,2002:set",{kind:"mapping",resolve:fpe,construct:hpe})});var rf=y((XZe,P2)=>{"use strict";var ppe=pc();P2.exports=new ppe({include:[wv()],implicit:[C2(),E2()],explicit:[w2(),Q2(),S2(),x2()]})});var k2=y((_Ze,D2)=>{"use strict";var dpe=Ai();function Cpe(){return!0}function mpe(){}function Epe(){return""}function Ipe(r){return typeof r>"u"}D2.exports=new dpe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Cpe,construct:mpe,predicate:Ipe,represent:Epe})});var F2=y((ZZe,R2)=>{"use strict";var ype=Ai();function wpe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Bpe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Qpe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function bpe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}R2.exports=new ype("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:wpe,construct:Bpe,predicate:bpe,represent:Qpe})});var T2=y(($Ze,L2)=>{"use strict";var HI;try{N2=J,HI=N2("esprima")}catch{typeof window<"u"&&(HI=window.esprima)}var N2,Spe=Ai();function vpe(r){if(r===null)return!1;try{var e="("+r+")",t=HI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function xpe(r){var e="("+r+")",t=HI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function Ppe(r){return r.toString()}function Dpe(r){return Object.prototype.toString.call(r)==="[object Function]"}L2.exports=new Spe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:vpe,construct:xpe,predicate:Dpe,represent:Ppe})});var Cd=y((e$e,M2)=>{"use strict";var O2=pc();M2.exports=O2.DEFAULT=new O2({include:[rf()],explicit:[k2(),F2(),T2()]})});var iH=y((t$e,md)=>{"use strict";var wa=hc(),q2=ef(),kpe=q1(),J2=rf(),Rpe=Cd(),RA=Object.prototype.hasOwnProperty,GI=1,W2=2,z2=3,YI=4,Qv=1,Fpe=2,K2=3,Npe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Lpe=/[\x85\u2028\u2029]/,Tpe=/[,\[\]\{\}]/,V2=/^(?:!|!!|![a-z\-]+!)$/i,X2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function U2(r){return Object.prototype.toString.call(r)}function bo(r){return r===10||r===13}function mc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function nf(r){return r===44||r===91||r===93||r===123||r===125}function Ope(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Mpe(r){return r===120?2:r===117?4:r===85?8:0}function Kpe(r){return 48<=r&&r<=57?r-48:-1}function H2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function Upe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var _2=new Array(256),Z2=new Array(256);for(Cc=0;Cc<256;Cc++)_2[Cc]=H2(Cc)?1:0,Z2[Cc]=H2(Cc);var Cc;function Hpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||Rpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function $2(r,e){return new q2(e,new kpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw $2(r,e)}function jI(r,e){r.onWarning&&r.onWarning.call(null,$2(r,e))}var G2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&jI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],V2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),RA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),X2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function kA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=wa.repeat(` +`,e-1))}function Gpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||nf(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&nf(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&nf(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&qI(r)||t&&nf(h))break;if(bo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,_r(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(kA(r,s,o,!1),Sv(r,r.line-l),s=o=r.position,a=!1),mc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return kA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function Ype(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(kA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else bo(t)?(kA(r,i,n,!0),Sv(r,_r(r,!1,e)),i=n=r.position):r.position===r.lineStart&&qI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function jpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return kA(r,t,r.position,!0),r.position++,!0;if(a===92){if(kA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),bo(a))_r(r,!1,e);else if(a<256&&_2[a])r.result+=Z2[a],r.position++;else if((o=Mpe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=Ope(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=Upe(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else bo(a)?(kA(r,t,i,!0),Sv(r,_r(r,!1,e)),t=i=r.position):r.position===r.lineStart&&qI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function qpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,m,w;if(w=r.input.charCodeAt(r.position),w===91)l=93,g=!1,s=[];else if(w===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),w=r.input.charCodeAt(++r.position);w!==0;){if(_r(r,!0,e),w=r.input.charCodeAt(r.position),w===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),p=h=m=null,c=u=!1,w===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,_r(r,!0,e))),i=r.line,of(r,e,GI,!1,!0),p=r.tag,h=r.result,_r(r,!0,e),w=r.input.charCodeAt(r.position),(u||r.line===i)&&w===58&&(c=!0,w=r.input.charCodeAt(++r.position),_r(r,!0,e),of(r,e,GI,!1,!0),m=r.result),g?sf(r,s,f,p,h,m):c?s.push(sf(r,null,f,p,h,m)):s.push(h),_r(r,!0,e),w=r.input.charCodeAt(r.position),w===44?(t=!0,w=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function Jpe(r,e){var t,i,n=Qv,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)Qv===n?n=g===43?K2:Fpe:gt(r,"repeat of a chomping mode identifier");else if((u=Kpe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(mc(g)){do g=r.input.charCodeAt(++r.position);while(mc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!bo(g)&&g!==0)}for(;g!==0;){for(bv(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),bo(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(of(r,e,YI,!0,n)&&(p?f=r.result:h=r.result),p||(sf(r,c,u,g,f,h,s,o),g=f=h=null),_r(r,!0,-1),w=r.input.charCodeAt(r.position)),r.lineIndent>e&&w!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function _pe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(_r(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;mc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!bo(o));break}if(bo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&bv(r),RA.call(G2,i)?G2[i](r,i,n):jI(r,'unknown document directive "'+i+'"')}if(_r(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,_r(r,!0,-1)):s&>(r,"directives end mark is expected"),of(r,r.lineIndent-1,YI,!1,!0),_r(r,!0,-1),r.checkLineBreaks&&Lpe.test(r.input.slice(e,r.position))&&jI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&qI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,_r(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=eH(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),tH(r,e,wa.extend({schema:J2},t))}function $pe(r,e){return rH(r,wa.extend({schema:J2},e))}md.exports.loadAll=tH;md.exports.load=rH;md.exports.safeLoadAll=Zpe;md.exports.safeLoad=$pe});var SH=y((r$e,Dv)=>{"use strict";var Id=hc(),yd=ef(),ede=Cd(),tde=rf(),uH=Object.prototype.toString,gH=Object.prototype.hasOwnProperty,rde=9,Ed=10,ide=13,nde=32,sde=33,ode=34,fH=35,ade=37,Ade=38,lde=39,cde=42,hH=44,ude=45,pH=58,gde=61,fde=62,hde=63,pde=64,dH=91,CH=93,dde=96,mH=123,Cde=124,EH=125,Li={};Li[0]="\\0";Li[7]="\\a";Li[8]="\\b";Li[9]="\\t";Li[10]="\\n";Li[11]="\\v";Li[12]="\\f";Li[13]="\\r";Li[27]="\\e";Li[34]='\\"';Li[92]="\\\\";Li[133]="\\N";Li[160]="\\_";Li[8232]="\\L";Li[8233]="\\P";var mde=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&oH(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!af(o))return JI;a=s>0?r.charCodeAt(s-1):null,f=f&&oH(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?yH:wH:t>9&&IH(r)?JI:c?QH:BH}function bde(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&mde.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return yde(r,l)}switch(Qde(e,o,r.indent,s,a)){case yH:return e;case wH:return"'"+e.replace(/'/g,"''")+"'";case BH:return"|"+aH(e,r.indent)+AH(sH(e,n));case QH:return">"+aH(e,r.indent)+AH(sH(Sde(e,s),n));case JI:return'"'+vde(e,s)+'"';default:throw new yd("impossible error: invalid scalar style")}}()}function aH(r,e){var t=IH(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function AH(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function Sde(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,lH(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+lH(l,e),n=s}return i}function lH(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function vde(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=nH((t-55296)*1024+i-56320+65536),s++;continue}n=Li[t],e+=!n&&af(t)?r[s]:n||nH(t)}return e}function xde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ec(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function kde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new yd("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&Ed===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=vv(r,e)),Ec(r,e+1,u,!0,g)&&(r.dump&&Ed===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function cH(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ec(r,e,t,i,n,s){r.tag=null,r.dump=t,cH(r,t,!1)||cH(r,t,!0);var o=uH.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(kde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(Dde(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(Pde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(xde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&bde(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new yd("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function Rde(r,e){var t=[],i=[],n,s;for(xv(r,t,i),n=0,s=i.length;n{"use strict";var WI=iH(),vH=SH();function zI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Nr.exports.Type=Ai();Nr.exports.Schema=pc();Nr.exports.FAILSAFE_SCHEMA=UI();Nr.exports.JSON_SCHEMA=yv();Nr.exports.CORE_SCHEMA=wv();Nr.exports.DEFAULT_SAFE_SCHEMA=rf();Nr.exports.DEFAULT_FULL_SCHEMA=Cd();Nr.exports.load=WI.load;Nr.exports.loadAll=WI.loadAll;Nr.exports.safeLoad=WI.safeLoad;Nr.exports.safeLoadAll=WI.safeLoadAll;Nr.exports.dump=vH.dump;Nr.exports.safeDump=vH.safeDump;Nr.exports.YAMLException=ef();Nr.exports.MINIMAL_SCHEMA=UI();Nr.exports.SAFE_SCHEMA=rf();Nr.exports.DEFAULT_SCHEMA=Cd();Nr.exports.scan=zI("scan");Nr.exports.parse=zI("parse");Nr.exports.compose=zI("compose");Nr.exports.addConstructor=zI("addConstructor")});var DH=y((n$e,PH)=>{"use strict";var Nde=xH();PH.exports=Nde});var RH=y((s$e,kH)=>{"use strict";function Lde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ic(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ic)}Lde(Ic,Error);Ic.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ne]:pe})))},H=function(R){return R},j=function(R){return R},$=Ms("correct indentation"),z=" ",W=ar(" ",!1),Z=function(R){return R.length===bA*Hg},A=function(R){return R.length===(bA+1)*Hg},ae=function(){return bA++,!0},ue=function(){return bA--,!0},_=function(){return Lg()},T=Ms("pseudostring"),L=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ge=Rn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),we=/^[^\r\n\t ,\][{}:#"']/,Le=Rn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Lg().replace(/^ *| *$/g,"")},Te="--",se=ar("--",!1),Ae=/^[a-zA-Z\/0-9]/,Qe=Rn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,le=Rn(["\r",` +`," "," ",":",","],!0,!1),Ge="null",ie=ar("null",!1),Y=function(){return null},he="true",te=ar("true",!1),me=function(){return!0},tt="false",Rt=ar("false",!1),It=function(){return!1},Kr=Ms("string"),oi='"',pi=ar('"',!1),pr=function(){return""},di=function(R){return R},ai=function(R){return R.join("")},Os=/^[^"\\\0-\x1F\x7F]/,dr=Rn(['"',"\\",["\0",""],"\x7F"],!0,!1),Bi='\\"',_n=ar('\\"',!1),ga=function(){return'"'},CA="\\\\",Dg=ar("\\\\",!1),Zn=function(){return"\\"},mA="\\/",fa=ar("\\/",!1),jp=function(){return"/"},EA="\\b",IA=ar("\\b",!1),wr=function(){return"\b"},zl="\\f",kg=ar("\\f",!1),mo=function(){return"\f"},Rg="\\n",qp=ar("\\n",!1),Jp=function(){return` +`},xr="\\r",oe=ar("\\r",!1),Eo=function(){return"\r"},Dn="\\t",Fg=ar("\\t",!1),Qt=function(){return" "},Vl="\\u",kn=ar("\\u",!1),$n=function(R,q,pe,Ne){return String.fromCharCode(parseInt(`0x${R}${q}${pe}${Ne}`))},es=/^[0-9a-fA-F]/,ut=Rn([["0","9"],["a","f"],["A","F"]],!1,!1),Io=Ms("blank space"),at=/^[ \t]/,ln=Rn([" "," "],!1,!1),S=Ms("white space"),Tt=/^[ \t\n\r]/,Ng=Rn([" "," ",` +`,"\r"],!1,!1),Xl=`\r +`,Wp=ar(`\r +`,!1),zp=` +`,Vp=ar(` +`,!1),Xp="\r",_p=ar("\r",!1),G=0,yt=0,yA=[{line:1,column:1}],Wi=0,_l=[],We=0,ha;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Lg(){return r.substring(yt,G)}function oI(){return cn(yt,G)}function Zp(R,q){throw q=q!==void 0?q:cn(yt,G),$l([Ms(R)],r.substring(yt,G),q)}function aI(R,q){throw q=q!==void 0?q:cn(yt,G),Tg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Rn(R,q,pe){return{type:"class",parts:R,inverted:q,ignoreCase:pe}}function Zl(){return{type:"any"}}function $p(){return{type:"end"}}function Ms(R){return{type:"other",description:R}}function pa(R){var q=yA[R],pe;if(q)return q;for(pe=R-1;!yA[pe];)pe--;for(q=yA[pe],q={line:q.line,column:q.column};peWi&&(Wi=G,_l=[]),_l.push(R))}function Tg(R,q){return new Ic(R,null,null,q)}function $l(R,q,pe){return new Ic(Ic.buildMessage(R,q),R,q,pe)}function Ks(){var R;return R=Og(),R}function ec(){var R,q,pe;for(R=G,q=[],pe=wA();pe!==t;)q.push(pe),pe=wA();return q!==t&&(yt=R,q=s(q)),R=q,R}function wA(){var R,q,pe,Ne,xe;return R=G,q=Ca(),q!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,We===0&&De(a)),pe!==t?(Ne=Rr(),Ne!==t?(xe=da(),xe!==t?(yt=R,q=l(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Og(){var R,q,pe;for(R=G,q=[],pe=Mg();pe!==t;)q.push(pe),pe=Mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function Mg(){var R,q,pe,Ne,xe,qe,dt,Ft,Fn;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(pe=G,r.charCodeAt(G)===35?(Ne=u,G++):(Ne=t,We===0&&De(g)),Ne!==t){if(xe=[],qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&De(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t),qe!==t)for(;qe!==t;)xe.push(qe),qe=G,dt=G,We++,Ft=Gs(),We--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,We===0&&De(f)),Ft!==t?(dt=[dt,Ft],qe=dt):(G=qe,qe=t)):(G=qe,qe=t);else xe=t;xe!==t?(Ne=[Ne,xe],pe=Ne):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Ne=[],xe=Hs(),xe!==t)for(;xe!==t;)Ne.push(xe),xe=Hs();else Ne=t;Ne!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=Ca(),q!==t?(pe=tc(),pe!==t?(Ne=Rr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&De(m)),xe!==t?(qe=Rr(),qe===t&&(qe=null),qe!==t?(dt=da(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Ca(),q!==t?(pe=Us(),pe!==t?(Ne=Rr(),Ne===t&&(Ne=null),Ne!==t?(r.charCodeAt(G)===58?(xe=p,G++):(xe=t,We===0&&De(m)),xe!==t?(qe=Rr(),qe===t&&(qe=null),qe!==t?(dt=da(),dt!==t?(yt=R,q=w(pe,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=Ca(),q!==t)if(pe=Us(),pe!==t)if(Ne=Rr(),Ne!==t)if(xe=AI(),xe!==t){if(qe=[],dt=Hs(),dt!==t)for(;dt!==t;)qe.push(dt),dt=Hs();else qe=t;qe!==t?(yt=R,q=w(pe,xe),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=Ca(),q!==t)if(pe=Us(),pe!==t){if(Ne=[],xe=G,qe=Rr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&De(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Us(),Fn!==t?(yt=xe,qe=D(pe,Fn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t),xe!==t)for(;xe!==t;)Ne.push(xe),xe=G,qe=Rr(),qe===t&&(qe=null),qe!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,We===0&&De(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Us(),Fn!==t?(yt=xe,qe=D(pe,Fn),xe=qe):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t)):(G=xe,xe=t);else Ne=t;Ne!==t?(xe=Rr(),xe===t&&(xe=null),xe!==t?(r.charCodeAt(G)===58?(qe=p,G++):(qe=t,We===0&&De(m)),qe!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=da(),Ft!==t?(yt=R,q=F(pe,Ne,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function da(){var R,q,pe,Ne,xe,qe,dt;if(R=G,q=G,We++,pe=G,Ne=Gs(),Ne!==t?(xe=$e(),xe!==t?(r.charCodeAt(G)===45?(qe=o,G++):(qe=t,We===0&&De(a)),qe!==t?(dt=Rr(),dt!==t?(Ne=[Ne,xe,qe,dt],pe=Ne):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),We--,pe!==t?(G=q,q=void 0):q=t,q!==t?(pe=Hs(),pe!==t?(Ne=yo(),Ne!==t?(xe=ec(),xe!==t?(qe=BA(),qe!==t?(yt=R,q=H(xe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Gs(),q!==t?(pe=yo(),pe!==t?(Ne=Og(),Ne!==t?(xe=BA(),xe!==t?(yt=R,q=H(Ne),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=rc(),q!==t){if(pe=[],Ne=Hs(),Ne!==t)for(;Ne!==t;)pe.push(Ne),Ne=Hs();else pe=t;pe!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function Ca(){var R,q,pe;for(We++,R=G,q=[],r.charCodeAt(G)===32?(pe=z,G++):(pe=t,We===0&&De(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=z,G++):(pe=t,We===0&&De(W));return q!==t?(yt=G,pe=Z(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),We--,R===t&&(q=t,We===0&&De($)),R}function $e(){var R,q,pe;for(R=G,q=[],r.charCodeAt(G)===32?(pe=z,G++):(pe=t,We===0&&De(W));pe!==t;)q.push(pe),r.charCodeAt(G)===32?(pe=z,G++):(pe=t,We===0&&De(W));return q!==t?(yt=G,pe=A(q),pe?pe=void 0:pe=t,pe!==t?(q=[q,pe],R=q):(G=R,R=t)):(G=R,R=t),R}function yo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function BA(){var R;return yt=G,R=ue(),R?R=void 0:R=t,R}function tc(){var R;return R=ic(),R===t&&(R=ed()),R}function Us(){var R,q,pe;if(R=ic(),R===t){if(R=G,q=[],pe=Kg(),pe!==t)for(;pe!==t;)q.push(pe),pe=Kg();else q=t;q!==t&&(yt=R,q=_()),R=q}return R}function rc(){var R;return R=td(),R===t&&(R=lI(),R===t&&(R=ic(),R===t&&(R=ed()))),R}function AI(){var R;return R=td(),R===t&&(R=ic(),R===t&&(R=Kg())),R}function ed(){var R,q,pe,Ne,xe,qe;if(We++,R=G,L.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ge)),q!==t){for(pe=[],Ne=G,xe=Rr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&De(Le)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Rr(),xe===t&&(xe=null),xe!==t?(we.test(r.charAt(G))?(qe=r.charAt(G),G++):(qe=t,We===0&&De(Le)),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;return We--,R===t&&(q=t,We===0&&De(T)),R}function Kg(){var R,q,pe,Ne,xe;if(R=G,r.substr(G,2)===Te?(q=Te,G+=2):(q=t,We===0&&De(se)),q===t&&(q=null),q!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,We===0&&De(Qe)),pe!==t){for(Ne=[],fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&De(le));xe!==t;)Ne.push(xe),fe.test(r.charAt(G))?(xe=r.charAt(G),G++):(xe=t,We===0&&De(le));Ne!==t?(yt=R,q=Pe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function td(){var R,q;return R=G,r.substr(G,4)===Ge?(q=Ge,G+=4):(q=t,We===0&&De(ie)),q!==t&&(yt=R,q=Y()),R=q,R}function lI(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,We===0&&De(te)),q!==t&&(yt=R,q=me()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,We===0&&De(Rt)),q!==t&&(yt=R,q=It()),R=q),R}function ic(){var R,q,pe,Ne;return We++,R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&De(pi)),q!==t?(r.charCodeAt(G)===34?(pe=oi,G++):(pe=t,We===0&&De(pi)),pe!==t?(yt=R,q=pr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=oi,G++):(q=t,We===0&&De(pi)),q!==t?(pe=cI(),pe!==t?(r.charCodeAt(G)===34?(Ne=oi,G++):(Ne=t,We===0&&De(pi)),Ne!==t?(yt=R,q=di(pe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),We--,R===t&&(q=t,We===0&&De(Kr)),R}function cI(){var R,q,pe;if(R=G,q=[],pe=Ug(),pe!==t)for(;pe!==t;)q.push(pe),pe=Ug();else q=t;return q!==t&&(yt=R,q=ai(q)),R=q,R}function Ug(){var R,q,pe,Ne,xe,qe;return Os.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&De(dr)),R===t&&(R=G,r.substr(G,2)===Bi?(q=Bi,G+=2):(q=t,We===0&&De(_n)),q!==t&&(yt=R,q=ga()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,We===0&&De(Dg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,We===0&&De(fa)),q!==t&&(yt=R,q=jp()),R=q,R===t&&(R=G,r.substr(G,2)===EA?(q=EA,G+=2):(q=t,We===0&&De(IA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===zl?(q=zl,G+=2):(q=t,We===0&&De(kg)),q!==t&&(yt=R,q=mo()),R=q,R===t&&(R=G,r.substr(G,2)===Rg?(q=Rg,G+=2):(q=t,We===0&&De(qp)),q!==t&&(yt=R,q=Jp()),R=q,R===t&&(R=G,r.substr(G,2)===xr?(q=xr,G+=2):(q=t,We===0&&De(oe)),q!==t&&(yt=R,q=Eo()),R=q,R===t&&(R=G,r.substr(G,2)===Dn?(q=Dn,G+=2):(q=t,We===0&&De(Fg)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Vl?(q=Vl,G+=2):(q=t,We===0&&De(kn)),q!==t?(pe=QA(),pe!==t?(Ne=QA(),Ne!==t?(xe=QA(),xe!==t?(qe=QA(),qe!==t?(yt=R,q=$n(pe,Ne,xe,qe),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function QA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,We===0&&De(ut)),R}function Rr(){var R,q;if(We++,R=[],at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ln)),q!==t)for(;q!==t;)R.push(q),at.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(ln));else R=t;return We--,R===t&&(q=t,We===0&&De(Io)),R}function uI(){var R,q;if(We++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(Ng)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,We===0&&De(Ng));else R=t;return We--,R===t&&(q=t,We===0&&De(S)),R}function Hs(){var R,q,pe,Ne,xe,qe;if(R=G,q=Gs(),q!==t){for(pe=[],Ne=G,xe=Rr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);Ne!==t;)pe.push(Ne),Ne=G,xe=Rr(),xe===t&&(xe=null),xe!==t?(qe=Gs(),qe!==t?(xe=[xe,qe],Ne=xe):(G=Ne,Ne=t)):(G=Ne,Ne=t);pe!==t?(q=[q,pe],R=q):(G=R,R=t)}else G=R,R=t;return R}function Gs(){var R;return r.substr(G,2)===Xl?(R=Xl,G+=2):(R=t,We===0&&De(Wp)),R===t&&(r.charCodeAt(G)===10?(R=zp,G++):(R=t,We===0&&De(Vp)),R===t&&(r.charCodeAt(G)===13?(R=Xp,G++):(R=t,We===0&&De(_p)))),R}let Hg=2,bA=0;if(ha=n(),ha!==t&&G===r.length)return ha;throw ha!==t&&G{"use strict";var Hde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=Hde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};Rv.exports=OH;Rv.exports.default=OH});var KH=y((u$e,Gde)=>{Gde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var yc=y(On=>{"use strict";var HH=KH(),So=process.env;Object.defineProperty(On,"_vendors",{value:HH.map(function(r){return r.constant})});On.name=null;On.isPR=null;HH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return UH(i)});if(On[r.constant]=t,t)switch(On.name=r.name,typeof r.pr){case"string":On.isPR=!!So[r.pr];break;case"object":"env"in r.pr?On.isPR=r.pr.env in So&&So[r.pr.env]!==r.pr.ne:"any"in r.pr?On.isPR=r.pr.any.some(function(i){return!!So[i]}):On.isPR=UH(r.pr);break;default:On.isPR=null}});On.isCI=!!(So.CI||So.CONTINUOUS_INTEGRATION||So.BUILD_NUMBER||So.RUN_ID||On.name);function UH(r){return typeof r=="string"?!!So[r]:Object.keys(r).every(function(e){return So[e]===r[e]})}});var _I=y(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});var Yde=0,jde=1,qde=2,Jde="",Wde="\0",zde=-1,Vde=/^(-h|--help)(?:=([0-9]+))?$/,Xde=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,_de=/^-[a-zA-Z]{2,}$/,Zde=/^([^=]+)=([\s\S]*)$/,$de=process.env.DEBUG_CLI==="1";Mn.BATCH_REGEX=_de;Mn.BINDING_REGEX=Zde;Mn.DEBUG=$de;Mn.END_OF_INPUT=Wde;Mn.HELP_COMMAND_INDEX=zde;Mn.HELP_REGEX=Vde;Mn.NODE_ERRORED=qde;Mn.NODE_INITIAL=Yde;Mn.NODE_SUCCESS=jde;Mn.OPTION_REGEX=Xde;Mn.START_OF_INPUT=Jde});var ZI=y(Bd=>{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});var eCe=_I(),Fv=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Nv=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} + +${this.candidates.map(({usage:n})=>`$ ${n}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${i} +${Tv(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${Tv(e)}`}},Lv=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` +`)} + +${Tv(e)}`}},Tv=r=>`While running ${r.filter(e=>e!==eCe.END_OF_INPUT).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;Bd.AmbiguousSyntaxError=Lv;Bd.UnknownSyntaxError=Nv;Bd.UsageError=Fv});var Qa=y(FA=>{"use strict";Object.defineProperty(FA,"__esModule",{value:!0});var GH=ZI(),YH=Symbol("clipanion/isOption");function tCe(r){return{...r,[YH]:!0}}function rCe(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function Ov(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function jH(r,e){return e.length===1?new GH.UsageError(`${r}: ${Ov(e[0],!0)}`):new GH.UsageError(`${r}: +${e.map(t=>` +- ${Ov(t)}`).join("")}`)}function iCe(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw jH(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}FA.applyValidator=iCe;FA.cleanValidationError=Ov;FA.formatError=jH;FA.isOptionSymbol=YH;FA.makeCommandOption=tCe;FA.rerouteArguments=rCe});var ns=y(st=>{"use strict";Object.defineProperty(st,"__esModule",{value:!0});var qH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,JH=/^#[0-9a-f]{6}$/i,WH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,zH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,VH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,Mv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,XH=r=>()=>r;function bt({test:r}){return XH(r)()}function Zr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function NA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:qH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function wc(r,e){return t=>{let i=r[e];return r[e]=t,wc(r,e).bind(null,i)}}function _H(r,e){return t=>{r[e]=t}}function $I(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}var ZH=()=>bt({test:(r,e)=>!0});function nCe(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Zr(r)})`):!0})}var sCe=()=>bt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Zr(r)})`):!0});function oCe(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Zr(i)})`)})}var aCe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),ACe=()=>bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=aCe.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Zr(r)})`)}return!0}}),lCe=()=>bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Zr(r)})`)}return!0}}),cCe=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&Mv.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Zr(r)})`)}return!0}}),uCe=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Zr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=$H(r.length);return bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Zr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;abt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Zr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Zr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:NA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:NA(n,l),coercion:wc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:NA(n,l)}),`Extraneous property (got ${Zr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:_H(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},pCe=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Zr(e)})`)}),dCe=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),CCe=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?wc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),mCe=r=>bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),ECe=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),ICe=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),yCe=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),$H=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),wCe=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sbt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),QCe=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),bCe=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),SCe=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),vCe=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),xCe=(r,e)=>bt({test:(t,i)=>t>=r&&tbt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),DCe=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Zr(e)})`)}),kCe=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),RCe=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),FCe=()=>bt({test:(r,e)=>VH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Zr(r)})`)}),NCe=()=>bt({test:(r,e)=>Mv.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Zr(r)})`)}),LCe=({alpha:r=!1})=>bt({test:(e,t)=>(r?JH.test(e):WH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Zr(e)})`)}),TCe=()=>bt({test:(r,e)=>zH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Zr(r)})`)}),OCe=(r=ZH())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Zr(e)})`)}return r(i,t)}}),MCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${$I(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},KCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${$I(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},UCe=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(st.KeyRelationship||(st.KeyRelationship={}));var HCe={[st.KeyRelationship.Forbids]:{expect:!1,message:"forbids using"},[st.KeyRelationship.Requires]:{expect:!0,message:"requires using"}},GCe=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=HCe[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${$I(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})};st.applyCascade=CCe;st.base64RegExp=zH;st.colorStringAlphaRegExp=WH;st.colorStringRegExp=JH;st.computeKey=NA;st.getPrintable=Zr;st.hasExactLength=$H;st.hasForbiddenKeys=KCe;st.hasKeyRelationship=GCe;st.hasMaxLength=yCe;st.hasMinLength=ICe;st.hasMutuallyExclusiveKeys=UCe;st.hasRequiredKeys=MCe;st.hasUniqueItems=wCe;st.isArray=uCe;st.isAtLeast=bCe;st.isAtMost=SCe;st.isBase64=TCe;st.isBoolean=ACe;st.isDate=cCe;st.isDict=fCe;st.isEnum=oCe;st.isHexColor=LCe;st.isISO8601=NCe;st.isInExclusiveRange=xCe;st.isInInclusiveRange=vCe;st.isInstanceOf=pCe;st.isInteger=PCe;st.isJSON=OCe;st.isLiteral=nCe;st.isLowerCase=kCe;st.isNegative=BCe;st.isNullable=ECe;st.isNumber=lCe;st.isObject=hCe;st.isOneOf=dCe;st.isOptional=mCe;st.isPositive=QCe;st.isString=sCe;st.isTuple=gCe;st.isUUID4=FCe;st.isUnknown=ZH;st.isUpperCase=RCe;st.iso8601RegExp=Mv;st.makeCoercionFn=wc;st.makeSetter=_H;st.makeTrait=XH;st.makeValidator=bt;st.matchesRegExp=DCe;st.plural=$I;st.pushError=pt;st.simpleKeyRegExp=qH;st.uuid4RegExp=VH});var Bc=y(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});var eG=Qa();function YCe(r){if(r&&r.__esModule)return r;var e=Object.create(null);return r&&Object.keys(r).forEach(function(t){if(t!=="default"){var i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:function(){return r[t]}})}}),e.default=r,Object.freeze(e)}var Qd=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(function(){return YCe(ns())}),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw eG.formatError("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Qd.isOption=eG.isOptionSymbol;Qd.Default=[];Kv.Command=Qd});var Hv=y(bd=>{"use strict";Object.defineProperty(bd,"__esModule",{value:!0});var tG=80,Uv=Array(tG).fill("\u2501");for(let r=0;r<=24;++r)Uv[Uv.length-r]=`\x1B[38;5;${232+r}m\u2501`;var jCe={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},qCe={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function JCe(r){let e=r.split(` +`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` +`)}function WCe(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`),r=JCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` +`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` +`)}).join(` + +`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} +`:""}bd.formatMarkdownish=WCe;bd.richFormat=jCe;bd.textFormat=qCe});var ny=y(Ar=>{"use strict";Object.defineProperty(Ar,"__esModule",{value:!0});var lt=_I(),ry=ZI();function Vi(r){lt.DEBUG&&console.log(r)}var rG={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:lt.HELP_COMMAND_INDEX};function Gv(){return{nodes:[Ti(),Ti(),Ti()]}}function iG(r){let e=Gv(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(lt.NODE_INITIAL)}function sG(r,{prefix:e=""}={}){if(lt.DEBUG){Vi(`${e}Nodes are:`);for(let t=0;tl!==lt.NODE_ERRORED).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===lt.NODE_ERRORED))throw new ry.UnknownSyntaxError(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=oG(a)}if(i.length>0){Vi(" Results:");for(let s of i)Vi(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else Vi(" No results");return i}function zCe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,lt.END_OF_INPUT)){for(let{to:t}of r.statics[lt.END_OF_INPUT])if(t===lt.NODE_SUCCESS)return!0}return!1}function VCe(r,e,t){let i=t&&e.length>0?[""]:[],n=Yv(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let m=r.nodes[p],w=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let v=w[0];for(let{to:D,reducer:F}of m.statics[v])F==="pushPath"&&(u||l.push(v),g.push(D))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=zCe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==lt.END_OF_INPUT||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===lt.NODE_ERRORED)continue;let p=uG(f,c);if(p!==null)for(let m of p)a([...i,m],l)}}return[...s].sort()}function XCe(r,e){let t=Yv(r,[...e,lt.END_OF_INPUT]);return aG(e,t.map(({state:i})=>i))}function oG(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function aG(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new ry.UnknownSyntaxError(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=AG(c);if(u.length>1)throw new ry.AmbiguousSyntaxError(r,u.map(g=>g.candidateUsage));return u[0]}function AG(r){let e=[],t=[];for(let i of r)i.selectedIndex===lt.HELP_COMMAND_INDEX?t.push(i):e.push(i);return t.length>0&&e.push({...rG,path:lG(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function lG(r,e,...t){return e===void 0?Array.from(r):lG(r.filter((i,n)=>i===e[n]),...t)}function Ti(){return{dynamics:[],shortcuts:[],statics:{}}}function jv(r){return r===lt.NODE_SUCCESS||r===lt.NODE_ERRORED}function ey(r,e=0){return{to:jv(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function cG(r,e=0){let t=Ti();for(let[i,n]of r.dynamics)t.dynamics.push([i,ey(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(ey(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>ey(s,e));return t}function Ei(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Qc(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function vo(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function Sd(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function uG(r,e){let t=Array.isArray(r)?vd[r[0]]:vd[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var vd={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&<.BATCH_REGEX.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(lt.BINDING_REGEX);return!r.ignoreOptions&&!!n&<.OPTION_REGEX.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&<.HELP_REGEX.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&<.OPTION_REGEX.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!lt.OPTION_REGEX.test(e)};vd.isOption.suggest=(r,e,t=!0)=>t?null:[e];var ty={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(lt.BINDING_REGEX);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:xo})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(lt.HELP_REGEX);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===lt.END_OF_INPUT?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},xo=Symbol(),iy=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===xo)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==xo?this.arity.extra.push(e):this.arity.extra!==xo&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===xo)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===xo?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=Gv(),t=lt.NODE_INITIAL,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=ss(e,Ti()),vo(e,lt.NODE_INITIAL,lt.START_OF_INPUT,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let f=ss(e,Ti());Qc(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=ss(e,Ti());Ei(e,l,"isHelp",f,["useHelp",this.cliIndex]),vo(e,f,lt.END_OF_INPUT,lt.NODE_SUCCESS,["setSelectedIndex",lt.HELP_COMMAND_INDEX]),this.registerOptions(e,l)}this.arity.leading.length>0&&vo(e,l,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&vo(e,h,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]),Ei(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===xo||this.arity.extra.length>0){let f=ss(e,Ti());if(Qc(e,c,f),this.arity.extra===xo){let h=ss(e,Ti());this.arity.proxy||this.registerOptions(e,h),Ei(e,c,s,h,"pushExtraNoLimits"),Ei(e,h,s,h,"pushExtraNoLimits"),Qc(e,h,f)}else for(let h=0;h0&&vo(e,u,lt.END_OF_INPUT,lt.NODE_ERRORED,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Ei(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Ei(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=ss(e,Ti());for(let o of i.names)Ei(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&eXCe(i,n),suggest:(n,s)=>VCe(i,n,s)}}};Ar.CliBuilder=xd;Ar.CommandBuilder=iy;Ar.NoLimits=xo;Ar.aggregateHelpStates=AG;Ar.cloneNode=cG;Ar.cloneTransition=ey;Ar.debug=Vi;Ar.debugMachine=sG;Ar.execute=Sd;Ar.injectNode=ss;Ar.isTerminalNode=jv;Ar.makeAnyOfMachine=iG;Ar.makeNode=Ti;Ar.makeStateMachine=Gv;Ar.reducers=ty;Ar.registerDynamic=Ei;Ar.registerShortcut=Qc;Ar.registerStatic=vo;Ar.runMachineInternal=Yv;Ar.selectBestState=aG;Ar.simplifyMachine=nG;Ar.suggest=uG;Ar.tests=vd;Ar.trimSmallerBranches=oG});var gG=y(qv=>{"use strict";Object.defineProperty(qv,"__esModule",{value:!0});var _Ce=Bc(),Pd=class extends _Ce.Command{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new Pd(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}};qv.HelpCommand=Pd});var mG=y(Jv=>{"use strict";Object.defineProperty(Jv,"__esModule",{value:!0});var ZCe=_I(),fG=Bc(),$Ce=J("tty"),eme=ny(),hn=Hv(),tme=gG();function rme(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var hG=rme($Ce),pG=Symbol("clipanion/errorCommand");function ime(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var LA=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new eme.CliBuilder({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new LA(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[fG.Command.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case ZCe.HELP_COMMAND_INDEX:return tme.HelpCommand.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[pG]=a,l}}break}}async run(e,t){var i;let n,s={...LA.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?nme(s):CG,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?hn.formatMarkdownish(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?hn.formatMarkdownish(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?hn.formatMarkdownish(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([f,h])=>[hn.formatMarkdownish(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof fG.Command?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=hn.formatMarkdownish(l,{format:this.format(t),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` +`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} +`,a+=` +`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} +`,f.length>0){a+=` +`,a+=`${hn.richFormat.header("Options")} +`;let h=f.reduce((p,m)=>Math.max(p,m.definition.length),0);a+=` +`;for(let{definition:p,description:m}of f)a+=` ${this.format(t).bold(p.padEnd(h))} ${hn.formatMarkdownish(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`,a+=`${this.format(t).header("Details")} +`,a+=` +`,a+=hn.formatMarkdownish(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=`${this.format(t).header("Examples")} +`;for(let[h,p]of u)a+=` +`,a+=hn.formatMarkdownish(h,{format:this.format(t),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} +`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage>"u")continue;let p=typeof f.usage.category<"u"?hn.formatMarkdownish(f.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(p);typeof m>"u"&&l.set(p,m=[]);let{usage:w}=this.getUsageByIndex(h);m.push({commandClass:f,usage:w})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} +`:a+=`${this.format(t).header(`${this.binaryVersion}`)} +`,a+=` ${this.format(t).bold(n)}${this.binaryName} +`):a+=`${this.format(t).bold(n)}${this.binaryName} +`;for(let f of c){let h=l.get(f).slice().sort((m,w)=>m.usage.localeCompare(w.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` +`,a+=`${this.format(t).header(`${p}`)} +`;for(let{commandClass:m,usage:w}of h){let B=m.usage.description||"undocumented";a+=` +`,a+=` ${this.format(t).bold(w)} +`,a+=` ${hn.formatMarkdownish(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=hn.formatMarkdownish("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[pG])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` +`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:LA.defaultContext.colorDepth>1)?hn.richFormat:hn.textFormat}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};LA.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in hG.default.WriteStream.prototype?hG.default.WriteStream.prototype.getColorDepth():ime()};var dG;function nme(r){let e=dG;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return CG;let{AsyncLocalStorage:t}=J("async_hooks");e=dG=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function CG(r){return r()}Jv.Cli=LA});var EG=y(Wv=>{"use strict";Object.defineProperty(Wv,"__esModule",{value:!0});var sme=Bc(),sy=class extends sme.Command{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};sy.paths=[["--clipanion=definitions"]];Wv.DefinitionsCommand=sy});var IG=y(zv=>{"use strict";Object.defineProperty(zv,"__esModule",{value:!0});var ome=Bc(),oy=class extends ome.Command{async execute(){this.context.stdout.write(this.cli.usage())}};oy.paths=[["-h"],["--help"]];zv.HelpCommand=oy});var yG=y(Vv=>{"use strict";Object.defineProperty(Vv,"__esModule",{value:!0});var ame=Bc(),ay=class extends ame.Command{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};ay.paths=[["-v"],["--version"]];Vv.VersionCommand=ay});var wG=y(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});var Ame=EG(),lme=IG(),cme=yG();Dd.DefinitionsCommand=Ame.DefinitionsCommand;Dd.HelpCommand=lme.HelpCommand;Dd.VersionCommand=cme.VersionCommand});var QG=y(Xv=>{"use strict";Object.defineProperty(Xv,"__esModule",{value:!0});var BG=Qa();function ume(r,e,t){let[i,n]=BG.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return BG.makeCommandOption({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}Xv.Array=ume});var SG=y(_v=>{"use strict";Object.defineProperty(_v,"__esModule",{value:!0});var bG=Qa();function gme(r,e,t){let[i,n]=bG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return bG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}_v.Boolean=gme});var xG=y(Zv=>{"use strict";Object.defineProperty(Zv,"__esModule",{value:!0});var vG=Qa();function fme(r,e,t){let[i,n]=vG.rerouteArguments(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return vG.makeCommandOption({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}Zv.Counter=fme});var PG=y($v=>{"use strict";Object.defineProperty($v,"__esModule",{value:!0});var hme=Qa();function pme(r={}){return hme.makeCommandOption({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}$v.Proxy=pme});var DG=y(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var dme=Qa(),Cme=ny();function mme(r={}){return dme.makeCommandOption({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Cme.NoLimits||a.extra===!1&&oo)}})}ex.Rest=mme});var kG=y(tx=>{"use strict";Object.defineProperty(tx,"__esModule",{value:!0});var kd=Qa(),Eme=ny();function Ime(r,e,t){let[i,n]=kd.rerouteArguments(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return kd.makeCommandOption({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?kd.applyValidator(g!=null?g:c,f,n.validator):f}})}function yme(r={}){let{required:e=!0}=r;return kd.makeCommandOption({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o{"use strict";Object.defineProperty(pn,"__esModule",{value:!0});var Af=Qa(),Bme=QG(),Qme=SG(),bme=xG(),Sme=PG(),vme=DG(),xme=kG();pn.applyValidator=Af.applyValidator;pn.cleanValidationError=Af.cleanValidationError;pn.formatError=Af.formatError;pn.isOptionSymbol=Af.isOptionSymbol;pn.makeCommandOption=Af.makeCommandOption;pn.rerouteArguments=Af.rerouteArguments;pn.Array=Bme.Array;pn.Boolean=Qme.Boolean;pn.Counter=bme.Counter;pn.Proxy=Sme.Proxy;pn.Rest=vme.Rest;pn.String=xme.String});var Xe=y(TA=>{"use strict";Object.defineProperty(TA,"__esModule",{value:!0});var Pme=ZI(),Dme=Bc(),kme=Hv(),Rme=mG(),Fme=wG(),Nme=RG();TA.UsageError=Pme.UsageError;TA.Command=Dme.Command;TA.formatMarkdownish=kme.formatMarkdownish;TA.Cli=Rme.Cli;TA.Builtins=Fme;TA.Option=Nme});var NG=y((N$e,FG)=>{"use strict";FG.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var lf=y((L$e,rx)=>{"use strict";var Lme=NG(),LG=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Lme(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};rx.exports=LG;rx.exports.default=LG});var Rd=y((O$e,TG)=>{var Tme="2.0.0",Ome=Number.MAX_SAFE_INTEGER||9007199254740991,Mme=16;TG.exports={SEMVER_SPEC_VERSION:Tme,MAX_LENGTH:256,MAX_SAFE_INTEGER:Ome,MAX_SAFE_COMPONENT_LENGTH:Mme}});var Fd=y((M$e,OG)=>{var Kme=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};OG.exports=Kme});var bc=y((MA,MG)=>{var{MAX_SAFE_COMPONENT_LENGTH:ix}=Rd(),Ume=Fd();MA=MG.exports={};var Hme=MA.re=[],_e=MA.src=[],Ze=MA.t={},Gme=0,St=(r,e,t)=>{let i=Gme++;Ume(i,e),Ze[r]=i,_e[i]=e,Hme[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})\\.(${_e[Ze.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})\\.(${_e[Ze.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${_e[Ze.NUMERICIDENTIFIER]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${_e[Ze.NUMERICIDENTIFIERLOOSE]}|${_e[Ze.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${_e[Ze.PRERELEASEIDENTIFIER]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${_e[Ze.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${_e[Ze.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${_e[Ze.BUILDIDENTIFIER]}(?:\\.${_e[Ze.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${_e[Ze.MAINVERSION]}${_e[Ze.PRERELEASE]}?${_e[Ze.BUILD]}?`);St("FULL",`^${_e[Ze.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${_e[Ze.MAINVERSIONLOOSE]}${_e[Ze.PRERELEASELOOSE]}?${_e[Ze.BUILD]}?`);St("LOOSE",`^${_e[Ze.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${_e[Ze.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${_e[Ze.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:\\.(${_e[Ze.XRANGEIDENTIFIER]})(?:${_e[Ze.PRERELEASE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:\\.(${_e[Ze.XRANGEIDENTIFIERLOOSE]})(?:${_e[Ze.PRERELEASELOOSE]})?${_e[Ze.BUILD]}?)?)?`);St("XRANGE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${_e[Ze.GTLT]}\\s*${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${ix}})(?:\\.(\\d{1,${ix}}))?(?:\\.(\\d{1,${ix}}))?(?:$|[^\\d])`);St("COERCERTL",_e[Ze.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${_e[Ze.LONETILDE]}\\s+`,!0);MA.tildeTrimReplace="$1~";St("TILDE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${_e[Ze.LONETILDE]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${_e[Ze.LONECARET]}\\s+`,!0);MA.caretTrimReplace="$1^";St("CARET",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${_e[Ze.LONECARET]}${_e[Ze.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${_e[Ze.GTLT]}\\s*(${_e[Ze.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${_e[Ze.GTLT]}\\s*(${_e[Ze.LOOSEPLAIN]}|${_e[Ze.XRANGEPLAIN]})`,!0);MA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${_e[Ze.XRANGEPLAIN]})\\s+-\\s+(${_e[Ze.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${_e[Ze.XRANGEPLAINLOOSE]})\\s+-\\s+(${_e[Ze.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Nd=y((K$e,KG)=>{var Yme=["includePrerelease","loose","rtl"],jme=r=>r?typeof r!="object"?{loose:!0}:Yme.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};KG.exports=jme});var ly=y((U$e,GG)=>{var UG=/^[0-9]+$/,HG=(r,e)=>{let t=UG.test(r),i=UG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rHG(e,r);GG.exports={compareIdentifiers:HG,rcompareIdentifiers:qme}});var Oi=y((H$e,JG)=>{var cy=Fd(),{MAX_LENGTH:YG,MAX_SAFE_INTEGER:uy}=Rd(),{re:jG,t:qG}=bc(),Jme=Nd(),{compareIdentifiers:Ld}=ly(),Kn=class{constructor(e,t){if(t=Jme(t),e instanceof Kn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>YG)throw new TypeError(`version is longer than ${YG} characters`);cy("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?jG[qG.LOOSE]:jG[qG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>uy||this.major<0)throw new TypeError("Invalid major version");if(this.minor>uy||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>uy||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};JG.exports=Kn});var Sc=y((G$e,XG)=>{var{MAX_LENGTH:Wme}=Rd(),{re:WG,t:zG}=bc(),VG=Oi(),zme=Nd(),Vme=(r,e)=>{if(e=zme(e),r instanceof VG)return r;if(typeof r!="string"||r.length>Wme||!(e.loose?WG[zG.LOOSE]:WG[zG.FULL]).test(r))return null;try{return new VG(r,e)}catch{return null}};XG.exports=Vme});var ZG=y((Y$e,_G)=>{var Xme=Sc(),_me=(r,e)=>{let t=Xme(r,e);return t?t.version:null};_G.exports=_me});var eY=y((j$e,$G)=>{var Zme=Sc(),$me=(r,e)=>{let t=Zme(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};$G.exports=$me});var rY=y((q$e,tY)=>{var eEe=Oi(),tEe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new eEe(r,t).inc(e,i).version}catch{return null}};tY.exports=tEe});var os=y((J$e,nY)=>{var iY=Oi(),rEe=(r,e,t)=>new iY(r,t).compare(new iY(e,t));nY.exports=rEe});var gy=y((W$e,sY)=>{var iEe=os(),nEe=(r,e,t)=>iEe(r,e,t)===0;sY.exports=nEe});var AY=y((z$e,aY)=>{var oY=Sc(),sEe=gy(),oEe=(r,e)=>{if(sEe(r,e))return null;{let t=oY(r),i=oY(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};aY.exports=oEe});var cY=y((V$e,lY)=>{var aEe=Oi(),AEe=(r,e)=>new aEe(r,e).major;lY.exports=AEe});var gY=y((X$e,uY)=>{var lEe=Oi(),cEe=(r,e)=>new lEe(r,e).minor;uY.exports=cEe});var hY=y((_$e,fY)=>{var uEe=Oi(),gEe=(r,e)=>new uEe(r,e).patch;fY.exports=gEe});var dY=y((Z$e,pY)=>{var fEe=Sc(),hEe=(r,e)=>{let t=fEe(r,e);return t&&t.prerelease.length?t.prerelease:null};pY.exports=hEe});var mY=y(($$e,CY)=>{var pEe=os(),dEe=(r,e,t)=>pEe(e,r,t);CY.exports=dEe});var IY=y((eet,EY)=>{var CEe=os(),mEe=(r,e)=>CEe(r,e,!0);EY.exports=mEe});var fy=y((tet,wY)=>{var yY=Oi(),EEe=(r,e,t)=>{let i=new yY(r,t),n=new yY(e,t);return i.compare(n)||i.compareBuild(n)};wY.exports=EEe});var QY=y((ret,BY)=>{var IEe=fy(),yEe=(r,e)=>r.sort((t,i)=>IEe(t,i,e));BY.exports=yEe});var SY=y((iet,bY)=>{var wEe=fy(),BEe=(r,e)=>r.sort((t,i)=>wEe(i,t,e));bY.exports=BEe});var Td=y((net,vY)=>{var QEe=os(),bEe=(r,e,t)=>QEe(r,e,t)>0;vY.exports=bEe});var hy=y((set,xY)=>{var SEe=os(),vEe=(r,e,t)=>SEe(r,e,t)<0;xY.exports=vEe});var nx=y((oet,PY)=>{var xEe=os(),PEe=(r,e,t)=>xEe(r,e,t)!==0;PY.exports=PEe});var py=y((aet,DY)=>{var DEe=os(),kEe=(r,e,t)=>DEe(r,e,t)>=0;DY.exports=kEe});var dy=y((Aet,kY)=>{var REe=os(),FEe=(r,e,t)=>REe(r,e,t)<=0;kY.exports=FEe});var sx=y((cet,RY)=>{var NEe=gy(),LEe=nx(),TEe=Td(),OEe=py(),MEe=hy(),KEe=dy(),UEe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return NEe(r,t,i);case"!=":return LEe(r,t,i);case">":return TEe(r,t,i);case">=":return OEe(r,t,i);case"<":return MEe(r,t,i);case"<=":return KEe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};RY.exports=UEe});var NY=y((uet,FY)=>{var HEe=Oi(),GEe=Sc(),{re:Cy,t:my}=bc(),YEe=(r,e)=>{if(r instanceof HEe)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(Cy[my.COERCE]);else{let i;for(;(i=Cy[my.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),Cy[my.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;Cy[my.COERCERTL].lastIndex=-1}return t===null?null:GEe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};FY.exports=YEe});var TY=y((get,LY)=>{"use strict";LY.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Od=y((fet,OY)=>{"use strict";OY.exports=Ht;Ht.Node=vc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var WEe=Od(),xc=Symbol("max"),Sa=Symbol("length"),cf=Symbol("lengthCalculator"),Kd=Symbol("allowStale"),Pc=Symbol("maxAge"),ba=Symbol("dispose"),MY=Symbol("noDisposeOnSet"),Ii=Symbol("lruList"),zs=Symbol("cache"),UY=Symbol("updateAgeOnGet"),ox=()=>1,Ax=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[xc]=e.max||1/0,i=e.length||ox;if(this[cf]=typeof i!="function"?ox:i,this[Kd]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Pc]=e.maxAge||0,this[ba]=e.dispose,this[MY]=e.noDisposeOnSet||!1,this[UY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[xc]=e||1/0,Md(this)}get max(){return this[xc]}set allowStale(e){this[Kd]=!!e}get allowStale(){return this[Kd]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Pc]=e,Md(this)}get maxAge(){return this[Pc]}set lengthCalculator(e){typeof e!="function"&&(e=ox),e!==this[cf]&&(this[cf]=e,this[Sa]=0,this[Ii].forEach(t=>{t.length=this[cf](t.value,t.key),this[Sa]+=t.length})),Md(this)}get lengthCalculator(){return this[cf]}get length(){return this[Sa]}get itemCount(){return this[Ii].length}rforEach(e,t){t=t||this;for(let i=this[Ii].tail;i!==null;){let n=i.prev;KY(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[Ii].head;i!==null;){let n=i.next;KY(this,e,i,t),i=n}}keys(){return this[Ii].toArray().map(e=>e.key)}values(){return this[Ii].toArray().map(e=>e.value)}reset(){this[ba]&&this[Ii]&&this[Ii].length&&this[Ii].forEach(e=>this[ba](e.key,e.value)),this[zs]=new Map,this[Ii]=new WEe,this[Sa]=0}dump(){return this[Ii].map(e=>Ey(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ii]}set(e,t,i){if(i=i||this[Pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[cf](t,e);if(this[zs].has(e)){if(s>this[xc])return uf(this,this[zs].get(e)),!1;let l=this[zs].get(e).value;return this[ba]&&(this[MY]||this[ba](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Sa]+=s-l.length,l.length=s,this.get(e),Md(this),!0}let o=new lx(e,t,s,n,i);return o.length>this[xc]?(this[ba]&&this[ba](e,t),!1):(this[Sa]+=o.length,this[Ii].unshift(o),this[zs].set(e,this[Ii].head),Md(this),!0)}has(e){if(!this[zs].has(e))return!1;let t=this[zs].get(e).value;return!Ey(this,t)}get(e){return ax(this,e,!0)}peek(e){return ax(this,e,!1)}pop(){let e=this[Ii].tail;return e?(uf(this,e),e.value):null}del(e){uf(this,this[zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[zs].forEach((e,t)=>ax(this,t,!1))}},ax=(r,e,t)=>{let i=r[zs].get(e);if(i){let n=i.value;if(Ey(r,n)){if(uf(r,i),!r[Kd])return}else t&&(r[UY]&&(i.value.now=Date.now()),r[Ii].unshiftNode(i));return n.value}},Ey=(r,e)=>{if(!e||!e.maxAge&&!r[Pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Pc]&&t>r[Pc]},Md=r=>{if(r[Sa]>r[xc])for(let e=r[Ii].tail;r[Sa]>r[xc]&&e!==null;){let t=e.prev;uf(r,e),e=t}},uf=(r,e)=>{if(e){let t=e.value;r[ba]&&r[ba](t.key,t.value),r[Sa]-=t.length,r[zs].delete(t.key),r[Ii].removeNode(e)}},lx=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},KY=(r,e,t,i)=>{let n=t.value;Ey(r,n)&&(uf(r,t),r[Kd]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};HY.exports=Ax});var as=y((pet,JY)=>{var Dc=class{constructor(e,t){if(t=VEe(t),e instanceof Dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Dc(e.raw,t);if(e instanceof cx)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!jY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&eIe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=YY.get(i);if(n)return n;let s=this.options.loose,o=s?Mi[bi.HYPHENRANGELOOSE]:Mi[bi.HYPHENRANGE];e=e.replace(o,cIe(this.options.includePrerelease)),jr("hyphen replace",e),e=e.replace(Mi[bi.COMPARATORTRIM],_Ee),jr("comparator trim",e,Mi[bi.COMPARATORTRIM]),e=e.replace(Mi[bi.TILDETRIM],ZEe),e=e.replace(Mi[bi.CARETTRIM],$Ee),e=e.split(/\s+/).join(" ");let a=s?Mi[bi.COMPARATORLOOSE]:Mi[bi.COMPARATOR],l=e.split(" ").map(f=>tIe(f,this.options)).join(" ").split(/\s+/).map(f=>lIe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new cx(f,this.options)),c=l.length,u=new Map;for(let f of l){if(jY(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return YY.set(i,g),g}intersects(e,t){if(!(e instanceof Dc))throw new TypeError("a Range is required");return this.set.some(i=>qY(i,t)&&e.set.some(n=>qY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new XEe(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",eIe=r=>r.value==="",qY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},tIe=(r,e)=>(jr("comp",r,e),r=nIe(r,e),jr("caret",r),r=rIe(r,e),jr("tildes",r),r=oIe(r,e),jr("xrange",r),r=AIe(r,e),jr("stars",r),r),Xi=r=>!r||r.toLowerCase()==="x"||r==="*",rIe=(r,e)=>r.trim().split(/\s+/).map(t=>iIe(t,e)).join(" "),iIe=(r,e)=>{let t=e.loose?Mi[bi.TILDELOOSE]:Mi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{jr("tilde",r,i,n,s,o,a);let l;return Xi(n)?l="":Xi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Xi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(jr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,jr("tilde return",l),l})},nIe=(r,e)=>r.trim().split(/\s+/).map(t=>sIe(t,e)).join(" "),sIe=(r,e)=>{jr("caret",r,e);let t=e.loose?Mi[bi.CARETLOOSE]:Mi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{jr("caret",r,n,s,o,a,l);let c;return Xi(s)?c="":Xi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Xi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(jr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(jr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),jr("caret return",c),c})},oIe=(r,e)=>(jr("replaceXRanges",r,e),r.split(/\s+/).map(t=>aIe(t,e)).join(" ")),aIe=(r,e)=>{r=r.trim();let t=e.loose?Mi[bi.XRANGELOOSE]:Mi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{jr("xRange",r,i,n,s,o,a,l);let c=Xi(s),u=c||Xi(o),g=u||Xi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),jr("xRange return",i),i})},AIe=(r,e)=>(jr("replaceStars",r,e),r.trim().replace(Mi[bi.STAR],"")),lIe=(r,e)=>(jr("replaceGTE0",r,e),r.trim().replace(Mi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),cIe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Xi(i)?t="":Xi(n)?t=`>=${i}.0.0${r?"-0":""}`:Xi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Xi(c)?l="":Xi(u)?l=`<${+c+1}.0.0-0`:Xi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),uIe=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ud=y((det,_Y)=>{var Hd=Symbol("SemVer ANY"),gf=class{static get ANY(){return Hd}constructor(e,t){if(t=gIe(t),e instanceof gf){if(e.loose===!!t.loose)return e;e=e.value}gx("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Hd?this.value="":this.value=this.operator+this.semver.version,gx("comp",this)}parse(e){let t=this.options.loose?WY[zY.COMPARATORLOOSE]:WY[zY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new VY(i[2],this.options.loose):this.semver=Hd}toString(){return this.value}test(e){if(gx("Comparator.test",e,this.options.loose),this.semver===Hd||e===Hd)return!0;if(typeof e=="string")try{e=new VY(e,this.options)}catch{return!1}return ux(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof gf))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new XY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new XY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=ux(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=ux(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};_Y.exports=gf;var gIe=Nd(),{re:WY,t:zY}=bc(),ux=sx(),gx=Fd(),VY=Oi(),XY=as()});var Gd=y((Cet,ZY)=>{var fIe=as(),hIe=(r,e,t)=>{try{e=new fIe(e,t)}catch{return!1}return e.test(r)};ZY.exports=hIe});var ej=y((met,$Y)=>{var pIe=as(),dIe=(r,e)=>new pIe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));$Y.exports=dIe});var rj=y((Eet,tj)=>{var CIe=Oi(),mIe=as(),EIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new mIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new CIe(i,t))}),i};tj.exports=EIe});var nj=y((Iet,ij)=>{var IIe=Oi(),yIe=as(),wIe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new yIe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new IIe(i,t))}),i};ij.exports=wIe});var aj=y((yet,oj)=>{var fx=Oi(),BIe=as(),sj=Td(),QIe=(r,e)=>{r=new BIe(r,e);let t=new fx("0.0.0");if(r.test(t)||(t=new fx("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new fx(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||sj(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||sj(t,s))&&(t=s)}return t&&r.test(t)?t:null};oj.exports=QIe});var lj=y((wet,Aj)=>{var bIe=as(),SIe=(r,e)=>{try{return new bIe(r,e).range||"*"}catch{return null}};Aj.exports=SIe});var Iy=y((Bet,fj)=>{var vIe=Oi(),gj=Ud(),{ANY:xIe}=gj,PIe=as(),DIe=Gd(),cj=Td(),uj=hy(),kIe=dy(),RIe=py(),FIe=(r,e,t,i)=>{r=new vIe(r,i),e=new PIe(e,i);let n,s,o,a,l;switch(t){case">":n=cj,s=kIe,o=uj,a=">",l=">=";break;case"<":n=uj,s=RIe,o=cj,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(DIe(r,e,i))return!1;for(let c=0;c{h.semver===xIe&&(h=new gj(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};fj.exports=FIe});var pj=y((Qet,hj)=>{var NIe=Iy(),LIe=(r,e,t)=>NIe(r,e,">",t);hj.exports=LIe});var Cj=y((bet,dj)=>{var TIe=Iy(),OIe=(r,e,t)=>TIe(r,e,"<",t);dj.exports=OIe});var Ij=y((vet,Ej)=>{var mj=as(),MIe=(r,e,t)=>(r=new mj(r,t),e=new mj(e,t),r.intersects(e));Ej.exports=MIe});var wj=y((xet,yj)=>{var KIe=Gd(),UIe=os();yj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>UIe(u,g,t));for(let u of o)KIe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var Bj=as(),yy=Ud(),{ANY:hx}=yy,Yd=Gd(),px=os(),HIe=(r,e,t={})=>{if(r===e)return!0;r=new Bj(r,t),e=new Bj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=GIe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},GIe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===hx){if(e.length===1&&e[0].semver===hx)return!0;t.includePrerelease?r=[new yy(">=0.0.0-0")]:r=[new yy(">=0.0.0")]}if(e.length===1&&e[0].semver===hx){if(t.includePrerelease)return!0;e=[new yy(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=Qj(n,h,t):h.operator==="<"||h.operator==="<="?s=bj(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=px(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Yd(h,String(n),t)||s&&!Yd(h,String(s),t))return null;for(let p of e)if(!Yd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=Qj(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!Yd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=bj(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Yd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},Qj=(r,e,t)=>{if(!r)return e;let i=px(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},bj=(r,e,t)=>{if(!r)return e;let i=px(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};Sj.exports=HIe});var $r=y((Det,xj)=>{var dx=bc();xj.exports={re:dx.re,src:dx.src,tokens:dx.t,SEMVER_SPEC_VERSION:Rd().SEMVER_SPEC_VERSION,SemVer:Oi(),compareIdentifiers:ly().compareIdentifiers,rcompareIdentifiers:ly().rcompareIdentifiers,parse:Sc(),valid:ZG(),clean:eY(),inc:rY(),diff:AY(),major:cY(),minor:gY(),patch:hY(),prerelease:dY(),compare:os(),rcompare:mY(),compareLoose:IY(),compareBuild:fy(),sort:QY(),rsort:SY(),gt:Td(),lt:hy(),eq:gy(),neq:nx(),gte:py(),lte:dy(),cmp:sx(),coerce:NY(),Comparator:Ud(),Range:as(),satisfies:Gd(),toComparators:ej(),maxSatisfying:rj(),minSatisfying:nj(),minVersion:aj(),validRange:lj(),outside:Iy(),gtr:pj(),ltr:Cj(),intersects:Ij(),simplifyRange:wj(),subset:vj()}});var Cx=y(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.VERSION=void 0;wy.VERSION="9.1.0"});var Gt=y((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof By=="object"&&By.exports?By.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:Pj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var w={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(w,"global");break;case"i":o(w,"ignoreCase");break;case"m":o(w,"multiLine");break;case"u":o(w,"unicode");break;case"y":o(w,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:w,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],m=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(m)}},r.prototype.alternative=function(){for(var p=[],m=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var w=this.disjunction();return this.consumeChar(")"),{type:m,value:w,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var m,w=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),m={atLeast:B,atMost:v}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&m===void 0)return;a(m);break}if(!(p===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(w),m},r.prototype.atom=function(){var p,m=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(m),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,m=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,m=!0;break;case"s":p=f;break;case"S":p=f,m=!0;break;case"w":p=g;break;case"W":p=g,m=!0;break}return a(p),{type:"Set",value:p,complement:m}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var m=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var w=this.classAtom(),B=w.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,m){p.length!==void 0?p.forEach(function(w){m.push(w)}):m.push(p)}function o(p,m){if(p[m]===!0)throw"duplicate flag "+m;p[m]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var m in p){var w=p[m];p.hasOwnProperty(m)&&(w.type!==void 0?this.visit(w):Array.isArray(w)&&w.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var Sy=y(ff=>{"use strict";Object.defineProperty(ff,"__esModule",{value:!0});ff.clearRegExpParserCache=ff.getRegExpAst=void 0;var YIe=Qy(),by={},jIe=new YIe.RegExpParser;function qIe(r){var e=r.toString();if(by.hasOwnProperty(e))return by[e];var t=jIe.pattern(e);return by[e]=t,t}ff.getRegExpAst=qIe;function JIe(){by={}}ff.clearRegExpParserCache=JIe});var Nj=y(dn=>{"use strict";var WIe=dn&&dn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.canMatchCharCode=dn.firstCharOptimizedIndices=dn.getOptimizedStartCodesIndices=dn.failedOptimizationPrefixMsg=void 0;var kj=Qy(),As=Gt(),Rj=Sy(),va=Ex(),Fj="Complement Sets are not supported for first char optimization";dn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function zIe(r,e){e===void 0&&(e=!1);try{var t=(0,Rj.getRegExpAst)(r),i=xy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Fj)e&&(0,As.PRINT_WARNING)(""+dn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,As.PRINT_ERROR)(dn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+kj.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}dn.getOptimizedStartCodesIndices=zIe;function xy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=va.minOptimizationVal)for(var f=u.from>=va.minOptimizationVal?u.from:va.minOptimizationVal,h=u.to,p=(0,va.charCodeToOptimizedIndex)(f),m=(0,va.charCodeToOptimizedIndex)(h),w=p;w<=m;w++)e[w]=w}}});break;case"Group":xy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&mx(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,As.values)(e)}dn.firstCharOptimizedIndices=xy;function vy(r,e,t){var i=(0,va.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&VIe(r,e)}function VIe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,va.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,va.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Dj(r,e){return(0,As.find)(r.value,function(t){if(typeof t=="number")return(0,As.contains)(e,t);var i=t;return(0,As.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function mx(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,As.isArray)(r.value)?(0,As.every)(r.value,mx):mx(r.value):!1}var XIe=function(r){WIe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,As.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Dj(t,this.targetCharCodes)===void 0&&(this.found=!0):Dj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(kj.BaseRegExpVisitor);function _Ie(r,e){if(e instanceof RegExp){var t=(0,Rj.getRegExpAst)(e),i=new XIe(r);return i.visit(t),i.found}else return(0,As.find)(e,function(n){return(0,As.contains)(r,n.charCodeAt(0))})!==void 0}dn.canMatchCharCode=_Ie});var Ex=y(Je=>{"use strict";var Lj=Je&&Je.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Je,"__esModule",{value:!0});Je.charCodeToOptimizedIndex=Je.minOptimizationVal=Je.buildLineBreakIssueMessage=Je.LineTerminatorOptimizedTester=Je.isShortPattern=Je.isCustomPattern=Je.cloneEmptyGroups=Je.performWarningRuntimeChecks=Je.performRuntimeChecks=Je.addStickyFlag=Je.addStartOfInput=Je.findUnreachablePatterns=Je.findModesThatDoNotExist=Je.findInvalidGroupType=Je.findDuplicatePatterns=Je.findUnsupportedFlags=Je.findStartOfInputAnchor=Je.findEmptyMatchRegExps=Je.findEndOfInputAnchor=Je.findInvalidPatterns=Je.findMissingPatterns=Je.validatePatterns=Je.analyzeTokenTypes=Je.enableSticky=Je.disableSticky=Je.SUPPORT_STICKY=Je.MODES=Je.DEFAULT_MODE=void 0;var Tj=Qy(),ir=jd(),Se=Gt(),hf=Nj(),Oj=Sy(),Po="PATTERN";Je.DEFAULT_MODE="defaultMode";Je.MODES="modes";Je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function ZIe(){Je.SUPPORT_STICKY=!1}Je.disableSticky=ZIe;function $Ie(){Je.SUPPORT_STICKY=!0}Je.enableSticky=$Ie;function eye(r,e){e=(0,Se.defaults)(e,{useSticky:Je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){cye()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(v){return v[Po]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(v){var D=v[Po];if((0,Se.isRegExp)(D)){var F=D.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!D.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?wx(D):yx(D)}else{if((0,Se.isFunction)(D))return n=!0,{exec:D};if((0,Se.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?wx(j):yx(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(v){return v.tokenTypeIdx}),a=(0,Se.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,Se.isString)(D))return D;if((0,Se.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(v){var D=v.LONGER_ALT;if(D){var F=(0,Se.isArray)(D)?(0,Se.map)(D,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,D)];return F}}),c=(0,Se.map)(i,function(v){return v.PUSH_MODE}),u=(0,Se.map)(i,function(v){return(0,Se.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=_j(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(D){if((0,Se.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(Vj(D,v)===!1)return(0,hf.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,m;t("Misc Mapping #2",function(){f=(0,Se.map)(i,Qx),h=(0,Se.map)(s,zj),p=(0,Se.reduce)(i,function(v,D){var F=D.GROUP;return(0,Se.isString)(F)&&F!==ir.Lexer.SKIPPED&&(v[F]=[]),v},{}),m=(0,Se.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var w=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(v,D,F){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Bx(H);Ix(v,j,m[F])}else if((0,Se.isArray)(D.START_CHARS_HINT)){var $;(0,Se.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Bx(Z);$!==A&&($=A,Ix(v,A,m[F]))})}else if((0,Se.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)w=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+hf.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var z=(0,hf.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(z)&&(w=!1),(0,Se.forEach)(z,function(W){Ix(v,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+hf.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return v},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:w}}Je.analyzeTokenTypes=eye;function tye(r,e){var t=[],i=Mj(r);t=t.concat(i.errors);var n=Kj(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(rye(s)),t=t.concat(qj(s)),t=t.concat(Jj(s,e)),t=t.concat(Wj(s)),t}Je.validatePatterns=tye;function rye(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[Po])});return e=e.concat(Uj(t)),e=e.concat(Gj(t)),e=e.concat(Yj(t)),e=e.concat(jj(t)),e=e.concat(Hj(t)),e}function Mj(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,Po)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findMissingPatterns=Mj;function Kj(r){var e=(0,Se.filter)(r,function(n){var s=n[Po];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}Je.findInvalidPatterns=Kj;var iye=/[^\\][\$]/;function Uj(r){var e=function(n){Lj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(Tj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Po];try{var o=(0,Oj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return iye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findEndOfInputAnchor=Uj;function Hj(r){var e=(0,Se.filter)(r,function(i){var n=i[Po];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Je.findEmptyMatchRegExps=Hj;var nye=/[^\\[][\^]|^\^/;function Gj(r){var e=function(n){Lj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(Tj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[Po];try{var o=(0,Oj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return nye.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Je.findStartOfInputAnchor=Gj;function Yj(r){var e=(0,Se.filter)(r,function(i){var n=i[Po];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Je.findUnsupportedFlags=Yj;function jj(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Je.findDuplicatePatterns=jj;function qj(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Je.findInvalidGroupType=qj;function Jj(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Je.findModesThatDoNotExist=Jj;function Wj(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&oye(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Je.findUnreachablePatterns=Wj;function sye(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function oye(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function yx(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Je.addStartOfInput=yx;function wx(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Je.addStickyFlag=wx;function aye(r,e,t){var i=[];return(0,Se.has)(r,Je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,Je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Je.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,Je.MODES)&&(0,Se.has)(r,Je.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Je.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,Je.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Je.performRuntimeChecks=aye;function Aye(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[Po]===ir.Lexer.NA}),a=_j(t);return e&&(0,Se.forEach)(o,function(l){var c=Vj(l,a);if(c!==!1){var u=Xj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,hf.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Je.performWarningRuntimeChecks=Aye;function lye(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Je.cloneEmptyGroups=lye;function Qx(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}Je.isCustomPattern=Qx;function zj(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Je.isShortPattern=zj;Je.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Je.buildLineBreakIssueMessage=Xj;function _j(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Ix(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Je.minOptimizationVal=256;var Py=[];function Bx(r){return r255?255+~~(r/255):r}}});var pf=y(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var ei=Gt();function uye(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=uye;function gye(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=gye;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function fye(r){var e=Zj(r);$j(e),tq(e),eq(e),(0,ei.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=fye;function Zj(r){for(var e=(0,ei.cloneArr)(r),t=r,i=!0;i;){t=(0,ei.compact)((0,ei.flatten)((0,ei.map)(t,function(s){return s.CATEGORIES})));var n=(0,ei.difference)(t,e);e=e.concat(n),(0,ei.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=Zj;function $j(r){(0,ei.forEach)(r,function(e){rq(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),bx(e)&&!(0,ei.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),bx(e)||(e.CATEGORIES=[]),iq(e)||(e.categoryMatches=[]),nq(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=$j;function eq(r){(0,ei.forEach)(r,function(e){e.categoryMatches=[],(0,ei.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=eq;function tq(r){(0,ei.forEach)(r,function(e){Sx([],e)})}Nt.assignCategoriesMapProp=tq;function Sx(r,e){(0,ei.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,ei.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,ei.contains)(i,t)||Sx(i,t)})}Nt.singleAssignCategoriesToksMap=Sx;function rq(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=rq;function bx(r){return(0,ei.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=bx;function iq(r){return(0,ei.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=iq;function nq(r){return(0,ei.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=nq;function hye(r){return(0,ei.has)(r,"tokenTypeIdx")}Nt.isTokenType=hye});var vx=y(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.defaultLexerErrorProvider=void 0;Dy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var jd=y(kc=>{"use strict";Object.defineProperty(kc,"__esModule",{value:!0});kc.Lexer=kc.LexerDefinitionErrorType=void 0;var Vs=Ex(),nr=Gt(),pye=pf(),dye=vx(),Cye=Sy(),mye;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(mye=kc.LexerDefinitionErrorType||(kc.LexerDefinitionErrorType={}));var qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:dye.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(qd);var Eye=function(){function r(e,t){var i=this;if(t===void 0&&(t=qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Vs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===qd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[Vs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[Vs.DEFAULT_MODE]=Vs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Vs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Vs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,pye.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Vs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Vs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,Cye.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,m,w,B,v,D,F=e,H=F.length,j=0,$=0,z=this.hasCustom?0:Math.floor(e.length/10),W=new Array(z),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ue=(0,Vs.cloneEmptyGroups)(this.emptyGroups),_=this.trackStartLines,T=this.config.lineTerminatorsPattern,L=0,ge=[],we=[],Le=[],Pe=[];Object.freeze(Pe);var Te=void 0;function se(){return ge}function Ae(dr){var Bi=(0,Vs.charCodeToOptimizedIndex)(dr),_n=we[Bi];return _n===void 0?Pe:_n}var Qe=function(dr){if(Le.length===1&&dr.tokenType.PUSH_MODE===void 0){var Bi=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(dr);Z.push({offset:dr.startOffset,line:dr.startLine!==void 0?dr.startLine:void 0,column:dr.startColumn!==void 0?dr.startColumn:void 0,length:dr.image.length,message:Bi})}else{Le.pop();var _n=(0,nr.last)(Le);ge=i.patternIdxToConfig[_n],we=i.charCodeToPatternIdxToConfig[_n],L=ge.length;var ga=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;we&&ga?Te=Ae:Te=se}};function fe(dr){Le.push(dr),we=this.charCodeToPatternIdxToConfig[dr],ge=this.patternIdxToConfig[dr],L=ge.length,L=ge.length;var Bi=this.canModeBeOptimized[dr]&&this.config.safeMode===!1;we&&Bi?Te=Ae:Te=se}fe.call(this,t);for(var le;jc.length){c=a,u=g,le=tt;break}}}break}}if(c!==null){if(f=c.length,h=le.group,h!==void 0&&(p=le.tokenTypeIdx,m=this.createTokenInstance(c,j,p,le.tokenType,A,ae,f),this.handlePayload(m,u),h===!1?$=this.addToken(W,$,m):ue[h].push(m)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),_===!0&&le.canLineTerminator===!0){var It=0,Kr=void 0,oi=void 0;T.lastIndex=0;do Kr=T.test(c),Kr===!0&&(oi=T.lastIndex-1,It++);while(Kr===!0);It!==0&&(A=A+It,ae=f-oi,this.updateTokenEndLineColumnLocation(m,h,oi,It,A,ae,f))}this.handleModes(le,Qe,fe,m)}else{for(var pi=j,pr=A,di=ae,ai=!1;!ai&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();kc.Lexer=Eye});var KA=y(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var Xs=Gt(),Iye=jd(),xx=pf();function yye(r){return fq(r)?r.LABEL:r.name}Si.tokenLabel=yye;function wye(r){return r.name}Si.tokenName=wye;function fq(r){return(0,Xs.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=fq;var Bye="parent",sq="categories",oq="label",aq="group",Aq="push_mode",lq="pop_mode",cq="longer_alt",uq="line_breaks",gq="start_chars_hint";function hq(r){return Qye(r)}Si.createToken=hq;function Qye(r){var e=r.pattern,t={};if(t.name=r.name,(0,Xs.isUndefined)(e)||(t.PATTERN=e),(0,Xs.has)(r,Bye))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Xs.has)(r,sq)&&(t.CATEGORIES=r[sq]),(0,xx.augmentTokenTypes)([t]),(0,Xs.has)(r,oq)&&(t.LABEL=r[oq]),(0,Xs.has)(r,aq)&&(t.GROUP=r[aq]),(0,Xs.has)(r,lq)&&(t.POP_MODE=r[lq]),(0,Xs.has)(r,Aq)&&(t.PUSH_MODE=r[Aq]),(0,Xs.has)(r,cq)&&(t.LONGER_ALT=r[cq]),(0,Xs.has)(r,uq)&&(t.LINE_BREAKS=r[uq]),(0,Xs.has)(r,gq)&&(t.START_CHARS_HINT=r[gq]),t}Si.EOF=hq({name:"EOF",pattern:Iye.Lexer.NA});(0,xx.augmentTokenTypes)([Si.EOF]);function bye(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=bye;function Sye(r,e){return(0,xx.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=Sye});var Cn=y(Wt=>{"use strict";var xa=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var lr=Gt(),vye=KA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,lr.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=Do;var pq=function(r){xa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);Wt.NonTerminal=pq;var dq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.Rule=dq;var Cq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.Alternative=Cq;var mq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.Option=mq;var Eq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.RepetitionMandatory=Eq;var Iq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.RepetitionMandatoryWithSeparator=Iq;var yq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.Repetition=yq;var wq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return e}(Do);Wt.RepetitionWithSeparator=wq;var Bq=function(r){xa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,lr.assign)(i,(0,lr.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);Wt.Alternation=Bq;var ky=function(){function r(e){this.idx=1,(0,lr.assign)(this,(0,lr.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=ky;function xye(r){return(0,lr.map)(r,Jd)}Wt.serializeGrammar=xye;function Jd(r){function e(s){return(0,lr.map)(s,Jd)}if(r instanceof pq){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,lr.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof Cq)return{type:"Alternative",definition:e(r.definition)};if(r instanceof mq)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Eq)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof Iq)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Jd(new ky({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof wq)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Jd(new ky({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof yq)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Bq)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof ky){var i={type:"Terminal",name:r.terminalType.name,label:(0,vye.tokenLabel)(r.terminalType),idx:r.idx};(0,lr.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,lr.isRegExp)(n)?n.source:n),i}else{if(r instanceof dq)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Wt.serializeProduction=Jd});var Fy=y(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.RestWalker=void 0;var Px=Gt(),mn=Cn(),Pye=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Px.forEach)(e.definition,function(n,s){var o=(0,Px.drop)(e.definition,s+1);if(n instanceof mn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof mn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof mn.Alternative)i.walkFlat(n,o,t);else if(n instanceof mn.Option)i.walkOption(n,o,t);else if(n instanceof mn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof mn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof mn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof mn.Repetition)i.walkMany(n,o,t);else if(n instanceof mn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Qq(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new mn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Qq(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Px.forEach)(e.definition,function(o){var a=new mn.Alternative({definition:[o]});n.walk(a,s)})},r}();Ry.RestWalker=Pye;function Qq(r,e,t){var i=[new mn.Option({definition:[new mn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var df=y(Ny=>{"use strict";Object.defineProperty(Ny,"__esModule",{value:!0});Ny.GAstVisitor=void 0;var ko=Cn(),Dye=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case ko.NonTerminal:return this.visitNonTerminal(t);case ko.Alternative:return this.visitAlternative(t);case ko.Option:return this.visitOption(t);case ko.RepetitionMandatory:return this.visitRepetitionMandatory(t);case ko.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case ko.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case ko.Repetition:return this.visitRepetition(t);case ko.Alternation:return this.visitAlternation(t);case ko.Terminal:return this.visitTerminal(t);case ko.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ny.GAstVisitor=Dye});var zd=y(Ki=>{"use strict";var kye=Ki&&Ki.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ki,"__esModule",{value:!0});Ki.collectMethods=Ki.DslMethodsCollectorVisitor=Ki.getProductionDslName=Ki.isBranchingProd=Ki.isOptionalProd=Ki.isSequenceProd=void 0;var Wd=Gt(),Br=Cn(),Rye=df();function Fye(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Ki.isSequenceProd=Fye;function Dx(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,Wd.some)(r.definition,function(i){return Dx(i,e)}):r instanceof Br.NonTerminal&&(0,Wd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,Wd.every)(r.definition,function(i){return Dx(i,e)})):!1}Ki.isOptionalProd=Dx;function Nye(r){return r instanceof Br.Alternation}Ki.isBranchingProd=Nye;function Lye(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Ki.getProductionDslName=Lye;var bq=function(r){kye(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Wd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Wd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(Rye.GAstVisitor);Ki.DslMethodsCollectorVisitor=bq;var Ly=new bq;function Tye(r){Ly.reset(),r.accept(Ly);var e=Ly.dslMethods;return Ly.reset(),e}Ki.collectMethods=Tye});var Rx=y(Ro=>{"use strict";Object.defineProperty(Ro,"__esModule",{value:!0});Ro.firstForTerminal=Ro.firstForBranching=Ro.firstForSequence=Ro.first=void 0;var Ty=Gt(),Sq=Cn(),kx=zd();function Oy(r){if(r instanceof Sq.NonTerminal)return Oy(r.referencedRule);if(r instanceof Sq.Terminal)return Pq(r);if((0,kx.isSequenceProd)(r))return vq(r);if((0,kx.isBranchingProd)(r))return xq(r);throw Error("non exhaustive match")}Ro.first=Oy;function vq(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,kx.isOptionalProd)(s),e=e.concat(Oy(s)),i=i+1,n=t.length>i;return(0,Ty.uniq)(e)}Ro.firstForSequence=vq;function xq(r){var e=(0,Ty.map)(r.definition,function(t){return Oy(t)});return(0,Ty.uniq)((0,Ty.flatten)(e))}Ro.firstForBranching=xq;function Pq(r){return[r.terminalType]}Ro.firstForTerminal=Pq});var Fx=y(My=>{"use strict";Object.defineProperty(My,"__esModule",{value:!0});My.IN=void 0;My.IN="_~IN~_"});var Nq=y(ls=>{"use strict";var Oye=ls&&ls.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(ls,"__esModule",{value:!0});ls.buildInProdFollowPrefix=ls.buildBetweenProdsFollowPrefix=ls.computeAllProdsFollows=ls.ResyncFollowsWalker=void 0;var Mye=Fy(),Kye=Rx(),Dq=Gt(),kq=Fx(),Uye=Cn(),Rq=function(r){Oye(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=Fq(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new Uye.Alternative({definition:o}),l=(0,Kye.first)(a);this.follows[s]=l},e}(Mye.RestWalker);ls.ResyncFollowsWalker=Rq;function Hye(r){var e={};return(0,Dq.forEach)(r,function(t){var i=new Rq(t).startWalking();(0,Dq.assign)(e,i)}),e}ls.computeAllProdsFollows=Hye;function Fq(r,e){return r.name+e+kq.IN}ls.buildBetweenProdsFollowPrefix=Fq;function Gye(r){var e=r.terminalType.name;return e+r.idx+kq.IN}ls.buildInProdFollowPrefix=Gye});var Vd=y(Pa=>{"use strict";Object.defineProperty(Pa,"__esModule",{value:!0});Pa.defaultGrammarValidatorErrorProvider=Pa.defaultGrammarResolverErrorProvider=Pa.defaultParserErrorProvider=void 0;var Cf=KA(),Yye=Gt(),_s=Gt(),Nx=Cn(),Lq=zd();Pa.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,Cf.hasTokenLabel)(e),o=s?"--> "+(0,Cf.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,_s.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,_s.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,_s.map)(c,function(h){return"["+(0,_s.map)(h,function(p){return(0,Cf.tokenLabel)(p)}).join(", ")+"]"}),g=(0,_s.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,_s.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,_s.map)(e,function(u){return"["+(0,_s.map)(u,function(g){return(0,Cf.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Pa.defaultParserErrorProvider);Pa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Pa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Nx.Terminal?u.terminalType.name:u instanceof Nx.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,_s.first)(e),s=n.idx,o=(0,Lq.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Cf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,_s.map)(r.prefixPath,function(n){return(0,Cf.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Lq.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=Yye.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Nx.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Mq=y(UA=>{"use strict";var jye=UA&&UA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(UA,"__esModule",{value:!0});UA.GastRefResolverVisitor=UA.resolveGrammar=void 0;var qye=Un(),Tq=Gt(),Jye=df();function Wye(r,e){var t=new Oq(r,e);return t.resolveRefs(),t.errors}UA.resolveGrammar=Wye;var Oq=function(r){jye(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Tq.forEach)((0,Tq.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:qye.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(Jye.GAstVisitor);UA.GastRefResolverVisitor=Oq});var _d=y(Lr=>{"use strict";var Rc=Lr&&Lr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Lr,"__esModule",{value:!0});Lr.nextPossibleTokensAfter=Lr.possiblePathsFrom=Lr.NextTerminalAfterAtLeastOneSepWalker=Lr.NextTerminalAfterAtLeastOneWalker=Lr.NextTerminalAfterManySepWalker=Lr.NextTerminalAfterManyWalker=Lr.AbstractNextTerminalAfterProductionWalker=Lr.NextAfterTokenWalker=Lr.AbstractNextPossibleTokensWalker=void 0;var Kq=Fy(),Kt=Gt(),zye=Rx(),Dt=Cn(),Uq=function(r){Rc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Kq.RestWalker);Lr.AbstractNextPossibleTokensWalker=Uq;var Vye=function(r){Rc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new Dt.Alternative({definition:s});this.possibleTokTypes=(0,zye.first)(o),this.found=!0}},e}(Uq);Lr.NextAfterTokenWalker=Vye;var Xd=function(r){Rc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Kq.RestWalker);Lr.AbstractNextTerminalAfterProductionWalker=Xd;var Xye=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Xd);Lr.NextTerminalAfterManyWalker=Xye;var _ye=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Xd);Lr.NextTerminalAfterManySepWalker=_ye;var Zye=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Xd);Lr.NextTerminalAfterAtLeastOneWalker=Zye;var $ye=function(r){Rc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof Dt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Xd);Lr.NextTerminalAfterAtLeastOneSepWalker=$ye;function Hq(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Hq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var _=B.definition[ue],T={idx:p,def:_.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:w};g.push(T),g.push(o)}else if(B instanceof Dt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:m,occurrenceStack:w});else if(B instanceof Dt.Rule)g.push(twe(B,p,m,w));else throw Error("non exhaustive match")}}return u}Lr.nextPossibleTokensAfter=ewe;function twe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Zd=y(_t=>{"use strict";var jq=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,"__esModule",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),Gq=_d(),rwe=Fy(),Ky=pf(),HA=Cn(),iwe=df(),li;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(li=_t.PROD_TYPE||(_t.PROD_TYPE={}));function nwe(r){if(r instanceof HA.Option)return li.OPTION;if(r instanceof HA.Repetition)return li.REPETITION;if(r instanceof HA.RepetitionMandatory)return li.REPETITION_MANDATORY;if(r instanceof HA.RepetitionMandatoryWithSeparator)return li.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof HA.RepetitionWithSeparator)return li.REPETITION_WITH_SEPARATOR;if(r instanceof HA.Alternation)return li.ALTERNATION;throw Error("non exhaustive match")}_t.getProdType=nwe;function swe(r,e,t,i,n,s){var o=Jq(r,e,t),a=Ox(o)?Ky.tokenStructuredMatcherNoCategories:Ky.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=swe;function owe(r,e,t,i,n,s){var o=Wq(r,e,n,t),a=Ox(o)?Ky.tokenStructuredMatcherNoCategories:Ky.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=owe;function awe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Mx=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),Qr=Gt(),Fo=Un(),Kx=zd(),mf=Zd(),gwe=_d(),Zs=Cn(),Ux=df();function fwe(r,e,t,i,n){var s=er.map(r,function(h){return hwe(h,i)}),o=er.map(r,function(h){return Hx(h,h,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(h){return $q(h,i)}),l=(0,Qr.map)(r,function(h){return eJ(h,e,i)}),c=iJ(r,e,i));var u=Cwe(r,t,i),g=(0,Qr.map)(r,function(h){return rJ(h,i)}),f=(0,Qr.map)(r,function(h){return Zq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=fwe;function hwe(r,e){var t=new _q;r.accept(t);var i=t.allProductions,n=er.groupBy(i,Vq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Kx.getProductionDslName)(l),g={message:c,type:Fo.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=Xq(l);return f&&(g.parameter=f),g});return o}function Vq(r){return(0,Kx.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+Xq(r)}zt.identifyProductionForDuplicates=Vq;function Xq(r){return r instanceof Zs.Terminal?r.terminalType.name:r instanceof Zs.NonTerminal?r.nonTerminalName:""}var _q=function(r){Mx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Ux.GAstVisitor);zt.OccurrenceValidationCollector=_q;function Zq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:Fo.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=Zq;function pwe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Fo.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=pwe;function Hx(r,e,t,i){i===void 0&&(i=[]);var n=[],s=$d(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:Fo.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),Hx(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=Hx;function $d(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof Zs.NonTerminal)e.push(t.referencedRule);else if(t instanceof Zs.Alternative||t instanceof Zs.Option||t instanceof Zs.RepetitionMandatory||t instanceof Zs.RepetitionMandatoryWithSeparator||t instanceof Zs.RepetitionWithSeparator||t instanceof Zs.Repetition)e=e.concat($d(t.definition));else if(t instanceof Zs.Alternation)e=er.flatten(er.map(t.definition,function(o){return $d(o.definition)}));else if(!(t instanceof Zs.Terminal))throw Error("non exhaustive match");var i=(0,Kx.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat($d(s))}else return e}zt.getFirstNoneTerminal=$d;var Gx=function(r){Mx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Ux.GAstVisitor);function $q(r,e){var t=new Gx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,gwe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:Fo.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=$q;function eJ(r,e,t){var i=new Gx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,mf.getLookaheadPathsForOr)(l,r,c,a),g=dwe(u,a,r,t),f=nJ(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=eJ;var tJ=function(r){Mx(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Ux.GAstVisitor);zt.RepetionCollector=tJ;function rJ(r,e){var t=new Gx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:Fo.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=rJ;function iJ(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new tJ;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,mf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,mf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Fo.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=iJ;function dwe(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(f,h){c!==h&&(0,mf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,mf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Fo.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function nJ(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Ef,"__esModule",{value:!0});Ef.validateGrammar=Ef.resolveGrammar=void 0;var jx=Gt(),mwe=Mq(),Ewe=Yx(),sJ=Vd();function Iwe(r){r=(0,jx.defaults)(r,{errMsgProvider:sJ.defaultGrammarResolverErrorProvider});var e={};return(0,jx.forEach)(r.rules,function(t){e[t.name]=t}),(0,mwe.resolveGrammar)(e,r.errMsgProvider)}Ef.resolveGrammar=Iwe;function ywe(r){return r=(0,jx.defaults)(r,{errMsgProvider:sJ.defaultGrammarValidatorErrorProvider}),(0,Ewe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}Ef.validateGrammar=ywe});var If=y(En=>{"use strict";var eC=En&&En.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(En,"__esModule",{value:!0});En.EarlyExitException=En.NotAllInputParsedException=En.NoViableAltException=En.MismatchedTokenException=En.isRecognitionException=void 0;var wwe=Gt(),aJ="MismatchedTokenException",AJ="NoViableAltException",lJ="EarlyExitException",cJ="NotAllInputParsedException",uJ=[aJ,AJ,lJ,cJ];Object.freeze(uJ);function Bwe(r){return(0,wwe.contains)(uJ,r.name)}En.isRecognitionException=Bwe;var Uy=function(r){eC(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),Qwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=aJ,s}return e}(Uy);En.MismatchedTokenException=Qwe;var bwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=AJ,s}return e}(Uy);En.NoViableAltException=bwe;var Swe=function(r){eC(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=cJ,n}return e}(Uy);En.NotAllInputParsedException=Swe;var vwe=function(r){eC(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=lJ,s}return e}(Uy);En.EarlyExitException=vwe});var Jx=y(Ui=>{"use strict";Object.defineProperty(Ui,"__esModule",{value:!0});Ui.attemptInRepetitionRecovery=Ui.Recoverable=Ui.InRuleRecoveryException=Ui.IN_RULE_RECOVERY_EXCEPTION=Ui.EOF_FOLLOW_KEY=void 0;var Hy=KA(),cs=Gt(),xwe=If(),Pwe=Fx(),Dwe=Un();Ui.EOF_FOLLOW_KEY={};Ui.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function qx(r){this.name=Ui.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ui.InRuleRecoveryException=qx;qx.prototype=Error.prototype;var kwe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,cs.has)(e,"recoveryEnabled")?e.recoveryEnabled:Dwe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=gJ)},r.prototype.getTokenToInsert=function(e){var t=(0,Hy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),m=new xwe.MismatchedTokenException(p,u,s.LA(0));m.resyncedTokens=(0,cs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new qx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,cs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,cs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,cs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,cs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ui.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,cs.map)(t,function(n,s){return s===0?Ui.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,cs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,cs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ui.EOF_FOLLOW_KEY)return[Hy.EOF];var t=e.ruleName+e.idxInCallingRule+Pwe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,Hy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,cs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,cs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,cs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ui.Recoverable=kwe;function gJ(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=Hy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ui.attemptInRepetitionRecovery=gJ});var Gy=y(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<{"use strict";Object.defineProperty(Yy,"__esModule",{value:!0});Yy.LooksAhead=void 0;var Da=Zd(),$s=Gt(),fJ=Un(),ka=Gy(),Fc=zd(),Fwe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,$s.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:fJ.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,$s.has)(e,"maxLookahead")?e.maxLookahead:fJ.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,$s.isES2015MapSupported)()?new Map:[],(0,$s.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,$s.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Fc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,$s.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Fc.getProductionDslName)(g)+f,function(){var h=(0,Da.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,ka.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],ka.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,$s.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,ka.MANY_IDX,Da.PROD_TYPE.REPETITION,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,ka.OPTION_IDX,Da.PROD_TYPE.OPTION,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,ka.AT_LEAST_ONE_IDX,Da.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,ka.AT_LEAST_ONE_SEP_IDX,Da.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Fc.getProductionDslName)(g))}),(0,$s.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,ka.MANY_SEP_IDX,Da.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Fc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Da.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ka.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Da.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Da.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,ka.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Yy.LooksAhead=Fwe});var pJ=y(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.addNoneTerminalToCst=No.addTerminalToCst=No.setNodeLocationFull=No.setNodeLocationOnlyOffset=void 0;function Nwe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.defineNameProp=GA.functionName=GA.classNameFromInstance=void 0;var Mwe=Gt();function Kwe(r){return CJ(r.constructor)}GA.classNameFromInstance=Kwe;var dJ="name";function CJ(r){var e=r.name;return e||"anonymous"}GA.functionName=CJ;function Uwe(r,e){var t=Object.getOwnPropertyDescriptor(r,dJ);return(0,Mwe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,dJ,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}GA.defineNameProp=Uwe});var wJ=y(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var us=Gt(),tC=Wx();function mJ(r,e){for(var t=(0,us.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Hwe;function Gwe(r,e,t){var i=function(){};(0,tC.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,us.forEach)(e,function(s){n[s]=mJ}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=Gwe;var zx;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(zx=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function EJ(r,e){var t=IJ(r,e),i=yJ(r,e);return t.concat(i)}vi.validateVisitor=EJ;function IJ(r,e){var t=(0,us.map)(e,function(i){if(!(0,us.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,tC.functionName)(r.constructor)+" CST Visitor.",type:zx.MISSING_METHOD,methodName:i}});return(0,us.compact)(t)}vi.validateMissingCstMethods=IJ;var Ywe=["constructor","visit","validateVisitor"];function yJ(r,e){var t=[];for(var i in r)(0,us.isFunction)(r[i])&&!(0,us.contains)(Ywe,i)&&!(0,us.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,tC.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:zx.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=yJ});var QJ=y(jy=>{"use strict";Object.defineProperty(jy,"__esModule",{value:!0});jy.TreeBuilder=void 0;var yf=pJ(),ti=Gt(),BJ=wJ(),jwe=Un(),qwe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,ti.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:jwe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=ti.NOOP,this.cstFinallyStateUpdate=ti.NOOP,this.cstPostTerminal=ti.NOOP,this.cstPostNonTerminal=ti.NOOP,this.cstPostRule=ti.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yf.setNodeLocationFull,this.setNodeLocationFromNode=yf.setNodeLocationFull,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=yf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=yf.setNodeLocationOnlyOffset,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=ti.NOOP,this.setNodeLocationFromNode=ti.NOOP,this.cstPostRule=ti.NOOP,this.setInitialNodeLocation=ti.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,yf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,ti.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,BJ.createBaseSemanticVisitorConstructor)(this.className,(0,ti.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,ti.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,BJ.createBaseVisitorConstructorWithDefaults)(this.className,(0,ti.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();jy.TreeBuilder=qwe});var SJ=y(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.LexerAdapter=void 0;var bJ=Un(),Jwe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):bJ.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?bJ.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();qy.LexerAdapter=Jwe});var xJ=y(Jy=>{"use strict";Object.defineProperty(Jy,"__esModule",{value:!0});Jy.RecognizerApi=void 0;var vJ=Gt(),Wwe=If(),Vx=Un(),zwe=Vd(),Vwe=Yx(),Xwe=Cn(),_we=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Vx.DEFAULT_RULE_CONFIG),(0,vJ.contains)(this.definedRulesNames,e)){var n=zwe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Vx.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Vx.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Vwe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Wwe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Xwe.serializeGrammar)((0,vJ.values)(this.gastProductionsCache))},r}();Jy.RecognizerApi=_we});var RJ=y(zy=>{"use strict";Object.defineProperty(zy,"__esModule",{value:!0});zy.RecognizerEngine=void 0;var Dr=Gt(),Hn=Gy(),Wy=If(),PJ=Zd(),wf=_d(),DJ=Un(),Zwe=Jx(),kJ=KA(),rC=pf(),$we=Wx(),eBe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,$we.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=rC.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Dr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Dr.isArray)(e)){if((0,Dr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Dr.isArray)(e))this.tokensMap=(0,Dr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Dr.has)(e,"modes")&&(0,Dr.every)((0,Dr.flatten)((0,Dr.values)(e.modes)),rC.isTokenType)){var i=(0,Dr.flatten)((0,Dr.values)(e.modes)),n=(0,Dr.uniq)(i);this.tokensMap=(0,Dr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Dr.isObject)(e))this.tokensMap=(0,Dr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=kJ.EOF;var s=(0,Dr.every)((0,Dr.values)(e),function(o){return(0,Dr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?rC.tokenStructuredMatcherNoCategories:rC.tokenStructuredMatcher,(0,rC.augmentTokenTypes)((0,Dr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Dr.has)(i,"resyncEnabled")?i.resyncEnabled:DJ.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Dr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:DJ.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Hn.OR_IDX,t),n=(0,Dr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,Wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Zwe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Dr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),kJ.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();zy.RecognizerEngine=eBe});var NJ=y(Vy=>{"use strict";Object.defineProperty(Vy,"__esModule",{value:!0});Vy.ErrorHandler=void 0;var Xx=If(),_x=Gt(),FJ=Zd(),tBe=Un(),rBe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,_x.has)(e,"errorMessageProvider")?e.errorMessageProvider:tBe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,Xx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,_x.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,_x.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,FJ.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new Xx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,FJ.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Xx.NoViableAltException(c,this.LA(1),l))},r}();Vy.ErrorHandler=rBe});var OJ=y(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});Xy.ContentAssist=void 0;var LJ=_d(),TJ=Gt(),iBe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,TJ.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,LJ.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,TJ.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new LJ.NextAfterTokenWalker(n,e).startWalking();return s},r}();Xy.ContentAssist=iBe});var qJ=y($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.GastRecorder=void 0;var In=Gt(),Lo=Cn(),nBe=jd(),HJ=pf(),GJ=KA(),sBe=Un(),oBe=Gy(),Zy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Zy);var MJ=!0,KJ=Math.pow(2,oBe.BITS_FOR_OCCURRENCE_IDX)-1,YJ=(0,GJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:nBe.Lexer.NA});(0,HJ.augmentTokenTypes)([YJ]);var jJ=(0,GJ.createTokenInstance)(YJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(jJ);var aBe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},ABe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return sBe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return iC.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){iC.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){iC.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,MJ)},r.prototype.manyInternalRecord=function(e,t){iC.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){iC.call(this,Lo.RepetitionWithSeparator,t,e,MJ)},r.prototype.orInternalRecord=function(e,t){return lBe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(_y(t),!e||(0,In.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?aBe:Zy},r.prototype.consumeInternalRecord=function(e,t,i){if(_y(t),!(0,HJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,In.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),jJ},r}();$y.GastRecorder=ABe;function iC(r,e,t,i){i===void 0&&(i=!1),_y(t);var n=(0,In.peek)(this.recordingProdStack),s=(0,In.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,In.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Zy}function lBe(r,e){var t=this;_y(e);var i=(0,In.peek)(this.recordingProdStack),n=(0,In.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,In.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,In.some)(s,function(l){return(0,In.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,In.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,In.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,In.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Zy}function UJ(r){return r===0?"":""+r}function _y(r){if(r<0||r>KJ){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(KJ+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var WJ=y(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.PerformanceTracer=void 0;var JJ=Gt(),cBe=Un(),uBe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,JJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=cBe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,JJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();ew.PerformanceTracer=uBe});var zJ=y(tw=>{"use strict";Object.defineProperty(tw,"__esModule",{value:!0});tw.applyMixins=void 0;function gBe(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}tw.applyMixins=gBe});var Un=y(Cr=>{"use strict";var _J=Cr&&Cr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cr,"__esModule",{value:!0});Cr.EmbeddedActionsParser=Cr.CstParser=Cr.Parser=Cr.EMPTY_ALT=Cr.ParserDefinitionErrorType=Cr.DEFAULT_RULE_CONFIG=Cr.DEFAULT_PARSER_CONFIG=Cr.END_OF_FILE=void 0;var _i=Gt(),fBe=Nq(),VJ=KA(),ZJ=Vd(),XJ=oJ(),hBe=Jx(),pBe=hJ(),dBe=QJ(),CBe=SJ(),mBe=xJ(),EBe=RJ(),IBe=NJ(),yBe=OJ(),wBe=qJ(),BBe=WJ(),QBe=zJ();Cr.END_OF_FILE=(0,VJ.createTokenInstance)(VJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Cr.END_OF_FILE);Cr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:ZJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});Cr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var bBe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(bBe=Cr.ParserDefinitionErrorType||(Cr.ParserDefinitionErrorType={}));function SBe(r){return r===void 0&&(r=void 0),function(){return r}}Cr.EMPTY_ALT=SBe;var rw=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,_i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,_i.has)(t,"skipValidations")?t.skipValidations:Cr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,_i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,_i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,XJ.resolveGrammar)({rules:(0,_i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,_i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,XJ.validateGrammar)({rules:(0,_i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,_i.values)(e.tokensMap),errMsgProvider:ZJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,_i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,fBe.computeAllProdsFollows)((0,_i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,_i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,_i.isEmpty)(e.definitionErrors))throw t=(0,_i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();Cr.Parser=rw;(0,QBe.applyMixins)(rw,[hBe.Recoverable,pBe.LooksAhead,dBe.TreeBuilder,CBe.LexerAdapter,EBe.RecognizerEngine,mBe.RecognizerApi,IBe.ErrorHandler,yBe.ContentAssist,wBe.GastRecorder,BBe.PerformanceTracer]);var vBe=function(r){_J(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(rw);Cr.CstParser=vBe;var xBe=function(r){_J(e,r);function e(t,i){i===void 0&&(i=Cr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,_i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(rw);Cr.EmbeddedActionsParser=xBe});var eW=y(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.createSyntaxDiagramsCode=void 0;var $J=Cx();function PBe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+$J.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+$J.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions.html b/docs/web/static/python_api/mephisto/abstractions.html new file mode 100644 index 000000000..7be6c2f35 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions.html @@ -0,0 +1,303 @@ + + + + + + + + + mephisto.abstractions API documentation + + + + + + + + + +
+
+

+mephisto.abstractions

+ +

Mephisto Core Abstractions

+ +

This directory contains the interfaces for the four core Mephisto abstractions (as well as subcomponents of those abstractions). Those abstractions are discussed at a high level in the architecture overvierw doc.

+ +

Specific implementations can be made to extend the Mephisto data model to work with new crowd providers, new task types, and new backend server architectures. These four primary abstractions are summarized below, but other sections go more in-depth.

+ +

Architect

+ +

An Architect is an abstraction that allows Mephisto to manage setup and maintenance of task servers for you. When launching a task, Mephisto uses an Architect to build required server files, launch that server, deploy the task files, and then later shut it down when the task is complete. More details are found in the abstractions/architects folder, along with the existing Architects.

+ +

Architects also require a Channel to allow the ClientIOHandler to communicate with the server, and are expected to define their own or select a compatible one from the ones already present.

+ +

Blueprint

+ +

A Blueprint is the essential formula for running a task on Mephisto. It accepts some number of parameters and input data, and that should be sufficient content to be able to display a frontend to the crowdworker, process their responses, and then save them somewhere. It comprises of extensions of the AgentState (data storage), TaskRunner (actual steps to complete the task), and TaskBuilder (resources to display a frontend) classes. More details are provided in the abstractions/blueprints folder, where all the existing Blueprints live.

+ +

CrowdProvider

+ +

A CrowdProvider is a wrapper around any of the required functionality that Mephisto will need to utilize to accept work from workers on a specific service. Ultimately it comprises of an extension of each of Worker, Agent, Unit, and Requester. More details can be found in the abstractions/providers folder, where all of the existing CrowdProviders live.

+ +

MephistoDB

+ +

The MephistoDB is an abstraction around the storage for the Mephisto data model, such that it could be possible to create alternate methods for storing and loading the kind of data that mephisto requires without breaking functionality.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+__all__ = [
+    "architect",
+    "blueprint",
+    "crowd_provider",
+    "database",
+    "architects",
+    "blueprints",
+    "providers",
+    "databases",
+]
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architect.html b/docs/web/static/python_api/mephisto/abstractions/architect.html new file mode 100644 index 000000000..8b16e5de6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architect.html @@ -0,0 +1,897 @@ + + + + + + + + + mephisto.abstractions.architect API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architect

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from abc import ABC, abstractmethod
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from typing import Dict, List, Any, ClassVar, Type, TYPE_CHECKING, Callable
+
+if TYPE_CHECKING:
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+@dataclass
+class ArchitectArgs:
+    """Base class for arguments to configure architects"""
+
+    _architect_type: str = MISSING
+    server_type: str = field(
+        default="node", metadata={"Help": "Type of server to run, `node` or `flask`"}
+    )
+    server_source_path: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to a prepared server directory containing everything "
+                "needed to run a server of the given type. Overrides server type. "
+            )
+        },
+    )
+
+
+class Architect(ABC):
+    """
+    Provides methods for setting up a server somewhere and deploying tasks
+    onto that server.
+    """
+
+    ArgsClass: ClassVar[Type[ArchitectArgs]] = ArchitectArgs
+    ARCHITECT_TYPE: str
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Initialize this architect with whatever options are provided given
+        ArgsClass. Parse whatever additional options may be required
+        for the specific task_run.
+
+        Also set up any required database/memory into the MephistoDB so that
+        this data can be stored long-term.
+        """
+        raise NotImplementedError()
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        return
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        raise NotImplementedError()
+
+    def download_file(self, filename: str, save_dir: str) -> None:
+        """
+        Save the file that is noted as stored on the server to
+        the desired save location.
+        """
+        raise NotImplementedError()
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        raise NotImplementedError()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        raise NotImplementedError()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        raise NotImplementedError()
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Surveyor, as stored
+        in the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +
+
+
+ #   + + + class + ArchitectArgs: +
+ +
+ View Source +
class ArchitectArgs:
+    """Base class for arguments to configure architects"""
+
+    _architect_type: str = MISSING
+    server_type: str = field(
+        default="node", metadata={"Help": "Type of server to run, `node` or `flask`"}
+    )
+    server_source_path: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to a prepared server directory containing everything "
+                "needed to run a server of the given type. Overrides server type. "
+            )
+        },
+    )
+
+ +
+ +

Base class for arguments to configure architects

+
+ + +
+
#   + + + ArchitectArgs( + _architect_type: str = '???', + server_type: str = 'node', + server_source_path: str = '???' +) +
+ + + + +
+
+
#   + + server_type: str = 'node' +
+ + + + +
+
+
#   + + server_source_path: str = '???' +
+ + + + +
+
+
+
+ #   + + + class + Architect(abc.ABC): +
+ +
+ View Source +
class Architect(ABC):
+    """
+    Provides methods for setting up a server somewhere and deploying tasks
+    onto that server.
+    """
+
+    ArgsClass: ClassVar[Type[ArchitectArgs]] = ArchitectArgs
+    ARCHITECT_TYPE: str
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Initialize this architect with whatever options are provided given
+        ArgsClass. Parse whatever additional options may be required
+        for the specific task_run.
+
+        Also set up any required database/memory into the MephistoDB so that
+        this data can be stored long-term.
+        """
+        raise NotImplementedError()
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        return
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        raise NotImplementedError()
+
+    def download_file(self, filename: str, save_dir: str) -> None:
+        """
+        Save the file that is noted as stored on the server to
+        the desired save location.
+        """
+        raise NotImplementedError()
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        raise NotImplementedError()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        raise NotImplementedError()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        raise NotImplementedError()
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Surveyor, as stored
+        in the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Provides methods for setting up a server somewhere and deploying tasks +onto that server.

+
+ + +
+
#   + + + Architect( + db: mephisto.abstractions.database.MephistoDB, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + task_run: mephisto.data_model.task_run.TaskRun, + build_dir_root: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Initialize this architect with whatever options are provided given
+        ArgsClass. Parse whatever additional options may be required
+        for the specific task_run.
+
+        Also set up any required database/memory into the MephistoDB so that
+        this data can be stored long-term.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Initialize this architect with whatever options are provided given +ArgsClass. Parse whatever additional options may be required +for the specific task_run.

+ +

Also set up any required database/memory into the MephistoDB so that +this data can be stored long-term.

+
+ + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        return
+
+ +
+ +

Assert that the provided arguments are valid. Should +fail if a task launched with these arguments would +not work.

+ +

This should include throwing an exception if the architect +needs login details or something similar given the +arguments passed in.

+
+ + +
+
+
#   + + + def + get_channels( + self, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType] +) -> list[mephisto.abstractions._subcomponents.channel.Channel]: +
+ +
+ View Source +
    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        raise NotImplementedError()
+
+ +
+ +

Return a list of all relevant channels that the ClientIOHandler +will need to register to in order to function

+
+ + +
+
+
#   + + + def + download_file(self, filename: str, save_dir: str) -> None: +
+ +
+ View Source +
    def download_file(self, filename: str, save_dir: str) -> None:
+        """
+        Save the file that is noted as stored on the server to
+        the desired save location.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Save the file that is noted as stored on the server to +the desired save location.

+
+ + +
+
+
#   + + + def + prepare(self) -> str: +
+ +
+ View Source +
    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        raise NotImplementedError()
+
+ +
+ +

Produce the server files that will be deployed to the server

+
+ + +
+
+
#   + + + def + deploy(self) -> str: +
+ +
+ View Source +
    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        raise NotImplementedError()
+
+ +
+ +

Launch the server, and push the task files to the server. Return +the server URL

+
+ + +
+
+
#   + + + def + cleanup(self) -> None: +
+ +
+ View Source +
    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Remove any files that were used for the deployment process that +no longer need to be kept track of now that the task has +been launched.

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Surveyor, as stored
+        in the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Shut down the server launched by this Surveyor, as stored +in the db.

+
+ + +
+
+
+
+ #   + + + class + Architect.ArgsClass: +
+ +
+ View Source +
class ArchitectArgs:
+    """Base class for arguments to configure architects"""
+
+    _architect_type: str = MISSING
+    server_type: str = field(
+        default="node", metadata={"Help": "Type of server to run, `node` or `flask`"}
+    )
+    server_source_path: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to a prepared server directory containing everything "
+                "needed to run a server of the given type. Overrides server type. "
+            )
+        },
+    )
+
+ +
+ +

Base class for arguments to configure architects

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects.html b/docs/web/static/python_api/mephisto/abstractions/architects.html new file mode 100644 index 000000000..5a4ef03fc --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects.html @@ -0,0 +1,337 @@ + + + + + + + + + mephisto.abstractions.architects API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects

+ +

architects

+ +

This folder contains all of the current official Architect implementations.

+ +

Architect's contain the logic surrounding deploying a server that workers will be able to access. In many cases Mephisto is being run on compute clusters that aren't directly addressable, or in different configurations between collaborators. Mephisto should be able to run a task from start to finish regardless of the server configuration a user would like to use, and Architect's provide this capability.

+ +

Architect

+ +

The Architect class is responsible for providing Mephisto with lifecycle functions for preparing, deploying, and shutting down a given server. It's also responsible with providing access to the user via a Channel, which defines an interface of callbacks for incoming messages and a function for outgoing messages. It should define the following things in order to operate properly:

+ +
    +
  • ArgsClass: A dataclass that implements ArchitectArgs, specifying all of the configuration arguments that the Architect uses in order to properly initialize.
  • +
  • get_channels: A method that will return a list of initialized Channel's that the ClientIOHandler will need to communicate with to manage running a task. Returns a list to handle cases where an Architect is communicating with multiple servers in a distributed setup.
  • +
  • prepare: Prepare any files that will be used in the deploy process. Should return the location of the prepared server files.
  • +
  • deploy: Launch the server (if necessary) and deploy the prepared task files such that the server will be able to serve them. Return the server URL for this task, such that Mephisto can point workers to it.
  • +
  • cleanup: Clean up any files that were used in the deploy process that aren't necessarily useful for later
  • +
  • shutdown: Shut down the server (if necessary) or otherwise take the specific task url expected to point to this Mephisto task run offline.
  • +
  • download_file: Save the file that is stored on the server with a given filename to the local save directory provided. Only required by Architect's that aren't able to pass a file through the Channel directly.
  • +
+ +

Lifecycle

+ +

During initialization, Mephisto calls assert_task_args and expects the ArchitectClass to be able to pass through any arguments specified by the ArgsClass, raising an exception if there are any configuration problems. After this point, Mephisto will initialize the Architect with the validated config.

+ +

Initially Mephisto will call prepare to give the Architect a chance to collect any relevant files required to run the server. It will give the Blueprint a chance to add additional files to this folder before the deploy.

+ +

Next, Mephisto will call deploy and then get_channels. This should ensure that there is an external server, and that Mephisto has a way to communicate with it through a Channel. Only after this is met, it will publish tasks to the crowd provider.

+ +

Once the task is done, or if it is cancelled or an error occurs, Mephisto will call shutdown, which is the signal for the Architect to clean up both local resources and remote resources related to this task.

+ +

Implementations

+ +

LocalArchitect

+ +

The LocalArchitect implementation works by running a node server on the local machine at the given port in a background process. It communicates over websockets with the WebsocketChannel, and requires that there's a directory where node is actively running in. The particular node server is the baseline router implementation available in the router/node folder.

+ +

HerokuArchitect

+ +

The HerokuArchitect implementation works by getting access to the heroku cli, preparing a directory of what to deploy on that server, and then pushing it along. It communicates over the WebsocketChannel. This also relies on the node server implementation available in the router/node folder.

+ +

You can specify Heroku configuration variables in hydra using your config file:

+ +
#@package _global_
+mephisto:
+  architect:
+    heroku_config_args:
+      ONE_ARGUMENT: something
+      ANOTHER_ARGUMENT: something else
+
+ +

MockArchitect

+ +

The MockArchitect is an Architect used primarily for testing. To test Mephisto lifecycle, you can choose should_run_server=False, which just leads to the lifecycle functions marking if they've been called. Setting should_run_server=True can be used to automatically test certain flows, as it launches a Tornado server for which every packet and action sent through it can be scripted.

+ +

Discussions

+ +

Currently the abstraction around prepare and deploy should be a little more rigid, defining the kinds of files that tasks should be able to deploy, where to expect to find them, etc. At the moment, this API is somewhat unclear, and while this is okay with the current set of Architect's, future ones may not be as clear on this capability.

+ +

It's unclear if cleanup should be called immediately when the server is deployed (freeing space) or only after a task has been fully reviewed and archived following the review flow. It's possible that the deciding factor should be based on if the Blueprint is even registered to use the review flow at all.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/channels.html b/docs/web/static/python_api/mephisto/abstractions/architects/channels.html new file mode 100644 index 000000000..10130c7c6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/channels.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.abstractions.architects.channels API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.channels

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/channels/websocket_channel.html b/docs/web/static/python_api/mephisto/abstractions/architects/channels/websocket_channel.html new file mode 100644 index 000000000..870ffb6d0 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/channels/websocket_channel.html @@ -0,0 +1,1016 @@ + + + + + + + + + mephisto.abstractions.architects.channels.websocket_channel API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.channels.websocket_channel

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Callable, Optional, TYPE_CHECKING
+from mephisto.data_model.packet import Packet
+from mephisto.operations.datatypes import LoopWrapper
+from mephisto.abstractions._subcomponents.channel import Channel, STATUS_CHECK_TIME
+
+import errno
+import websockets
+import threading
+import json
+import time
+import asyncio
+
+if TYPE_CHECKING:
+    from websockets.client import WebSocketClientProtocol
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+class WebsocketChannel(Channel):
+    """
+    Channel for communicating with a server via websockets.
+    """
+
+    def __init__(
+        self,
+        channel_id: str,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, Packet], None],
+        socket_url: str,
+    ):
+        """
+        Create a channel by the given name, and initialize any resources that
+        will later be required during the `open` call.
+
+        Requires a socket_url to connect with.
+        """
+        super().__init__(
+            channel_id=channel_id,
+            on_channel_open=on_channel_open,
+            on_catastrophic_disconnect=on_catastrophic_disconnect,
+            on_message=on_message,
+        )
+        self.socket_url = socket_url
+        self.socket: Optional["WebSocketClientProtocol"] = None
+        self.thread: Optional[threading.Thread] = None
+        self._is_alive = False
+        self._is_closed = False
+        self._socket_task: Optional[asyncio.Task] = None
+
+    def is_closed(self):
+        """
+        Return whether or not this connection has been explicitly closed
+        by the ClientIOHandler or another source.
+        """
+        return self._is_closed
+
+    def close(self):
+        """
+        Close this channel, and ensure that all threads and surrounding
+        resources are cleaned up
+        """
+        self._is_closed = True
+
+        target_loop = self.loop_wrap.loop
+        target_loop.call_soon_threadsafe(target_loop.stop)
+
+        self._is_alive = False
+        if self.thread is not None:
+            self.thread.join()
+
+    def is_alive(self):
+        """Return if this channel is actively able to send/recieve messages."""
+        return self._is_alive
+
+    def open(self):
+        """Set up a socket handling thread."""
+
+        def on_socket_open():
+            self._is_alive = True
+            self.on_channel_open(self.channel_id)
+            logger.info(f"channel open")
+
+        async def on_error(error):
+            if self._is_closed:
+                return  # Don't do anything if we're already closed
+            if hasattr(error, "errno"):
+                if error.errno == errno.ECONNREFUSED:
+                    # TODO(CLEAN) replace with channel exception
+                    raise Exception(
+                        f"Socket {self.socket_url} refused connection, cancelling"
+                    )
+            else:
+                logger.error(f"Socket logged error: {error}")
+
+                import traceback
+
+                traceback.print_exc()
+                try:
+                    # Close the socket to attempt to reconnect
+                    await self.socket.close()
+                except Exception:
+                    # TODO(CLEAN) only catch socket closed connection
+                    # Already closed
+                    pass
+
+        def on_message(msg_json):
+            """Incoming message handler defers to the internal handler"""
+            try:
+                packet_dict = json.loads(msg_json)
+                packet = Packet.from_dict(packet_dict)
+                self.on_message(self.channel_id, packet)
+            except Exception as e:
+                # TODO(CLEAN) properly handle only failed from_dict calls
+                logger.exception(repr(e), exc_info=True)
+                raise
+
+        async def run_socket():
+            loop = asyncio.get_running_loop()
+
+            # Outer loop allows reconnects
+            while not self._is_closed:
+                try:
+                    async with websockets.connect(
+                        self.socket_url, open_timeout=30
+                    ) as websocket:
+                        # Inner loop recieves messages until closed
+                        self.socket = websocket
+                        on_socket_open()
+                        try:
+                            while not self._is_closed:
+                                message = await websocket.recv()
+                                on_message(message)
+                        except websockets.exceptions.ConnectionClosedOK:
+                            pass
+                        except websockets.exceptions.ConnectionClosedError as e:
+                            if isinstance(e.__cause__, asyncio.CancelledError):
+                                pass
+                            else:
+                                await on_error(e)
+                        except Exception as e:
+                            logger.exception(
+                                f"Socket error {repr(e)}, attempting restart",
+                                exc_info=True,
+                            )
+                        await asyncio.sleep(0.2)
+                except asyncio.TimeoutError:
+                    # Issue with opening this channel, should shut down to prevent inaccessible tasks
+                    self.on_catastrophic_disconnect(self.channel_id)
+                    return
+                except OSError as e:
+                    logger.info(
+                        f"Unhandled OSError exception in socket {e}, attempting restart"
+                    )
+                    await asyncio.sleep(0.2)
+                except Exception as e:
+                    logger.exception(f"Unhandled exception in socket {e}, {repr(e)}")
+                    if self._is_closed:
+                        return  # Don't do anything if we're already closed
+                    raise e
+
+        def async_socket_wrap():
+            event_loop = asyncio.new_event_loop()
+            self.loop_wrap = LoopWrapper(event_loop)
+            asyncio.set_event_loop(event_loop)
+            self._socket_task = event_loop.create_task(
+                run_socket(),
+            )
+            event_loop.run_forever()
+
+            async def close_websocket():
+                if self.socket is not None:
+                    await self.socket.close()
+                if self._socket_task is not None:
+                    await self._socket_task
+
+            event_loop.run_until_complete(close_websocket())
+
+        # Start listening thread
+        self.thread = threading.Thread(
+            target=async_socket_wrap, name=f"socket-thread-{self.socket_url}"
+        )
+        self.thread.start()
+
+    async def _async_send_all(self):
+        """
+        Underlying send wrapper that calls on the current websocket to send
+        """
+        if self.outgoing_queue.empty():
+            return
+        # TODO(#651) pop all messages and batch, rather than just one
+        packet = self.outgoing_queue.get()
+        send_str = json.dumps(packet.to_sendable_dict())
+        try:
+            await self.socket.send(send_str)
+        except websockets.exceptions.ConnectionClosedOK:
+            pass
+        except websockets.exceptions.ConnectionClosedError as e:
+            if not isinstance(e.__cause__, asyncio.CancelledError):
+                logger.exception(f"Caught error in _async_send {e}")
+
+    def enqueue_send(self, packet: "Packet") -> bool:
+        """
+        Send the packet given to the intended recipient.
+        Return True on success and False on failure.
+        """
+        if self.socket is None:
+            return False
+        if self.socket.closed:
+            return False
+
+        self.outgoing_queue.put(packet)
+
+        loop_wrap = self.loop_wrap
+        if loop_wrap is None:
+            return False
+
+        loop_wrap.execute_coro(self._async_send_all())
+        return True
+
+ +
+ +
+
+
+ #   + + + class + WebsocketChannel(mephisto.abstractions._subcomponents.channel.Channel): +
+ +
+ View Source +
class WebsocketChannel(Channel):
+    """
+    Channel for communicating with a server via websockets.
+    """
+
+    def __init__(
+        self,
+        channel_id: str,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, Packet], None],
+        socket_url: str,
+    ):
+        """
+        Create a channel by the given name, and initialize any resources that
+        will later be required during the `open` call.
+
+        Requires a socket_url to connect with.
+        """
+        super().__init__(
+            channel_id=channel_id,
+            on_channel_open=on_channel_open,
+            on_catastrophic_disconnect=on_catastrophic_disconnect,
+            on_message=on_message,
+        )
+        self.socket_url = socket_url
+        self.socket: Optional["WebSocketClientProtocol"] = None
+        self.thread: Optional[threading.Thread] = None
+        self._is_alive = False
+        self._is_closed = False
+        self._socket_task: Optional[asyncio.Task] = None
+
+    def is_closed(self):
+        """
+        Return whether or not this connection has been explicitly closed
+        by the ClientIOHandler or another source.
+        """
+        return self._is_closed
+
+    def close(self):
+        """
+        Close this channel, and ensure that all threads and surrounding
+        resources are cleaned up
+        """
+        self._is_closed = True
+
+        target_loop = self.loop_wrap.loop
+        target_loop.call_soon_threadsafe(target_loop.stop)
+
+        self._is_alive = False
+        if self.thread is not None:
+            self.thread.join()
+
+    def is_alive(self):
+        """Return if this channel is actively able to send/recieve messages."""
+        return self._is_alive
+
+    def open(self):
+        """Set up a socket handling thread."""
+
+        def on_socket_open():
+            self._is_alive = True
+            self.on_channel_open(self.channel_id)
+            logger.info(f"channel open")
+
+        async def on_error(error):
+            if self._is_closed:
+                return  # Don't do anything if we're already closed
+            if hasattr(error, "errno"):
+                if error.errno == errno.ECONNREFUSED:
+                    # TODO(CLEAN) replace with channel exception
+                    raise Exception(
+                        f"Socket {self.socket_url} refused connection, cancelling"
+                    )
+            else:
+                logger.error(f"Socket logged error: {error}")
+
+                import traceback
+
+                traceback.print_exc()
+                try:
+                    # Close the socket to attempt to reconnect
+                    await self.socket.close()
+                except Exception:
+                    # TODO(CLEAN) only catch socket closed connection
+                    # Already closed
+                    pass
+
+        def on_message(msg_json):
+            """Incoming message handler defers to the internal handler"""
+            try:
+                packet_dict = json.loads(msg_json)
+                packet = Packet.from_dict(packet_dict)
+                self.on_message(self.channel_id, packet)
+            except Exception as e:
+                # TODO(CLEAN) properly handle only failed from_dict calls
+                logger.exception(repr(e), exc_info=True)
+                raise
+
+        async def run_socket():
+            loop = asyncio.get_running_loop()
+
+            # Outer loop allows reconnects
+            while not self._is_closed:
+                try:
+                    async with websockets.connect(
+                        self.socket_url, open_timeout=30
+                    ) as websocket:
+                        # Inner loop recieves messages until closed
+                        self.socket = websocket
+                        on_socket_open()
+                        try:
+                            while not self._is_closed:
+                                message = await websocket.recv()
+                                on_message(message)
+                        except websockets.exceptions.ConnectionClosedOK:
+                            pass
+                        except websockets.exceptions.ConnectionClosedError as e:
+                            if isinstance(e.__cause__, asyncio.CancelledError):
+                                pass
+                            else:
+                                await on_error(e)
+                        except Exception as e:
+                            logger.exception(
+                                f"Socket error {repr(e)}, attempting restart",
+                                exc_info=True,
+                            )
+                        await asyncio.sleep(0.2)
+                except asyncio.TimeoutError:
+                    # Issue with opening this channel, should shut down to prevent inaccessible tasks
+                    self.on_catastrophic_disconnect(self.channel_id)
+                    return
+                except OSError as e:
+                    logger.info(
+                        f"Unhandled OSError exception in socket {e}, attempting restart"
+                    )
+                    await asyncio.sleep(0.2)
+                except Exception as e:
+                    logger.exception(f"Unhandled exception in socket {e}, {repr(e)}")
+                    if self._is_closed:
+                        return  # Don't do anything if we're already closed
+                    raise e
+
+        def async_socket_wrap():
+            event_loop = asyncio.new_event_loop()
+            self.loop_wrap = LoopWrapper(event_loop)
+            asyncio.set_event_loop(event_loop)
+            self._socket_task = event_loop.create_task(
+                run_socket(),
+            )
+            event_loop.run_forever()
+
+            async def close_websocket():
+                if self.socket is not None:
+                    await self.socket.close()
+                if self._socket_task is not None:
+                    await self._socket_task
+
+            event_loop.run_until_complete(close_websocket())
+
+        # Start listening thread
+        self.thread = threading.Thread(
+            target=async_socket_wrap, name=f"socket-thread-{self.socket_url}"
+        )
+        self.thread.start()
+
+    async def _async_send_all(self):
+        """
+        Underlying send wrapper that calls on the current websocket to send
+        """
+        if self.outgoing_queue.empty():
+            return
+        # TODO(#651) pop all messages and batch, rather than just one
+        packet = self.outgoing_queue.get()
+        send_str = json.dumps(packet.to_sendable_dict())
+        try:
+            await self.socket.send(send_str)
+        except websockets.exceptions.ConnectionClosedOK:
+            pass
+        except websockets.exceptions.ConnectionClosedError as e:
+            if not isinstance(e.__cause__, asyncio.CancelledError):
+                logger.exception(f"Caught error in _async_send {e}")
+
+    def enqueue_send(self, packet: "Packet") -> bool:
+        """
+        Send the packet given to the intended recipient.
+        Return True on success and False on failure.
+        """
+        if self.socket is None:
+            return False
+        if self.socket.closed:
+            return False
+
+        self.outgoing_queue.put(packet)
+
+        loop_wrap = self.loop_wrap
+        if loop_wrap is None:
+            return False
+
+        loop_wrap.execute_coro(self._async_send_all())
+        return True
+
+ +
+ +

Channel for communicating with a server via websockets.

+
+ + +
+
#   + + + WebsocketChannel( + channel_id: str, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: Callable[[str, mephisto.data_model.packet.Packet], NoneType], + socket_url: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        channel_id: str,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, Packet], None],
+        socket_url: str,
+    ):
+        """
+        Create a channel by the given name, and initialize any resources that
+        will later be required during the `open` call.
+
+        Requires a socket_url to connect with.
+        """
+        super().__init__(
+            channel_id=channel_id,
+            on_channel_open=on_channel_open,
+            on_catastrophic_disconnect=on_catastrophic_disconnect,
+            on_message=on_message,
+        )
+        self.socket_url = socket_url
+        self.socket: Optional["WebSocketClientProtocol"] = None
+        self.thread: Optional[threading.Thread] = None
+        self._is_alive = False
+        self._is_closed = False
+        self._socket_task: Optional[asyncio.Task] = None
+
+ +
+ +

Create a channel by the given name, and initialize any resources that +will later be required during the open call.

+ +

Requires a socket_url to connect with.

+
+ + +
+
+
#   + + + def + is_closed(self): +
+ +
+ View Source +
    def is_closed(self):
+        """
+        Return whether or not this connection has been explicitly closed
+        by the ClientIOHandler or another source.
+        """
+        return self._is_closed
+
+ +
+ +

Return whether or not this connection has been explicitly closed +by the ClientIOHandler or another source.

+
+ + +
+
+
#   + + + def + close(self): +
+ +
+ View Source +
    def close(self):
+        """
+        Close this channel, and ensure that all threads and surrounding
+        resources are cleaned up
+        """
+        self._is_closed = True
+
+        target_loop = self.loop_wrap.loop
+        target_loop.call_soon_threadsafe(target_loop.stop)
+
+        self._is_alive = False
+        if self.thread is not None:
+            self.thread.join()
+
+ +
+ +

Close this channel, and ensure that all threads and surrounding +resources are cleaned up

+
+ + +
+
+
#   + + + def + is_alive(self): +
+ +
+ View Source +
    def is_alive(self):
+        """Return if this channel is actively able to send/recieve messages."""
+        return self._is_alive
+
+ +
+ +

Return if this channel is actively able to send/recieve messages.

+
+ + +
+
+
#   + + + def + open(self): +
+ +
+ View Source +
    def open(self):
+        """Set up a socket handling thread."""
+
+        def on_socket_open():
+            self._is_alive = True
+            self.on_channel_open(self.channel_id)
+            logger.info(f"channel open")
+
+        async def on_error(error):
+            if self._is_closed:
+                return  # Don't do anything if we're already closed
+            if hasattr(error, "errno"):
+                if error.errno == errno.ECONNREFUSED:
+                    # TODO(CLEAN) replace with channel exception
+                    raise Exception(
+                        f"Socket {self.socket_url} refused connection, cancelling"
+                    )
+            else:
+                logger.error(f"Socket logged error: {error}")
+
+                import traceback
+
+                traceback.print_exc()
+                try:
+                    # Close the socket to attempt to reconnect
+                    await self.socket.close()
+                except Exception:
+                    # TODO(CLEAN) only catch socket closed connection
+                    # Already closed
+                    pass
+
+        def on_message(msg_json):
+            """Incoming message handler defers to the internal handler"""
+            try:
+                packet_dict = json.loads(msg_json)
+                packet = Packet.from_dict(packet_dict)
+                self.on_message(self.channel_id, packet)
+            except Exception as e:
+                # TODO(CLEAN) properly handle only failed from_dict calls
+                logger.exception(repr(e), exc_info=True)
+                raise
+
+        async def run_socket():
+            loop = asyncio.get_running_loop()
+
+            # Outer loop allows reconnects
+            while not self._is_closed:
+                try:
+                    async with websockets.connect(
+                        self.socket_url, open_timeout=30
+                    ) as websocket:
+                        # Inner loop recieves messages until closed
+                        self.socket = websocket
+                        on_socket_open()
+                        try:
+                            while not self._is_closed:
+                                message = await websocket.recv()
+                                on_message(message)
+                        except websockets.exceptions.ConnectionClosedOK:
+                            pass
+                        except websockets.exceptions.ConnectionClosedError as e:
+                            if isinstance(e.__cause__, asyncio.CancelledError):
+                                pass
+                            else:
+                                await on_error(e)
+                        except Exception as e:
+                            logger.exception(
+                                f"Socket error {repr(e)}, attempting restart",
+                                exc_info=True,
+                            )
+                        await asyncio.sleep(0.2)
+                except asyncio.TimeoutError:
+                    # Issue with opening this channel, should shut down to prevent inaccessible tasks
+                    self.on_catastrophic_disconnect(self.channel_id)
+                    return
+                except OSError as e:
+                    logger.info(
+                        f"Unhandled OSError exception in socket {e}, attempting restart"
+                    )
+                    await asyncio.sleep(0.2)
+                except Exception as e:
+                    logger.exception(f"Unhandled exception in socket {e}, {repr(e)}")
+                    if self._is_closed:
+                        return  # Don't do anything if we're already closed
+                    raise e
+
+        def async_socket_wrap():
+            event_loop = asyncio.new_event_loop()
+            self.loop_wrap = LoopWrapper(event_loop)
+            asyncio.set_event_loop(event_loop)
+            self._socket_task = event_loop.create_task(
+                run_socket(),
+            )
+            event_loop.run_forever()
+
+            async def close_websocket():
+                if self.socket is not None:
+                    await self.socket.close()
+                if self._socket_task is not None:
+                    await self._socket_task
+
+            event_loop.run_until_complete(close_websocket())
+
+        # Start listening thread
+        self.thread = threading.Thread(
+            target=async_socket_wrap, name=f"socket-thread-{self.socket_url}"
+        )
+        self.thread.start()
+
+ +
+ +

Set up a socket handling thread.

+
+ + +
+
+
#   + + + def + enqueue_send(self, packet: mephisto.data_model.packet.Packet) -> bool: +
+ +
+ View Source +
    def enqueue_send(self, packet: "Packet") -> bool:
+        """
+        Send the packet given to the intended recipient.
+        Return True on success and False on failure.
+        """
+        if self.socket is None:
+            return False
+        if self.socket.closed:
+            return False
+
+        self.outgoing_queue.put(packet)
+
+        loop_wrap = self.loop_wrap
+        if loop_wrap is None:
+            return False
+
+        loop_wrap.execute_coro(self._async_send_all())
+        return True
+
+ +
+ +

Send the packet given to the intended recipient. +Return True on success and False on failure.

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2.html new file mode 100644 index 000000000..06a174acf --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2.html @@ -0,0 +1,254 @@ + + + + + + + + + mephisto.abstractions.architects.ec2 API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_resources.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_resources.html new file mode 100644 index 000000000..0027af550 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_resources.html @@ -0,0 +1,300 @@ + + + + + + + + + mephisto.abstractions.architects.ec2.cleanup_ec2_resources API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2.cleanup_ec2_resources

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import mephisto.abstractions.architects.ec2.ec2_helpers as ec2_helpers
+import boto3  # type: ignore
+import os
+import json
+
+from typing import Dict, Any
+
+
+# TODO(CLEAN) Hydrize
+def main():
+    confirm = input(
+        "This is going to completely delete all resources for your EC2 architect, including the VPC, routes, and fallback server. Are you sure you want to do this?[yes/no]\n>> "
+    )
+    if confirm != "yes":
+        return
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+    ec2_helpers.cleanup_fallback_server(iam_role_name)
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    confirm = input(
+        "This is going to completely delete all resources for your EC2 architect, including the VPC, routes, and fallback server. Are you sure you want to do this?[yes/no]\n>> "
+    )
+    if confirm != "yes":
+        return
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+    ec2_helpers.cleanup_fallback_server(iam_role_name)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_server_by_name.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_server_by_name.html new file mode 100644 index 000000000..b304212af --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/cleanup_ec2_server_by_name.html @@ -0,0 +1,337 @@ + + + + + + + + + mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import mephisto.abstractions.architects.ec2.ec2_helpers as ec2_helpers
+import boto3  # type: ignore
+import os
+
+from mephisto.abstractions.architects.ec2.ec2_helpers import (
+    DEFAULT_FALLBACK_FILE,
+    DEFAULT_SERVER_DETAIL_LOCATION,
+)
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+# TODO Hydrize
+def main():
+    all_server_names = [
+        os.path.splitext(s)[0]
+        for s in os.listdir(DEFAULT_SERVER_DETAIL_LOCATION)
+        if s not in ["README.md", os.path.basename(DEFAULT_FALLBACK_FILE)]
+    ]
+
+    if len(all_server_names) == 0:
+        logger.warning("No server to clean up!")
+        return
+
+    server_name = input(
+        f"Please enter server name you want to clean up (existing servers: {all_server_names})\n>> "
+    )
+    assert (
+        os.path.join(DEFAULT_SERVER_DETAIL_LOCATION, f"{server_name}.json")
+        != DEFAULT_FALLBACK_FILE
+    ), "This is going to completely delete the fallback server for your EC2 architect."
+    assert server_name in all_server_names, f"{server_name} does not exist"
+
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+
+    session = boto3.Session(profile_name=iam_role_name, region_name="us-east-2")
+    ec2_helpers.remove_instance_and_cleanup(session, server_name)
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    all_server_names = [
+        os.path.splitext(s)[0]
+        for s in os.listdir(DEFAULT_SERVER_DETAIL_LOCATION)
+        if s not in ["README.md", os.path.basename(DEFAULT_FALLBACK_FILE)]
+    ]
+
+    if len(all_server_names) == 0:
+        logger.warning("No server to clean up!")
+        return
+
+    server_name = input(
+        f"Please enter server name you want to clean up (existing servers: {all_server_names})\n>> "
+    )
+    assert (
+        os.path.join(DEFAULT_SERVER_DETAIL_LOCATION, f"{server_name}.json")
+        != DEFAULT_FALLBACK_FILE
+    ), "This is going to completely delete the fallback server for your EC2 architect."
+    assert server_name in all_server_names, f"{server_name} does not exist"
+
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+
+    session = boto3.Session(profile_name=iam_role_name, region_name="us-east-2")
+    ec2_helpers.remove_instance_and_cleanup(session, server_name)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_architect.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_architect.html new file mode 100644 index 000000000..3bc1cb728 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_architect.html @@ -0,0 +1,1551 @@ + + + + + + + + + mephisto.abstractions.architects.ec2.ec2_architect API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2.ec2_architect

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import sh  # type: ignore
+import shutil
+import time
+import requests
+import re
+import json
+import boto3  # type: ignore
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig  # type: ignore
+from mephisto.abstractions.architect import Architect, ArchitectArgs
+from mephisto.abstractions.architects.router.build_router import build_router
+from mephisto.abstractions.architects.channels.websocket_channel import WebsocketChannel
+from mephisto.operations.registry import register_mephisto_abstraction
+from typing import List, Dict, Optional, TYPE_CHECKING, Callable
+
+import mephisto.abstractions.architects.ec2.ec2_helpers as ec2_helpers
+from mephisto.abstractions.architects.ec2.ec2_helpers import (
+    DEFAULT_FALLBACK_FILE,
+    DEFAULT_SERVER_DETAIL_LOCATION,
+    SCRIPTS_DIRECTORY,
+)
+
+if TYPE_CHECKING:
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.abstractions.blueprint import SharedTaskState
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+ARCHITECT_TYPE = "ec2"
+FINAL_SERVER_BUILD_DIRECTORY = "routing_server"
+DEPLOY_WAIT_TIME = 3
+
+
+def url_safe_string(in_string: str) -> str:
+    """
+    Produces a domain string that is safe for use
+    in ec2 resources
+    """
+    hyphenated = in_string.replace("_", "-")
+    return re.sub("[^0-9a-zA-Z-]+", "", hyphenated)
+
+
+@dataclass
+class EC2ArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    instance_type: str = field(
+        default="t2.micro", metadata={"help": "Instance type to run router"}
+    )
+    subdomain: str = field(
+        default="${mephisto.task.task_name}",
+        metadata={"help": "Subdomain name for routing"},
+    )
+    profile_name: str = field(
+        default=MISSING, metadata={"help": "Profile name for deploying an ec2 instance"}
+    )
+
+
+@register_mephisto_abstraction()
+class EC2Architect(Architect):
+    """
+    Sets up a server on heroku and deploys the task on that server
+    """
+
+    ArgsClass = EC2ArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Create an architect with all required parameters for launch loaded
+        """
+        self.args = args
+        self.task_run = task_run
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            self.fallback_details = json.load(fallback_detail_file)
+
+        self.subdomain = url_safe_string(args.architect.subdomain)
+        self.root_domain = self.fallback_details["domain"]
+        self.router_name = f"{self.subdomain}-routing-server"
+        self.full_domain = f"{self.subdomain}.{self.root_domain}"
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.instance_type = args.architect.instance_type
+        self.profile_name = args.architect.profile_name
+        self.server_type: str = args.architect.server_type
+        self.build_dir = build_dir_root
+        self.server_detail_path = self._get_detail_path(self.subdomain)
+
+        self.session = boto3.Session(
+            profile_name=self.profile_name, region_name="us-east-2"
+        )
+
+        self.server_dir: Optional[str] = None
+        self.server_id: Optional[str] = None
+        self.target_group_arn: Optional[str] = None
+        self.router_rule_arn: Optional[str] = None
+        self.created = False
+
+    @classmethod
+    def _get_detail_path(cls, subdomain):
+        """Return the location where a detail file will be stored for the given domain"""
+        return os.path.join(DEFAULT_SERVER_DETAIL_LOCATION, f"{subdomain}.json")
+
+    def _get_socket_urls(self) -> List[str]:
+        """Returns the path to the heroku app socket"""
+        return [f"wss://{self.full_domain}/"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"ec2_channel_{self.subdomain}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Download the file from local storage
+        """
+        target_url = f"https://{self.full_domain}/download_file/{target_filename}"
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+    @classmethod
+    def check_domain_unused_locally(self, subdomain: str):
+        """
+        Checks to see if we have an active local record for the given subdomain
+        """
+        return not os.path.exists(self._get_detail_path(subdomain))
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the given profile is already ready, that a fallback exists
+        and that all the configuration is ready
+        """
+        profile_name = args.architect.profile_name
+        assert ec2_helpers.check_aws_credentials(
+            profile_name
+        ), "Given profile doesn't have registered credentials"
+        #   Producing a domain string that is safe for use
+        #   in ec2 resources
+        subdomain = url_safe_string(args.architect.subdomain)
+
+        assert cls.check_domain_unused_locally(
+            subdomain=subdomain
+        ), "Given subdomain does exist"
+
+        # VALID_INSTANCES = []
+        # assert args.architect.instance_type in VALID_INSTANCES
+
+        assert os.path.exists(
+            DEFAULT_FALLBACK_FILE
+        ), "Must have fallback launched to use EC2 architect"
+
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            fallback_details = json.load(fallback_detail_file)
+
+        REQUIRED_KEYS = [
+            "key_pair_name",
+            "security_group_id",
+            "vpc_details",
+            "listener_arn",
+        ]
+        for key in REQUIRED_KEYS:
+            assert key in fallback_details, f"Fallback file missing required key {key}"
+
+        session = boto3.Session(profile_name=profile_name, region_name="us-east-2")
+        assert ec2_helpers.rule_is_new(
+            session, subdomain, fallback_details["listener_arn"]
+        ), "Rule was not new, existing subdomain found registered to the listener. Check on AWS."
+
+    def __get_build_directory(self) -> str:
+        """
+        Return the string where the server should be built in.
+        """
+        return os.path.join(
+            self.build_dir,
+            FINAL_SERVER_BUILD_DIRECTORY,
+        )
+
+    def __compile_server(self) -> str:
+        """
+        Move the required task files to a specific directory to be deployed to
+        ec2 directly. Return the location that the packaged files are
+        now prepared in.
+        """
+        print("Building server files...")
+        server_build_root = self.__get_build_directory()
+        os.makedirs(server_build_root)
+        self.server_dir = server_dir = build_router(
+            server_build_root,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        setup_path = os.path.join(SCRIPTS_DIRECTORY, self.server_type)
+        setup_dest = os.path.join(server_build_root, "setup")
+        shutil.copytree(setup_path, setup_dest)
+        possible_node_modules = os.path.join(
+            server_build_root, "router", "node_modules"
+        )
+        if os.path.exists(possible_node_modules):
+            shutil.rmtree(possible_node_modules)
+        return server_dir
+
+    def __setup_ec2_server(self) -> str:
+        """
+        Deploy the server using the setup server directory, return the URL
+        """
+        server_dir = os.path.abspath(self.__get_build_directory())
+
+        print("EC2: Starting instance...")
+
+        # Launch server
+        server_id = ec2_helpers.create_instance(
+            self.session,
+            self.fallback_details["key_pair_name"],
+            self.fallback_details["security_group_id"],
+            self.fallback_details["vpc_details"]["subnet_1_id"],
+            self.router_name,
+            instance_type=self.instance_type,
+        )
+        self.server_id = server_id
+
+        self.created = True
+
+        print("EC2: Configuring routing table...")
+        # Configure router
+        (
+            self.target_group_arn,
+            self.router_rule_arn,
+        ) = ec2_helpers.register_instance_to_listener(
+            self.session,
+            server_id,
+            self.fallback_details["vpc_details"]["vpc_id"],
+            self.fallback_details["listener_arn"],
+            self.full_domain,
+        )
+
+        # Write out details
+        server_details = {
+            "balancer_rule_arn": self.router_rule_arn,
+            "instance_id": self.server_id,
+            "subdomain": self.subdomain,
+            "target_group_arn": self.target_group_arn,
+        }
+
+        with open(self.server_detail_path, "w+") as detail_file:
+            json.dump(server_details, detail_file)
+
+        print("EC2: Deploying server...")
+        # Push server files and execute launch
+        ec2_helpers.deploy_to_routing_server(
+            self.session,
+            server_id,
+            self.fallback_details["key_pair_name"],
+            server_dir,
+        )
+
+        return f"https://{self.full_domain}"
+
+    def __delete_ec2_server(self):
+        """
+        Remove the heroku server associated with this task run
+        """
+        server_id = self.server_id
+        assert server_id is not None, "Cannot shutdown a non-existent server"
+        print(f"Ec2: Deleting server: {self.server_id}")
+        if self.router_rule_arn is not None:
+            ec2_helpers.delete_rule(
+                self.session,
+                self.router_rule_arn,
+                self.target_group_arn,
+            )
+
+        ec2_helpers.delete_instance(
+            self.session,
+            server_id,
+        )
+        os.unlink(self.server_detail_path)
+
+    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        return os.path.exists(self.server_detail_path)
+
+    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_ec2_server()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        shutil.rmtree(server_dir)
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_ec2_server()
+
+ +
+ +
+
+
#   + + + def + url_safe_string(in_string: str) -> str: +
+ +
+ View Source +
def url_safe_string(in_string: str) -> str:
+    """
+    Produces a domain string that is safe for use
+    in ec2 resources
+    """
+    hyphenated = in_string.replace("_", "-")
+    return re.sub("[^0-9a-zA-Z-]+", "", hyphenated)
+
+ +
+ +

Produces a domain string that is safe for use +in ec2 resources

+
+ + +
+
+
+ #   + + + class + EC2ArchitectArgs(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class EC2ArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    instance_type: str = field(
+        default="t2.micro", metadata={"help": "Instance type to run router"}
+    )
+    subdomain: str = field(
+        default="${mephisto.task.task_name}",
+        metadata={"help": "Subdomain name for routing"},
+    )
+    profile_name: str = field(
+        default=MISSING, metadata={"help": "Profile name for deploying an ec2 instance"}
+    )
+
+ +
+ +

Additional arguments for configuring a heroku architect

+
+ + +
+
#   + + + EC2ArchitectArgs( + _architect_type: str = 'ec2', + server_type: str = 'node', + server_source_path: str = '???', + instance_type: str = 't2.micro', + subdomain: str = '${mephisto.task.task_name}', + profile_name: str = '???' +) +
+ + + + +
+
+
#   + + instance_type: str = 't2.micro' +
+ + + + +
+
+
#   + + subdomain: str = '${mephisto.task.task_name}' +
+ + + + +
+
+
#   + + profile_name: str = '???' +
+ + + + +
+ +
+
+
+ #   + + + class + EC2Architect(mephisto.abstractions.architect.Architect): +
+ +
+ View Source +
class EC2Architect(Architect):
+    """
+    Sets up a server on heroku and deploys the task on that server
+    """
+
+    ArgsClass = EC2ArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Create an architect with all required parameters for launch loaded
+        """
+        self.args = args
+        self.task_run = task_run
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            self.fallback_details = json.load(fallback_detail_file)
+
+        self.subdomain = url_safe_string(args.architect.subdomain)
+        self.root_domain = self.fallback_details["domain"]
+        self.router_name = f"{self.subdomain}-routing-server"
+        self.full_domain = f"{self.subdomain}.{self.root_domain}"
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.instance_type = args.architect.instance_type
+        self.profile_name = args.architect.profile_name
+        self.server_type: str = args.architect.server_type
+        self.build_dir = build_dir_root
+        self.server_detail_path = self._get_detail_path(self.subdomain)
+
+        self.session = boto3.Session(
+            profile_name=self.profile_name, region_name="us-east-2"
+        )
+
+        self.server_dir: Optional[str] = None
+        self.server_id: Optional[str] = None
+        self.target_group_arn: Optional[str] = None
+        self.router_rule_arn: Optional[str] = None
+        self.created = False
+
+    @classmethod
+    def _get_detail_path(cls, subdomain):
+        """Return the location where a detail file will be stored for the given domain"""
+        return os.path.join(DEFAULT_SERVER_DETAIL_LOCATION, f"{subdomain}.json")
+
+    def _get_socket_urls(self) -> List[str]:
+        """Returns the path to the heroku app socket"""
+        return [f"wss://{self.full_domain}/"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"ec2_channel_{self.subdomain}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Download the file from local storage
+        """
+        target_url = f"https://{self.full_domain}/download_file/{target_filename}"
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+    @classmethod
+    def check_domain_unused_locally(self, subdomain: str):
+        """
+        Checks to see if we have an active local record for the given subdomain
+        """
+        return not os.path.exists(self._get_detail_path(subdomain))
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the given profile is already ready, that a fallback exists
+        and that all the configuration is ready
+        """
+        profile_name = args.architect.profile_name
+        assert ec2_helpers.check_aws_credentials(
+            profile_name
+        ), "Given profile doesn't have registered credentials"
+        #   Producing a domain string that is safe for use
+        #   in ec2 resources
+        subdomain = url_safe_string(args.architect.subdomain)
+
+        assert cls.check_domain_unused_locally(
+            subdomain=subdomain
+        ), "Given subdomain does exist"
+
+        # VALID_INSTANCES = []
+        # assert args.architect.instance_type in VALID_INSTANCES
+
+        assert os.path.exists(
+            DEFAULT_FALLBACK_FILE
+        ), "Must have fallback launched to use EC2 architect"
+
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            fallback_details = json.load(fallback_detail_file)
+
+        REQUIRED_KEYS = [
+            "key_pair_name",
+            "security_group_id",
+            "vpc_details",
+            "listener_arn",
+        ]
+        for key in REQUIRED_KEYS:
+            assert key in fallback_details, f"Fallback file missing required key {key}"
+
+        session = boto3.Session(profile_name=profile_name, region_name="us-east-2")
+        assert ec2_helpers.rule_is_new(
+            session, subdomain, fallback_details["listener_arn"]
+        ), "Rule was not new, existing subdomain found registered to the listener. Check on AWS."
+
+    def __get_build_directory(self) -> str:
+        """
+        Return the string where the server should be built in.
+        """
+        return os.path.join(
+            self.build_dir,
+            FINAL_SERVER_BUILD_DIRECTORY,
+        )
+
+    def __compile_server(self) -> str:
+        """
+        Move the required task files to a specific directory to be deployed to
+        ec2 directly. Return the location that the packaged files are
+        now prepared in.
+        """
+        print("Building server files...")
+        server_build_root = self.__get_build_directory()
+        os.makedirs(server_build_root)
+        self.server_dir = server_dir = build_router(
+            server_build_root,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        setup_path = os.path.join(SCRIPTS_DIRECTORY, self.server_type)
+        setup_dest = os.path.join(server_build_root, "setup")
+        shutil.copytree(setup_path, setup_dest)
+        possible_node_modules = os.path.join(
+            server_build_root, "router", "node_modules"
+        )
+        if os.path.exists(possible_node_modules):
+            shutil.rmtree(possible_node_modules)
+        return server_dir
+
+    def __setup_ec2_server(self) -> str:
+        """
+        Deploy the server using the setup server directory, return the URL
+        """
+        server_dir = os.path.abspath(self.__get_build_directory())
+
+        print("EC2: Starting instance...")
+
+        # Launch server
+        server_id = ec2_helpers.create_instance(
+            self.session,
+            self.fallback_details["key_pair_name"],
+            self.fallback_details["security_group_id"],
+            self.fallback_details["vpc_details"]["subnet_1_id"],
+            self.router_name,
+            instance_type=self.instance_type,
+        )
+        self.server_id = server_id
+
+        self.created = True
+
+        print("EC2: Configuring routing table...")
+        # Configure router
+        (
+            self.target_group_arn,
+            self.router_rule_arn,
+        ) = ec2_helpers.register_instance_to_listener(
+            self.session,
+            server_id,
+            self.fallback_details["vpc_details"]["vpc_id"],
+            self.fallback_details["listener_arn"],
+            self.full_domain,
+        )
+
+        # Write out details
+        server_details = {
+            "balancer_rule_arn": self.router_rule_arn,
+            "instance_id": self.server_id,
+            "subdomain": self.subdomain,
+            "target_group_arn": self.target_group_arn,
+        }
+
+        with open(self.server_detail_path, "w+") as detail_file:
+            json.dump(server_details, detail_file)
+
+        print("EC2: Deploying server...")
+        # Push server files and execute launch
+        ec2_helpers.deploy_to_routing_server(
+            self.session,
+            server_id,
+            self.fallback_details["key_pair_name"],
+            server_dir,
+        )
+
+        return f"https://{self.full_domain}"
+
+    def __delete_ec2_server(self):
+        """
+        Remove the heroku server associated with this task run
+        """
+        server_id = self.server_id
+        assert server_id is not None, "Cannot shutdown a non-existent server"
+        print(f"Ec2: Deleting server: {self.server_id}")
+        if self.router_rule_arn is not None:
+            ec2_helpers.delete_rule(
+                self.session,
+                self.router_rule_arn,
+                self.target_group_arn,
+            )
+
+        ec2_helpers.delete_instance(
+            self.session,
+            server_id,
+        )
+        os.unlink(self.server_detail_path)
+
+    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        return os.path.exists(self.server_detail_path)
+
+    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_ec2_server()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        shutil.rmtree(server_dir)
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_ec2_server()
+
+ +
+ +

Sets up a server on heroku and deploys the task on that server

+
+ + +
+
#   + + + EC2Architect( + db: mephisto.abstractions.database.MephistoDB, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + task_run: mephisto.data_model.task_run.TaskRun, + build_dir_root: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Create an architect with all required parameters for launch loaded
+        """
+        self.args = args
+        self.task_run = task_run
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            self.fallback_details = json.load(fallback_detail_file)
+
+        self.subdomain = url_safe_string(args.architect.subdomain)
+        self.root_domain = self.fallback_details["domain"]
+        self.router_name = f"{self.subdomain}-routing-server"
+        self.full_domain = f"{self.subdomain}.{self.root_domain}"
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.instance_type = args.architect.instance_type
+        self.profile_name = args.architect.profile_name
+        self.server_type: str = args.architect.server_type
+        self.build_dir = build_dir_root
+        self.server_detail_path = self._get_detail_path(self.subdomain)
+
+        self.session = boto3.Session(
+            profile_name=self.profile_name, region_name="us-east-2"
+        )
+
+        self.server_dir: Optional[str] = None
+        self.server_id: Optional[str] = None
+        self.target_group_arn: Optional[str] = None
+        self.router_rule_arn: Optional[str] = None
+        self.created = False
+
+ +
+ +

Create an architect with all required parameters for launch loaded

+
+ + +
+
+
#   + + ARCHITECT_TYPE: str = 'ec2' +
+ + + + +
+
+
#   + + + def + get_channels( + self, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType] +) -> list[mephisto.abstractions._subcomponents.channel.Channel]: +
+ +
+ View Source +
    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"ec2_channel_{self.subdomain}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+ +
+ +

Return a list of all relevant channels that the ClientIOHandler +will need to register to in order to function

+
+ + +
+
+
#   + + + def + download_file(self, target_filename: str, save_dir: str) -> None: +
+ +
+ View Source +
    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Download the file from local storage
+        """
+        target_url = f"https://{self.full_domain}/download_file/{target_filename}"
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+ +
+ +

Download the file from local storage

+
+ + +
+
+
#   + +
@classmethod
+ + def + check_domain_unused_locally(self, subdomain: str): +
+ +
+ View Source +
    @classmethod
+    def check_domain_unused_locally(self, subdomain: str):
+        """
+        Checks to see if we have an active local record for the given subdomain
+        """
+        return not os.path.exists(self._get_detail_path(subdomain))
+
+ +
+ +

Checks to see if we have an active local record for the given subdomain

+
+ + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the given profile is already ready, that a fallback exists
+        and that all the configuration is ready
+        """
+        profile_name = args.architect.profile_name
+        assert ec2_helpers.check_aws_credentials(
+            profile_name
+        ), "Given profile doesn't have registered credentials"
+        #   Producing a domain string that is safe for use
+        #   in ec2 resources
+        subdomain = url_safe_string(args.architect.subdomain)
+
+        assert cls.check_domain_unused_locally(
+            subdomain=subdomain
+        ), "Given subdomain does exist"
+
+        # VALID_INSTANCES = []
+        # assert args.architect.instance_type in VALID_INSTANCES
+
+        assert os.path.exists(
+            DEFAULT_FALLBACK_FILE
+        ), "Must have fallback launched to use EC2 architect"
+
+        with open(DEFAULT_FALLBACK_FILE, "r") as fallback_detail_file:
+            fallback_details = json.load(fallback_detail_file)
+
+        REQUIRED_KEYS = [
+            "key_pair_name",
+            "security_group_id",
+            "vpc_details",
+            "listener_arn",
+        ]
+        for key in REQUIRED_KEYS:
+            assert key in fallback_details, f"Fallback file missing required key {key}"
+
+        session = boto3.Session(profile_name=profile_name, region_name="us-east-2")
+        assert ec2_helpers.rule_is_new(
+            session, subdomain, fallback_details["listener_arn"]
+        ), "Rule was not new, existing subdomain found registered to the listener. Check on AWS."
+
+ +
+ +

Assert that the given profile is already ready, that a fallback exists +and that all the configuration is ready

+
+ + +
+
+
#   + + + def + server_is_running(self) -> bool: +
+ +
+ View Source +
    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        return os.path.exists(self.server_detail_path)
+
+ +
+ +

Utility function to check if the given heroku app (by app-name) is +still running

+
+ + +
+
+
#   + + + def + build_is_clean(self) -> bool: +
+ +
+ View Source +
    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+ +
+ +

Utility function to see if the build has been cleaned up

+
+ + +
+
+
#   + + + def + prepare(self) -> str: +
+ +
+ View Source +
    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+ +
+ +

Produce the server files that will be deployed to the server

+
+ + +
+
+
#   + + + def + deploy(self) -> str: +
+ +
+ View Source +
    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_ec2_server()
+
+ +
+ +

Launch the server, and push the task files to the server. Return +the server URL

+
+ + +
+
+
#   + + + def + cleanup(self) -> None: +
+ +
+ View Source +
    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        shutil.rmtree(server_dir)
+
+ +
+ +

Remove any files that were used for the deployment process that +no longer need to be kept track of now that the task has +been launched.

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_ec2_server()
+
+ +
+ +

Shut down the server launched by this Architect, as stored +in the db.

+
+ + +
+
+
+
+ #   + + + class + EC2Architect.ArgsClass(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class EC2ArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    instance_type: str = field(
+        default="t2.micro", metadata={"help": "Instance type to run router"}
+    )
+    subdomain: str = field(
+        default="${mephisto.task.task_name}",
+        metadata={"help": "Subdomain name for routing"},
+    )
+    profile_name: str = field(
+        default=MISSING, metadata={"help": "Profile name for deploying an ec2 instance"}
+    )
+
+ +
+ +

Additional arguments for configuring a heroku architect

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_helpers.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_helpers.html new file mode 100644 index 000000000..fc674c533 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/ec2_helpers.html @@ -0,0 +1,3232 @@ + + + + + + + + + mephisto.abstractions.architects.ec2.ec2_helpers API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2.ec2_helpers

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Dict, Optional, Tuple, List, Any, TYPE_CHECKING
+import boto3  # type: ignore
+import botocore.exceptions  # type: ignore
+import time
+import os
+import subprocess
+import json
+import getpass
+import hashlib
+from mephisto.abstractions.providers.mturk.mturk_utils import setup_aws_credentials
+from mephisto.abstractions.architects.router import build_router
+
+from botocore import client  # type: ignore
+from botocore.exceptions import ClientError, ProfileNotFound  # type: ignore
+from botocore.config import Config  # type: ignore
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+if TYPE_CHECKING:
+    from omegaconf import DictConfig  # type: ignore
+
+botoconfig = Config(
+    region_name="us-east-2", retries={"max_attempts": 10, "mode": "standard"}
+)
+
+DEFAULT_AMI_ID = "ami-0f19d220602031aed"
+AMI_DEFAULT_USER = "ec2-user"
+DEFAULT_INSTANCE_TYPE = "m2.micro"
+FALLBACK_INSTANCE_TYPE = "t2.nano"
+MY_DIR = os.path.abspath(os.path.dirname(__file__))
+DEFAULT_KEY_PAIR_DIRECTORY = os.path.join(MY_DIR, "keypairs")
+DEFAULT_SERVER_DETAIL_LOCATION = os.path.join(MY_DIR, "servers")
+SCRIPTS_DIRECTORY = os.path.join(MY_DIR, "run_scripts")
+DEFAULT_FALLBACK_FILE = os.path.join(DEFAULT_SERVER_DETAIL_LOCATION, "fallback.json")
+FALLBACK_SERVER_LOC = os.path.join(MY_DIR, "fallback_server")
+KNOWN_HOST_PATH = os.path.expanduser("~/.ssh/known_hosts")
+MAX_RETRIES = 10
+
+
+def get_owner_tag() -> Dict[str, str]:
+    """
+    Creates a tag with the user's username
+    as the owner for the given resource
+    """
+    return {"Key": "Owner", "Value": getpass.getuser()}
+
+
+def check_aws_credentials(profile_name: str) -> bool:
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        return True
+    except ProfileNotFound:
+        return False
+
+
+def setup_ec2_credentials(
+    profile_name: str, register_args: Optional["DictConfig"] = None
+) -> bool:
+    return setup_aws_credentials(profile_name, register_args)
+
+
+def get_domain_if_available(session: boto3.Session, domain_name: str) -> bool:
+    """
+    Attempt to register the given domain with Route53, return
+    True if registration is successful, False otherwise.
+
+    Details on valid domains can be found here:
+    https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html
+
+    Pricing is available on amazon
+    """
+    client = session.client("route53domains")
+    avail_result = "PENDING"
+
+    while avail_result == "PENDING":
+        avail = client.check_domain_availabiliity(DomainName=domain_name)
+        avail_result = avail["Availability"]
+        time.sleep(0.3)
+
+    # May extend to handle other available cases
+    if avail_result not in ["AVAILABLE"]:
+        print(
+            f"Domain was not listed as available, instead "
+            f"{avail_result}, visit route53 for more detail"
+        )
+        return False
+
+    print("Automated domain registration isn't yet implemented")
+    # Registration can be completed using client.register_domain
+    # Details are available here:
+    # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/route53domains.html#Route53Domains.Client.register_domain
+
+    return False
+
+
+def find_hosted_zone(session: boto3.Session, domain_name: str) -> Optional[str]:
+    """
+    search for a hosted zone with the given name, return its id
+    if found and None otherwise
+    """
+    client = session.client("route53")
+
+    zones = client.list_hosted_zones_by_name()
+
+    logger.debug(f"Found zones {zones}")
+    for zone in zones["HostedZones"]:
+        if zone["Name"] == f"{domain_name}.":
+            return zone["Id"]
+
+    return None
+
+
+def create_hosted_zone(session: boto3.Session, domain_name: str) -> str:
+    """
+    Given a domain name, tries to create a hosted zone
+    for that domain. Returns the hosted zone id
+    """
+    client = session.client("route53")
+
+    zone_id = find_hosted_zone(session, domain_name)
+    if zone_id is None:
+
+        res = client.create_hosted_zone(
+            Name=domain_name,
+            CallerReference=str(time.time()),
+            HostedZoneConfig={
+                "Comment": "Mephisto hosted zone",
+            },
+        )
+        nameservers = res["DelegationSet"]["NameServers"]
+        BOLD_WHITE_ON_BLUE = "\x1b[1;37;44m"
+        RESET = "\x1b[0m"
+        print(
+            f"{BOLD_WHITE_ON_BLUE}"
+            "Registered new hosted zone! You should ensure your domain "
+            "name is registered to delegate to the following nameservers: "
+            f"\n{nameservers}"
+            f"{RESET}"
+        )
+        zone_id = res["HostedZone"]["Id"]
+    else:
+        logger.debug(f"This hosted zone already exists! Returning {zone_id}")
+
+    return zone_id
+
+
+def find_certificate_arn(session: boto3.Session, domain_name: str) -> Optional[str]:
+    """
+    Finds the certificate for the given domain if it exists, and returns
+    the certification arn.
+    """
+    client = session.client("acm")
+    certs = client.list_certificates()
+    logger.debug(f"Found existing certs: {certs}")
+    for cert in certs["CertificateSummaryList"]:
+        if cert["DomainName"] == domain_name:
+            return cert["CertificateArn"]
+    return None
+
+
+def get_certificate(session: boto3.Session, domain_name: str) -> Dict[str, str]:
+    """
+    Gets the certificate for the given domain name, and returns
+    the dns validation name and target and cert arn ('Name' and 'Value', 'arn')
+    """
+    client = session.client("acm")
+    cert_domain_name = f"*.{domain_name}"
+    certificate_arn = find_certificate_arn(session, cert_domain_name)
+    if certificate_arn is None:  # cert not yet issued
+        logger.debug("Requesting new certificate")
+        response = client.request_certificate(
+            DomainName=cert_domain_name,
+            ValidationMethod="DNS",
+            IdempotencyToken=f"{domain_name.split('.')[0]}request",
+            Options={
+                "CertificateTransparencyLoggingPreference": "ENABLED",
+            },
+        )
+        certificate_arn = response["CertificateArn"]
+    else:
+        logger.debug(f"Using existing certificate {certificate_arn}")
+    attempts = 0
+    sleep_time = 2
+    details = None
+    while attempts < MAX_RETRIES:
+        try:
+            details = client.describe_certificate(
+                CertificateArn=certificate_arn,
+            )
+            return_data = details["Certificate"]["DomainValidationOptions"][0][
+                "ResourceRecord"
+            ]
+            return_data["arn"] = certificate_arn
+            return return_data
+        except KeyError:
+            # Resource record not created yet, try again
+            attempts += 1
+            logger.info(f"Attempt {attempts} had no certification details, retrying")
+            time.sleep(sleep_time)
+            sleep_time *= 2
+    raise Exception("Exceeded MAX_RETRIES waiting for certificate records")
+
+
+def register_zone_records(
+    session: boto3.Session,
+    zone_id: str,
+    domain_name: str,
+    load_balancer_arn: str,
+    acm_valid_name: str,
+    acm_valid_target: str,
+) -> int:
+    """
+    Creates the required zone records for this mephisto hosted zone. Requires
+    the load balancer target, and the ACM certificate addresses
+
+    Returns the change id
+    """
+    # Get details about the load balancer
+    ec2_client = session.client("elbv2")
+    balancer = ec2_client.describe_load_balancers(
+        LoadBalancerArns=[load_balancer_arn],
+    )["LoadBalancers"][0]
+    load_balancer_dns = balancer["DNSName"]
+    load_balancer_zone = balancer["CanonicalHostedZoneId"]
+
+    # Create the records
+    client = session.client("route53")
+    response = client.change_resource_record_sets(
+        HostedZoneId=zone_id,
+        ChangeBatch={
+            "Comment": "Creating records for Mephisto load balancer and DNS validations for certs",
+            "Changes": [
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": f"*.{domain_name}",
+                        "Type": "A",
+                        "AliasTarget": {
+                            "HostedZoneId": load_balancer_zone,
+                            "DNSName": load_balancer_dns,
+                            "EvaluateTargetHealth": True,
+                        },
+                    },
+                },
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": f"{domain_name}",
+                        "Type": "A",
+                        "AliasTarget": {
+                            "HostedZoneId": load_balancer_zone,
+                            "DNSName": load_balancer_dns,
+                            "EvaluateTargetHealth": True,
+                        },
+                    },
+                },
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": acm_valid_name,
+                        "Type": "CNAME",
+                        "TTL": 300,
+                        "ResourceRecords": [
+                            {"Value": acm_valid_target},
+                        ],
+                    },
+                },
+            ],
+        },
+    )
+    return response["ChangeInfo"]["Id"]
+
+
+def create_mephisto_vpc(session: boto3.Session) -> Dict[str, str]:
+    """
+    Create the required vpc with two subnets, an associated
+    internet gateway, and routing tables.
+
+    Currently sets up using US-east for both subnets
+    """
+    client = session.client("ec2")
+
+    # Create VPC
+    vpc_response = client.create_vpc(
+        CidrBlock="10.0.0.0/16",
+        TagSpecifications=[
+            {
+                "ResourceType": "vpc",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-core-vpc"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    vpc_id = vpc_response["Vpc"]["VpcId"]
+
+    # Create internet gateway
+    gateway_response = client.create_internet_gateway(
+        TagSpecifications=[
+            {
+                "ResourceType": "internet-gateway",
+                "Tags": [{"Key": "Name", "Value": "mephisto-gateway"}, get_owner_tag()],
+            }
+        ],
+    )
+    gateway_id = gateway_response["InternetGateway"]["InternetGatewayId"]
+    client.attach_internet_gateway(
+        InternetGatewayId=gateway_id,
+        VpcId=vpc_id,
+    )
+
+    # Create subnets
+    subnet_1_response = client.create_subnet(
+        TagSpecifications=[
+            {
+                "ResourceType": "subnet",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-subnet-1"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        CidrBlock="10.0.0.0/24",
+        AvailabilityZone="us-east-2a",
+        VpcId=vpc_id,
+    )
+    subnet_1_id = subnet_1_response["Subnet"]["SubnetId"]
+
+    subnet_2_response = client.create_subnet(
+        TagSpecifications=[
+            {
+                "ResourceType": "subnet",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-subnet-2"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        CidrBlock="10.0.1.0/24",
+        AvailabilityZone="us-east-2b",
+        VpcId=vpc_id,
+    )
+    subnet_2_id = subnet_2_response["Subnet"]["SubnetId"]
+
+    # Create routing tables
+    table_1_response = client.create_route_table(
+        TagSpecifications=[
+            {
+                "ResourceType": "route-table",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-routes-1"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        VpcId=vpc_id,
+    )
+    route_table_1_id = table_1_response["RouteTable"]["RouteTableId"]
+
+    table_2_response = client.create_route_table(
+        TagSpecifications=[
+            {
+                "ResourceType": "route-table",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-routes-2"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        VpcId=vpc_id,
+    )
+    route_table_2_id = table_2_response["RouteTable"]["RouteTableId"]
+
+    # Add routes in tables to gateway
+    client.create_route(
+        DestinationCidrBlock="0.0.0.0/0",
+        GatewayId=gateway_id,
+        RouteTableId=route_table_1_id,
+    )
+    client.create_route(
+        DestinationCidrBlock="0.0.0.0/0",
+        GatewayId=gateway_id,
+        RouteTableId=route_table_2_id,
+    )
+
+    # Associate routing tables
+    client.associate_route_table(
+        RouteTableId=route_table_1_id,
+        SubnetId=subnet_1_id,
+    )
+    client.associate_route_table(
+        RouteTableId=route_table_2_id,
+        SubnetId=subnet_2_id,
+    )
+
+    return {
+        "vpc_id": vpc_id,
+        "gateway_id": gateway_id,
+        "subnet_1_id": subnet_1_id,
+        "subnet_2_id": subnet_2_id,
+        "route_1_id": route_table_1_id,
+        "route_2_id": route_table_2_id,
+    }
+
+
+def create_security_group(session: boto3.Session, vpc_id: str, ssh_ip: str) -> str:
+    """
+    Create a security group with public access
+    for 80 and 443, but only access from ssh_ip (comma-separated) for 22
+    """
+    client = session.client("ec2")
+
+    create_response = client.create_security_group(
+        Description="Security group used for Mephisto host servers",
+        GroupName="mephisto-server-security-group",
+        VpcId=vpc_id,
+        TagSpecifications=[
+            {
+                "ResourceType": "security-group",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-server-security-group"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    group_id = create_response["GroupId"]
+    ssh_perms = [
+        {
+            "FromPort": 22,
+            "ToPort": 22,
+            "IpProtocol": "tcp",
+            "IpRanges": [
+                {
+                    "CidrIp": one_ip,
+                    "Description": "SSH from allowed ip",
+                }
+            ],
+        }
+        for one_ip in ssh_ip.split(",")
+    ]
+
+    response = client.authorize_security_group_ingress(
+        GroupId=group_id,
+        IpPermissions=[
+            {
+                "FromPort": 80,
+                "ToPort": 80,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Public insecure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 80,
+                "ToPort": 80,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Public insecure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 5000,
+                "ToPort": 5000,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Internal router access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 5000,
+                "ToPort": 5000,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Internal router access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 443,
+                "ToPort": 443,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Public secure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 443,
+                "ToPort": 443,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Public secure http access",
+                    }
+                ],
+            },
+        ]
+        + ssh_perms,
+    )
+
+    assert response["ResponseMetadata"]["HTTPStatusCode"] == 200
+    return group_id
+
+
+def create_key_pair(
+    session: boto3.Session,
+    key_name: str,
+    key_pair_dir: str = DEFAULT_KEY_PAIR_DIRECTORY,
+) -> str:
+    """
+    creates a key pair by the given name, and writes it to file
+    """
+    target_keypair_filename = os.path.join(key_pair_dir, f"{key_name}.pem")
+    if os.path.exists(target_keypair_filename):
+        logger.warning(f"Keypair already exists! {target_keypair_filename}")
+        return target_keypair_filename
+    client = session.client("ec2")
+
+    response = client.create_key_pair(
+        KeyName=key_name,
+        TagSpecifications=[
+            {
+                "ResourceType": "key-pair",
+                "Tags": [{"Key": "Name", "Value": key_name}, get_owner_tag()],
+            }
+        ],
+    )
+    with open(target_keypair_filename, "w+") as keypair_file:
+        keypair_file.write(response["KeyMaterial"])
+        subprocess.check_call(["chmod", "400", target_keypair_filename])
+
+    return target_keypair_filename
+
+
+def create_instance(
+    session: boto3.Session,
+    key_pair_name: str,
+    security_group_id: str,
+    subnet_id: str,
+    instance_name: str,
+    volume_size: int = 8,
+    instance_type: str = DEFAULT_INSTANCE_TYPE,
+) -> str:
+    """
+    Create an instance, return the instance id, allocation id, and association id
+    """
+    client = session.client("ec2")
+    instance_response = client.run_instances(
+        BlockDeviceMappings=[
+            {
+                "DeviceName": "/dev/xvda",
+                "Ebs": {
+                    "DeleteOnTermination": True,
+                    "VolumeSize": volume_size,
+                    "VolumeType": "gp2",
+                    "Encrypted": True,
+                },
+            }
+        ],
+        ImageId=DEFAULT_AMI_ID,
+        InstanceType=instance_type,
+        KeyName=key_pair_name,
+        MaxCount=1,
+        MinCount=1,
+        Monitoring={
+            "Enabled": False,
+        },  # standard monitoring is enough
+        Placement={
+            "Tenancy": "default",
+        },
+        SecurityGroupIds=[security_group_id],
+        SubnetId=subnet_id,
+        DisableApiTermination=False,  # we need to allow shutdown from botocore
+        # IamInstanceProfile={ # Maybe we can move the iam role to do rest of registration?
+        #     'Arn': 'string',
+        #     'Name': 'string'
+        # },
+        InstanceInitiatedShutdownBehavior="stop",
+        TagSpecifications=[
+            {
+                "ResourceType": "instance",
+                "Tags": [
+                    {"Key": "Name", "Value": instance_name},
+                    get_owner_tag(),
+                ],
+            },
+        ],
+        HibernationOptions={"Configured": False},
+        MetadataOptions={
+            "HttpTokens": "optional",
+            "HttpEndpoint": "enabled",
+        },
+        EnclaveOptions={"Enabled": False},
+    )
+    instance_id = instance_response["Instances"][0]["InstanceId"]
+
+    logger.debug(f"Waiting for instance {instance_id} to come up before continuing")
+    waiter = client.get_waiter("instance_running")
+    waiter.wait(
+        InstanceIds=[instance_id],
+    )
+
+    return instance_id
+
+
+def create_target_group(
+    session: boto3.Session,
+    vpc_id: str,
+    instance_id: str,
+    group_name="mephisto-fallback",
+) -> str:
+    """
+    Create a target group for the given instance
+    """
+    client = session.client("elbv2")
+    group_name_hash = hashlib.md5(group_name.encode("utf-8")).hexdigest()
+    anti_collision_group_name = f"{group_name_hash[:8]}-{group_name}"
+    final_group_name = f"{anti_collision_group_name[:28]}-tg"
+    create_target_response = client.create_target_group(
+        Name=final_group_name[:32],
+        Protocol="HTTP",
+        ProtocolVersion="HTTP1",
+        Port=5000,
+        VpcId=vpc_id,
+        Matcher={
+            "HttpCode": "200-299",
+        },
+        TargetType="instance",
+        Tags=[
+            {"Key": "string", "Value": "string"},
+        ],
+    )
+    target_group_arn = create_target_response["TargetGroups"][0]["TargetGroupArn"]
+
+    client.register_targets(
+        TargetGroupArn=target_group_arn,
+        Targets=[
+            {
+                "Id": instance_id,
+            }
+        ],
+    )
+
+    return target_group_arn
+
+
+def rule_is_new(
+    session: boto3.Session,
+    subdomain: str,
+    listener_arn: str,
+) -> bool:
+    """
+    Check to see if a rule already exists with the given subdomain
+    """
+    client = session.client("elbv2")
+    find_rule_response = client.describe_rules(
+        ListenerArn=listener_arn,
+    )
+    rules = find_rule_response["Rules"]
+    for rule in rules:
+        if len(rule["Conditions"]) == 0:
+            continue  # base rule
+        host_condition = rule["Conditions"][0]
+        values = host_condition.get("Values")
+        if values is None or len(values) == 0:
+            values = host_condition["HostHeaderConfig"]["Values"]
+        existing = values[0]
+        if existing.startswith(f"{subdomain}."):
+            return False
+
+    return True
+
+
+def register_instance_to_listener(
+    session: boto3.Session,
+    instance_id: str,
+    vpc_id: str,
+    listener_arn: str,
+    domain: str,
+) -> Tuple[str, str]:
+    """
+    Creates a rule for this specific redirect case,
+    and returns the target group id and rule arn
+    """
+    subdomain_root = domain.split(".")[0]
+    target_group_arn = create_target_group(session, vpc_id, instance_id, subdomain_root)
+    client = session.client("elbv2")
+
+    find_rule_response = client.describe_rules(
+        ListenerArn=listener_arn,
+    )
+
+    # Get the next available priority
+    priorities = set([r["Priority"] for r in find_rule_response["Rules"]])
+    priority = 1
+    while str(priority) in priorities:
+        priority += 1
+
+    rule_response = client.create_rule(
+        ListenerArn=listener_arn,
+        Conditions=[
+            {
+                "Field": "host-header",
+                "HostHeaderConfig": {
+                    "Values": [
+                        domain,
+                        f"*.{domain}",
+                    ],
+                },
+            },
+        ],
+        Priority=priority,
+        Actions=[
+            {
+                "Type": "forward",
+                "TargetGroupArn": target_group_arn,
+            },
+        ],
+    )
+    rule_arn = rule_response["Rules"][0]["RuleArn"]
+
+    return target_group_arn, rule_arn
+
+
+def create_load_balancer(
+    session: boto3.Session,
+    subnet_ids: List[str],
+    security_group_id: str,
+    vpc_id: str,
+) -> str:
+    """
+    Creates a load balancer and returns the balancer's arn
+    """
+    client = session.client("elbv2")
+
+    create_response = client.create_load_balancer(
+        Name="mephisto-hosts-balancer",
+        Subnets=subnet_ids,
+        SecurityGroups=[security_group_id],
+        Scheme="internet-facing",
+        Type="application",
+        IpAddressType="ipv4",
+    )
+    balancer_arn = create_response["LoadBalancers"][0]["LoadBalancerArn"]
+    return balancer_arn
+
+
+def configure_base_balancer(
+    session: boto3.Session,
+    balancer_arn: str,
+    certificate_arn: str,
+    target_group_arn: str,
+) -> str:
+    """
+    Configure the default rules for this load balancer. Return the id
+    of the listener to add rules to for redirecting to specified target groups
+    """
+
+    client = session.client("elbv2")
+
+    _redirect_response = client.create_listener(
+        LoadBalancerArn=balancer_arn,
+        Protocol="HTTP",
+        Port=80,
+        DefaultActions=[
+            {
+                "Type": "redirect",
+                "RedirectConfig": {
+                    "Protocol": "HTTPS",
+                    "Port": "443",
+                    "Host": "#{host}",
+                    "Path": "/#{path}",
+                    "Query": "#{query}",
+                    "StatusCode": "HTTP_301",
+                },
+            }
+        ],
+    )
+
+    forward_response = client.create_listener(
+        LoadBalancerArn=balancer_arn,
+        Protocol="HTTPS",
+        Port=443,
+        SslPolicy="ELBSecurityPolicy-2016-08",
+        Certificates=[
+            {
+                "CertificateArn": certificate_arn,
+            }
+        ],
+        DefaultActions=[
+            {
+                "Type": "forward",
+                "TargetGroupArn": target_group_arn,
+            }
+        ],
+    )
+    listener_arn = forward_response["Listeners"][0]["ListenerArn"]
+    return listener_arn
+
+
+def get_instance_address(
+    session: boto3.Session,
+    instance_id: str,
+) -> Tuple[str, str, str]:
+    """
+    Create a temporary publicly accessible IP for the given instance.
+    Return the IP address, the allocation id, and the association id.
+    """
+    client = session.client("ec2")
+
+    allocation_response = client.allocate_address(
+        Domain="vpc",
+        TagSpecifications=[
+            {
+                "ResourceType": "elastic-ip",
+                "Tags": [
+                    {
+                        "Key": "Name",
+                        "Value": f"{instance_id}-ip-address",
+                    },
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    ip_address = allocation_response["PublicIp"]
+    allocation_id = allocation_response["AllocationId"]
+
+    associate_response = client.associate_address(
+        AllocationId=allocation_id,
+        InstanceId=instance_id,
+        AllowReassociation=False,
+    )
+    association_id = associate_response["AssociationId"]
+
+    # Remove this IP from known hosts in case it's there,
+    # as it's definitely not the old host anymore
+    subprocess.check_call(
+        [
+            "ssh-keygen",
+            "-f",
+            f"{KNOWN_HOST_PATH}",
+            "-R",
+            f'"{ip_address}"',
+        ]
+    )
+
+    return ip_address, allocation_id, association_id
+
+
+def detete_instance_address(
+    session: boto3.Session,
+    allocation_id: str,
+    association_id: str,
+) -> None:
+    """
+    Removes the public ip described by the given allocation and association ids
+    """
+    client = session.client("ec2")
+    client.disassociate_address(
+        AssociationId=association_id,
+    )
+
+    client.release_address(
+        AllocationId=allocation_id,
+    )
+
+
+def try_server_push(subprocess_args: List[str], retries=5, sleep_time=10.0):
+    """
+    Try to execute the server push provided in subprocess args
+    """
+    while retries > 0:
+        try:
+            subprocess.check_call(
+                subprocess_args, env=dict(os.environ, SSH_AUTH_SOCK="")
+            )
+            return
+        except subprocess.CalledProcessError:
+            retries -= 1
+            sleep_time *= 1.5
+            logger.info(
+                f"Timed out trying to push to server. Retries remaining: {retries}"
+            )
+            time.sleep(sleep_time)
+    raise Exception(
+        "Could not successfully push to the ec2 instance. See log for errors."
+    )
+
+
+def deploy_fallback_server(
+    session: boto3.Session,
+    instance_id: str,
+    key_pair: str,
+    log_access_pass: str,
+) -> bool:
+    """
+    Deploy the fallback server to the given instance,
+    return True if successful
+    """
+    client = session.client("ec2")
+    server_host, allocation_id, association_id = get_instance_address(
+        session, instance_id
+    )
+    try:
+        keypair_file = os.path.join(DEFAULT_KEY_PAIR_DIRECTORY, f"{key_pair}.pem")
+        password_file_name = os.path.join(FALLBACK_SERVER_LOC, f"access_key.txt")
+        with open(password_file_name, "w+") as password_file:
+            password_file.write(log_access_pass)
+
+        remote_server = f"{AMI_DEFAULT_USER}@{server_host}"
+
+        dest = f"{remote_server}:/home/ec2-user/"
+        try_server_push(
+            [
+                "scp",
+                "-o",
+                "StrictHostKeyChecking=no",
+                "-i",
+                keypair_file,
+                "-r",
+                f"{FALLBACK_SERVER_LOC}",
+                dest,
+            ]
+        )
+        os.unlink(password_file_name)
+        subprocess.check_call(
+            [
+                "ssh",
+                "-i",
+                keypair_file,
+                remote_server,
+                "bash",
+                "/home/ec2-user/fallback_server/scripts/first_setup.sh",
+            ],
+            env=dict(os.environ, SSH_AUTH_SOCK=""),
+        )
+        detete_instance_address(session, allocation_id, association_id)
+    except Exception as e:
+        detete_instance_address(session, allocation_id, association_id)
+        raise e
+
+    return True
+
+
+def deploy_to_routing_server(
+    session: boto3.Session,
+    instance_id: str,
+    key_pair: str,
+    push_directory: str,
+) -> bool:
+    client = session.client("ec2")
+    server_host, allocation_id, association_id = get_instance_address(
+        session, instance_id
+    )
+    keypair_file = os.path.join(DEFAULT_KEY_PAIR_DIRECTORY, f"{key_pair}.pem")
+
+    print("Uploading files to server, then attempting to run")
+    try:
+        remote_server = f"{AMI_DEFAULT_USER}@{server_host}"
+        dest = f"{remote_server}:/home/ec2-user/"
+        try_server_push(
+            [
+                "scp",
+                "-o",
+                "StrictHostKeyChecking=no",
+                "-i",
+                keypair_file,
+                "-r",
+                f"{push_directory}",
+                dest,
+            ]
+        )
+
+        subprocess.check_call(
+            [
+                "ssh",
+                "-i",
+                keypair_file,
+                remote_server,
+                "bash",
+                "/home/ec2-user/routing_server/setup/init_server.sh",
+            ],
+            env=dict(os.environ, SSH_AUTH_SOCK=""),
+        )
+        detete_instance_address(session, allocation_id, association_id)
+        print("Server setup complete!")
+    except Exception as e:
+        detete_instance_address(session, allocation_id, association_id)
+        raise e
+
+    return True
+
+
+def delete_rule(
+    session: boto3.Session,
+    rule_arn: str,
+    target_group_arn: str,
+) -> None:
+    """
+    Remove the given rule and the target group for this rule
+    """
+    client = session.client("elbv2")
+    client.delete_rule(
+        RuleArn=rule_arn,
+    )
+
+    client.delete_target_group(
+        TargetGroupArn=target_group_arn,
+    )
+
+
+def delete_instance(
+    session: boto3.Session,
+    instance_id: str,
+) -> None:
+    """
+    Remove the given instance and the associated elastic ip
+    """
+    client = session.client("ec2")
+    client.terminate_instances(InstanceIds=[instance_id])
+
+
+def remove_instance_and_cleanup(
+    session: boto3.Session,
+    server_name: str,
+) -> None:
+    """
+    Cleanup for a launched server, removing the redirect rule
+    clearing the target group, and then shutting down the instance.
+    """
+    server_detail_path = os.path.join(
+        DEFAULT_SERVER_DETAIL_LOCATION, f"{server_name}.json"
+    )
+
+    with open(server_detail_path, "r") as detail_file:
+        details = json.load(detail_file)
+
+    delete_rule(session, details["balancer_rule_arn"], details["target_group_arn"])
+    delete_instance(
+        session,
+        details["instance_id"],
+    )
+    os.unlink(server_detail_path)
+    return None
+
+
+def delete_listener(
+    session: boto3.Session,
+    listener_arn: str,
+) -> None:
+    client = session.client("elbv2")
+    client.delete_listener(
+        ListenerArn=listener_arn,
+    )
+
+
+def cleanup_fallback_server(
+    iam_profile: str,
+    delete_hosted_zone: bool = False,
+    server_details_file: str = DEFAULT_FALLBACK_FILE,
+) -> None:
+    """
+    Cleans up all of the resources for the given iam profile,
+    assuming that the details are stored in the given
+    server_details_file.
+
+    Optionally includes deleting the hosted zone, which remains
+    an option due to the DNS changes required
+    """
+    session = boto3.Session(profile_name=iam_profile, region_name="us-east-2")
+
+    elb_client = session.client("elbv2")
+    ec2_client = session.client("ec2")
+
+    server_details_file = (
+        DEFAULT_FALLBACK_FILE if server_details_file is None else server_details_file
+    )
+    with open(server_details_file, "r") as details_file:
+        details = json.load(details_file)
+
+    listener_arn = details.get("listener_arn")
+    if listener_arn is not None:
+        print(f"Deleting listener {listener_arn}...")
+        find_rule_response = elb_client.describe_rules(
+            ListenerArn=listener_arn,
+        )
+        rules = find_rule_response["Rules"]
+        if len(rules) > 1:
+            confirm = input(
+                "There are still existing rules on the router, which would imply that active jobs are running right now. Are you SURE you want to DELETE ALL?[yes/no]"
+            )
+            if confirm != "yes":
+                return
+        elb_client.delete_listener(
+            ListenerArn=listener_arn,
+        )
+
+    target_group_arn = details.get("target_group_arn")
+    if target_group_arn is not None:
+        print(f"Deleting target group {target_group_arn}...")
+        elb_client.delete_target_group(
+            TargetGroupArn=target_group_arn,
+        )
+
+    balancer_arn = details.get("balancer_arn")
+    if balancer_arn is not None:
+        print(f"Deleting balancer {balancer_arn}...")
+        elb_client.delete_load_balancer(
+            LoadBalancerArn=balancer_arn,
+        )
+
+    instance_id = details.get("instance_id")
+    if instance_id is not None:
+        print(f"Deleting instance {instance_id}...")
+        delete_instance(session, instance_id)
+
+    vpc_details = details.get("vpc_details")
+    if vpc_details is not None:
+        print(f"Deleting vpc {vpc_details['vpc_id']} and related resources...")
+        ec2_client.delete_subnet(SubnetId=vpc_details["subnet_1_id"])
+        ec2_client.delete_subnet(SubnetId=vpc_details["subnet_2_id"])
+        ec2_client.delete_route_table(RouteTableId=vpc_details["route_1_id"])
+        ec2_client.delete_route_table(RouteTableId=vpc_details["route_2_id"])
+        table_response = ec2_client.describe_route_tables(
+            Filters=[
+                {
+                    "Name": "vpc-id",
+                    "Values": [vpc_details["vpc_id"]],
+                }
+            ]
+        )
+        tables = table_response["RouteTables"]
+        for table in tables:
+            ec2_client.delete_route_table(RouteTableId=table["RouteTableId"])
+
+        ec2_client.delete_internet_gateway(InternetGatewayId=vpc_details["gateway_id"])
+
+        security_group_id = details.get("security_group_id")
+        if security_group_id is not None:
+            print("Deleting security group {security_group_id}...")
+            ec2_client.delete_security_group(
+                GroupId=security_group_id,
+            )
+
+        ec2_client.delete_vpc(VpcId=vpc_details["vpc_id"])
+
+    if delete_hosted_zone:
+        hosted_zone_id = details.get("hosted_zone_id")
+        if hosted_zone_id is not None:
+            route53_client = session.client("route53")
+            print(
+                "Deleting hosted zones not yet implemented, "
+                "navigate to the AWS Route53 console to complete "
+                f"this step, deleting {hosted_zone_id}"
+            )
+            # To delete a hosted zone, we need to query it
+            # for the list of records, than remove all
+            # that aren't SOA/NS
+
+    os.unlink(server_details_file)
+    return None
+
+ +
+ +
+
+
#   + + + def + get_owner_tag() -> Dict[str, str]: +
+ +
+ View Source +
def get_owner_tag() -> Dict[str, str]:
+    """
+    Creates a tag with the user's username
+    as the owner for the given resource
+    """
+    return {"Key": "Owner", "Value": getpass.getuser()}
+
+ +
+ +

Creates a tag with the user's username +as the owner for the given resource

+
+ + +
+
+
#   + + + def + check_aws_credentials(profile_name: str) -> bool: +
+ +
+ View Source +
def check_aws_credentials(profile_name: str) -> bool:
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        return True
+    except ProfileNotFound:
+        return False
+
+ +
+ + + +
+
+
#   + + + def + setup_ec2_credentials( + profile_name: str, + register_args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> bool: +
+ +
+ View Source +
def setup_ec2_credentials(
+    profile_name: str, register_args: Optional["DictConfig"] = None
+) -> bool:
+    return setup_aws_credentials(profile_name, register_args)
+
+ +
+ + + +
+
+
#   + + + def + get_domain_if_available(session: boto3.session.Session, domain_name: str) -> bool: +
+ +
+ View Source +
def get_domain_if_available(session: boto3.Session, domain_name: str) -> bool:
+    """
+    Attempt to register the given domain with Route53, return
+    True if registration is successful, False otherwise.
+
+    Details on valid domains can be found here:
+    https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html
+
+    Pricing is available on amazon
+    """
+    client = session.client("route53domains")
+    avail_result = "PENDING"
+
+    while avail_result == "PENDING":
+        avail = client.check_domain_availabiliity(DomainName=domain_name)
+        avail_result = avail["Availability"]
+        time.sleep(0.3)
+
+    # May extend to handle other available cases
+    if avail_result not in ["AVAILABLE"]:
+        print(
+            f"Domain was not listed as available, instead "
+            f"{avail_result}, visit route53 for more detail"
+        )
+        return False
+
+    print("Automated domain registration isn't yet implemented")
+    # Registration can be completed using client.register_domain
+    # Details are available here:
+    # https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/route53domains.html#Route53Domains.Client.register_domain
+
+    return False
+
+ +
+ +

Attempt to register the given domain with Route53, return +True if registration is successful, False otherwise.

+ +

Details on valid domains can be found here: +https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html

+ +

Pricing is available on amazon

+
+ + +
+
+
#   + + + def + find_hosted_zone( + session: boto3.session.Session, + domain_name: str +) -> Union[str, NoneType]: +
+ +
+ View Source +
def find_hosted_zone(session: boto3.Session, domain_name: str) -> Optional[str]:
+    """
+    search for a hosted zone with the given name, return its id
+    if found and None otherwise
+    """
+    client = session.client("route53")
+
+    zones = client.list_hosted_zones_by_name()
+
+    logger.debug(f"Found zones {zones}")
+    for zone in zones["HostedZones"]:
+        if zone["Name"] == f"{domain_name}.":
+            return zone["Id"]
+
+    return None
+
+ +
+ +

search for a hosted zone with the given name, return its id +if found and None otherwise

+
+ + +
+
+
#   + + + def + create_hosted_zone(session: boto3.session.Session, domain_name: str) -> str: +
+ +
+ View Source +
def create_hosted_zone(session: boto3.Session, domain_name: str) -> str:
+    """
+    Given a domain name, tries to create a hosted zone
+    for that domain. Returns the hosted zone id
+    """
+    client = session.client("route53")
+
+    zone_id = find_hosted_zone(session, domain_name)
+    if zone_id is None:
+
+        res = client.create_hosted_zone(
+            Name=domain_name,
+            CallerReference=str(time.time()),
+            HostedZoneConfig={
+                "Comment": "Mephisto hosted zone",
+            },
+        )
+        nameservers = res["DelegationSet"]["NameServers"]
+        BOLD_WHITE_ON_BLUE = "\x1b[1;37;44m"
+        RESET = "\x1b[0m"
+        print(
+            f"{BOLD_WHITE_ON_BLUE}"
+            "Registered new hosted zone! You should ensure your domain "
+            "name is registered to delegate to the following nameservers: "
+            f"\n{nameservers}"
+            f"{RESET}"
+        )
+        zone_id = res["HostedZone"]["Id"]
+    else:
+        logger.debug(f"This hosted zone already exists! Returning {zone_id}")
+
+    return zone_id
+
+ +
+ +

Given a domain name, tries to create a hosted zone +for that domain. Returns the hosted zone id

+
+ + +
+
+
#   + + + def + find_certificate_arn( + session: boto3.session.Session, + domain_name: str +) -> Union[str, NoneType]: +
+ +
+ View Source +
def find_certificate_arn(session: boto3.Session, domain_name: str) -> Optional[str]:
+    """
+    Finds the certificate for the given domain if it exists, and returns
+    the certification arn.
+    """
+    client = session.client("acm")
+    certs = client.list_certificates()
+    logger.debug(f"Found existing certs: {certs}")
+    for cert in certs["CertificateSummaryList"]:
+        if cert["DomainName"] == domain_name:
+            return cert["CertificateArn"]
+    return None
+
+ +
+ +

Finds the certificate for the given domain if it exists, and returns +the certification arn.

+
+ + +
+
+
#   + + + def + get_certificate(session: boto3.session.Session, domain_name: str) -> Dict[str, str]: +
+ +
+ View Source +
def get_certificate(session: boto3.Session, domain_name: str) -> Dict[str, str]:
+    """
+    Gets the certificate for the given domain name, and returns
+    the dns validation name and target and cert arn ('Name' and 'Value', 'arn')
+    """
+    client = session.client("acm")
+    cert_domain_name = f"*.{domain_name}"
+    certificate_arn = find_certificate_arn(session, cert_domain_name)
+    if certificate_arn is None:  # cert not yet issued
+        logger.debug("Requesting new certificate")
+        response = client.request_certificate(
+            DomainName=cert_domain_name,
+            ValidationMethod="DNS",
+            IdempotencyToken=f"{domain_name.split('.')[0]}request",
+            Options={
+                "CertificateTransparencyLoggingPreference": "ENABLED",
+            },
+        )
+        certificate_arn = response["CertificateArn"]
+    else:
+        logger.debug(f"Using existing certificate {certificate_arn}")
+    attempts = 0
+    sleep_time = 2
+    details = None
+    while attempts < MAX_RETRIES:
+        try:
+            details = client.describe_certificate(
+                CertificateArn=certificate_arn,
+            )
+            return_data = details["Certificate"]["DomainValidationOptions"][0][
+                "ResourceRecord"
+            ]
+            return_data["arn"] = certificate_arn
+            return return_data
+        except KeyError:
+            # Resource record not created yet, try again
+            attempts += 1
+            logger.info(f"Attempt {attempts} had no certification details, retrying")
+            time.sleep(sleep_time)
+            sleep_time *= 2
+    raise Exception("Exceeded MAX_RETRIES waiting for certificate records")
+
+ +
+ +

Gets the certificate for the given domain name, and returns +the dns validation name and target and cert arn ('Name' and 'Value', 'arn')

+
+ + +
+
+
#   + + + def + register_zone_records( + session: boto3.session.Session, + zone_id: str, + domain_name: str, + load_balancer_arn: str, + acm_valid_name: str, + acm_valid_target: str +) -> int: +
+ +
+ View Source +
def register_zone_records(
+    session: boto3.Session,
+    zone_id: str,
+    domain_name: str,
+    load_balancer_arn: str,
+    acm_valid_name: str,
+    acm_valid_target: str,
+) -> int:
+    """
+    Creates the required zone records for this mephisto hosted zone. Requires
+    the load balancer target, and the ACM certificate addresses
+
+    Returns the change id
+    """
+    # Get details about the load balancer
+    ec2_client = session.client("elbv2")
+    balancer = ec2_client.describe_load_balancers(
+        LoadBalancerArns=[load_balancer_arn],
+    )["LoadBalancers"][0]
+    load_balancer_dns = balancer["DNSName"]
+    load_balancer_zone = balancer["CanonicalHostedZoneId"]
+
+    # Create the records
+    client = session.client("route53")
+    response = client.change_resource_record_sets(
+        HostedZoneId=zone_id,
+        ChangeBatch={
+            "Comment": "Creating records for Mephisto load balancer and DNS validations for certs",
+            "Changes": [
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": f"*.{domain_name}",
+                        "Type": "A",
+                        "AliasTarget": {
+                            "HostedZoneId": load_balancer_zone,
+                            "DNSName": load_balancer_dns,
+                            "EvaluateTargetHealth": True,
+                        },
+                    },
+                },
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": f"{domain_name}",
+                        "Type": "A",
+                        "AliasTarget": {
+                            "HostedZoneId": load_balancer_zone,
+                            "DNSName": load_balancer_dns,
+                            "EvaluateTargetHealth": True,
+                        },
+                    },
+                },
+                {
+                    "Action": "CREATE",
+                    "ResourceRecordSet": {
+                        "Name": acm_valid_name,
+                        "Type": "CNAME",
+                        "TTL": 300,
+                        "ResourceRecords": [
+                            {"Value": acm_valid_target},
+                        ],
+                    },
+                },
+            ],
+        },
+    )
+    return response["ChangeInfo"]["Id"]
+
+ +
+ +

Creates the required zone records for this mephisto hosted zone. Requires +the load balancer target, and the ACM certificate addresses

+ +

Returns the change id

+
+ + +
+
+
#   + + + def + create_mephisto_vpc(session: boto3.session.Session) -> Dict[str, str]: +
+ +
+ View Source +
def create_mephisto_vpc(session: boto3.Session) -> Dict[str, str]:
+    """
+    Create the required vpc with two subnets, an associated
+    internet gateway, and routing tables.
+
+    Currently sets up using US-east for both subnets
+    """
+    client = session.client("ec2")
+
+    # Create VPC
+    vpc_response = client.create_vpc(
+        CidrBlock="10.0.0.0/16",
+        TagSpecifications=[
+            {
+                "ResourceType": "vpc",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-core-vpc"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    vpc_id = vpc_response["Vpc"]["VpcId"]
+
+    # Create internet gateway
+    gateway_response = client.create_internet_gateway(
+        TagSpecifications=[
+            {
+                "ResourceType": "internet-gateway",
+                "Tags": [{"Key": "Name", "Value": "mephisto-gateway"}, get_owner_tag()],
+            }
+        ],
+    )
+    gateway_id = gateway_response["InternetGateway"]["InternetGatewayId"]
+    client.attach_internet_gateway(
+        InternetGatewayId=gateway_id,
+        VpcId=vpc_id,
+    )
+
+    # Create subnets
+    subnet_1_response = client.create_subnet(
+        TagSpecifications=[
+            {
+                "ResourceType": "subnet",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-subnet-1"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        CidrBlock="10.0.0.0/24",
+        AvailabilityZone="us-east-2a",
+        VpcId=vpc_id,
+    )
+    subnet_1_id = subnet_1_response["Subnet"]["SubnetId"]
+
+    subnet_2_response = client.create_subnet(
+        TagSpecifications=[
+            {
+                "ResourceType": "subnet",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-subnet-2"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        CidrBlock="10.0.1.0/24",
+        AvailabilityZone="us-east-2b",
+        VpcId=vpc_id,
+    )
+    subnet_2_id = subnet_2_response["Subnet"]["SubnetId"]
+
+    # Create routing tables
+    table_1_response = client.create_route_table(
+        TagSpecifications=[
+            {
+                "ResourceType": "route-table",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-routes-1"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        VpcId=vpc_id,
+    )
+    route_table_1_id = table_1_response["RouteTable"]["RouteTableId"]
+
+    table_2_response = client.create_route_table(
+        TagSpecifications=[
+            {
+                "ResourceType": "route-table",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-routes-2"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+        VpcId=vpc_id,
+    )
+    route_table_2_id = table_2_response["RouteTable"]["RouteTableId"]
+
+    # Add routes in tables to gateway
+    client.create_route(
+        DestinationCidrBlock="0.0.0.0/0",
+        GatewayId=gateway_id,
+        RouteTableId=route_table_1_id,
+    )
+    client.create_route(
+        DestinationCidrBlock="0.0.0.0/0",
+        GatewayId=gateway_id,
+        RouteTableId=route_table_2_id,
+    )
+
+    # Associate routing tables
+    client.associate_route_table(
+        RouteTableId=route_table_1_id,
+        SubnetId=subnet_1_id,
+    )
+    client.associate_route_table(
+        RouteTableId=route_table_2_id,
+        SubnetId=subnet_2_id,
+    )
+
+    return {
+        "vpc_id": vpc_id,
+        "gateway_id": gateway_id,
+        "subnet_1_id": subnet_1_id,
+        "subnet_2_id": subnet_2_id,
+        "route_1_id": route_table_1_id,
+        "route_2_id": route_table_2_id,
+    }
+
+ +
+ +

Create the required vpc with two subnets, an associated +internet gateway, and routing tables.

+ +

Currently sets up using US-east for both subnets

+
+ + +
+
+
#   + + + def + create_security_group(session: boto3.session.Session, vpc_id: str, ssh_ip: str) -> str: +
+ +
+ View Source +
def create_security_group(session: boto3.Session, vpc_id: str, ssh_ip: str) -> str:
+    """
+    Create a security group with public access
+    for 80 and 443, but only access from ssh_ip (comma-separated) for 22
+    """
+    client = session.client("ec2")
+
+    create_response = client.create_security_group(
+        Description="Security group used for Mephisto host servers",
+        GroupName="mephisto-server-security-group",
+        VpcId=vpc_id,
+        TagSpecifications=[
+            {
+                "ResourceType": "security-group",
+                "Tags": [
+                    {"Key": "Name", "Value": "mephisto-server-security-group"},
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    group_id = create_response["GroupId"]
+    ssh_perms = [
+        {
+            "FromPort": 22,
+            "ToPort": 22,
+            "IpProtocol": "tcp",
+            "IpRanges": [
+                {
+                    "CidrIp": one_ip,
+                    "Description": "SSH from allowed ip",
+                }
+            ],
+        }
+        for one_ip in ssh_ip.split(",")
+    ]
+
+    response = client.authorize_security_group_ingress(
+        GroupId=group_id,
+        IpPermissions=[
+            {
+                "FromPort": 80,
+                "ToPort": 80,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Public insecure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 80,
+                "ToPort": 80,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Public insecure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 5000,
+                "ToPort": 5000,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Internal router access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 5000,
+                "ToPort": 5000,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Internal router access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 443,
+                "ToPort": 443,
+                "IpProtocol": "tcp",
+                "IpRanges": [
+                    {
+                        "CidrIp": "0.0.0.0/0",
+                        "Description": "Public secure http access",
+                    }
+                ],
+            },
+            {
+                "FromPort": 443,
+                "ToPort": 443,
+                "IpProtocol": "tcp",
+                "Ipv6Ranges": [
+                    {
+                        "CidrIpv6": "::/0",
+                        "Description": "Public secure http access",
+                    }
+                ],
+            },
+        ]
+        + ssh_perms,
+    )
+
+    assert response["ResponseMetadata"]["HTTPStatusCode"] == 200
+    return group_id
+
+ +
+ +

Create a security group with public access +for 80 and 443, but only access from ssh_ip (comma-separated) for 22

+
+ + +
+
+
#   + + + def + create_key_pair( + session: boto3.session.Session, + key_name: str, + key_pair_dir: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/keypairs' +) -> str: +
+ +
+ View Source +
def create_key_pair(
+    session: boto3.Session,
+    key_name: str,
+    key_pair_dir: str = DEFAULT_KEY_PAIR_DIRECTORY,
+) -> str:
+    """
+    creates a key pair by the given name, and writes it to file
+    """
+    target_keypair_filename = os.path.join(key_pair_dir, f"{key_name}.pem")
+    if os.path.exists(target_keypair_filename):
+        logger.warning(f"Keypair already exists! {target_keypair_filename}")
+        return target_keypair_filename
+    client = session.client("ec2")
+
+    response = client.create_key_pair(
+        KeyName=key_name,
+        TagSpecifications=[
+            {
+                "ResourceType": "key-pair",
+                "Tags": [{"Key": "Name", "Value": key_name}, get_owner_tag()],
+            }
+        ],
+    )
+    with open(target_keypair_filename, "w+") as keypair_file:
+        keypair_file.write(response["KeyMaterial"])
+        subprocess.check_call(["chmod", "400", target_keypair_filename])
+
+    return target_keypair_filename
+
+ +
+ +

creates a key pair by the given name, and writes it to file

+
+ + +
+
+
#   + + + def + create_instance( + session: boto3.session.Session, + key_pair_name: str, + security_group_id: str, + subnet_id: str, + instance_name: str, + volume_size: int = 8, + instance_type: str = 'm2.micro' +) -> str: +
+ +
+ View Source +
def create_instance(
+    session: boto3.Session,
+    key_pair_name: str,
+    security_group_id: str,
+    subnet_id: str,
+    instance_name: str,
+    volume_size: int = 8,
+    instance_type: str = DEFAULT_INSTANCE_TYPE,
+) -> str:
+    """
+    Create an instance, return the instance id, allocation id, and association id
+    """
+    client = session.client("ec2")
+    instance_response = client.run_instances(
+        BlockDeviceMappings=[
+            {
+                "DeviceName": "/dev/xvda",
+                "Ebs": {
+                    "DeleteOnTermination": True,
+                    "VolumeSize": volume_size,
+                    "VolumeType": "gp2",
+                    "Encrypted": True,
+                },
+            }
+        ],
+        ImageId=DEFAULT_AMI_ID,
+        InstanceType=instance_type,
+        KeyName=key_pair_name,
+        MaxCount=1,
+        MinCount=1,
+        Monitoring={
+            "Enabled": False,
+        },  # standard monitoring is enough
+        Placement={
+            "Tenancy": "default",
+        },
+        SecurityGroupIds=[security_group_id],
+        SubnetId=subnet_id,
+        DisableApiTermination=False,  # we need to allow shutdown from botocore
+        # IamInstanceProfile={ # Maybe we can move the iam role to do rest of registration?
+        #     'Arn': 'string',
+        #     'Name': 'string'
+        # },
+        InstanceInitiatedShutdownBehavior="stop",
+        TagSpecifications=[
+            {
+                "ResourceType": "instance",
+                "Tags": [
+                    {"Key": "Name", "Value": instance_name},
+                    get_owner_tag(),
+                ],
+            },
+        ],
+        HibernationOptions={"Configured": False},
+        MetadataOptions={
+            "HttpTokens": "optional",
+            "HttpEndpoint": "enabled",
+        },
+        EnclaveOptions={"Enabled": False},
+    )
+    instance_id = instance_response["Instances"][0]["InstanceId"]
+
+    logger.debug(f"Waiting for instance {instance_id} to come up before continuing")
+    waiter = client.get_waiter("instance_running")
+    waiter.wait(
+        InstanceIds=[instance_id],
+    )
+
+    return instance_id
+
+ +
+ +

Create an instance, return the instance id, allocation id, and association id

+
+ + +
+
+
#   + + + def + create_target_group( + session: boto3.session.Session, + vpc_id: str, + instance_id: str, + group_name='mephisto-fallback' +) -> str: +
+ +
+ View Source +
def create_target_group(
+    session: boto3.Session,
+    vpc_id: str,
+    instance_id: str,
+    group_name="mephisto-fallback",
+) -> str:
+    """
+    Create a target group for the given instance
+    """
+    client = session.client("elbv2")
+    group_name_hash = hashlib.md5(group_name.encode("utf-8")).hexdigest()
+    anti_collision_group_name = f"{group_name_hash[:8]}-{group_name}"
+    final_group_name = f"{anti_collision_group_name[:28]}-tg"
+    create_target_response = client.create_target_group(
+        Name=final_group_name[:32],
+        Protocol="HTTP",
+        ProtocolVersion="HTTP1",
+        Port=5000,
+        VpcId=vpc_id,
+        Matcher={
+            "HttpCode": "200-299",
+        },
+        TargetType="instance",
+        Tags=[
+            {"Key": "string", "Value": "string"},
+        ],
+    )
+    target_group_arn = create_target_response["TargetGroups"][0]["TargetGroupArn"]
+
+    client.register_targets(
+        TargetGroupArn=target_group_arn,
+        Targets=[
+            {
+                "Id": instance_id,
+            }
+        ],
+    )
+
+    return target_group_arn
+
+ +
+ +

Create a target group for the given instance

+
+ + +
+
+
#   + + + def + rule_is_new( + session: boto3.session.Session, + subdomain: str, + listener_arn: str +) -> bool: +
+ +
+ View Source +
def rule_is_new(
+    session: boto3.Session,
+    subdomain: str,
+    listener_arn: str,
+) -> bool:
+    """
+    Check to see if a rule already exists with the given subdomain
+    """
+    client = session.client("elbv2")
+    find_rule_response = client.describe_rules(
+        ListenerArn=listener_arn,
+    )
+    rules = find_rule_response["Rules"]
+    for rule in rules:
+        if len(rule["Conditions"]) == 0:
+            continue  # base rule
+        host_condition = rule["Conditions"][0]
+        values = host_condition.get("Values")
+        if values is None or len(values) == 0:
+            values = host_condition["HostHeaderConfig"]["Values"]
+        existing = values[0]
+        if existing.startswith(f"{subdomain}."):
+            return False
+
+    return True
+
+ +
+ +

Check to see if a rule already exists with the given subdomain

+
+ + +
+
+
#   + + + def + register_instance_to_listener( + session: boto3.session.Session, + instance_id: str, + vpc_id: str, + listener_arn: str, + domain: str +) -> Tuple[str, str]: +
+ +
+ View Source +
def register_instance_to_listener(
+    session: boto3.Session,
+    instance_id: str,
+    vpc_id: str,
+    listener_arn: str,
+    domain: str,
+) -> Tuple[str, str]:
+    """
+    Creates a rule for this specific redirect case,
+    and returns the target group id and rule arn
+    """
+    subdomain_root = domain.split(".")[0]
+    target_group_arn = create_target_group(session, vpc_id, instance_id, subdomain_root)
+    client = session.client("elbv2")
+
+    find_rule_response = client.describe_rules(
+        ListenerArn=listener_arn,
+    )
+
+    # Get the next available priority
+    priorities = set([r["Priority"] for r in find_rule_response["Rules"]])
+    priority = 1
+    while str(priority) in priorities:
+        priority += 1
+
+    rule_response = client.create_rule(
+        ListenerArn=listener_arn,
+        Conditions=[
+            {
+                "Field": "host-header",
+                "HostHeaderConfig": {
+                    "Values": [
+                        domain,
+                        f"*.{domain}",
+                    ],
+                },
+            },
+        ],
+        Priority=priority,
+        Actions=[
+            {
+                "Type": "forward",
+                "TargetGroupArn": target_group_arn,
+            },
+        ],
+    )
+    rule_arn = rule_response["Rules"][0]["RuleArn"]
+
+    return target_group_arn, rule_arn
+
+ +
+ +

Creates a rule for this specific redirect case, +and returns the target group id and rule arn

+
+ + +
+
+
#   + + + def + create_load_balancer( + session: boto3.session.Session, + subnet_ids: List[str], + security_group_id: str, + vpc_id: str +) -> str: +
+ +
+ View Source +
def create_load_balancer(
+    session: boto3.Session,
+    subnet_ids: List[str],
+    security_group_id: str,
+    vpc_id: str,
+) -> str:
+    """
+    Creates a load balancer and returns the balancer's arn
+    """
+    client = session.client("elbv2")
+
+    create_response = client.create_load_balancer(
+        Name="mephisto-hosts-balancer",
+        Subnets=subnet_ids,
+        SecurityGroups=[security_group_id],
+        Scheme="internet-facing",
+        Type="application",
+        IpAddressType="ipv4",
+    )
+    balancer_arn = create_response["LoadBalancers"][0]["LoadBalancerArn"]
+    return balancer_arn
+
+ +
+ +

Creates a load balancer and returns the balancer's arn

+
+ + +
+
+
#   + + + def + configure_base_balancer( + session: boto3.session.Session, + balancer_arn: str, + certificate_arn: str, + target_group_arn: str +) -> str: +
+ +
+ View Source +
def configure_base_balancer(
+    session: boto3.Session,
+    balancer_arn: str,
+    certificate_arn: str,
+    target_group_arn: str,
+) -> str:
+    """
+    Configure the default rules for this load balancer. Return the id
+    of the listener to add rules to for redirecting to specified target groups
+    """
+
+    client = session.client("elbv2")
+
+    _redirect_response = client.create_listener(
+        LoadBalancerArn=balancer_arn,
+        Protocol="HTTP",
+        Port=80,
+        DefaultActions=[
+            {
+                "Type": "redirect",
+                "RedirectConfig": {
+                    "Protocol": "HTTPS",
+                    "Port": "443",
+                    "Host": "#{host}",
+                    "Path": "/#{path}",
+                    "Query": "#{query}",
+                    "StatusCode": "HTTP_301",
+                },
+            }
+        ],
+    )
+
+    forward_response = client.create_listener(
+        LoadBalancerArn=balancer_arn,
+        Protocol="HTTPS",
+        Port=443,
+        SslPolicy="ELBSecurityPolicy-2016-08",
+        Certificates=[
+            {
+                "CertificateArn": certificate_arn,
+            }
+        ],
+        DefaultActions=[
+            {
+                "Type": "forward",
+                "TargetGroupArn": target_group_arn,
+            }
+        ],
+    )
+    listener_arn = forward_response["Listeners"][0]["ListenerArn"]
+    return listener_arn
+
+ +
+ +

Configure the default rules for this load balancer. Return the id +of the listener to add rules to for redirecting to specified target groups

+
+ + +
+
+
#   + + + def + get_instance_address( + session: boto3.session.Session, + instance_id: str +) -> Tuple[str, str, str]: +
+ +
+ View Source +
def get_instance_address(
+    session: boto3.Session,
+    instance_id: str,
+) -> Tuple[str, str, str]:
+    """
+    Create a temporary publicly accessible IP for the given instance.
+    Return the IP address, the allocation id, and the association id.
+    """
+    client = session.client("ec2")
+
+    allocation_response = client.allocate_address(
+        Domain="vpc",
+        TagSpecifications=[
+            {
+                "ResourceType": "elastic-ip",
+                "Tags": [
+                    {
+                        "Key": "Name",
+                        "Value": f"{instance_id}-ip-address",
+                    },
+                    get_owner_tag(),
+                ],
+            }
+        ],
+    )
+    ip_address = allocation_response["PublicIp"]
+    allocation_id = allocation_response["AllocationId"]
+
+    associate_response = client.associate_address(
+        AllocationId=allocation_id,
+        InstanceId=instance_id,
+        AllowReassociation=False,
+    )
+    association_id = associate_response["AssociationId"]
+
+    # Remove this IP from known hosts in case it's there,
+    # as it's definitely not the old host anymore
+    subprocess.check_call(
+        [
+            "ssh-keygen",
+            "-f",
+            f"{KNOWN_HOST_PATH}",
+            "-R",
+            f'"{ip_address}"',
+        ]
+    )
+
+    return ip_address, allocation_id, association_id
+
+ +
+ +

Create a temporary publicly accessible IP for the given instance. +Return the IP address, the allocation id, and the association id.

+
+ + +
+
+
#   + + + def + detete_instance_address( + session: boto3.session.Session, + allocation_id: str, + association_id: str +) -> None: +
+ +
+ View Source +
def detete_instance_address(
+    session: boto3.Session,
+    allocation_id: str,
+    association_id: str,
+) -> None:
+    """
+    Removes the public ip described by the given allocation and association ids
+    """
+    client = session.client("ec2")
+    client.disassociate_address(
+        AssociationId=association_id,
+    )
+
+    client.release_address(
+        AllocationId=allocation_id,
+    )
+
+ +
+ +

Removes the public ip described by the given allocation and association ids

+
+ + +
+
+
#   + + + def + try_server_push(subprocess_args: List[str], retries=5, sleep_time=10.0): +
+ +
+ View Source +
def try_server_push(subprocess_args: List[str], retries=5, sleep_time=10.0):
+    """
+    Try to execute the server push provided in subprocess args
+    """
+    while retries > 0:
+        try:
+            subprocess.check_call(
+                subprocess_args, env=dict(os.environ, SSH_AUTH_SOCK="")
+            )
+            return
+        except subprocess.CalledProcessError:
+            retries -= 1
+            sleep_time *= 1.5
+            logger.info(
+                f"Timed out trying to push to server. Retries remaining: {retries}"
+            )
+            time.sleep(sleep_time)
+    raise Exception(
+        "Could not successfully push to the ec2 instance. See log for errors."
+    )
+
+ +
+ +

Try to execute the server push provided in subprocess args

+
+ + +
+
+
#   + + + def + deploy_fallback_server( + session: boto3.session.Session, + instance_id: str, + key_pair: str, + log_access_pass: str +) -> bool: +
+ +
+ View Source +
def deploy_fallback_server(
+    session: boto3.Session,
+    instance_id: str,
+    key_pair: str,
+    log_access_pass: str,
+) -> bool:
+    """
+    Deploy the fallback server to the given instance,
+    return True if successful
+    """
+    client = session.client("ec2")
+    server_host, allocation_id, association_id = get_instance_address(
+        session, instance_id
+    )
+    try:
+        keypair_file = os.path.join(DEFAULT_KEY_PAIR_DIRECTORY, f"{key_pair}.pem")
+        password_file_name = os.path.join(FALLBACK_SERVER_LOC, f"access_key.txt")
+        with open(password_file_name, "w+") as password_file:
+            password_file.write(log_access_pass)
+
+        remote_server = f"{AMI_DEFAULT_USER}@{server_host}"
+
+        dest = f"{remote_server}:/home/ec2-user/"
+        try_server_push(
+            [
+                "scp",
+                "-o",
+                "StrictHostKeyChecking=no",
+                "-i",
+                keypair_file,
+                "-r",
+                f"{FALLBACK_SERVER_LOC}",
+                dest,
+            ]
+        )
+        os.unlink(password_file_name)
+        subprocess.check_call(
+            [
+                "ssh",
+                "-i",
+                keypair_file,
+                remote_server,
+                "bash",
+                "/home/ec2-user/fallback_server/scripts/first_setup.sh",
+            ],
+            env=dict(os.environ, SSH_AUTH_SOCK=""),
+        )
+        detete_instance_address(session, allocation_id, association_id)
+    except Exception as e:
+        detete_instance_address(session, allocation_id, association_id)
+        raise e
+
+    return True
+
+ +
+ +

Deploy the fallback server to the given instance, +return True if successful

+
+ + +
+
+
#   + + + def + deploy_to_routing_server( + session: boto3.session.Session, + instance_id: str, + key_pair: str, + push_directory: str +) -> bool: +
+ +
+ View Source +
def deploy_to_routing_server(
+    session: boto3.Session,
+    instance_id: str,
+    key_pair: str,
+    push_directory: str,
+) -> bool:
+    client = session.client("ec2")
+    server_host, allocation_id, association_id = get_instance_address(
+        session, instance_id
+    )
+    keypair_file = os.path.join(DEFAULT_KEY_PAIR_DIRECTORY, f"{key_pair}.pem")
+
+    print("Uploading files to server, then attempting to run")
+    try:
+        remote_server = f"{AMI_DEFAULT_USER}@{server_host}"
+        dest = f"{remote_server}:/home/ec2-user/"
+        try_server_push(
+            [
+                "scp",
+                "-o",
+                "StrictHostKeyChecking=no",
+                "-i",
+                keypair_file,
+                "-r",
+                f"{push_directory}",
+                dest,
+            ]
+        )
+
+        subprocess.check_call(
+            [
+                "ssh",
+                "-i",
+                keypair_file,
+                remote_server,
+                "bash",
+                "/home/ec2-user/routing_server/setup/init_server.sh",
+            ],
+            env=dict(os.environ, SSH_AUTH_SOCK=""),
+        )
+        detete_instance_address(session, allocation_id, association_id)
+        print("Server setup complete!")
+    except Exception as e:
+        detete_instance_address(session, allocation_id, association_id)
+        raise e
+
+    return True
+
+ +
+ + + +
+
+
#   + + + def + delete_rule( + session: boto3.session.Session, + rule_arn: str, + target_group_arn: str +) -> None: +
+ +
+ View Source +
def delete_rule(
+    session: boto3.Session,
+    rule_arn: str,
+    target_group_arn: str,
+) -> None:
+    """
+    Remove the given rule and the target group for this rule
+    """
+    client = session.client("elbv2")
+    client.delete_rule(
+        RuleArn=rule_arn,
+    )
+
+    client.delete_target_group(
+        TargetGroupArn=target_group_arn,
+    )
+
+ +
+ +

Remove the given rule and the target group for this rule

+
+ + +
+
+
#   + + + def + delete_instance(session: boto3.session.Session, instance_id: str) -> None: +
+ +
+ View Source +
def delete_instance(
+    session: boto3.Session,
+    instance_id: str,
+) -> None:
+    """
+    Remove the given instance and the associated elastic ip
+    """
+    client = session.client("ec2")
+    client.terminate_instances(InstanceIds=[instance_id])
+
+ +
+ +

Remove the given instance and the associated elastic ip

+
+ + +
+
+
#   + + + def + remove_instance_and_cleanup(session: boto3.session.Session, server_name: str) -> None: +
+ +
+ View Source +
def remove_instance_and_cleanup(
+    session: boto3.Session,
+    server_name: str,
+) -> None:
+    """
+    Cleanup for a launched server, removing the redirect rule
+    clearing the target group, and then shutting down the instance.
+    """
+    server_detail_path = os.path.join(
+        DEFAULT_SERVER_DETAIL_LOCATION, f"{server_name}.json"
+    )
+
+    with open(server_detail_path, "r") as detail_file:
+        details = json.load(detail_file)
+
+    delete_rule(session, details["balancer_rule_arn"], details["target_group_arn"])
+    delete_instance(
+        session,
+        details["instance_id"],
+    )
+    os.unlink(server_detail_path)
+    return None
+
+ +
+ +

Cleanup for a launched server, removing the redirect rule +clearing the target group, and then shutting down the instance.

+
+ + +
+
+
#   + + + def + delete_listener(session: boto3.session.Session, listener_arn: str) -> None: +
+ +
+ View Source +
def delete_listener(
+    session: boto3.Session,
+    listener_arn: str,
+) -> None:
+    client = session.client("elbv2")
+    client.delete_listener(
+        ListenerArn=listener_arn,
+    )
+
+ +
+ + + +
+
+
#   + + + def + cleanup_fallback_server( + iam_profile: str, + delete_hosted_zone: bool = False, + server_details_file: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/servers/fallback.json' +) -> None: +
+ +
+ View Source +
def cleanup_fallback_server(
+    iam_profile: str,
+    delete_hosted_zone: bool = False,
+    server_details_file: str = DEFAULT_FALLBACK_FILE,
+) -> None:
+    """
+    Cleans up all of the resources for the given iam profile,
+    assuming that the details are stored in the given
+    server_details_file.
+
+    Optionally includes deleting the hosted zone, which remains
+    an option due to the DNS changes required
+    """
+    session = boto3.Session(profile_name=iam_profile, region_name="us-east-2")
+
+    elb_client = session.client("elbv2")
+    ec2_client = session.client("ec2")
+
+    server_details_file = (
+        DEFAULT_FALLBACK_FILE if server_details_file is None else server_details_file
+    )
+    with open(server_details_file, "r") as details_file:
+        details = json.load(details_file)
+
+    listener_arn = details.get("listener_arn")
+    if listener_arn is not None:
+        print(f"Deleting listener {listener_arn}...")
+        find_rule_response = elb_client.describe_rules(
+            ListenerArn=listener_arn,
+        )
+        rules = find_rule_response["Rules"]
+        if len(rules) > 1:
+            confirm = input(
+                "There are still existing rules on the router, which would imply that active jobs are running right now. Are you SURE you want to DELETE ALL?[yes/no]"
+            )
+            if confirm != "yes":
+                return
+        elb_client.delete_listener(
+            ListenerArn=listener_arn,
+        )
+
+    target_group_arn = details.get("target_group_arn")
+    if target_group_arn is not None:
+        print(f"Deleting target group {target_group_arn}...")
+        elb_client.delete_target_group(
+            TargetGroupArn=target_group_arn,
+        )
+
+    balancer_arn = details.get("balancer_arn")
+    if balancer_arn is not None:
+        print(f"Deleting balancer {balancer_arn}...")
+        elb_client.delete_load_balancer(
+            LoadBalancerArn=balancer_arn,
+        )
+
+    instance_id = details.get("instance_id")
+    if instance_id is not None:
+        print(f"Deleting instance {instance_id}...")
+        delete_instance(session, instance_id)
+
+    vpc_details = details.get("vpc_details")
+    if vpc_details is not None:
+        print(f"Deleting vpc {vpc_details['vpc_id']} and related resources...")
+        ec2_client.delete_subnet(SubnetId=vpc_details["subnet_1_id"])
+        ec2_client.delete_subnet(SubnetId=vpc_details["subnet_2_id"])
+        ec2_client.delete_route_table(RouteTableId=vpc_details["route_1_id"])
+        ec2_client.delete_route_table(RouteTableId=vpc_details["route_2_id"])
+        table_response = ec2_client.describe_route_tables(
+            Filters=[
+                {
+                    "Name": "vpc-id",
+                    "Values": [vpc_details["vpc_id"]],
+                }
+            ]
+        )
+        tables = table_response["RouteTables"]
+        for table in tables:
+            ec2_client.delete_route_table(RouteTableId=table["RouteTableId"])
+
+        ec2_client.delete_internet_gateway(InternetGatewayId=vpc_details["gateway_id"])
+
+        security_group_id = details.get("security_group_id")
+        if security_group_id is not None:
+            print("Deleting security group {security_group_id}...")
+            ec2_client.delete_security_group(
+                GroupId=security_group_id,
+            )
+
+        ec2_client.delete_vpc(VpcId=vpc_details["vpc_id"])
+
+    if delete_hosted_zone:
+        hosted_zone_id = details.get("hosted_zone_id")
+        if hosted_zone_id is not None:
+            route53_client = session.client("route53")
+            print(
+                "Deleting hosted zones not yet implemented, "
+                "navigate to the AWS Route53 console to complete "
+                f"this step, deleting {hosted_zone_id}"
+            )
+            # To delete a hosted zone, we need to query it
+            # for the list of records, than remove all
+            # that aren't SOA/NS
+
+    os.unlink(server_details_file)
+    return None
+
+ +
+ +

Cleans up all of the resources for the given iam profile, +assuming that the details are stored in the given +server_details_file.

+ +

Optionally includes deleting the hosted zone, which remains +an option due to the DNS changes required

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/ec2/prepare_ec2_servers.html b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/prepare_ec2_servers.html new file mode 100644 index 000000000..d2c1312cf --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/ec2/prepare_ec2_servers.html @@ -0,0 +1,737 @@ + + + + + + + + + mephisto.abstractions.architects.ec2.prepare_ec2_servers API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.ec2.prepare_ec2_servers

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import mephisto.abstractions.architects.ec2.ec2_helpers as ec2_helpers
+from mephisto.abstractions.architects.ec2.ec2_helpers import (
+    DEFAULT_FALLBACK_FILE,
+    FALLBACK_INSTANCE_TYPE,
+)
+import boto3  # type: ignore
+import os
+import json
+
+from typing import Dict, Any
+
+DEFAULT_KEY_PAIR_NAME = "mephisto-server-key"
+
+
+def update_details(
+    open_file,
+    new_data: Dict[str, Any],
+):
+    """
+    Overwrite the contents of the open file with the given data.
+    """
+    open_file.seek(0)
+    open_file.truncate(0)
+    json.dump(new_data, open_file, sort_keys=True, indent=4)
+
+
+def launch_ec2_fallback(
+    iam_profile: str,  # Iam role name, should be saved in aws credentials
+    domain_name: str,
+    ssh_ip_block: str,
+    access_logs_key: str,
+    key_pair_name: str = DEFAULT_KEY_PAIR_NAME,
+    server_details_file: str = DEFAULT_FALLBACK_FILE,
+    instance_type: str = FALLBACK_INSTANCE_TYPE,
+) -> Dict[str, Any]:
+    """
+    This function is used to set up a mephisto
+    vpc and fallback server for the AWS setup. At the moment
+    it requires that you already have a domain registered,
+    and it is up to you to delegate the domain to the
+    amazon nameservers created by this function. This
+    function will request the ssl certificate from amazon
+
+    At the moment, it only works on the us-east region.
+    Feel free to open a PR to extend this functionality
+    if you need another region!
+    """
+    assert not domain_name.startswith("www."), (
+        "You should provide a domain name without www, like 'example.com', "
+        "or 'crowdsourcing.example.com'"
+    )
+    key_pair_name = DEFAULT_KEY_PAIR_NAME if key_pair_name is None else key_pair_name
+    server_details_file = (
+        DEFAULT_FALLBACK_FILE if server_details_file is None else server_details_file
+    )
+    instance_type = FALLBACK_INSTANCE_TYPE if instance_type is None else instance_type
+
+    session = boto3.Session(profile_name=iam_profile, region_name="us-east-2")
+
+    try:
+        with open(server_details_file, "r") as saved_details_file:
+            existing_details = json.load(saved_details_file)
+    except:
+        existing_details = {"domain": domain_name, "cidr": ssh_ip_block}
+
+    with open(server_details_file, "w+") as saved_details_file:
+        # Get a ssl certificate for the domain
+        cert_details = existing_details.get("cert_details")
+        if cert_details is None:
+            print("Getting a certificate for the given domain...")
+            cert_details = ec2_helpers.get_certificate(session, domain_name)
+            existing_details["cert_details"] = cert_details
+            update_details(saved_details_file, existing_details)
+        else:
+            print("Using existing certificate")
+
+        # Create a hosted zone for the given domain
+        hosted_zone_id = existing_details.get("hosted_zone_id")
+        if hosted_zone_id is None:
+            print("Creating hosted zone for the given domain...")
+            hosted_zone_id = ec2_helpers.create_hosted_zone(session, domain_name)
+            existing_details["hosted_zone_id"] = hosted_zone_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing hosted zone {hosted_zone_id}")
+
+        # Create the VPC to hold the servers
+        vpc_details = existing_details.get("vpc_details")
+        if vpc_details is None:
+            print("Initializing VPC...")
+            vpc_details = ec2_helpers.create_mephisto_vpc(session)
+            existing_details["vpc_details"] = vpc_details
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing vpc {vpc_details['vpc_id']}")
+
+        # Set up a security group for everything
+        security_group_id = existing_details.get("security_group_id")
+        if security_group_id is None:
+            print("Creating security group...")
+            security_group_id = ec2_helpers.create_security_group(
+                session, vpc_details["vpc_id"], ssh_ip_block
+            )
+            existing_details["security_group_id"] = security_group_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing security group {security_group_id}")
+
+        # Create a keypair for the server
+        key_pair_filename = existing_details.get("key_pair_filename")
+        if key_pair_filename is None:
+            print(f"Generating keypair named {key_pair_name}")
+            key_pair_filename = ec2_helpers.create_key_pair(session, key_pair_name)
+            existing_details["key_pair_filename"] = key_pair_filename
+            existing_details["key_pair_name"] = key_pair_name
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing keypair at {key_pair_filename}")
+
+        # Create the instance running the fallback server
+        instance_id = existing_details.get("instance_id")
+        if instance_id is None:
+            print("Creating a new instance for fallback server...")
+            instance_id = ec2_helpers.create_instance(
+                session,
+                key_pair_name,
+                security_group_id,
+                vpc_details["subnet_1_id"],
+                "mephisto-default-fallover",
+                instance_type=instance_type,
+            )
+            existing_details["instance_id"] = instance_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing instance {instance_id}")
+
+        # Create load balancer
+        balancer_arn = existing_details.get("balancer_arn")
+        if balancer_arn is None:
+            print("Creating load balancer...")
+            balancer_arn = ec2_helpers.create_load_balancer(
+                session,
+                [vpc_details["subnet_1_id"], vpc_details["subnet_2_id"]],
+                security_group_id,
+                vpc_details["vpc_id"],
+            )
+
+            print("Registering to hosted zone")
+            ec2_helpers.register_zone_records(
+                session,
+                existing_details["hosted_zone_id"],
+                domain_name,
+                balancer_arn,
+                cert_details["Name"],
+                cert_details["Value"],
+            )
+
+            existing_details["balancer_arn"] = balancer_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing balancer {balancer_arn}")
+
+        # Create the target group for the fallback instance
+        target_group_arn = existing_details.get("target_group_arn")
+        if target_group_arn is None:
+            print("Creating target group...")
+            target_group_arn = ec2_helpers.create_target_group(
+                session, vpc_details["vpc_id"], instance_id
+            )
+            existing_details["target_group_arn"] = target_group_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing target group {target_group_arn}")
+
+        # Create listener in balancer to direct to target group
+        listener_arn = existing_details.get("listener_arn")
+        if listener_arn is None:
+            print("Creating listener for load balancer...")
+            listener_arn = ec2_helpers.configure_base_balancer(
+                session,
+                balancer_arn,
+                cert_details["arn"],
+                target_group_arn,
+            )
+            existing_details["listener_arn"] = listener_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing listener {listener_arn}")
+
+        # Finally, deploy the fallback server contents:
+        ec2_helpers.deploy_fallback_server(
+            session, instance_id, key_pair_name, access_logs_key
+        )
+        existing_details["access_logs_key"] = access_logs_key
+        update_details(saved_details_file, existing_details)
+
+    return existing_details
+
+
+# TODO(CLEAN) Hydrize
+def main():
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+    ec2_helpers.setup_ec2_credentials(iam_role_name)
+
+    domain_name = input("Please provide the domain name you will be using\n>> ")
+    ssh_ip_block = input("Provide the CIDR IP block for ssh access\n>> ")
+    access_logs_key = input(
+        "Please provide a key password to use for accessing server logs\n>> "
+    )
+    launch_ec2_fallback(iam_role_name, domain_name, ssh_ip_block, access_logs_key)
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + update_details(open_file, new_data: Dict[str, Any]): +
+ +
+ View Source +
def update_details(
+    open_file,
+    new_data: Dict[str, Any],
+):
+    """
+    Overwrite the contents of the open file with the given data.
+    """
+    open_file.seek(0)
+    open_file.truncate(0)
+    json.dump(new_data, open_file, sort_keys=True, indent=4)
+
+ +
+ +

Overwrite the contents of the open file with the given data.

+
+ + +
+
+
#   + + + def + launch_ec2_fallback( + iam_profile: str, + domain_name: str, + ssh_ip_block: str, + access_logs_key: str, + key_pair_name: str = 'mephisto-server-key', + server_details_file: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/servers/fallback.json', + instance_type: str = 't2.nano' +) -> Dict[str, Any]: +
+ +
+ View Source +
def launch_ec2_fallback(
+    iam_profile: str,  # Iam role name, should be saved in aws credentials
+    domain_name: str,
+    ssh_ip_block: str,
+    access_logs_key: str,
+    key_pair_name: str = DEFAULT_KEY_PAIR_NAME,
+    server_details_file: str = DEFAULT_FALLBACK_FILE,
+    instance_type: str = FALLBACK_INSTANCE_TYPE,
+) -> Dict[str, Any]:
+    """
+    This function is used to set up a mephisto
+    vpc and fallback server for the AWS setup. At the moment
+    it requires that you already have a domain registered,
+    and it is up to you to delegate the domain to the
+    amazon nameservers created by this function. This
+    function will request the ssl certificate from amazon
+
+    At the moment, it only works on the us-east region.
+    Feel free to open a PR to extend this functionality
+    if you need another region!
+    """
+    assert not domain_name.startswith("www."), (
+        "You should provide a domain name without www, like 'example.com', "
+        "or 'crowdsourcing.example.com'"
+    )
+    key_pair_name = DEFAULT_KEY_PAIR_NAME if key_pair_name is None else key_pair_name
+    server_details_file = (
+        DEFAULT_FALLBACK_FILE if server_details_file is None else server_details_file
+    )
+    instance_type = FALLBACK_INSTANCE_TYPE if instance_type is None else instance_type
+
+    session = boto3.Session(profile_name=iam_profile, region_name="us-east-2")
+
+    try:
+        with open(server_details_file, "r") as saved_details_file:
+            existing_details = json.load(saved_details_file)
+    except:
+        existing_details = {"domain": domain_name, "cidr": ssh_ip_block}
+
+    with open(server_details_file, "w+") as saved_details_file:
+        # Get a ssl certificate for the domain
+        cert_details = existing_details.get("cert_details")
+        if cert_details is None:
+            print("Getting a certificate for the given domain...")
+            cert_details = ec2_helpers.get_certificate(session, domain_name)
+            existing_details["cert_details"] = cert_details
+            update_details(saved_details_file, existing_details)
+        else:
+            print("Using existing certificate")
+
+        # Create a hosted zone for the given domain
+        hosted_zone_id = existing_details.get("hosted_zone_id")
+        if hosted_zone_id is None:
+            print("Creating hosted zone for the given domain...")
+            hosted_zone_id = ec2_helpers.create_hosted_zone(session, domain_name)
+            existing_details["hosted_zone_id"] = hosted_zone_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing hosted zone {hosted_zone_id}")
+
+        # Create the VPC to hold the servers
+        vpc_details = existing_details.get("vpc_details")
+        if vpc_details is None:
+            print("Initializing VPC...")
+            vpc_details = ec2_helpers.create_mephisto_vpc(session)
+            existing_details["vpc_details"] = vpc_details
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing vpc {vpc_details['vpc_id']}")
+
+        # Set up a security group for everything
+        security_group_id = existing_details.get("security_group_id")
+        if security_group_id is None:
+            print("Creating security group...")
+            security_group_id = ec2_helpers.create_security_group(
+                session, vpc_details["vpc_id"], ssh_ip_block
+            )
+            existing_details["security_group_id"] = security_group_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing security group {security_group_id}")
+
+        # Create a keypair for the server
+        key_pair_filename = existing_details.get("key_pair_filename")
+        if key_pair_filename is None:
+            print(f"Generating keypair named {key_pair_name}")
+            key_pair_filename = ec2_helpers.create_key_pair(session, key_pair_name)
+            existing_details["key_pair_filename"] = key_pair_filename
+            existing_details["key_pair_name"] = key_pair_name
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing keypair at {key_pair_filename}")
+
+        # Create the instance running the fallback server
+        instance_id = existing_details.get("instance_id")
+        if instance_id is None:
+            print("Creating a new instance for fallback server...")
+            instance_id = ec2_helpers.create_instance(
+                session,
+                key_pair_name,
+                security_group_id,
+                vpc_details["subnet_1_id"],
+                "mephisto-default-fallover",
+                instance_type=instance_type,
+            )
+            existing_details["instance_id"] = instance_id
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing instance {instance_id}")
+
+        # Create load balancer
+        balancer_arn = existing_details.get("balancer_arn")
+        if balancer_arn is None:
+            print("Creating load balancer...")
+            balancer_arn = ec2_helpers.create_load_balancer(
+                session,
+                [vpc_details["subnet_1_id"], vpc_details["subnet_2_id"]],
+                security_group_id,
+                vpc_details["vpc_id"],
+            )
+
+            print("Registering to hosted zone")
+            ec2_helpers.register_zone_records(
+                session,
+                existing_details["hosted_zone_id"],
+                domain_name,
+                balancer_arn,
+                cert_details["Name"],
+                cert_details["Value"],
+            )
+
+            existing_details["balancer_arn"] = balancer_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing balancer {balancer_arn}")
+
+        # Create the target group for the fallback instance
+        target_group_arn = existing_details.get("target_group_arn")
+        if target_group_arn is None:
+            print("Creating target group...")
+            target_group_arn = ec2_helpers.create_target_group(
+                session, vpc_details["vpc_id"], instance_id
+            )
+            existing_details["target_group_arn"] = target_group_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing target group {target_group_arn}")
+
+        # Create listener in balancer to direct to target group
+        listener_arn = existing_details.get("listener_arn")
+        if listener_arn is None:
+            print("Creating listener for load balancer...")
+            listener_arn = ec2_helpers.configure_base_balancer(
+                session,
+                balancer_arn,
+                cert_details["arn"],
+                target_group_arn,
+            )
+            existing_details["listener_arn"] = listener_arn
+            update_details(saved_details_file, existing_details)
+        else:
+            print(f"Using existing listener {listener_arn}")
+
+        # Finally, deploy the fallback server contents:
+        ec2_helpers.deploy_fallback_server(
+            session, instance_id, key_pair_name, access_logs_key
+        )
+        existing_details["access_logs_key"] = access_logs_key
+        update_details(saved_details_file, existing_details)
+
+    return existing_details
+
+ +
+ +

This function is used to set up a mephisto +vpc and fallback server for the AWS setup. At the moment +it requires that you already have a domain registered, +and it is up to you to delegate the domain to the +amazon nameservers created by this function. This +function will request the ssl certificate from amazon

+ +

At the moment, it only works on the us-east region. +Feel free to open a PR to extend this functionality +if you need another region!

+
+ + +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    iam_role_name = input("Please enter local profile name for IAM role\n>> ")
+    ec2_helpers.setup_ec2_credentials(iam_role_name)
+
+    domain_name = input("Please provide the domain name you will be using\n>> ")
+    ssh_ip_block = input("Provide the CIDR IP block for ssh access\n>> ")
+    access_logs_key = input(
+        "Please provide a key password to use for accessing server logs\n>> "
+    )
+    launch_ec2_fallback(iam_role_name, domain_name, ssh_ip_block, access_logs_key)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/heroku_architect.html b/docs/web/static/python_api/mephisto/abstractions/architects/heroku_architect.html new file mode 100644 index 000000000..e572571e7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/heroku_architect.html @@ -0,0 +1,1922 @@ + + + + + + + + + mephisto.abstractions.architects.heroku_architect API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.heroku_architect

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import getpass
+import glob
+import hashlib
+import netrc
+import os
+import platform
+import sh  # type: ignore
+import shlex
+import shutil
+import subprocess
+import sys
+import time
+import requests
+import re
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.utils.dirs import get_mephisto_tmp_dir
+from mephisto.abstractions.architect import Architect, ArchitectArgs
+from mephisto.abstractions.architects.router.build_router import build_router
+from mephisto.abstractions.architects.channels.websocket_channel import WebsocketChannel
+from mephisto.operations.registry import register_mephisto_abstraction
+from typing import Any, Tuple, List, Dict, Optional, TYPE_CHECKING, Callable
+
+if TYPE_CHECKING:
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+ARCHITECT_TYPE = "heroku"
+
+USER_NAME = getpass.getuser()
+HEROKU_SERVER_BUILD_DIRECTORY = "heroku_server"
+HEROKU_CLIENT_URL = (
+    "https://cli-assets.heroku.com/heroku-cli/channels/stable/heroku-cli"
+)
+
+HEROKU_WAIT_TIME = 3
+
+HEROKU_TMP_DIR = os.path.join(get_mephisto_tmp_dir(), "heroku")
+os.makedirs(HEROKU_TMP_DIR, exist_ok=True)
+
+
+@dataclass
+class HerokuArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    use_hobby: bool = field(
+        default=False, metadata={"help": "Launch on the Heroku Hobby tier"}
+    )
+    heroku_team: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku team to use for this launch"}
+    )
+    heroku_app_name: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku app name to use for this launch"}
+    )
+    heroku_config_args: Dict[str, str] = field(
+        default_factory=dict,
+        metadata={
+            "help": "str:str dict containing all heroku config variables to set for the app"
+        },
+    )
+
+
+@register_mephisto_abstraction()
+class HerokuArchitect(Architect):
+    """
+    Sets up a server on heroku and deploys the task on that server
+    """
+
+    ArgsClass = HerokuArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Ensure heroku credentials are setup, then prepare the necessary files
+        for launching for this task.
+
+        All necessary paths should be built in the init or stored in the database
+        such that a re-init on the same task run can pull the server information.
+
+        This means that we can shutdown a server that is still running after a
+        catastrophic failure.
+        """
+        # TODO(#102) put the expected info into the MephistoDB rather than storing here?
+        # Servers will have a status which needs to be kept track of.
+        self.args = args
+        self.task_run = task_run
+        self.deploy_name = f"{task_run.get_task().task_name}_{task_run.db_id}"
+        self.build_dir = build_dir_root
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.heroku_config_args = dict(args.architect.heroku_config_args)
+
+        # Cache-able parameters
+        self.__heroku_app_name: Optional[str] = args.architect.get(
+            "heroku_app_name", None
+        )
+        self.__heroku_executable_path: Optional[str] = None
+        self.__heroku_user_identifier: Optional[str] = None
+
+        self.created = False
+
+    def _get_socket_urls(self) -> List[str]:
+        """Returns the path to the heroku app socket"""
+        heroku_app_name = self.__get_app_name()
+        return ["wss://{}.herokuapp.com/".format(heroku_app_name)]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"heroku_channel_{self.deploy_name}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Heroku architects need to download the file
+        """
+        heroku_app_name = self.__get_app_name()
+        target_url = (
+            f"https://{heroku_app_name}.herokuapp.com/download_file/{target_filename}"
+        )
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+        try:
+            output = subprocess.check_output(
+                shlex.split(heroku_executable_path + " auth:whoami")
+            )
+        except subprocess.CalledProcessError:
+            raise Exception(
+                "A free Heroku account is required for launching tasks via "
+                "the HerokuArchitect. Please register at "
+                "https://signup.heroku.com/ and run `{} login -i` at the terminal "
+                "to login to Heroku before trying to use HerokuArchitect."
+                "".format(heroku_executable_path)
+            )
+        return
+
+    @staticmethod
+    def get_heroku_client_path() -> str:
+        """
+        Get the path to the heroku executable client, download a new one if it
+        doesnt exist.
+        """
+        print("Locating heroku...")
+        # Install Heroku CLI
+        os_name = None
+        bit_architecture = None
+
+        # Get the platform we are working on
+        if sys.platform == "darwin":  # Mac OS X
+            os_name = "darwin"
+        elif sys.platform.startswith("linux"):  # Linux
+            os_name = "linux"
+        else:
+            os_name = "windows"
+
+        # Find our architecture
+        bit_architecture_info = platform.architecture()[0]
+        if "64bit" in bit_architecture_info:
+            bit_architecture = "x64"
+        else:
+            bit_architecture = "x86"
+
+        # Find existing heroku files to use
+        existing_heroku_directory_names = glob.glob(
+            os.path.join(HEROKU_TMP_DIR, "heroku-cli-*")
+        )
+        if len(existing_heroku_directory_names) == 0:
+            print("Getting heroku")
+            if os.path.exists(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")):
+                os.remove(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz"))
+
+            # Get the heroku client and unzip
+            tar_path = os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")
+            sh.wget(
+                shlex.split(
+                    "{}-{}-{}.tar.gz -O {}".format(
+                        HEROKU_CLIENT_URL, os_name, bit_architecture, tar_path
+                    )
+                )
+            )
+            sh.tar(shlex.split(f"-xvzf {tar_path} -C {HEROKU_TMP_DIR}"))
+
+            # Clean up the tar
+            if os.path.exists(tar_path):
+                os.remove(tar_path)
+
+        heroku_directory_name = os.path.basename(
+            glob.glob(os.path.join(HEROKU_TMP_DIR, "heroku-cli-*"))[0]
+        )
+        heroku_directory_path = os.path.join(HEROKU_TMP_DIR, heroku_directory_name)
+        return os.path.join(heroku_directory_path, "bin", "heroku")
+
+    @staticmethod
+    def get_user_identifier() -> Tuple[str, str]:
+        """
+        Get heroku credentials for the current logged-in user
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+
+        # get heroku credentials
+        heroku_user_identifier = None
+        while not heroku_user_identifier:
+            try:
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:whoami")
+                )
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:token")
+                )
+                heroku_user_identifier = netrc.netrc(
+                    os.path.join(os.path.expanduser("~"), ".netrc")
+                ).hosts["api.heroku.com"][0]
+            except subprocess.CalledProcessError:
+                print(
+                    "A free Heroku account is required for launching Public tasks. "
+                    "Please register at https://signup.heroku.com/ and run `{} "
+                    "login -i` at the terminal to login to Heroku, and then run this "
+                    "program again.".format(heroku_executable_path)
+                )
+                raise Exception("Please login to heroku before trying again.")
+        return heroku_executable_path, heroku_user_identifier
+
+    def __get_heroku_client(self) -> Tuple[str, str]:
+        """
+        Get an authorized heroku client path and authorization token
+        """
+        if (
+            self.__heroku_executable_path is None
+            or self.__heroku_user_identifier is None
+        ):
+            (
+                heroku_executable_path,
+                heroku_user_identifier,
+            ) = HerokuArchitect.get_user_identifier()
+            self.__heroku_executable_path = heroku_executable_path
+            self.__heroku_user_identifier = heroku_user_identifier
+        return self.__heroku_executable_path, self.__heroku_user_identifier
+
+    def __get_build_directory(self) -> str:
+        """
+        Return the string where the server should be built in.
+        """
+        return os.path.join(
+            self.build_dir,
+            "{}_{}".format(HEROKU_SERVER_BUILD_DIRECTORY, self.deploy_name),
+        )
+
+    def __get_app_name(self) -> str:
+        """
+        Get the name of the heroku app associated with this task
+        """
+        if self.__heroku_app_name is None:
+            _, heroku_user_identifier = self.__get_heroku_client()
+            heroku_app_name = (
+                "{}-{}-{}".format(
+                    USER_NAME,
+                    self.deploy_name,
+                    hashlib.md5(heroku_user_identifier.encode("utf-8")).hexdigest(),
+                )
+            )[:30]
+            heroku_app_name = heroku_app_name.replace("_", "-")
+            while heroku_app_name[-1] == "-":
+                heroku_app_name = heroku_app_name[:-1]
+            self.__heroku_app_name = re.sub(r"[^a-zA-Z0-9-]", "", heroku_app_name)
+        return self.__heroku_app_name
+
+    def __compile_server(self) -> str:
+        """
+        Move the required task files to a specific directory to be deployed to
+        heroku directly. Return the location that the packaged files are
+        now prepared in.
+        """
+        print("Building server files...")
+        heroku_server_development_root = self.__get_build_directory()
+        os.makedirs(heroku_server_development_root)
+        heroku_server_development_path = self.server_dir = build_router(
+            heroku_server_development_root,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        return heroku_server_development_path
+
+    def __setup_heroku_server(self) -> str:
+        """
+        Deploy the server using the setup server directory, return the URL
+        """
+
+        heroku_executable_path, heroku_user_identifier = self.__get_heroku_client()
+        server_dir = self.__get_build_directory()
+
+        print("Heroku: Starting server...")
+
+        heroku_server_directory_path = os.path.join(server_dir, "router")
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} init"))
+
+        heroku_app_name = self.__get_app_name()
+
+        # Create or attach to the server
+        return_dir = os.getcwd()
+        os.chdir(heroku_server_directory_path)
+        try:
+            if self.args.architect.get("heroku_team", None) is not None:
+                subprocess.check_output(
+                    shlex.split(
+                        "{} create {} --team {}".format(
+                            heroku_executable_path,
+                            heroku_app_name,
+                            self.args.architect.heroku_team,
+                        )
+                    )
+                )
+            else:
+                subprocess.check_output(
+                    shlex.split(
+                        "{} create {}".format(heroku_executable_path, heroku_app_name)
+                    )
+                )
+                self.created = True
+        except subprocess.CalledProcessError as e:  # User has too many apps?
+            logger.exception(e, exc_info=True)
+            sh.rm(shlex.split("-rf {}".format(heroku_server_directory_path)))
+            raise Exception(
+                "An exception has occurred when launching your heroku app. This "
+                "can commonly occur when you have hit your limit on concurrent "
+                "apps in heroku, especially if you are running multiple tasks "
+                "at once. It also may occur if the app-name generated for your "
+                "task is using illegal characters for heroku. Check the logs "
+                "above for confirmation.\n"
+                "If the issue is indeed the concurrent server cap, Please wait for"
+                " some of your existing tasks to complete. If you have no tasks "
+                "running, login to heroku and delete some of the running apps or "
+                "verify your account to allow more concurrent apps"
+            )
+
+        # Enable WebSockets
+        try:
+            subprocess.check_output(
+                shlex.split(
+                    "{} features:enable http-session-affinity".format(
+                        heroku_executable_path
+                    )
+                )
+            )
+        except subprocess.CalledProcessError:  # Already enabled WebSockets
+            pass
+        os.chdir(return_dir)
+
+        # push config args, as desired
+        if len(self.heroku_config_args) > 0:
+            config_strs = [
+                f"{config_key}={config_val}"
+                for config_key, config_val in self.heroku_config_args.items()
+            ]
+            full_config_str = " ".join(config_strs)
+            subprocess.check_output(
+                shlex.split(
+                    f"{heroku_executable_path} config:set -a {heroku_app_name} {full_config_str}"
+                )
+            )
+
+        # commit and push to the heroku server
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} add -A"))
+        sh.git(shlex.split(f'-C {heroku_server_directory_path} commit -m "app"'))
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} push -f heroku master"))
+
+        os.chdir(heroku_server_directory_path)
+        subprocess.check_output(
+            shlex.split("{} ps:scale web=1".format(heroku_executable_path))
+        )
+
+        if self.args.architect.use_hobby is True:
+            try:
+                subprocess.check_output(
+                    shlex.split("{} dyno:type Hobby".format(heroku_executable_path))
+                )
+            except subprocess.CalledProcessError:  # User doesn't have hobby access
+                self.__delete_heroku_server()
+                sh.rm(shlex.split("-rf {}".format(heroku_server_directory_path)))
+                raise Exception(
+                    "Server launched with hobby flag but account cannot create "
+                    "hobby servers."
+                )
+        os.chdir(return_dir)
+
+        time.sleep(HEROKU_WAIT_TIME)
+
+        return "https://{}.herokuapp.com".format(heroku_app_name)
+
+    def __delete_heroku_server(self):
+        """
+        Remove the heroku server associated with this task run
+        """
+        heroku_executable_path, heroku_user_identifier = self.__get_heroku_client()
+        heroku_app_name = self.__get_app_name()
+        print("Heroku: Deleting server: {}".format(heroku_app_name))
+        subprocess.check_output(
+            shlex.split(
+                "{} destroy {} --confirm {}".format(
+                    heroku_executable_path, heroku_app_name, heroku_app_name
+                )
+            )
+        )
+        time.sleep(HEROKU_WAIT_TIME)
+
+    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        heroku_executable_path, _token = self.__get_heroku_client()
+        app_name = self.__get_app_name()
+        output = subprocess.check_output(shlex.split(heroku_executable_path + " apps"))
+        all_apps = str(output, "utf-8")
+        return app_name in all_apps
+
+    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_heroku_server()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        sh.rm(shlex.split("-rf {}".format(server_dir)))
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_heroku_server()
+
+ +
+ +
+
+
+ #   + + + class + HerokuArchitectArgs(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class HerokuArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    use_hobby: bool = field(
+        default=False, metadata={"help": "Launch on the Heroku Hobby tier"}
+    )
+    heroku_team: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku team to use for this launch"}
+    )
+    heroku_app_name: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku app name to use for this launch"}
+    )
+    heroku_config_args: Dict[str, str] = field(
+        default_factory=dict,
+        metadata={
+            "help": "str:str dict containing all heroku config variables to set for the app"
+        },
+    )
+
+ +
+ +

Additional arguments for configuring a heroku architect

+
+ + +
+
#   + + + HerokuArchitectArgs( + _architect_type: str = 'heroku', + server_type: str = 'node', + server_source_path: str = '???', + use_hobby: bool = False, + heroku_team: Union[str, NoneType] = '???', + heroku_app_name: Union[str, NoneType] = '???', + heroku_config_args: Dict[str, str] = <factory> +) +
+ + + + +
+
+
#   + + use_hobby: bool = False +
+ + + + +
+
+
#   + + heroku_team: Union[str, NoneType] = '???' +
+ + + + +
+
+
#   + + heroku_app_name: Union[str, NoneType] = '???' +
+ + + + +
+ +
+
+
+ #   + + + class + HerokuArchitect(mephisto.abstractions.architect.Architect): +
+ +
+ View Source +
class HerokuArchitect(Architect):
+    """
+    Sets up a server on heroku and deploys the task on that server
+    """
+
+    ArgsClass = HerokuArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Ensure heroku credentials are setup, then prepare the necessary files
+        for launching for this task.
+
+        All necessary paths should be built in the init or stored in the database
+        such that a re-init on the same task run can pull the server information.
+
+        This means that we can shutdown a server that is still running after a
+        catastrophic failure.
+        """
+        # TODO(#102) put the expected info into the MephistoDB rather than storing here?
+        # Servers will have a status which needs to be kept track of.
+        self.args = args
+        self.task_run = task_run
+        self.deploy_name = f"{task_run.get_task().task_name}_{task_run.db_id}"
+        self.build_dir = build_dir_root
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.heroku_config_args = dict(args.architect.heroku_config_args)
+
+        # Cache-able parameters
+        self.__heroku_app_name: Optional[str] = args.architect.get(
+            "heroku_app_name", None
+        )
+        self.__heroku_executable_path: Optional[str] = None
+        self.__heroku_user_identifier: Optional[str] = None
+
+        self.created = False
+
+    def _get_socket_urls(self) -> List[str]:
+        """Returns the path to the heroku app socket"""
+        heroku_app_name = self.__get_app_name()
+        return ["wss://{}.herokuapp.com/".format(heroku_app_name)]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"heroku_channel_{self.deploy_name}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Heroku architects need to download the file
+        """
+        heroku_app_name = self.__get_app_name()
+        target_url = (
+            f"https://{heroku_app_name}.herokuapp.com/download_file/{target_filename}"
+        )
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+        try:
+            output = subprocess.check_output(
+                shlex.split(heroku_executable_path + " auth:whoami")
+            )
+        except subprocess.CalledProcessError:
+            raise Exception(
+                "A free Heroku account is required for launching tasks via "
+                "the HerokuArchitect. Please register at "
+                "https://signup.heroku.com/ and run `{} login -i` at the terminal "
+                "to login to Heroku before trying to use HerokuArchitect."
+                "".format(heroku_executable_path)
+            )
+        return
+
+    @staticmethod
+    def get_heroku_client_path() -> str:
+        """
+        Get the path to the heroku executable client, download a new one if it
+        doesnt exist.
+        """
+        print("Locating heroku...")
+        # Install Heroku CLI
+        os_name = None
+        bit_architecture = None
+
+        # Get the platform we are working on
+        if sys.platform == "darwin":  # Mac OS X
+            os_name = "darwin"
+        elif sys.platform.startswith("linux"):  # Linux
+            os_name = "linux"
+        else:
+            os_name = "windows"
+
+        # Find our architecture
+        bit_architecture_info = platform.architecture()[0]
+        if "64bit" in bit_architecture_info:
+            bit_architecture = "x64"
+        else:
+            bit_architecture = "x86"
+
+        # Find existing heroku files to use
+        existing_heroku_directory_names = glob.glob(
+            os.path.join(HEROKU_TMP_DIR, "heroku-cli-*")
+        )
+        if len(existing_heroku_directory_names) == 0:
+            print("Getting heroku")
+            if os.path.exists(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")):
+                os.remove(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz"))
+
+            # Get the heroku client and unzip
+            tar_path = os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")
+            sh.wget(
+                shlex.split(
+                    "{}-{}-{}.tar.gz -O {}".format(
+                        HEROKU_CLIENT_URL, os_name, bit_architecture, tar_path
+                    )
+                )
+            )
+            sh.tar(shlex.split(f"-xvzf {tar_path} -C {HEROKU_TMP_DIR}"))
+
+            # Clean up the tar
+            if os.path.exists(tar_path):
+                os.remove(tar_path)
+
+        heroku_directory_name = os.path.basename(
+            glob.glob(os.path.join(HEROKU_TMP_DIR, "heroku-cli-*"))[0]
+        )
+        heroku_directory_path = os.path.join(HEROKU_TMP_DIR, heroku_directory_name)
+        return os.path.join(heroku_directory_path, "bin", "heroku")
+
+    @staticmethod
+    def get_user_identifier() -> Tuple[str, str]:
+        """
+        Get heroku credentials for the current logged-in user
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+
+        # get heroku credentials
+        heroku_user_identifier = None
+        while not heroku_user_identifier:
+            try:
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:whoami")
+                )
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:token")
+                )
+                heroku_user_identifier = netrc.netrc(
+                    os.path.join(os.path.expanduser("~"), ".netrc")
+                ).hosts["api.heroku.com"][0]
+            except subprocess.CalledProcessError:
+                print(
+                    "A free Heroku account is required for launching Public tasks. "
+                    "Please register at https://signup.heroku.com/ and run `{} "
+                    "login -i` at the terminal to login to Heroku, and then run this "
+                    "program again.".format(heroku_executable_path)
+                )
+                raise Exception("Please login to heroku before trying again.")
+        return heroku_executable_path, heroku_user_identifier
+
+    def __get_heroku_client(self) -> Tuple[str, str]:
+        """
+        Get an authorized heroku client path and authorization token
+        """
+        if (
+            self.__heroku_executable_path is None
+            or self.__heroku_user_identifier is None
+        ):
+            (
+                heroku_executable_path,
+                heroku_user_identifier,
+            ) = HerokuArchitect.get_user_identifier()
+            self.__heroku_executable_path = heroku_executable_path
+            self.__heroku_user_identifier = heroku_user_identifier
+        return self.__heroku_executable_path, self.__heroku_user_identifier
+
+    def __get_build_directory(self) -> str:
+        """
+        Return the string where the server should be built in.
+        """
+        return os.path.join(
+            self.build_dir,
+            "{}_{}".format(HEROKU_SERVER_BUILD_DIRECTORY, self.deploy_name),
+        )
+
+    def __get_app_name(self) -> str:
+        """
+        Get the name of the heroku app associated with this task
+        """
+        if self.__heroku_app_name is None:
+            _, heroku_user_identifier = self.__get_heroku_client()
+            heroku_app_name = (
+                "{}-{}-{}".format(
+                    USER_NAME,
+                    self.deploy_name,
+                    hashlib.md5(heroku_user_identifier.encode("utf-8")).hexdigest(),
+                )
+            )[:30]
+            heroku_app_name = heroku_app_name.replace("_", "-")
+            while heroku_app_name[-1] == "-":
+                heroku_app_name = heroku_app_name[:-1]
+            self.__heroku_app_name = re.sub(r"[^a-zA-Z0-9-]", "", heroku_app_name)
+        return self.__heroku_app_name
+
+    def __compile_server(self) -> str:
+        """
+        Move the required task files to a specific directory to be deployed to
+        heroku directly. Return the location that the packaged files are
+        now prepared in.
+        """
+        print("Building server files...")
+        heroku_server_development_root = self.__get_build_directory()
+        os.makedirs(heroku_server_development_root)
+        heroku_server_development_path = self.server_dir = build_router(
+            heroku_server_development_root,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        return heroku_server_development_path
+
+    def __setup_heroku_server(self) -> str:
+        """
+        Deploy the server using the setup server directory, return the URL
+        """
+
+        heroku_executable_path, heroku_user_identifier = self.__get_heroku_client()
+        server_dir = self.__get_build_directory()
+
+        print("Heroku: Starting server...")
+
+        heroku_server_directory_path = os.path.join(server_dir, "router")
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} init"))
+
+        heroku_app_name = self.__get_app_name()
+
+        # Create or attach to the server
+        return_dir = os.getcwd()
+        os.chdir(heroku_server_directory_path)
+        try:
+            if self.args.architect.get("heroku_team", None) is not None:
+                subprocess.check_output(
+                    shlex.split(
+                        "{} create {} --team {}".format(
+                            heroku_executable_path,
+                            heroku_app_name,
+                            self.args.architect.heroku_team,
+                        )
+                    )
+                )
+            else:
+                subprocess.check_output(
+                    shlex.split(
+                        "{} create {}".format(heroku_executable_path, heroku_app_name)
+                    )
+                )
+                self.created = True
+        except subprocess.CalledProcessError as e:  # User has too many apps?
+            logger.exception(e, exc_info=True)
+            sh.rm(shlex.split("-rf {}".format(heroku_server_directory_path)))
+            raise Exception(
+                "An exception has occurred when launching your heroku app. This "
+                "can commonly occur when you have hit your limit on concurrent "
+                "apps in heroku, especially if you are running multiple tasks "
+                "at once. It also may occur if the app-name generated for your "
+                "task is using illegal characters for heroku. Check the logs "
+                "above for confirmation.\n"
+                "If the issue is indeed the concurrent server cap, Please wait for"
+                " some of your existing tasks to complete. If you have no tasks "
+                "running, login to heroku and delete some of the running apps or "
+                "verify your account to allow more concurrent apps"
+            )
+
+        # Enable WebSockets
+        try:
+            subprocess.check_output(
+                shlex.split(
+                    "{} features:enable http-session-affinity".format(
+                        heroku_executable_path
+                    )
+                )
+            )
+        except subprocess.CalledProcessError:  # Already enabled WebSockets
+            pass
+        os.chdir(return_dir)
+
+        # push config args, as desired
+        if len(self.heroku_config_args) > 0:
+            config_strs = [
+                f"{config_key}={config_val}"
+                for config_key, config_val in self.heroku_config_args.items()
+            ]
+            full_config_str = " ".join(config_strs)
+            subprocess.check_output(
+                shlex.split(
+                    f"{heroku_executable_path} config:set -a {heroku_app_name} {full_config_str}"
+                )
+            )
+
+        # commit and push to the heroku server
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} add -A"))
+        sh.git(shlex.split(f'-C {heroku_server_directory_path} commit -m "app"'))
+        sh.git(shlex.split(f"-C {heroku_server_directory_path} push -f heroku master"))
+
+        os.chdir(heroku_server_directory_path)
+        subprocess.check_output(
+            shlex.split("{} ps:scale web=1".format(heroku_executable_path))
+        )
+
+        if self.args.architect.use_hobby is True:
+            try:
+                subprocess.check_output(
+                    shlex.split("{} dyno:type Hobby".format(heroku_executable_path))
+                )
+            except subprocess.CalledProcessError:  # User doesn't have hobby access
+                self.__delete_heroku_server()
+                sh.rm(shlex.split("-rf {}".format(heroku_server_directory_path)))
+                raise Exception(
+                    "Server launched with hobby flag but account cannot create "
+                    "hobby servers."
+                )
+        os.chdir(return_dir)
+
+        time.sleep(HEROKU_WAIT_TIME)
+
+        return "https://{}.herokuapp.com".format(heroku_app_name)
+
+    def __delete_heroku_server(self):
+        """
+        Remove the heroku server associated with this task run
+        """
+        heroku_executable_path, heroku_user_identifier = self.__get_heroku_client()
+        heroku_app_name = self.__get_app_name()
+        print("Heroku: Deleting server: {}".format(heroku_app_name))
+        subprocess.check_output(
+            shlex.split(
+                "{} destroy {} --confirm {}".format(
+                    heroku_executable_path, heroku_app_name, heroku_app_name
+                )
+            )
+        )
+        time.sleep(HEROKU_WAIT_TIME)
+
+    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        heroku_executable_path, _token = self.__get_heroku_client()
+        app_name = self.__get_app_name()
+        output = subprocess.check_output(shlex.split(heroku_executable_path + " apps"))
+        all_apps = str(output, "utf-8")
+        return app_name in all_apps
+
+    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_heroku_server()
+
+    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        sh.rm(shlex.split("-rf {}".format(server_dir)))
+
+    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_heroku_server()
+
+ +
+ +

Sets up a server on heroku and deploys the task on that server

+
+ + +
+
#   + + + HerokuArchitect( + db: mephisto.abstractions.database.MephistoDB, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + task_run: mephisto.data_model.task_run.TaskRun, + build_dir_root: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """
+        Ensure heroku credentials are setup, then prepare the necessary files
+        for launching for this task.
+
+        All necessary paths should be built in the init or stored in the database
+        such that a re-init on the same task run can pull the server information.
+
+        This means that we can shutdown a server that is still running after a
+        catastrophic failure.
+        """
+        # TODO(#102) put the expected info into the MephistoDB rather than storing here?
+        # Servers will have a status which needs to be kept track of.
+        self.args = args
+        self.task_run = task_run
+        self.deploy_name = f"{task_run.get_task().task_name}_{task_run.db_id}"
+        self.build_dir = build_dir_root
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+        self.heroku_config_args = dict(args.architect.heroku_config_args)
+
+        # Cache-able parameters
+        self.__heroku_app_name: Optional[str] = args.architect.get(
+            "heroku_app_name", None
+        )
+        self.__heroku_executable_path: Optional[str] = None
+        self.__heroku_user_identifier: Optional[str] = None
+
+        self.created = False
+
+ +
+ +

Ensure heroku credentials are setup, then prepare the necessary files +for launching for this task.

+ +

All necessary paths should be built in the init or stored in the database +such that a re-init on the same task run can pull the server information.

+ +

This means that we can shutdown a server that is still running after a +catastrophic failure.

+
+ + +
+
+
#   + + ARCHITECT_TYPE: str = 'heroku' +
+ + + + +
+
+
#   + + + def + get_channels( + self, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType] +) -> list[mephisto.abstractions._subcomponents.channel.Channel]: +
+ +
+ View Source +
    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"heroku_channel_{self.deploy_name}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+ +
+ +

Return a list of all relevant channels that the ClientIOHandler +will need to register to in order to function

+
+ + +
+
+
#   + + + def + download_file(self, target_filename: str, save_dir: str) -> None: +
+ +
+ View Source +
    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Heroku architects need to download the file
+        """
+        heroku_app_name = self.__get_app_name()
+        target_url = (
+            f"https://{heroku_app_name}.herokuapp.com/download_file/{target_filename}"
+        )
+        dest_path = os.path.join(save_dir, target_filename)
+        r = requests.get(target_url, stream=True)
+
+        with open(dest_path, "wb") as out_file:
+            for chunk in r.iter_content(chunk_size=1024):
+                if chunk:
+                    out_file.write(chunk)
+
+ +
+ +

Heroku architects need to download the file

+
+ + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work.
+
+        This should include throwing an exception if the architect
+        needs login details or something similar given the
+        arguments passed in.
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+        try:
+            output = subprocess.check_output(
+                shlex.split(heroku_executable_path + " auth:whoami")
+            )
+        except subprocess.CalledProcessError:
+            raise Exception(
+                "A free Heroku account is required for launching tasks via "
+                "the HerokuArchitect. Please register at "
+                "https://signup.heroku.com/ and run `{} login -i` at the terminal "
+                "to login to Heroku before trying to use HerokuArchitect."
+                "".format(heroku_executable_path)
+            )
+        return
+
+ +
+ +

Assert that the provided arguments are valid. Should +fail if a task launched with these arguments would +not work.

+ +

This should include throwing an exception if the architect +needs login details or something similar given the +arguments passed in.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + get_heroku_client_path() -> str: +
+ +
+ View Source +
    @staticmethod
+    def get_heroku_client_path() -> str:
+        """
+        Get the path to the heroku executable client, download a new one if it
+        doesnt exist.
+        """
+        print("Locating heroku...")
+        # Install Heroku CLI
+        os_name = None
+        bit_architecture = None
+
+        # Get the platform we are working on
+        if sys.platform == "darwin":  # Mac OS X
+            os_name = "darwin"
+        elif sys.platform.startswith("linux"):  # Linux
+            os_name = "linux"
+        else:
+            os_name = "windows"
+
+        # Find our architecture
+        bit_architecture_info = platform.architecture()[0]
+        if "64bit" in bit_architecture_info:
+            bit_architecture = "x64"
+        else:
+            bit_architecture = "x86"
+
+        # Find existing heroku files to use
+        existing_heroku_directory_names = glob.glob(
+            os.path.join(HEROKU_TMP_DIR, "heroku-cli-*")
+        )
+        if len(existing_heroku_directory_names) == 0:
+            print("Getting heroku")
+            if os.path.exists(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")):
+                os.remove(os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz"))
+
+            # Get the heroku client and unzip
+            tar_path = os.path.join(HEROKU_TMP_DIR, "heroku.tar.gz")
+            sh.wget(
+                shlex.split(
+                    "{}-{}-{}.tar.gz -O {}".format(
+                        HEROKU_CLIENT_URL, os_name, bit_architecture, tar_path
+                    )
+                )
+            )
+            sh.tar(shlex.split(f"-xvzf {tar_path} -C {HEROKU_TMP_DIR}"))
+
+            # Clean up the tar
+            if os.path.exists(tar_path):
+                os.remove(tar_path)
+
+        heroku_directory_name = os.path.basename(
+            glob.glob(os.path.join(HEROKU_TMP_DIR, "heroku-cli-*"))[0]
+        )
+        heroku_directory_path = os.path.join(HEROKU_TMP_DIR, heroku_directory_name)
+        return os.path.join(heroku_directory_path, "bin", "heroku")
+
+ +
+ +

Get the path to the heroku executable client, download a new one if it +doesnt exist.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + get_user_identifier() -> Tuple[str, str]: +
+ +
+ View Source +
    @staticmethod
+    def get_user_identifier() -> Tuple[str, str]:
+        """
+        Get heroku credentials for the current logged-in user
+        """
+        heroku_executable_path = HerokuArchitect.get_heroku_client_path()
+
+        # get heroku credentials
+        heroku_user_identifier = None
+        while not heroku_user_identifier:
+            try:
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:whoami")
+                )
+                output = subprocess.check_output(
+                    shlex.split(heroku_executable_path + " auth:token")
+                )
+                heroku_user_identifier = netrc.netrc(
+                    os.path.join(os.path.expanduser("~"), ".netrc")
+                ).hosts["api.heroku.com"][0]
+            except subprocess.CalledProcessError:
+                print(
+                    "A free Heroku account is required for launching Public tasks. "
+                    "Please register at https://signup.heroku.com/ and run `{} "
+                    "login -i` at the terminal to login to Heroku, and then run this "
+                    "program again.".format(heroku_executable_path)
+                )
+                raise Exception("Please login to heroku before trying again.")
+        return heroku_executable_path, heroku_user_identifier
+
+ +
+ +

Get heroku credentials for the current logged-in user

+
+ + +
+
+
#   + + + def + server_is_running(self) -> bool: +
+ +
+ View Source +
    def server_is_running(self) -> bool:
+        """
+        Utility function to check if the given heroku app (by app-name) is
+        still running
+        """
+        heroku_executable_path, _token = self.__get_heroku_client()
+        app_name = self.__get_app_name()
+        output = subprocess.check_output(shlex.split(heroku_executable_path + " apps"))
+        all_apps = str(output, "utf-8")
+        return app_name in all_apps
+
+ +
+ +

Utility function to check if the given heroku app (by app-name) is +still running

+
+ + +
+
+
#   + + + def + build_is_clean(self) -> bool: +
+ +
+ View Source +
    def build_is_clean(self) -> bool:
+        """
+        Utility function to see if the build has been cleaned up
+        """
+        server_dir = self.__get_build_directory()
+        return not os.path.exists(server_dir)
+
+ +
+ +

Utility function to see if the build has been cleaned up

+
+ + +
+
+
#   + + + def + prepare(self) -> str: +
+ +
+ View Source +
    def prepare(self) -> str:
+        """
+        Produce the server files that will be deployed to the server
+        """
+        return self.__compile_server()
+
+ +
+ +

Produce the server files that will be deployed to the server

+
+ + +
+
+
#   + + + def + deploy(self) -> str: +
+ +
+ View Source +
    def deploy(self) -> str:
+        """
+        Launch the server, and push the task files to the server. Return
+        the server URL
+        """
+        return self.__setup_heroku_server()
+
+ +
+ +

Launch the server, and push the task files to the server. Return +the server URL

+
+ + +
+
+
#   + + + def + cleanup(self) -> None: +
+ +
+ View Source +
    def cleanup(self) -> None:
+        """
+        Remove any files that were used for the deployment process that
+        no longer need to be kept track of now that the task has
+        been launched.
+        """
+        server_dir = self.__get_build_directory()
+        sh.rm(shlex.split("-rf {}".format(server_dir)))
+
+ +
+ +

Remove any files that were used for the deployment process that +no longer need to be kept track of now that the task has +been launched.

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """
+        Shut down the server launched by this Architect, as stored
+        in the db.
+        """
+        if self.created:  # only delete the server if it's created by us
+            self.__delete_heroku_server()
+
+ +
+ +

Shut down the server launched by this Architect, as stored +in the db.

+
+ + +
+
+
+
+ #   + + + class + HerokuArchitect.ArgsClass(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class HerokuArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a heroku architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    use_hobby: bool = field(
+        default=False, metadata={"help": "Launch on the Heroku Hobby tier"}
+    )
+    heroku_team: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku team to use for this launch"}
+    )
+    heroku_app_name: Optional[str] = field(
+        default=MISSING, metadata={"help": "Heroku app name to use for this launch"}
+    )
+    heroku_config_args: Dict[str, str] = field(
+        default_factory=dict,
+        metadata={
+            "help": "str:str dict containing all heroku config variables to set for the app"
+        },
+    )
+
+ +
+ +

Additional arguments for configuring a heroku architect

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/local_architect.html b/docs/web/static/python_api/mephisto/abstractions/architects/local_architect.html new file mode 100644 index 000000000..7a244f1e6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/local_architect.html @@ -0,0 +1,1057 @@ + + + + + + + + + mephisto.abstractions.architects.local_architect API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.local_architect

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import signal
+import subprocess
+import sh  # type: ignore
+import shutil
+import shlex
+import time
+import requests
+
+from mephisto.abstractions.architect import Architect, ArchitectArgs
+from dataclasses import dataclass, field
+from mephisto.operations.registry import register_mephisto_abstraction
+from typing import Any, Optional, Dict, List, TYPE_CHECKING, Callable
+
+if TYPE_CHECKING:
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+    from argparse import _ArgumentGroup as ArgumentGroup
+    from omegaconf import DictConfig
+    from mephisto.abstractions.blueprint import SharedTaskState
+
+from mephisto.abstractions.architects.router.build_router import build_router
+from mephisto.abstractions.architects.channels.websocket_channel import WebsocketChannel
+from mephisto.utils.dirs import get_mephisto_tmp_dir
+
+ARCHITECT_TYPE = "local"
+
+
+@dataclass
+class LocalArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a local architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    hostname: str = field(
+        default="localhost", metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+
+@register_mephisto_abstraction()
+class LocalArchitect(Architect):
+    """
+    Provides methods for setting up a server locally and deploying tasks
+    onto that server.
+    """
+
+    ArgsClass = LocalArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        # TODO(#102) move some of this into the db, server status
+        # needs to be in order to restart
+        self.server_process_pid: Optional[int] = None
+        self.server_process: Optional[subprocess.Popen] = None
+        self.server_dir: Optional[str] = None
+        self.running_dir: Optional[str] = None
+        self.hostname: Optional[str] = args.architect.hostname
+        self.port: Optional[str] = args.architect.port
+        self.cleanup_called = False
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+
+    def _get_socket_urls(self) -> List[str]:
+        """Return the path to the local server socket"""
+        assert self.hostname is not None, "No hostname for socket"
+        assert self.port is not None, "No ports for socket"
+        if "https://" in self.hostname:
+            basename = self.hostname.split("https://")[1]
+            protocol = "wss"
+        elif "http://" in self.hostname:
+            basename = self.hostname.split("http://")[1]
+            protocol = "ws"
+        else:
+            basename = self.hostname
+            protocol = "ws"
+
+        if basename in ["localhost", "127.0.0.1"]:
+            protocol = "ws"
+
+        return [f"{protocol}://{basename}:{self.port}/"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"local_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Local architects can just move from the local directory
+        """
+        assert self.running_dir is not None, "cannot download a file if not running"
+        source_file = os.path.join("/tmp/", target_filename)
+        dest_path = os.path.join(save_dir, target_filename)
+        shutil.copy2(source_file, dest_path)
+
+    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.server_dir = build_router(
+            self.build_dir,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        return self.server_dir
+
+    def deploy(self) -> str:
+        """Deploy the server from a local folder for this task"""
+        assert self.server_dir is not None, "Deploy called before prepare"
+        self.running_dir = os.path.join(
+            get_mephisto_tmp_dir(), f"local_server_{self.task_run_id}", "server"
+        )
+        shutil.copytree(self.server_dir, self.running_dir, symlinks=True)
+
+        return_dir = os.getcwd()
+        os.chdir(self.running_dir)
+        if self.server_type == "node":
+            self.server_process = subprocess.Popen(
+                ["node", "server.js"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        elif self.server_type == "flask":
+            self.server_process = subprocess.Popen(
+                ["python", "app.py"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        my_process = self.server_process
+        assert my_process is not None, "Cannot start without a process..."
+        self.server_process_pid = my_process.pid
+        os.chdir(return_dir)
+
+        time.sleep(1)
+        print("Server running locally with pid {}.".format(self.server_process_pid))
+        host = self.hostname
+        port = self.port
+        if host is None:
+            host = input(
+                "Please enter the public server address, like https://hostname.com: "
+            )
+            self.hostname = host
+        if port is None:
+            port = input("Please enter the port given above, likely 3000: ")
+            self.port = port
+        return "{}:{}".format(host, port)
+
+    def cleanup(self) -> None:
+        """Cleanup the built directory"""
+        assert self.server_dir is not None, "Cleanup called before prepare"
+        sh.rm(shlex.split("-rf " + self.server_dir))
+
+    def shutdown(self) -> None:
+        """Find the server process, shut it down, then remove the build directory"""
+        assert self.running_dir is not None, "shutdown called before deploy"
+        if self.server_process is None:
+            assert self.server_process_pid is not None, "No server id to kill"
+            os.kill(self.server_process_pid, signal.SIGTERM)
+        else:
+            self.server_process.terminate()
+            self.server_process.wait()
+        sh.rm(shlex.split("-rf " + self.running_dir))
+
+ +
+ +
+
+
+ #   + + + class + LocalArchitectArgs(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class LocalArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a local architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    hostname: str = field(
+        default="localhost", metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+ +
+ +

Additional arguments for configuring a local architect

+
+ + +
+
#   + + + LocalArchitectArgs( + _architect_type: str = 'local', + server_type: str = 'node', + server_source_path: str = '???', + hostname: str = 'localhost', + port: str = '3000' +) +
+ + + + +
+
+
#   + + hostname: str = 'localhost' +
+ + + + +
+
+
#   + + port: str = '3000' +
+ + + + +
+ +
+
+
+ #   + + + class + LocalArchitect(mephisto.abstractions.architect.Architect): +
+ +
+ View Source +
class LocalArchitect(Architect):
+    """
+    Provides methods for setting up a server locally and deploying tasks
+    onto that server.
+    """
+
+    ArgsClass = LocalArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        # TODO(#102) move some of this into the db, server status
+        # needs to be in order to restart
+        self.server_process_pid: Optional[int] = None
+        self.server_process: Optional[subprocess.Popen] = None
+        self.server_dir: Optional[str] = None
+        self.running_dir: Optional[str] = None
+        self.hostname: Optional[str] = args.architect.hostname
+        self.port: Optional[str] = args.architect.port
+        self.cleanup_called = False
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+
+    def _get_socket_urls(self) -> List[str]:
+        """Return the path to the local server socket"""
+        assert self.hostname is not None, "No hostname for socket"
+        assert self.port is not None, "No ports for socket"
+        if "https://" in self.hostname:
+            basename = self.hostname.split("https://")[1]
+            protocol = "wss"
+        elif "http://" in self.hostname:
+            basename = self.hostname.split("http://")[1]
+            protocol = "ws"
+        else:
+            basename = self.hostname
+            protocol = "ws"
+
+        if basename in ["localhost", "127.0.0.1"]:
+            protocol = "ws"
+
+        return [f"{protocol}://{basename}:{self.port}/"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"local_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Local architects can just move from the local directory
+        """
+        assert self.running_dir is not None, "cannot download a file if not running"
+        source_file = os.path.join("/tmp/", target_filename)
+        dest_path = os.path.join(save_dir, target_filename)
+        shutil.copy2(source_file, dest_path)
+
+    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.server_dir = build_router(
+            self.build_dir,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        return self.server_dir
+
+    def deploy(self) -> str:
+        """Deploy the server from a local folder for this task"""
+        assert self.server_dir is not None, "Deploy called before prepare"
+        self.running_dir = os.path.join(
+            get_mephisto_tmp_dir(), f"local_server_{self.task_run_id}", "server"
+        )
+        shutil.copytree(self.server_dir, self.running_dir, symlinks=True)
+
+        return_dir = os.getcwd()
+        os.chdir(self.running_dir)
+        if self.server_type == "node":
+            self.server_process = subprocess.Popen(
+                ["node", "server.js"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        elif self.server_type == "flask":
+            self.server_process = subprocess.Popen(
+                ["python", "app.py"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        my_process = self.server_process
+        assert my_process is not None, "Cannot start without a process..."
+        self.server_process_pid = my_process.pid
+        os.chdir(return_dir)
+
+        time.sleep(1)
+        print("Server running locally with pid {}.".format(self.server_process_pid))
+        host = self.hostname
+        port = self.port
+        if host is None:
+            host = input(
+                "Please enter the public server address, like https://hostname.com: "
+            )
+            self.hostname = host
+        if port is None:
+            port = input("Please enter the port given above, likely 3000: ")
+            self.port = port
+        return "{}:{}".format(host, port)
+
+    def cleanup(self) -> None:
+        """Cleanup the built directory"""
+        assert self.server_dir is not None, "Cleanup called before prepare"
+        sh.rm(shlex.split("-rf " + self.server_dir))
+
+    def shutdown(self) -> None:
+        """Find the server process, shut it down, then remove the build directory"""
+        assert self.running_dir is not None, "shutdown called before deploy"
+        if self.server_process is None:
+            assert self.server_process_pid is not None, "No server id to kill"
+            os.kill(self.server_process_pid, signal.SIGTERM)
+        else:
+            self.server_process.terminate()
+            self.server_process.wait()
+        sh.rm(shlex.split("-rf " + self.running_dir))
+
+ +
+ +

Provides methods for setting up a server locally and deploying tasks +onto that server.

+
+ + +
+
#   + + + LocalArchitect( + db: mephisto.abstractions.database.MephistoDB, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + task_run: mephisto.data_model.task_run.TaskRun, + build_dir_root: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        # TODO(#102) move some of this into the db, server status
+        # needs to be in order to restart
+        self.server_process_pid: Optional[int] = None
+        self.server_process: Optional[subprocess.Popen] = None
+        self.server_dir: Optional[str] = None
+        self.running_dir: Optional[str] = None
+        self.hostname: Optional[str] = args.architect.hostname
+        self.port: Optional[str] = args.architect.port
+        self.cleanup_called = False
+        self.server_type = args.architect.server_type
+        self.server_source_path = args.architect.get("server_source_path", None)
+
+ +
+ +

Create an architect for use in testing

+
+ + +
+
+
#   + + ARCHITECT_TYPE: str = 'local' +
+ + + + +
+
+
#   + + + def + get_channels( + self, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType] +) -> list[mephisto.abstractions._subcomponents.channel.Channel]: +
+ +
+ View Source +
    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"local_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+ +
+ +

Return a list of all relevant channels that the ClientIOHandler +will need to register to in order to function

+
+ + +
+
+
#   + + + def + download_file(self, target_filename: str, save_dir: str) -> None: +
+ +
+ View Source +
    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Local architects can just move from the local directory
+        """
+        assert self.running_dir is not None, "cannot download a file if not running"
+        source_file = os.path.join("/tmp/", target_filename)
+        dest_path = os.path.join(save_dir, target_filename)
+        shutil.copy2(source_file, dest_path)
+
+ +
+ +

Local architects can just move from the local directory

+
+ + +
+
+
#   + + + def + prepare(self) -> str: +
+ +
+ View Source +
    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.server_dir = build_router(
+            self.build_dir,
+            self.task_run,
+            version=self.server_type,
+            server_source_path=self.server_source_path,
+        )
+        return self.server_dir
+
+ +
+ +

Mark the preparation call

+
+ + +
+
+
#   + + + def + deploy(self) -> str: +
+ +
+ View Source +
    def deploy(self) -> str:
+        """Deploy the server from a local folder for this task"""
+        assert self.server_dir is not None, "Deploy called before prepare"
+        self.running_dir = os.path.join(
+            get_mephisto_tmp_dir(), f"local_server_{self.task_run_id}", "server"
+        )
+        shutil.copytree(self.server_dir, self.running_dir, symlinks=True)
+
+        return_dir = os.getcwd()
+        os.chdir(self.running_dir)
+        if self.server_type == "node":
+            self.server_process = subprocess.Popen(
+                ["node", "server.js"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        elif self.server_type == "flask":
+            self.server_process = subprocess.Popen(
+                ["python", "app.py"],
+                preexec_fn=os.setpgrp,
+                env=dict(os.environ, PORT=f"{self.port}"),
+            )
+        my_process = self.server_process
+        assert my_process is not None, "Cannot start without a process..."
+        self.server_process_pid = my_process.pid
+        os.chdir(return_dir)
+
+        time.sleep(1)
+        print("Server running locally with pid {}.".format(self.server_process_pid))
+        host = self.hostname
+        port = self.port
+        if host is None:
+            host = input(
+                "Please enter the public server address, like https://hostname.com: "
+            )
+            self.hostname = host
+        if port is None:
+            port = input("Please enter the port given above, likely 3000: ")
+            self.port = port
+        return "{}:{}".format(host, port)
+
+ +
+ +

Deploy the server from a local folder for this task

+
+ + +
+
+
#   + + + def + cleanup(self) -> None: +
+ +
+ View Source +
    def cleanup(self) -> None:
+        """Cleanup the built directory"""
+        assert self.server_dir is not None, "Cleanup called before prepare"
+        sh.rm(shlex.split("-rf " + self.server_dir))
+
+ +
+ +

Cleanup the built directory

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Find the server process, shut it down, then remove the build directory"""
+        assert self.running_dir is not None, "shutdown called before deploy"
+        if self.server_process is None:
+            assert self.server_process_pid is not None, "No server id to kill"
+            os.kill(self.server_process_pid, signal.SIGTERM)
+        else:
+            self.server_process.terminate()
+            self.server_process.wait()
+        sh.rm(shlex.split("-rf " + self.running_dir))
+
+ +
+ +

Find the server process, shut it down, then remove the build directory

+
+ + +
+ +
+
+
+ #   + + + class + LocalArchitect.ArgsClass(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class LocalArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a local architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    hostname: str = field(
+        default="localhost", metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+ +
+ +

Additional arguments for configuring a local architect

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/mock_architect.html b/docs/web/static/python_api/mephisto/abstractions/architects/mock_architect.html new file mode 100644 index 000000000..ab1234185 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/mock_architect.html @@ -0,0 +1,2190 @@ + + + + + + + + + mephisto.abstractions.architects.mock_architect API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.mock_architect

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import tornado
+from tornado.websocket import WebSocketHandler
+import os
+import threading
+import uuid
+import json
+import time
+
+from mephisto.abstractions.architect import Architect, ArchitectArgs
+from dataclasses import dataclass, field
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model.packet import (
+    PACKET_TYPE_ALIVE,
+    PACKET_TYPE_SUBMIT_ONBOARDING,
+    PACKET_TYPE_SUBMIT_UNIT,
+    PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE,
+    PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+    PACKET_TYPE_REGISTER_AGENT,
+    PACKET_TYPE_AGENT_DETAILS,
+    PACKET_TYPE_UPDATE_STATUS,
+    PACKET_TYPE_REQUEST_STATUSES,
+    PACKET_TYPE_RETURN_STATUSES,
+    PACKET_TYPE_ERROR,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+from mephisto.abstractions.architects.channels.websocket_channel import WebsocketChannel
+from typing import List, Dict, Any, Optional, TYPE_CHECKING, Callable
+
+if TYPE_CHECKING:
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+    from argparse import _ArgumentGroup as ArgumentGroup
+    from omegaconf import DictConfig
+    from mephisto.abstractions.blueprint import SharedTaskState
+
+MOCK_DEPLOY_URL = "MOCK_DEPLOY_URL"
+ARCHITECT_TYPE = "mock"
+
+
+def get_rand_id():
+    return str(uuid.uuid4())
+
+
+@dataclass
+class MockArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a mock architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    should_run_server: bool = field(
+        default=False, metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+
+class SocketHandler(WebSocketHandler):
+    def __init__(self, *args, **kwargs):
+        self.subs: Dict[int, "SocketHandler"] = kwargs.pop("subs")
+        self.app: "MockServer" = kwargs.pop("app")
+        self.sid = get_rand_id()
+        super().__init__(*args, **kwargs)
+
+    def open(self):
+        """
+        Opens a websocket and assigns a random UUID that is stored in the class-level
+        `subs` variable.
+        """
+        if self.sid not in self.subs.values():
+            self.subs[self.sid] = self
+
+    def on_close(self):
+        """
+        Runs when a socket is closed.
+        """
+        del self.subs[self.sid]
+
+    def on_message(self, message_text):
+        """
+        Callback that runs when a new message is received from a client See the
+        chat_service README for the resultant message structure.
+        Args:
+            message_text: A stringified JSON object with a text or attachment key.
+                `text` should contain a string message and `attachment` is a dict.
+                See `WebsocketAgent.put_data` for more information about the
+                attachment dict structure.
+        """
+        message = json.loads(message_text)
+        if message["packet_type"] == PACKET_TYPE_ALIVE:
+            self.app.last_alive_packet = message
+        elif message["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] != PACKET_TYPE_REQUEST_STATUSES:
+            self.app.last_packet = message
+
+    def check_origin(self, origin):
+        return True
+
+
+class AliveHandler(tornado.web.RequestHandler):
+    """Simple handler for is_alive"""
+
+    def get(self, eids):
+        pass  # Default behavior returns 200
+
+
+class MockServer(tornado.web.Application):
+    """
+    Tornado-based server that with hooks for sending specific
+    messages through socket connections and such
+    """
+
+    def __init__(self, port):
+        self.subs = {}
+        self.port = port
+        self.running_instance = None
+        self.last_alive_packet: Optional[Dict[str, Any]] = None
+        self.actions_observed = 0
+        self.last_packet: Optional[Dict[str, Any]] = None
+        tornado_settings = {
+            "autoescape": None,
+            "debug": "/dbg/" in __file__,
+            "compiled_template_cache": False,
+            "static_url_prefix": "/static/",
+            "debug": True,
+        }
+        handlers = [
+            ("/socket", SocketHandler, {"subs": self.subs, "app": self}),
+            ("/is_alive", AliveHandler, {}),
+        ]
+        super(MockServer, self).__init__(handlers, **tornado_settings)
+
+    def __server_thread_fn(self):
+        """
+        Main loop for the application
+        """
+        self.running_instance = tornado.ioloop.IOLoop()
+        http_server = tornado.httpserver.HTTPServer(self, max_buffer_size=1024**3)
+        http_server.listen(self.port)
+        self.running_instance.start()
+        http_server.stop()
+
+    def _get_sub(self):
+        """Return the subscriber socket to write to"""
+        return list(self.subs.values())[0]
+
+    def _send_message(self, message):
+        """Send the given message back to the mephisto client"""
+        failed_attempts = 0
+        last_exception = None
+        while failed_attempts < 5:
+            try:
+                socket = self._get_sub()
+                message_json = json.dumps(message)
+                socket.write_message(message_json)
+                last_exception = None
+                break
+            except Exception as e:
+                last_exception = e
+                time.sleep(0.2)
+                failed_attempts += 1
+            finally:
+                time.sleep(0.1)
+        if last_exception is not None:
+            raise last_exception
+
+    def send_agent_act(self, agent_id, act_content):
+        """
+        Send a packet from the given agent with
+        the given content
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+                "subject_id": agent_id,
+                "data": act_content,
+            }
+        )
+
+    def register_mock_agent(self, worker_name, agent_details):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_REGISTER_AGENT,
+                "subject_id": "MockServer",
+                "data": {
+                    "request_id": agent_details,
+                    "provider_data": {
+                        "worker_name": worker_name,
+                        "agent_registration_id": agent_details,
+                    },
+                },
+            }
+        )
+
+    def submit_mock_unit(self, agent_id, submit_data):
+        """
+        Send a packet asking to submit data.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_UNIT,
+                "subject_id": agent_id,
+                "data": submit_data,
+            }
+        )
+
+    def register_mock_agent_after_onboarding(self, worker_id, agent_id, onboard_data):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_ONBOARDING,
+                "subject_id": agent_id,
+                "data": {
+                    "request_id": "1234",
+                    "onboarding_data": onboard_data,
+                },
+            }
+        )
+
+    def disconnect_mock_agent(self, agent_id):
+        """
+        Mark a mock agent as disconnected.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_RETURN_STATUSES,
+                "subject_id": "Mephisto",
+                "data": {agent_id: AgentState.STATUS_DISCONNECT},
+            }
+        )
+
+    def launch_mock(self):
+        """
+        Start the primary loop for this application
+        """
+        self.__server_thread = threading.Thread(
+            target=self.__server_thread_fn, name="mock-server-thread"
+        )
+        self.__server_thread.start()
+
+    def shutdown_mock(self):
+        """
+        Defined to shutown the tornado application.
+        """
+
+        def stop_and_free():
+            self.running_instance.stop()
+
+        self.running_instance.add_callback(stop_and_free)
+        self.__server_thread.join()
+
+
+@register_mephisto_abstraction()
+class MockArchitect(Architect):
+    """
+    The MockArchitect runs a mock server on the localhost so that
+    we can send special packets and assert connections have been made
+    """
+
+    ArgsClass = MockArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        self.should_run_server = args.architect.should_run_server
+        self.port = args.architect.port
+        self.server: Optional["MockServer"] = None
+        # TODO(#651) track state in parent class?
+        self.prepared = False
+        self.deployed = False
+        self.cleaned = False
+        self.did_shutdown = False
+
+    def _get_socket_urls(self) -> List[str]:
+        """Return the path to the local server socket"""
+        assert self.port is not None, "No ports for socket"
+        return [f"ws://localhost:{self.port}/socket"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"mock_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Mock architects can just pretend to write a file
+        """
+        with open(os.path.join(save_dir, target_filename), "wb") as fp:
+            fp.write(b"mock\n")
+
+    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.prepared = True
+        built_dir = os.path.join(
+            self.build_dir, "mock_build_{}".format(self.task_run_id)
+        )
+        os.makedirs(built_dir)
+        return built_dir
+
+    def deploy(self) -> str:
+        """Mock a deploy or deploy a mock server, depending on settings"""
+        self.deployed = True
+        if not self.should_run_server:
+            return MOCK_DEPLOY_URL
+        else:
+            self.server = MockServer(self.port)
+            self.server.launch_mock()
+            return f"http://localhost:{self.port}/"
+
+    def cleanup(self) -> None:
+        """Mark the cleanup call"""
+        self.cleaned = True
+
+    def shutdown(self) -> None:
+        """Mark the shutdown call"""
+        self.did_shutdown = True
+        if self.should_run_server and self.server is not None:
+            self.server.shutdown_mock()
+
+ +
+ +
+
+
#   + + + def + get_rand_id(): +
+ +
+ View Source +
def get_rand_id():
+    return str(uuid.uuid4())
+
+ +
+ + + +
+
+
+ #   + + + class + MockArchitectArgs(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class MockArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a mock architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    should_run_server: bool = field(
+        default=False, metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+ +
+ +

Additional arguments for configuring a mock architect

+
+ + +
+
#   + + + MockArchitectArgs( + _architect_type: str = 'mock', + server_type: str = 'node', + server_source_path: str = '???', + should_run_server: bool = False, + port: str = '3000' +) +
+ + + + +
+
+
#   + + should_run_server: bool = False +
+ + + + +
+
+
#   + + port: str = '3000' +
+ + + + +
+ +
+
+
+ #   + + + class + SocketHandler(tornado.websocket.WebSocketHandler): +
+ +
+ View Source +
class SocketHandler(WebSocketHandler):
+    def __init__(self, *args, **kwargs):
+        self.subs: Dict[int, "SocketHandler"] = kwargs.pop("subs")
+        self.app: "MockServer" = kwargs.pop("app")
+        self.sid = get_rand_id()
+        super().__init__(*args, **kwargs)
+
+    def open(self):
+        """
+        Opens a websocket and assigns a random UUID that is stored in the class-level
+        `subs` variable.
+        """
+        if self.sid not in self.subs.values():
+            self.subs[self.sid] = self
+
+    def on_close(self):
+        """
+        Runs when a socket is closed.
+        """
+        del self.subs[self.sid]
+
+    def on_message(self, message_text):
+        """
+        Callback that runs when a new message is received from a client See the
+        chat_service README for the resultant message structure.
+        Args:
+            message_text: A stringified JSON object with a text or attachment key.
+                `text` should contain a string message and `attachment` is a dict.
+                See `WebsocketAgent.put_data` for more information about the
+                attachment dict structure.
+        """
+        message = json.loads(message_text)
+        if message["packet_type"] == PACKET_TYPE_ALIVE:
+            self.app.last_alive_packet = message
+        elif message["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] != PACKET_TYPE_REQUEST_STATUSES:
+            self.app.last_packet = message
+
+    def check_origin(self, origin):
+        return True
+
+ +
+ +

Subclass this class to create a basic WebSocket handler.

+ +

Override on_message to handle incoming messages, and use +write_message to send messages to the client. You can also +override open and on_close to handle opened and closed +connections.

+ +

Custom upgrade response headers can be sent by overriding +~tornado.web.RequestHandler.set_default_headers or +~tornado.web.RequestHandler.prepare.

+ +

See http://dev.w3.org/html5/websockets/ for details on the +JavaScript interface. The protocol is specified at +http://tools.ietf.org/html/rfc6455.

+ +

Here is an example WebSocket handler that echos back all received messages +back to the client:

+ +

.. testcode::

+ +

class EchoWebSocket(tornado.websocket.WebSocketHandler): + def open(self): + print("WebSocket opened")

+ +
  def on_message(self, message):
+      self.write_message(u"You said: " + message)
+
+  def on_close(self):
+      print("WebSocket closed")
+
+ +

.. testoutput:: + :hide:

+ +

WebSockets are not standard HTTP connections. The "handshake" is +HTTP, but after the handshake, the protocol is +message-based. Consequently, most of the Tornado HTTP facilities +are not available in handlers of this type. The only communication +methods available to you are write_message(), ping(), and +close(). Likewise, your request handler class should implement +open() method rather than get() or post().

+ +

If you map the handler above to /websocket in your application, you can +invoke it in JavaScript with::

+ +

var ws = new WebSocket("ws://localhost:8888/websocket"); + ws.onopen = function() { + ws.send("Hello, world"); + }; + ws.onmessage = function (evt) { + alert(evt.data); + };

+ +

This script pops up an alert box that says "You said: Hello, world".

+ +

Web browsers allow any site to open a websocket connection to any other, +instead of using the same-origin policy that governs other network +access from javascript. This can be surprising and is a potential +security hole, so since Tornado 4.0 WebSocketHandler requires +applications that wish to receive cross-origin websockets to opt in +by overriding the ~WebSocketHandler.check_origin method (see that +method's docs for details). Failure to do so is the most likely +cause of 403 errors when making a websocket connection.

+ +

When using a secure websocket connection (wss://) with a self-signed +certificate, the connection from a browser may fail because it wants +to show the "accept this certificate" dialog but has nowhere to show it. +You must first visit a regular HTML page using the same certificate +to accept it before the websocket connection will succeed.

+ +

If the application setting websocket_ping_interval has a non-zero +value, a ping will be sent periodically, and the connection will be +closed if a response is not received before the websocket_ping_timeout.

+ +

Messages larger than the websocket_max_message_size application setting +(default 10MiB) will not be accepted.

+ +

.. versionchanged:: 4.5 + Added websocket_ping_interval, websocket_ping_timeout, and + websocket_max_message_size.

+
+ + +
+
#   + + + SocketHandler(*args, **kwargs) +
+ +
+ View Source +
    def __init__(self, *args, **kwargs):
+        self.subs: Dict[int, "SocketHandler"] = kwargs.pop("subs")
+        self.app: "MockServer" = kwargs.pop("app")
+        self.sid = get_rand_id()
+        super().__init__(*args, **kwargs)
+
+ +
+ + + +
+
+
#   + + + def + open(self): +
+ +
+ View Source +
    def open(self):
+        """
+        Opens a websocket and assigns a random UUID that is stored in the class-level
+        `subs` variable.
+        """
+        if self.sid not in self.subs.values():
+            self.subs[self.sid] = self
+
+ +
+ +

Opens a websocket and assigns a random UUID that is stored in the class-level +subs variable.

+
+ + +
+
+
#   + + + def + on_close(self): +
+ +
+ View Source +
    def on_close(self):
+        """
+        Runs when a socket is closed.
+        """
+        del self.subs[self.sid]
+
+ +
+ +

Runs when a socket is closed.

+
+ + +
+
+
#   + + + def + on_message(self, message_text): +
+ +
+ View Source +
    def on_message(self, message_text):
+        """
+        Callback that runs when a new message is received from a client See the
+        chat_service README for the resultant message structure.
+        Args:
+            message_text: A stringified JSON object with a text or attachment key.
+                `text` should contain a string message and `attachment` is a dict.
+                See `WebsocketAgent.put_data` for more information about the
+                attachment dict structure.
+        """
+        message = json.loads(message_text)
+        if message["packet_type"] == PACKET_TYPE_ALIVE:
+            self.app.last_alive_packet = message
+        elif message["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            self.app.actions_observed += 1
+        elif message["packet_type"] != PACKET_TYPE_REQUEST_STATUSES:
+            self.app.last_packet = message
+
+ +
+ +

Callback that runs when a new message is received from a client See the +chat_service README for the resultant message structure. +Args: + message_text: A stringified JSON object with a text or attachment key. + text should contain a string message and attachment is a dict. + See WebsocketAgent.put_data for more information about the + attachment dict structure.

+
+ + +
+
+
#   + + + def + check_origin(self, origin): +
+ +
+ View Source +
    def check_origin(self, origin):
+        return True
+
+ +
+ +

Override to enable support for allowing alternate origins.

+ +

The origin argument is the value of the Origin HTTP +header, the url responsible for initiating this request. This +method is not called for clients that do not send this header; +such requests are always allowed (because all browsers that +implement WebSockets support this header, and non-browser +clients do not have the same cross-site security concerns).

+ +

Should return True to accept the request or False to +reject it. By default, rejects all requests with an origin on +a host other than this one.

+ +

This is a security protection against cross site scripting attacks on +browsers, since WebSockets are allowed to bypass the usual same-origin +policies and don't use CORS headers.

+ +

.. warning::

+ +

This is an important security measure; don't disable it + without understanding the security implications. In + particular, if your authentication is cookie-based, you + must either restrict the origins allowed by + check_origin() or implement your own XSRF-like + protection for websocket connections. See these + <https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html>_ + articles + <https://devcenter.heroku.com/articles/websocket-security>_ + for more.

+ +

To accept all cross-origin traffic (which was the default prior to +Tornado 4.0), simply override this method to always return True::

+ +
def check_origin(self, origin):
+    return True
+
+ +

To allow connections from any subdomain of your site, you might +do something like::

+ +
def check_origin(self, origin):
+    parsed_origin = urllib.parse.urlparse(origin)
+    return parsed_origin.netloc.endswith(".mydomain.com")
+
+ +

.. versionadded:: 4.0

+
+ + +
+
+
Inherited Members
+
+
tornado.websocket.WebSocketHandler
+
stream
+
get
+
ping_interval
+
ping_timeout
+
max_message_size
+
write_message
+
select_subprotocol
+
selected_subprotocol
+
get_compression_options
+
ping
+
on_pong
+
on_ping
+
close
+
set_nodelay
+
on_connection_close
+
on_ws_connection_close
+
send_error
+
get_websocket_protocol
+ +
+
tornado.web.RequestHandler
+
SUPPORTED_METHODS
+
path_args
+
path_kwargs
+
initialize
+
settings
+
head
+
post
+
delete
+
patch
+
put
+
options
+
prepare
+
on_finish
+
clear
+
set_default_headers
+
set_status
+
get_status
+
set_header
+
add_header
+
clear_header
+
get_argument
+
get_arguments
+
get_body_argument
+
get_body_arguments
+
get_query_argument
+
get_query_arguments
+
decode_argument
+
cookies
+ + + +
clear_all_cookies
+ +
create_signed_value
+ + +
redirect
+
write
+
render
+
render_linked_js
+
render_embed_js
+
render_linked_css
+
render_embed_css
+
render_string
+
get_template_namespace
+
create_template_loader
+
flush
+
finish
+
detach
+
write_error
+
locale
+
get_user_locale
+
get_browser_locale
+
current_user
+
get_current_user
+
get_login_url
+
get_template_path
+
xsrf_token
+ +
xsrf_form_html
+
static_url
+
require_setting
+
reverse_url
+
compute_etag
+
set_etag_header
+
check_etag_header
+
data_received
+
log_exception
+ +
+
+
+
+
+
+ #   + + + class + AliveHandler(tornado.web.RequestHandler): +
+ +
+ View Source +
class AliveHandler(tornado.web.RequestHandler):
+    """Simple handler for is_alive"""
+
+    def get(self, eids):
+        pass  # Default behavior returns 200
+
+ +
+ +

Simple handler for is_alive

+
+ + +
+
#   + + + def + get(self, eids): +
+ +
+ View Source +
    def get(self, eids):
+        pass  # Default behavior returns 200
+
+ +
+ + + +
+
+
Inherited Members
+
+
tornado.web.RequestHandler
+
RequestHandler
+
SUPPORTED_METHODS
+
path_args
+
path_kwargs
+
initialize
+
settings
+
head
+
post
+
delete
+
patch
+
put
+
options
+
prepare
+
on_finish
+
on_connection_close
+
clear
+
set_default_headers
+
set_status
+
get_status
+
set_header
+
add_header
+
clear_header
+
get_argument
+
get_arguments
+
get_body_argument
+
get_body_arguments
+
get_query_argument
+
get_query_arguments
+
decode_argument
+
cookies
+ + + +
clear_all_cookies
+ +
create_signed_value
+ + +
redirect
+
write
+
render
+
render_linked_js
+
render_embed_js
+
render_linked_css
+
render_embed_css
+
render_string
+
get_template_namespace
+
create_template_loader
+
flush
+
finish
+
detach
+
send_error
+
write_error
+
locale
+
get_user_locale
+
get_browser_locale
+
current_user
+
get_current_user
+
get_login_url
+
get_template_path
+
xsrf_token
+ +
xsrf_form_html
+
static_url
+
require_setting
+
reverse_url
+
compute_etag
+
set_etag_header
+
check_etag_header
+
data_received
+
log_exception
+ +
+
+
+
+
+
+ #   + + + class + MockServer(tornado.web.Application): +
+ +
+ View Source +
class MockServer(tornado.web.Application):
+    """
+    Tornado-based server that with hooks for sending specific
+    messages through socket connections and such
+    """
+
+    def __init__(self, port):
+        self.subs = {}
+        self.port = port
+        self.running_instance = None
+        self.last_alive_packet: Optional[Dict[str, Any]] = None
+        self.actions_observed = 0
+        self.last_packet: Optional[Dict[str, Any]] = None
+        tornado_settings = {
+            "autoescape": None,
+            "debug": "/dbg/" in __file__,
+            "compiled_template_cache": False,
+            "static_url_prefix": "/static/",
+            "debug": True,
+        }
+        handlers = [
+            ("/socket", SocketHandler, {"subs": self.subs, "app": self}),
+            ("/is_alive", AliveHandler, {}),
+        ]
+        super(MockServer, self).__init__(handlers, **tornado_settings)
+
+    def __server_thread_fn(self):
+        """
+        Main loop for the application
+        """
+        self.running_instance = tornado.ioloop.IOLoop()
+        http_server = tornado.httpserver.HTTPServer(self, max_buffer_size=1024**3)
+        http_server.listen(self.port)
+        self.running_instance.start()
+        http_server.stop()
+
+    def _get_sub(self):
+        """Return the subscriber socket to write to"""
+        return list(self.subs.values())[0]
+
+    def _send_message(self, message):
+        """Send the given message back to the mephisto client"""
+        failed_attempts = 0
+        last_exception = None
+        while failed_attempts < 5:
+            try:
+                socket = self._get_sub()
+                message_json = json.dumps(message)
+                socket.write_message(message_json)
+                last_exception = None
+                break
+            except Exception as e:
+                last_exception = e
+                time.sleep(0.2)
+                failed_attempts += 1
+            finally:
+                time.sleep(0.1)
+        if last_exception is not None:
+            raise last_exception
+
+    def send_agent_act(self, agent_id, act_content):
+        """
+        Send a packet from the given agent with
+        the given content
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+                "subject_id": agent_id,
+                "data": act_content,
+            }
+        )
+
+    def register_mock_agent(self, worker_name, agent_details):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_REGISTER_AGENT,
+                "subject_id": "MockServer",
+                "data": {
+                    "request_id": agent_details,
+                    "provider_data": {
+                        "worker_name": worker_name,
+                        "agent_registration_id": agent_details,
+                    },
+                },
+            }
+        )
+
+    def submit_mock_unit(self, agent_id, submit_data):
+        """
+        Send a packet asking to submit data.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_UNIT,
+                "subject_id": agent_id,
+                "data": submit_data,
+            }
+        )
+
+    def register_mock_agent_after_onboarding(self, worker_id, agent_id, onboard_data):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_ONBOARDING,
+                "subject_id": agent_id,
+                "data": {
+                    "request_id": "1234",
+                    "onboarding_data": onboard_data,
+                },
+            }
+        )
+
+    def disconnect_mock_agent(self, agent_id):
+        """
+        Mark a mock agent as disconnected.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_RETURN_STATUSES,
+                "subject_id": "Mephisto",
+                "data": {agent_id: AgentState.STATUS_DISCONNECT},
+            }
+        )
+
+    def launch_mock(self):
+        """
+        Start the primary loop for this application
+        """
+        self.__server_thread = threading.Thread(
+            target=self.__server_thread_fn, name="mock-server-thread"
+        )
+        self.__server_thread.start()
+
+    def shutdown_mock(self):
+        """
+        Defined to shutown the tornado application.
+        """
+
+        def stop_and_free():
+            self.running_instance.stop()
+
+        self.running_instance.add_callback(stop_and_free)
+        self.__server_thread.join()
+
+ +
+ +

Tornado-based server that with hooks for sending specific +messages through socket connections and such

+
+ + +
+
#   + + + MockServer(port) +
+ +
+ View Source +
    def __init__(self, port):
+        self.subs = {}
+        self.port = port
+        self.running_instance = None
+        self.last_alive_packet: Optional[Dict[str, Any]] = None
+        self.actions_observed = 0
+        self.last_packet: Optional[Dict[str, Any]] = None
+        tornado_settings = {
+            "autoescape": None,
+            "debug": "/dbg/" in __file__,
+            "compiled_template_cache": False,
+            "static_url_prefix": "/static/",
+            "debug": True,
+        }
+        handlers = [
+            ("/socket", SocketHandler, {"subs": self.subs, "app": self}),
+            ("/is_alive", AliveHandler, {}),
+        ]
+        super(MockServer, self).__init__(handlers, **tornado_settings)
+
+ +
+ + + +
+
+
#   + + + def + send_agent_act(self, agent_id, act_content): +
+ +
+ View Source +
    def send_agent_act(self, agent_id, act_content):
+        """
+        Send a packet from the given agent with
+        the given content
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+                "subject_id": agent_id,
+                "data": act_content,
+            }
+        )
+
+ +
+ +

Send a packet from the given agent with +the given content

+
+ + +
+
+
#   + + + def + register_mock_agent(self, worker_name, agent_details): +
+ +
+ View Source +
    def register_mock_agent(self, worker_name, agent_details):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_REGISTER_AGENT,
+                "subject_id": "MockServer",
+                "data": {
+                    "request_id": agent_details,
+                    "provider_data": {
+                        "worker_name": worker_name,
+                        "agent_registration_id": agent_details,
+                    },
+                },
+            }
+        )
+
+ +
+ +

Send a packet asking to register a mock agent.

+
+ + +
+
+
#   + + + def + submit_mock_unit(self, agent_id, submit_data): +
+ +
+ View Source +
    def submit_mock_unit(self, agent_id, submit_data):
+        """
+        Send a packet asking to submit data.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_UNIT,
+                "subject_id": agent_id,
+                "data": submit_data,
+            }
+        )
+
+ +
+ +

Send a packet asking to submit data.

+
+ + +
+
+
#   + + + def + register_mock_agent_after_onboarding(self, worker_id, agent_id, onboard_data): +
+ +
+ View Source +
    def register_mock_agent_after_onboarding(self, worker_id, agent_id, onboard_data):
+        """
+        Send a packet asking to register a mock agent.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_SUBMIT_ONBOARDING,
+                "subject_id": agent_id,
+                "data": {
+                    "request_id": "1234",
+                    "onboarding_data": onboard_data,
+                },
+            }
+        )
+
+ +
+ +

Send a packet asking to register a mock agent.

+
+ + +
+
+
#   + + + def + disconnect_mock_agent(self, agent_id): +
+ +
+ View Source +
    def disconnect_mock_agent(self, agent_id):
+        """
+        Mark a mock agent as disconnected.
+        """
+        self._send_message(
+            {
+                "packet_type": PACKET_TYPE_RETURN_STATUSES,
+                "subject_id": "Mephisto",
+                "data": {agent_id: AgentState.STATUS_DISCONNECT},
+            }
+        )
+
+ +
+ +

Mark a mock agent as disconnected.

+
+ + +
+
+
#   + + + def + launch_mock(self): +
+ +
+ View Source +
    def launch_mock(self):
+        """
+        Start the primary loop for this application
+        """
+        self.__server_thread = threading.Thread(
+            target=self.__server_thread_fn, name="mock-server-thread"
+        )
+        self.__server_thread.start()
+
+ +
+ +

Start the primary loop for this application

+
+ + +
+
+
#   + + + def + shutdown_mock(self): +
+ +
+ View Source +
    def shutdown_mock(self):
+        """
+        Defined to shutown the tornado application.
+        """
+
+        def stop_and_free():
+            self.running_instance.stop()
+
+        self.running_instance.add_callback(stop_and_free)
+        self.__server_thread.join()
+
+ +
+ +

Defined to shutown the tornado application.

+
+ + +
+
+
Inherited Members
+
+
tornado.web.Application
+
listen
+
add_handlers
+
add_transform
+
find_handler
+
get_handler_delegate
+
reverse_url
+
log_request
+ +
+
tornado.routing.Router
+
start_request
+ +
+
tornado.httputil.HTTPServerConnectionDelegate
+
on_close
+ +
+
+
+
+
+
+ #   + + + class + MockArchitect(mephisto.abstractions.architect.Architect): +
+ +
+ View Source +
class MockArchitect(Architect):
+    """
+    The MockArchitect runs a mock server on the localhost so that
+    we can send special packets and assert connections have been made
+    """
+
+    ArgsClass = MockArchitectArgs
+    ARCHITECT_TYPE = ARCHITECT_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        self.should_run_server = args.architect.should_run_server
+        self.port = args.architect.port
+        self.server: Optional["MockServer"] = None
+        # TODO(#651) track state in parent class?
+        self.prepared = False
+        self.deployed = False
+        self.cleaned = False
+        self.did_shutdown = False
+
+    def _get_socket_urls(self) -> List[str]:
+        """Return the path to the local server socket"""
+        assert self.port is not None, "No ports for socket"
+        return [f"ws://localhost:{self.port}/socket"]
+
+    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"mock_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Mock architects can just pretend to write a file
+        """
+        with open(os.path.join(save_dir, target_filename), "wb") as fp:
+            fp.write(b"mock\n")
+
+    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.prepared = True
+        built_dir = os.path.join(
+            self.build_dir, "mock_build_{}".format(self.task_run_id)
+        )
+        os.makedirs(built_dir)
+        return built_dir
+
+    def deploy(self) -> str:
+        """Mock a deploy or deploy a mock server, depending on settings"""
+        self.deployed = True
+        if not self.should_run_server:
+            return MOCK_DEPLOY_URL
+        else:
+            self.server = MockServer(self.port)
+            self.server.launch_mock()
+            return f"http://localhost:{self.port}/"
+
+    def cleanup(self) -> None:
+        """Mark the cleanup call"""
+        self.cleaned = True
+
+    def shutdown(self) -> None:
+        """Mark the shutdown call"""
+        self.did_shutdown = True
+        if self.should_run_server and self.server is not None:
+            self.server.shutdown_mock()
+
+ +
+ +

The MockArchitect runs a mock server on the localhost so that +we can send special packets and assert connections have been made

+
+ + +
+
#   + + + MockArchitect( + db: mephisto.abstractions.database.MephistoDB, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + task_run: mephisto.data_model.task_run.TaskRun, + build_dir_root: str +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        task_run: "TaskRun",
+        build_dir_root: str,
+    ):
+        """Create an architect for use in testing"""
+        self.task_run = task_run
+        self.build_dir = build_dir_root
+        self.task_run_id = task_run.db_id
+        self.should_run_server = args.architect.should_run_server
+        self.port = args.architect.port
+        self.server: Optional["MockServer"] = None
+        # TODO(#651) track state in parent class?
+        self.prepared = False
+        self.deployed = False
+        self.cleaned = False
+        self.did_shutdown = False
+
+ +
+ +

Create an architect for use in testing

+
+ + +
+
+
#   + + ARCHITECT_TYPE: str = 'mock' +
+ + + + +
+
+
#   + + + def + get_channels( + self, + on_channel_open: Callable[[str], NoneType], + on_catastrophic_disconnect: Callable[[str], NoneType], + on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType] +) -> list[mephisto.abstractions._subcomponents.channel.Channel]: +
+ +
+ View Source +
    def get_channels(
+        self,
+        on_channel_open: Callable[[str], None],
+        on_catastrophic_disconnect: Callable[[str], None],
+        on_message: Callable[[str, "Packet"], None],
+    ) -> List["Channel"]:
+        """
+        Return a list of all relevant channels that the ClientIOHandler
+        will need to register to in order to function
+        """
+        urls = self._get_socket_urls()
+        return [
+            WebsocketChannel(
+                f"mock_channel_{self.task_run_id}_{idx}",
+                on_channel_open=on_channel_open,
+                on_catastrophic_disconnect=on_catastrophic_disconnect,
+                on_message=on_message,
+                socket_url=url,
+            )
+            for idx, url in enumerate(urls)
+        ]
+
+ +
+ +

Return a list of all relevant channels that the ClientIOHandler +will need to register to in order to function

+
+ + +
+
+
#   + + + def + download_file(self, target_filename: str, save_dir: str) -> None: +
+ +
+ View Source +
    def download_file(self, target_filename: str, save_dir: str) -> None:
+        """
+        Mock architects can just pretend to write a file
+        """
+        with open(os.path.join(save_dir, target_filename), "wb") as fp:
+            fp.write(b"mock\n")
+
+ +
+ +

Mock architects can just pretend to write a file

+
+ + +
+
+
#   + + + def + prepare(self) -> str: +
+ +
+ View Source +
    def prepare(self) -> str:
+        """Mark the preparation call"""
+        self.prepared = True
+        built_dir = os.path.join(
+            self.build_dir, "mock_build_{}".format(self.task_run_id)
+        )
+        os.makedirs(built_dir)
+        return built_dir
+
+ +
+ +

Mark the preparation call

+
+ + +
+
+
#   + + + def + deploy(self) -> str: +
+ +
+ View Source +
    def deploy(self) -> str:
+        """Mock a deploy or deploy a mock server, depending on settings"""
+        self.deployed = True
+        if not self.should_run_server:
+            return MOCK_DEPLOY_URL
+        else:
+            self.server = MockServer(self.port)
+            self.server.launch_mock()
+            return f"http://localhost:{self.port}/"
+
+ +
+ +

Mock a deploy or deploy a mock server, depending on settings

+
+ + +
+
+
#   + + + def + cleanup(self) -> None: +
+ +
+ View Source +
    def cleanup(self) -> None:
+        """Mark the cleanup call"""
+        self.cleaned = True
+
+ +
+ +

Mark the cleanup call

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Mark the shutdown call"""
+        self.did_shutdown = True
+        if self.should_run_server and self.server is not None:
+            self.server.shutdown_mock()
+
+ +
+ +

Mark the shutdown call

+
+ + +
+ +
+
+
+ #   + + + class + MockArchitect.ArgsClass(mephisto.abstractions.architect.ArchitectArgs): +
+ +
+ View Source +
class MockArchitectArgs(ArchitectArgs):
+    """Additional arguments for configuring a mock architect"""
+
+    _architect_type: str = ARCHITECT_TYPE
+    should_run_server: bool = field(
+        default=False, metadata={"help": "Addressible location of the server"}
+    )
+    port: str = field(default="3000", metadata={"help": "Port to launch the server on"})
+
+ +
+ +

Additional arguments for configuring a mock architect

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/router.html b/docs/web/static/python_api/mephisto/abstractions/architects/router.html new file mode 100644 index 000000000..61702f38c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/router.html @@ -0,0 +1,297 @@ + + + + + + + + + mephisto.abstractions.architects.router API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.router

+ +

router

+ +

This directory contains all of the Mephisto code regarding setting up and deploying and endpoint that can handle interfacing with the mephisto-task package. As of now there are two implementations, a node server in deploy and a Flask server in flask. Each of these can be extended upon such that you can deploy your own server (with whatever logic you may need) but still have mephisto routing functionality.

+ +

build_router.py

+ +

This file contains code to be able to initialize the required build files for a server, assuming that they're set up properly. With the routers available in this directory, they should work out-of-the-box, but more configuration. If you want to specify your own build, you should start from the given servers, then provide the architect.server_source_root and architect.server_type arguments as appropriate with your server directory and the kind of server you're running.

+ +

Router Types

+ +

node

+ +

This folder contains a node-based server that meets the specification for being a Mephisto Router. Additional files are served via /static/ and uploaded files from the user are temporarily available from /tmp/.

+ +

flask

+ +

This folder contains a Flask Blueprint (not to be confused with a Mephisto Blueprint) in mephisto_flask_blueprint.py. It also has example usage of this within the app.py file. The app.py file is what we actually deploy by default, and the contents demonstrate some important usage requirements for deploying a Mephisto router within an arbitrary Flask app.

+ +

Key notes: you'll need to import the blueprint and the websocket server, and register the app alongside the websocket server. You'll also need to use monkey.patch_all() to ensure that the threading of the websockets and the main Flask server are able to interleave.

+ +

Routing implementation, functionality, and gotchas

+ +

In short, the Mephisto protocol for routing requests from clients down to the Mephisto main server is somewhat complicated. There are a number of endpoints that need to retain the behavior that's captured in the comments of the Flask implementation's mephisto_flask_blueprint.py file. These should be enumerated further here.

+ +

TODO Document the requirements for a Mephisto Router to be running properly, including keeping track of local agent states, converting HTTP POST requests to websocket messages, and the heartbeat protocols.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/router/build_router.html b/docs/web/static/python_api/mephisto/abstractions/architects/router/build_router.html new file mode 100644 index 000000000..1e7f31378 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/router/build_router.html @@ -0,0 +1,568 @@ + + + + + + + + + mephisto.abstractions.architects.router.build_router API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.router.build_router

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import mephisto.abstractions.architects.router as router_module
+import os
+import sh  # type: ignore
+import shutil
+import shlex
+import subprocess
+import json
+
+from typing import TYPE_CHECKING, Optional
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+
+ROUTER_ROOT_DIR = os.path.dirname(router_module.__file__)
+NODE_SERVER_SOURCE_ROOT = os.path.join(ROUTER_ROOT_DIR, "node")
+FLASK_SERVER_SOURCE_ROOT = os.path.join(ROUTER_ROOT_DIR, "flask")
+CROWD_SOURCE_PATH = "static/wrap_crowd_source.js"
+TASK_CONFIG_PATH = "static/task_config.json"
+CURR_MEPHISTO_TASK_VERSION = "2.0.0"
+
+
+def can_build(build_dir: str, task_run: "TaskRun") -> bool:
+    """Determine if the build dir is properly formatted for
+    being able to have the router built within. This is a
+    validation step that should be run before build_router.
+    """
+    # TODO(#97) incorporate this step into the blueprint
+    # task builder test, as once the task is built, it
+    # should be able to have the server build as well.
+    # TODO(#651) actually implement this when the full build
+    # process for the router is decided
+    return True
+
+
+def install_router_files() -> None:
+    """
+    Create a new build including the node_modules
+    """
+    return_dir = os.getcwd()
+    os.chdir(NODE_SERVER_SOURCE_ROOT)
+
+    packages_installed = subprocess.call(["npm", "install"])
+    if packages_installed != 0:
+        raise Exception(
+            "please make sure node is installed, otherwise view "
+            "the above error for more info."
+        )
+    os.chdir(return_dir)
+
+
+def build_node_router(build_dir: str, task_run: "TaskRun") -> str:
+    """Build requirements for the NPM router"""
+    install_router_files()
+    return NODE_SERVER_SOURCE_ROOT
+
+
+def build_flask_router(build_dir: str, task_run: "TaskRun") -> str:
+    # Everything should already be built
+    return FLASK_SERVER_SOURCE_ROOT
+
+
+def build_router(
+    build_dir: str,
+    task_run: "TaskRun",
+    version: str = "node",
+    server_source_path: Optional[str] = None,
+) -> str:
+    """
+    Copy expected files from the router source into the build dir,
+    using existing files in the build dir as replacements for the
+    defaults if available
+    """
+    if server_source_path is not None:
+        # Giving a server source takes precedence over the build
+        server_source_directory_path = server_source_path
+    elif version == "node":
+        server_source_directory_path = build_node_router(build_dir, task_run)
+    elif version == "flask":
+        server_source_directory_path = build_flask_router(build_dir, task_run)
+
+    local_server_directory_path = os.path.join(build_dir, "router")
+
+    # Delete old server files
+    sh.rm(shlex.split("-rf " + local_server_directory_path))
+
+    # Copy over a clean copy into the server directory
+    shutil.copytree(server_source_directory_path, local_server_directory_path)
+
+    # Copy the required wrap crowd source path
+    local_crowd_source_path = os.path.join(
+        local_server_directory_path, CROWD_SOURCE_PATH
+    )
+    crowd_provider = task_run.get_provider()
+    shutil.copy2(crowd_provider.get_wrapper_js_path(), local_crowd_source_path)
+
+    # Copy the task_run's json configuration
+    local_task_config_path = os.path.join(local_server_directory_path, TASK_CONFIG_PATH)
+    blueprint = task_run.get_blueprint()
+    with open(local_task_config_path, "w+") as task_fp:
+        frontend_args = blueprint.get_frontend_args()
+        frontend_args["mephisto_task_version"] = CURR_MEPHISTO_TASK_VERSION
+        json.dump(frontend_args, task_fp)
+
+    # Consolidate task files as defined by the task
+    TaskBuilderClass = blueprint.TaskBuilderClass
+    task_builder = TaskBuilderClass(task_run, task_run.args)
+
+    task_builder.build_in_dir(local_server_directory_path)
+
+    return local_server_directory_path
+
+ +
+ +
+
+
#   + + + def + can_build( + build_dir: str, + task_run: mephisto.data_model.task_run.TaskRun +) -> bool: +
+ +
+ View Source +
def can_build(build_dir: str, task_run: "TaskRun") -> bool:
+    """Determine if the build dir is properly formatted for
+    being able to have the router built within. This is a
+    validation step that should be run before build_router.
+    """
+    # TODO(#97) incorporate this step into the blueprint
+    # task builder test, as once the task is built, it
+    # should be able to have the server build as well.
+    # TODO(#651) actually implement this when the full build
+    # process for the router is decided
+    return True
+
+ +
+ +

Determine if the build dir is properly formatted for +being able to have the router built within. This is a +validation step that should be run before build_router.

+
+ + +
+
+
#   + + + def + install_router_files() -> None: +
+ +
+ View Source +
def install_router_files() -> None:
+    """
+    Create a new build including the node_modules
+    """
+    return_dir = os.getcwd()
+    os.chdir(NODE_SERVER_SOURCE_ROOT)
+
+    packages_installed = subprocess.call(["npm", "install"])
+    if packages_installed != 0:
+        raise Exception(
+            "please make sure node is installed, otherwise view "
+            "the above error for more info."
+        )
+    os.chdir(return_dir)
+
+ +
+ +

Create a new build including the node_modules

+
+ + +
+
+
#   + + + def + build_node_router( + build_dir: str, + task_run: mephisto.data_model.task_run.TaskRun +) -> str: +
+ +
+ View Source +
def build_node_router(build_dir: str, task_run: "TaskRun") -> str:
+    """Build requirements for the NPM router"""
+    install_router_files()
+    return NODE_SERVER_SOURCE_ROOT
+
+ +
+ +

Build requirements for the NPM router

+
+ + +
+
+
#   + + + def + build_flask_router( + build_dir: str, + task_run: mephisto.data_model.task_run.TaskRun +) -> str: +
+ +
+ View Source +
def build_flask_router(build_dir: str, task_run: "TaskRun") -> str:
+    # Everything should already be built
+    return FLASK_SERVER_SOURCE_ROOT
+
+ +
+ + + +
+
+
#   + + + def + build_router( + build_dir: str, + task_run: mephisto.data_model.task_run.TaskRun, + version: str = 'node', + server_source_path: Union[str, NoneType] = None +) -> str: +
+ +
+ View Source +
def build_router(
+    build_dir: str,
+    task_run: "TaskRun",
+    version: str = "node",
+    server_source_path: Optional[str] = None,
+) -> str:
+    """
+    Copy expected files from the router source into the build dir,
+    using existing files in the build dir as replacements for the
+    defaults if available
+    """
+    if server_source_path is not None:
+        # Giving a server source takes precedence over the build
+        server_source_directory_path = server_source_path
+    elif version == "node":
+        server_source_directory_path = build_node_router(build_dir, task_run)
+    elif version == "flask":
+        server_source_directory_path = build_flask_router(build_dir, task_run)
+
+    local_server_directory_path = os.path.join(build_dir, "router")
+
+    # Delete old server files
+    sh.rm(shlex.split("-rf " + local_server_directory_path))
+
+    # Copy over a clean copy into the server directory
+    shutil.copytree(server_source_directory_path, local_server_directory_path)
+
+    # Copy the required wrap crowd source path
+    local_crowd_source_path = os.path.join(
+        local_server_directory_path, CROWD_SOURCE_PATH
+    )
+    crowd_provider = task_run.get_provider()
+    shutil.copy2(crowd_provider.get_wrapper_js_path(), local_crowd_source_path)
+
+    # Copy the task_run's json configuration
+    local_task_config_path = os.path.join(local_server_directory_path, TASK_CONFIG_PATH)
+    blueprint = task_run.get_blueprint()
+    with open(local_task_config_path, "w+") as task_fp:
+        frontend_args = blueprint.get_frontend_args()
+        frontend_args["mephisto_task_version"] = CURR_MEPHISTO_TASK_VERSION
+        json.dump(frontend_args, task_fp)
+
+    # Consolidate task files as defined by the task
+    TaskBuilderClass = blueprint.TaskBuilderClass
+    task_builder = TaskBuilderClass(task_run, task_run.args)
+
+    task_builder.build_in_dir(local_server_directory_path)
+
+    return local_server_directory_path
+
+ +
+ +

Copy expected files from the router source into the build dir, +using existing files in the build dir as replacements for the +defaults if available

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/router/flask.html b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask.html new file mode 100644 index 000000000..7edc9a9de --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask.html @@ -0,0 +1,251 @@ + + + + + + + + + mephisto.abstractions.architects.router.flask API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.router.flask

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/app.html b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/app.html new file mode 100644 index 000000000..de266b216 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/app.html @@ -0,0 +1,279 @@ + + + + + + + + + mephisto.abstractions.architects.router.flask.app API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.router.flask.app

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from gevent import monkey  # type: ignore
+
+monkey.patch_all()
+
+try:
+    from mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint import (  # type: ignore
+        MephistoRouter,
+        mephisto_router,
+    )
+except:
+    from mephisto_flask_blueprint import (  # type: ignore
+        MephistoRouter,
+        mephisto_router,
+    )
+from geventwebsocket import WebSocketServer, Resource  # type: ignore
+from werkzeug.debug import DebuggedApplication  # type: ignore
+
+
+from flask import Flask  # type: ignore
+import os
+
+port = int(os.environ.get("PORT", 3000))
+
+flask_app = Flask(__name__)
+flask_app.register_blueprint(mephisto_router, url_prefix=r"/")
+
+if __name__ == "__main__":
+    WebSocketServer(
+        ("", port),
+        Resource([("^/.*", MephistoRouter), ("^/.*", DebuggedApplication(flask_app))]),
+        debug=False,
+    ).serve_forever()
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.html new file mode 100644 index 000000000..afd88352c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/architects/router/flask/mephisto_flask_blueprint.html @@ -0,0 +1,1938 @@ + + + + + + + + + mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from flask import (  # type: ignore
+    Flask,
+    Blueprint,
+    render_template,
+    abort,
+    request,
+    send_from_directory,
+    jsonify,
+)
+from geventwebsocket import (  # type: ignore
+    WebSocketServer,
+    WebSocketApplication,
+    Resource,
+    WebSocketError,
+)
+from uuid import uuid4
+import time
+import json
+import os
+from werkzeug.utils import secure_filename  # type: ignore
+
+from threading import Event
+
+from typing import Dict, Tuple, List, Any, Optional, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from geventwebsocket.handler import Client  # type: ignore
+    from geventwebsocket.websocket import WebSocket  # type: ignore
+
+# Constants
+
+CURR_MEPHISTO_TASK_VERSION = "2.0.0"
+
+PACKET_TYPE_ALIVE = "alive"
+PACKET_TYPE_SUBMIT_ONBOARDING = "submit_onboarding"
+PACKET_TYPE_SUBMIT_UNIT = "submit_unit"
+PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE = "client_bound_live_update"
+PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE = "mephisto_bound_live_update"
+PACKET_TYPE_REGISTER_AGENT = "register_agent"
+PACKET_TYPE_AGENT_DETAILS = "agent_details"
+PACKET_TYPE_UPDATE_STATUS = "update_status"
+PACKET_TYPE_REQUEST_STATUSES = "request_statuses"
+PACKET_TYPE_RETURN_STATUSES = "return_statuses"
+PACKET_TYPE_ERROR = "log_error"
+
+
+SYSTEM_CHANNEL_ID = "mephisto"
+
+FAILED_RECONNECT_TIME = 10  # seconds
+FAILED_PING_TIME = 15  # seconds
+UPLOAD_FOLDER = "/tmp/"
+ALLOWED_EXTENSIONS = {"txt", "pdf", "png", "jpg", "jpeg", "gif"}
+
+STATUS_INIT = "none"
+STATUS_CONNECTED = "connected"
+STATUS_DISCONNECTED = "disconnect"
+STATUS_COMPLETED = "completed"
+STATUS_WAITING = "waiting"
+STATUS_IN_TASK = "in task"
+STATUS_ONBOARDING = "onboarding"
+
+PACKET_TYPE_HEARTBEAT = "heartbeat"
+
+DEBUG = False
+
+
+# Main application setup
+mephisto_router = Blueprint(
+    "mephisto",
+    __name__,
+    static_folder="static",
+)
+
+
+def debug_log(*args):
+    """
+    Log only if debugging is enabled
+
+    Explicitly does not use the regular Mephisto logging framework as we
+    may want to deploy this on a server that doesn't have Mephisto installed,
+    and we can keep package size low this way.
+    """
+    if DEBUG:
+        print(*args)
+
+
+def js_time(python_time: float) -> int:
+    """Convert python time to js time, as the mephisto-task package expects"""
+    return int(python_time * 1000)
+
+
+# Socket and agent details
+class LocalAgentState:
+    """
+    Keeps track of a connected agent over their lifecycle interacting with the router
+    """
+
+    def __init__(self, agent_id: str):
+        """Initialize an object to track the lifecycle of a connection"""
+        self.status = STATUS_INIT
+        self.agent_id = agent_id
+        self.is_alive = False
+        self.disconnect_time = 0
+        self.last_ping = 0
+        self.unsent_messages: List[Dict[str, Any]] = []
+
+    def __str__(self):
+        return f"Agent({self.agent_id}): {self.status}"
+
+
+class MephistoRouterState:
+    def __init__(self):
+        self.agent_id_to_client: Dict[str, "Client"] = {}
+        self.client_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.mephisto_socket: Optional["WebSocket"] = None
+        self.agent_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.pending_agent_requests: Dict[str, bool] = {}
+        self.received_agent_responses: Dict[str, Dict[str, Any]] = {}
+        self.last_mephisto_ping: float = time.time()
+
+
+mephisto_router_app: Optional["MephistoRouter"] = None
+mephisto_router_state: Optional["MephistoRouterState"] = None
+
+
+def register_router_application(router: "MephistoRouter") -> "MephistoRouterState":
+    """
+    Register a routing application with the global state,
+    such that HTTP requests can access it and so that
+    all websocket routers share the same state.
+
+    Returns the global router state
+    """
+    global mephisto_router_app, mephisto_router_state
+    mephisto_router_app = router
+    if mephisto_router_state is None:
+        mephisto_router_state = MephistoRouterState()
+    return mephisto_router_state
+
+
+class MephistoRouter(WebSocketApplication):
+    """
+    Base implementation of a websocket server that handles
+    all of the socket based IO for mephisto-task
+    """
+
+    def __init__(self, *args, **kwargs):
+        """Initialize with the gloabl state of MephistoRouters"""
+        super().__init__(*args, **kwargs)
+        self.mephisto_state = register_router_application(self)
+
+    def _send_message(self, socket: "WebSocket", packet: Dict[str, Any]) -> None:
+        """Send the given message through the given socket"""
+        if not socket:
+            # We should be passing a socket, even if it's closed...
+            debug_log("No socket to send packet to", packet)
+            return
+
+        if socket.closed:
+            # Socket is already closed, noop
+            return
+
+        packet["router_outgoing_timestamp"] = time.time()
+        socket.send(json.dumps(packet))
+
+    def _find_or_create_agent(self, agent_id: str) -> "LocalAgentState":
+        """Get or create an agent state for the given id"""
+        state = self.mephisto_state
+        agent = state.agent_id_to_agent.get(agent_id)
+        if agent is None:
+            agent = LocalAgentState(agent_id)
+            state.agent_id_to_agent[agent_id] = agent
+        return agent
+
+    def _handle_alive(self, client: "Client", alive_packet: Dict[str, Any]) -> None:
+        """
+        On alive, find out who the sender is, and register
+        them as correctly here.
+        """
+        state = self.mephisto_state
+        if alive_packet["subject_id"] == SYSTEM_CHANNEL_ID:
+            state.mephisto_socket = client.ws
+        else:
+            agent_id = alive_packet["subject_id"]
+            agent = self._find_or_create_agent(agent_id)
+            agent.is_alive = True
+            state.agent_id_to_client[agent_id] = client
+            state.client_id_to_agent[client.mephisto_id] = agent
+
+            # push out backlog
+            while len(agent.unsent_messages) > 0:
+                packet = agent.unsent_messages.pop(0)
+                self._handle_forward(packet)
+
+    def _ensure_live_connection(self, agent: LocalAgentState) -> None:
+        curr_status = agent.status
+        last_ping = agent.last_ping
+        if last_ping == 0:
+            return  # Not a live task, nothing to check
+        if curr_status not in [STATUS_ONBOARDING, STATUS_WAITING, STATUS_IN_TASK]:
+            return  # not in a live state, no reason to check liveliness
+        if time.time() - last_ping > FAILED_PING_TIME:
+            agent.status = STATUS_DISCONNECTED
+            self._send_status_for_agent(agent.agent_id)
+
+    def _handle_get_agent_status(self, agent_status_packet: Dict[str, Any]) -> None:
+        """
+        On a get agent status request, check the status of all agents and
+        respond to the core mephisto server with the current status of each.
+
+        May return semi-stale information, but is non-blocking
+        """
+        state = self.mephisto_state
+        state.last_mephisto_ping = time.time()
+        agent_statuses = {}
+        for agent_id in state.agent_id_to_agent.keys():
+            agent = self._find_or_create_agent(agent_id)
+            self._ensure_live_connection(agent)
+            if not agent.is_alive and agent.status != STATUS_DISCONNECTED:
+                self._followup_possible_disconnect(agent)
+            agent_statuses[agent_id] = state.agent_id_to_agent[agent_id].status
+        packet = {
+            "packet_type": PACKET_TYPE_RETURN_STATUSES,
+            "subject_id": SYSTEM_CHANNEL_ID,
+            "data": agent_statuses,
+            "client_timestamp": agent_status_packet["server_timestamp"],
+            "router_incoming_timestamp": agent_status_packet[
+                "router_incoming_timestamp"
+            ],
+        }
+        self._handle_forward(packet)
+
+    def _handle_update_local_status(self, status_packet: Dict[str, Any]) -> None:
+        """Update the local agent status given a status packet"""
+        agent_id = status_packet["subject_id"]
+        agent = self._find_or_create_agent(agent_id)
+        if status_packet["data"].get("status") is not None:
+            agent.status = status_packet["data"]["status"]
+
+    def _handle_forward(self, packet: Dict[str, Any]) -> None:
+        """Handle forwarding the given packet to the included subject_id"""
+        if packet["subject_id"] == SYSTEM_CHANNEL_ID:
+            debug_log("Sending message to Mephisto", packet)
+            socket = self.mephisto_state.mephisto_socket
+        else:
+            debug_log("Sending message to agent", packet)
+            agent_id = packet["subject_id"]
+            agent = self._find_or_create_agent(agent_id)
+            client = self.mephisto_state.agent_id_to_client.get(agent_id)
+            if client is None:
+                agent.unsent_messages.append(packet)
+                return
+            socket = client.ws
+        self._send_message(socket, packet)
+
+    def _followup_possible_disconnect(self, agent: LocalAgentState) -> None:
+        """Check to see if the given agent is disconnected"""
+        if agent.disconnect_time == 0:
+            return  # Agent never disconnected, isn't live
+        if time.time() - agent.disconnect_time > FAILED_RECONNECT_TIME:
+            agent.status = STATUS_DISCONNECTED
+            debug_log("Agent disconnected", agent)
+
+    def _send_status_for_agent(self, agent_id: str) -> None:
+        """
+        Send a packet that updates the client status for the given agent,
+        pushing them the most recent local status.
+        """
+        agent = self._find_or_create_agent(agent_id)
+        packet = {
+            "packet_type": PACKET_TYPE_UPDATE_STATUS,
+            "subject_id": agent_id,
+            "data": {
+                "status": agent.status,
+            },
+        }
+        self._handle_forward(packet)
+
+    def on_open(self) -> None:
+        """
+        Initialize a new client connection, and give them a uuid to refer to
+        """
+        current_client = self.ws.handler.active_client
+        debug_log("Some client connected!", current_client)
+        current_client.mephisto_id = str(uuid4())
+
+    def on_message(self, message: str) -> None:
+        """
+        Determine the type of message, and then handle via the correct handler
+        """
+        if message is None:
+            return
+
+        state = self.mephisto_state
+        current_client = self.ws.handler.active_client
+        client = current_client
+        packet = json.loads(message)
+        packet["router_incoming_timestamp"] = time.time()
+        if packet["packet_type"] == PACKET_TYPE_REQUEST_STATUSES:
+            debug_log("Mephisto requesting status")
+            self._handle_get_agent_status(packet)
+        elif packet["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            debug_log("Agent action: ", packet)
+            self._send_message(self.mephisto_state.mephisto_socket, packet)
+        elif packet["packet_type"] == PACKET_TYPE_ERROR:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_ALIVE:
+            debug_log("Agent alive: ", packet)
+            self._handle_alive(self.ws.handler.active_client, packet)
+        elif packet["packet_type"] == PACKET_TYPE_UPDATE_STATUS:
+            debug_log("Update agent status", packet)
+            self._handle_update_local_status(packet)
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_AGENT_DETAILS:
+            request_id = packet["data"].get("request_id")
+            if request_id is None:
+                request_id = packet["subject_id"]
+            res_event = state.pending_agent_requests.get(request_id)
+            if res_event is not None:
+                state.received_agent_responses[request_id] = packet
+                del state.pending_agent_requests[request_id]
+        elif packet["packet_type"] == PACKET_TYPE_HEARTBEAT:
+            packet["data"] = {"last_mephisto_ping": js_time(state.last_mephisto_ping)}
+            agent_id = packet["subject_id"]
+            agent = state.agent_id_to_agent.get(agent_id)
+            if agent is not None:
+                agent.is_alive = True
+                packet["data"]["status"] = agent.status
+                local_client = state.agent_id_to_client.get(agent.agent_id)
+                if local_client != client and local_client is not None:
+                    # Not communicating to the correct socket, update
+                    debug_log("Updating client for ", agent)
+                    state.agent_id_to_client[agent.agent_id] = client
+                    state.client_id_to_agent[client.mephisto_id] = agent
+            self._handle_forward(packet)
+        else:
+            debug_log("Unknown message", packet)
+
+    def on_close(self, reason: Any) -> None:
+        """Mark a socket dead for a LocalAgentState, give time to reconnect"""
+        client = self.ws.handler.active_client
+        debug_log("Some client disconnected!", client.mephisto_id)
+        agent = self.mephisto_state.client_id_to_agent.get(client.mephisto_id)
+        if agent is None:
+            return  # Agent not being tracked
+        agent.is_alive = False
+        agent.disconnect_time = time.time()
+
+    def make_agent_request(
+        self, request_packet: Dict[str, Any]
+    ) -> Optional[Dict[str, Any]]:
+        """Make a request to the core Mephisto server, and then await the response"""
+        request_id = request_packet["data"]["request_id"]
+
+        self.mephisto_state.pending_agent_requests[request_id] = True
+        self._send_message(self.mephisto_state.mephisto_socket, request_packet)
+        start_time = time.time()
+        res = None
+        while time.time() - start_time < 30 and res is None:
+            res = self.mephisto_state.received_agent_responses.get(request_id)
+            time.sleep(0.01)
+        if res is not None:
+            del self.mephisto_state.received_agent_responses[request_id]
+        return res
+
+
+@mephisto_router.route("/request_agent", methods=["POST"])
+def request_agent():
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    request_id = str(uuid4())
+    provider_data = data["provider_data"]
+    assert mephisto_router_app is not None, "Must initialize router before this call"
+    packet = {
+        "packet_type": PACKET_TYPE_REGISTER_AGENT,
+        "subject_id": request_id,
+        "data": {
+            "provider_data": provider_data,
+            "request_id": request_id,
+        },
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    res = mephisto_router_app.make_agent_request(packet)
+    if res is not None:
+        return jsonify(res)
+    else:
+        # Timed out waiting for Mephisto to respond
+        abort(408)
+        return None
+
+
+@mephisto_router.route("/submit_onboarding", methods=["POST"])
+def submit_onboarding():
+    """
+    Parse onboarding as if it were a request sent from the
+    active agent, rather than coming as a request from the router.
+    """
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    provider_data = data["provider_data"]
+    agent_id = provider_data["USED_AGENT_ID"]
+    del provider_data["USED_AGENT_ID"]
+    provider_data["request_id"] = str(uuid4())
+
+    if "onboarding_data" not in provider_data:
+        provider_data["onboarding_data"] = {}
+
+    # Construct and send onboarding submission packet
+    packet = {
+        "packet_type": PACKET_TYPE_SUBMIT_ONBOARDING,
+        "subject_id": agent_id,
+        "data": provider_data,
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    res = mephisto_router_app.make_agent_request(packet)
+    if res is not None:
+        return jsonify(res)
+    else:
+        # Timed out waiting for Mephisto to respond
+        abort(408)
+        return None
+
+
+@mephisto_router.route("/submit_task", methods=["POST"])
+def submit_task():
+    """Parse task submission as if it were an act"""
+    router_incoming_timestamp = time.time()
+    provider_data = request.get_json()
+    filenames = []
+    if provider_data is None:
+        # Multipart form submit
+        provider_data = request.form.to_dict()
+        files = request.files.to_dict()
+        if len(files) > 0:
+            timestamp = int(time.time())
+            rand = str(uuid4())[:8]
+            for filename, filepoint in files.items():
+                full_name = f"{timestamp}-{rand}-{secure_filename(filename)}"
+                filepoint.save(os.path.join("/tmp/", full_name))
+                filenames.append({"filename": full_name})
+
+    extracted_data = provider_data.get("final_data")
+    if extracted_data is None and "final_string_data" in provider_data:
+        extracted_data = json.loads(provider_data.final_string_data)
+
+    if len(filenames) > 0:
+        extracted_data.files = filenames
+
+    agent_id = provider_data["USED_AGENT_ID"]
+
+    packet = {
+        "packet_type": PACKET_TYPE_SUBMIT_UNIT,
+        "subject_id": agent_id,
+        "data": extracted_data,
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    mephisto_router_app._handle_forward(packet)
+    return jsonify({"status": "Error log sent!"})
+
+
+@mephisto_router.route("/log_error", methods=["POST"])
+def log_error():
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    packet = {
+        "packet_type": PACKET_TYPE_ERROR,
+        "subject_id": data["USED_AGENT_ID"],
+        "data": data["error_data"],
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    mephisto_router_app._handle_forward(packet)
+    return jsonify({"status": "Error log sent!"})
+
+
+@mephisto_router.route("/is_alive", methods=["GET"])
+def is_alive():
+    return jsonify({"status": "Alive!"})
+
+
+@mephisto_router.route("/get_timestamp", methods=["GET"])
+def get_timestamp():
+    return jsonify({"timestamp": time.time()})
+
+
+@mephisto_router.route("/download_file/<filename>", methods=["GET"])
+def download_file(filename):
+    try:
+        return send_from_directory("/tmp/", filename)
+    except:
+        abort(404)
+
+
+@mephisto_router.route("/")
+def show_index():
+    try:
+        return send_from_directory("static", "index.html")
+    except:
+        abort(404)
+
+
+@mephisto_router.route("/task_config.json")
+def get_task_config(res):
+    args = request.args
+    mephisto_task_version = args.get("mephisto_task_version")
+    if mephisto_task_version != CURR_MEPHISTO_TASK_VERSION:
+        _handle_forward(
+            {
+                "packet_type": PACKET_TYPE_ERROR,
+                "subject_id": SYSTEM_CHANNEL_ID,
+                "data": {
+                    "error_type": "version-mismatch",
+                    "text": (
+                        "Package `mephisto-task` version mismatch. Expected "
+                        f"version {CURR_MEPHISTO_TASK_VERSION} but frontend is "
+                        f"currently using {mephisto_task_version}. This may "
+                        "cause unexpected errors, be sure to update your "
+                        "`mephisto-task` dependency with `npm install "
+                        f"mephisto-task@{CURR_MEPHISTO_TASK_VERSION} --save`. "
+                        "If this warning still persists or the version isn't found, "
+                        "please open an issue at "
+                        "https://github.com/facebookresearch/Mephisto/issues"
+                    ),
+                },
+            }
+        )
+    try:
+        return send_from_directory("static", "task_config.json")
+    except:
+        abort(404)
+
+
+@mephisto_router.route("/<res>")
+def get_static(res):
+    try:
+        return send_from_directory("static", res)
+    except:
+        abort(404)
+
+
+@mephisto_router.after_request
+def add_header(r):
+    """
+    Add headers to prevent caching, as this server may be used in local
+    development or with the same address but different contents
+    """
+    r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
+    r.headers["Pragma"] = "no-cache"
+    r.headers["Expires"] = "0"
+    r.headers["Cache-Control"] = "public, max-age=0"
+    return r
+
+ +
+ +
+
+
#   + + + def + debug_log(*args): +
+ +
+ View Source +
def debug_log(*args):
+    """
+    Log only if debugging is enabled
+
+    Explicitly does not use the regular Mephisto logging framework as we
+    may want to deploy this on a server that doesn't have Mephisto installed,
+    and we can keep package size low this way.
+    """
+    if DEBUG:
+        print(*args)
+
+ +
+ +

Log only if debugging is enabled

+ +

Explicitly does not use the regular Mephisto logging framework as we +may want to deploy this on a server that doesn't have Mephisto installed, +and we can keep package size low this way.

+
+ + +
+
+
#   + + + def + js_time(python_time: float) -> int: +
+ +
+ View Source +
def js_time(python_time: float) -> int:
+    """Convert python time to js time, as the mephisto-task package expects"""
+    return int(python_time * 1000)
+
+ +
+ +

Convert python time to js time, as the mephisto-task package expects

+
+ + +
+
+
+ #   + + + class + LocalAgentState: +
+ +
+ View Source +
class LocalAgentState:
+    """
+    Keeps track of a connected agent over their lifecycle interacting with the router
+    """
+
+    def __init__(self, agent_id: str):
+        """Initialize an object to track the lifecycle of a connection"""
+        self.status = STATUS_INIT
+        self.agent_id = agent_id
+        self.is_alive = False
+        self.disconnect_time = 0
+        self.last_ping = 0
+        self.unsent_messages: List[Dict[str, Any]] = []
+
+    def __str__(self):
+        return f"Agent({self.agent_id}): {self.status}"
+
+ +
+ +

Keeps track of a connected agent over their lifecycle interacting with the router

+
+ + +
+
#   + + + LocalAgentState(agent_id: str) +
+ +
+ View Source +
    def __init__(self, agent_id: str):
+        """Initialize an object to track the lifecycle of a connection"""
+        self.status = STATUS_INIT
+        self.agent_id = agent_id
+        self.is_alive = False
+        self.disconnect_time = 0
+        self.last_ping = 0
+        self.unsent_messages: List[Dict[str, Any]] = []
+
+ +
+ +

Initialize an object to track the lifecycle of a connection

+
+ + +
+
+
+
+ #   + + + class + MephistoRouterState: +
+ +
+ View Source +
class MephistoRouterState:
+    def __init__(self):
+        self.agent_id_to_client: Dict[str, "Client"] = {}
+        self.client_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.mephisto_socket: Optional["WebSocket"] = None
+        self.agent_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.pending_agent_requests: Dict[str, bool] = {}
+        self.received_agent_responses: Dict[str, Dict[str, Any]] = {}
+        self.last_mephisto_ping: float = time.time()
+
+ +
+ + + +
+
#   + + + MephistoRouterState() +
+ +
+ View Source +
    def __init__(self):
+        self.agent_id_to_client: Dict[str, "Client"] = {}
+        self.client_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.mephisto_socket: Optional["WebSocket"] = None
+        self.agent_id_to_agent: Dict[str, LocalAgentState] = {}
+        self.pending_agent_requests: Dict[str, bool] = {}
+        self.received_agent_responses: Dict[str, Dict[str, Any]] = {}
+        self.last_mephisto_ping: float = time.time()
+
+ +
+ + + +
+
+
+ + + + + +
+
+ + + + + +
+
+ + +
+ View Source +
def register_router_application(router: "MephistoRouter") -> "MephistoRouterState":
+    """
+    Register a routing application with the global state,
+    such that HTTP requests can access it and so that
+    all websocket routers share the same state.
+
+    Returns the global router state
+    """
+    global mephisto_router_app, mephisto_router_state
+    mephisto_router_app = router
+    if mephisto_router_state is None:
+        mephisto_router_state = MephistoRouterState()
+    return mephisto_router_state
+
+ +
+ +

Register a routing application with the global state, +such that HTTP requests can access it and so that +all websocket routers share the same state.

+ +

Returns the global router state

+
+ + +
+
+
+ #   + + + class + MephistoRouter(geventwebsocket.resource.WebSocketApplication): +
+ +
+ View Source +
class MephistoRouter(WebSocketApplication):
+    """
+    Base implementation of a websocket server that handles
+    all of the socket based IO for mephisto-task
+    """
+
+    def __init__(self, *args, **kwargs):
+        """Initialize with the gloabl state of MephistoRouters"""
+        super().__init__(*args, **kwargs)
+        self.mephisto_state = register_router_application(self)
+
+    def _send_message(self, socket: "WebSocket", packet: Dict[str, Any]) -> None:
+        """Send the given message through the given socket"""
+        if not socket:
+            # We should be passing a socket, even if it's closed...
+            debug_log("No socket to send packet to", packet)
+            return
+
+        if socket.closed:
+            # Socket is already closed, noop
+            return
+
+        packet["router_outgoing_timestamp"] = time.time()
+        socket.send(json.dumps(packet))
+
+    def _find_or_create_agent(self, agent_id: str) -> "LocalAgentState":
+        """Get or create an agent state for the given id"""
+        state = self.mephisto_state
+        agent = state.agent_id_to_agent.get(agent_id)
+        if agent is None:
+            agent = LocalAgentState(agent_id)
+            state.agent_id_to_agent[agent_id] = agent
+        return agent
+
+    def _handle_alive(self, client: "Client", alive_packet: Dict[str, Any]) -> None:
+        """
+        On alive, find out who the sender is, and register
+        them as correctly here.
+        """
+        state = self.mephisto_state
+        if alive_packet["subject_id"] == SYSTEM_CHANNEL_ID:
+            state.mephisto_socket = client.ws
+        else:
+            agent_id = alive_packet["subject_id"]
+            agent = self._find_or_create_agent(agent_id)
+            agent.is_alive = True
+            state.agent_id_to_client[agent_id] = client
+            state.client_id_to_agent[client.mephisto_id] = agent
+
+            # push out backlog
+            while len(agent.unsent_messages) > 0:
+                packet = agent.unsent_messages.pop(0)
+                self._handle_forward(packet)
+
+    def _ensure_live_connection(self, agent: LocalAgentState) -> None:
+        curr_status = agent.status
+        last_ping = agent.last_ping
+        if last_ping == 0:
+            return  # Not a live task, nothing to check
+        if curr_status not in [STATUS_ONBOARDING, STATUS_WAITING, STATUS_IN_TASK]:
+            return  # not in a live state, no reason to check liveliness
+        if time.time() - last_ping > FAILED_PING_TIME:
+            agent.status = STATUS_DISCONNECTED
+            self._send_status_for_agent(agent.agent_id)
+
+    def _handle_get_agent_status(self, agent_status_packet: Dict[str, Any]) -> None:
+        """
+        On a get agent status request, check the status of all agents and
+        respond to the core mephisto server with the current status of each.
+
+        May return semi-stale information, but is non-blocking
+        """
+        state = self.mephisto_state
+        state.last_mephisto_ping = time.time()
+        agent_statuses = {}
+        for agent_id in state.agent_id_to_agent.keys():
+            agent = self._find_or_create_agent(agent_id)
+            self._ensure_live_connection(agent)
+            if not agent.is_alive and agent.status != STATUS_DISCONNECTED:
+                self._followup_possible_disconnect(agent)
+            agent_statuses[agent_id] = state.agent_id_to_agent[agent_id].status
+        packet = {
+            "packet_type": PACKET_TYPE_RETURN_STATUSES,
+            "subject_id": SYSTEM_CHANNEL_ID,
+            "data": agent_statuses,
+            "client_timestamp": agent_status_packet["server_timestamp"],
+            "router_incoming_timestamp": agent_status_packet[
+                "router_incoming_timestamp"
+            ],
+        }
+        self._handle_forward(packet)
+
+    def _handle_update_local_status(self, status_packet: Dict[str, Any]) -> None:
+        """Update the local agent status given a status packet"""
+        agent_id = status_packet["subject_id"]
+        agent = self._find_or_create_agent(agent_id)
+        if status_packet["data"].get("status") is not None:
+            agent.status = status_packet["data"]["status"]
+
+    def _handle_forward(self, packet: Dict[str, Any]) -> None:
+        """Handle forwarding the given packet to the included subject_id"""
+        if packet["subject_id"] == SYSTEM_CHANNEL_ID:
+            debug_log("Sending message to Mephisto", packet)
+            socket = self.mephisto_state.mephisto_socket
+        else:
+            debug_log("Sending message to agent", packet)
+            agent_id = packet["subject_id"]
+            agent = self._find_or_create_agent(agent_id)
+            client = self.mephisto_state.agent_id_to_client.get(agent_id)
+            if client is None:
+                agent.unsent_messages.append(packet)
+                return
+            socket = client.ws
+        self._send_message(socket, packet)
+
+    def _followup_possible_disconnect(self, agent: LocalAgentState) -> None:
+        """Check to see if the given agent is disconnected"""
+        if agent.disconnect_time == 0:
+            return  # Agent never disconnected, isn't live
+        if time.time() - agent.disconnect_time > FAILED_RECONNECT_TIME:
+            agent.status = STATUS_DISCONNECTED
+            debug_log("Agent disconnected", agent)
+
+    def _send_status_for_agent(self, agent_id: str) -> None:
+        """
+        Send a packet that updates the client status for the given agent,
+        pushing them the most recent local status.
+        """
+        agent = self._find_or_create_agent(agent_id)
+        packet = {
+            "packet_type": PACKET_TYPE_UPDATE_STATUS,
+            "subject_id": agent_id,
+            "data": {
+                "status": agent.status,
+            },
+        }
+        self._handle_forward(packet)
+
+    def on_open(self) -> None:
+        """
+        Initialize a new client connection, and give them a uuid to refer to
+        """
+        current_client = self.ws.handler.active_client
+        debug_log("Some client connected!", current_client)
+        current_client.mephisto_id = str(uuid4())
+
+    def on_message(self, message: str) -> None:
+        """
+        Determine the type of message, and then handle via the correct handler
+        """
+        if message is None:
+            return
+
+        state = self.mephisto_state
+        current_client = self.ws.handler.active_client
+        client = current_client
+        packet = json.loads(message)
+        packet["router_incoming_timestamp"] = time.time()
+        if packet["packet_type"] == PACKET_TYPE_REQUEST_STATUSES:
+            debug_log("Mephisto requesting status")
+            self._handle_get_agent_status(packet)
+        elif packet["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            debug_log("Agent action: ", packet)
+            self._send_message(self.mephisto_state.mephisto_socket, packet)
+        elif packet["packet_type"] == PACKET_TYPE_ERROR:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_ALIVE:
+            debug_log("Agent alive: ", packet)
+            self._handle_alive(self.ws.handler.active_client, packet)
+        elif packet["packet_type"] == PACKET_TYPE_UPDATE_STATUS:
+            debug_log("Update agent status", packet)
+            self._handle_update_local_status(packet)
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_AGENT_DETAILS:
+            request_id = packet["data"].get("request_id")
+            if request_id is None:
+                request_id = packet["subject_id"]
+            res_event = state.pending_agent_requests.get(request_id)
+            if res_event is not None:
+                state.received_agent_responses[request_id] = packet
+                del state.pending_agent_requests[request_id]
+        elif packet["packet_type"] == PACKET_TYPE_HEARTBEAT:
+            packet["data"] = {"last_mephisto_ping": js_time(state.last_mephisto_ping)}
+            agent_id = packet["subject_id"]
+            agent = state.agent_id_to_agent.get(agent_id)
+            if agent is not None:
+                agent.is_alive = True
+                packet["data"]["status"] = agent.status
+                local_client = state.agent_id_to_client.get(agent.agent_id)
+                if local_client != client and local_client is not None:
+                    # Not communicating to the correct socket, update
+                    debug_log("Updating client for ", agent)
+                    state.agent_id_to_client[agent.agent_id] = client
+                    state.client_id_to_agent[client.mephisto_id] = agent
+            self._handle_forward(packet)
+        else:
+            debug_log("Unknown message", packet)
+
+    def on_close(self, reason: Any) -> None:
+        """Mark a socket dead for a LocalAgentState, give time to reconnect"""
+        client = self.ws.handler.active_client
+        debug_log("Some client disconnected!", client.mephisto_id)
+        agent = self.mephisto_state.client_id_to_agent.get(client.mephisto_id)
+        if agent is None:
+            return  # Agent not being tracked
+        agent.is_alive = False
+        agent.disconnect_time = time.time()
+
+    def make_agent_request(
+        self, request_packet: Dict[str, Any]
+    ) -> Optional[Dict[str, Any]]:
+        """Make a request to the core Mephisto server, and then await the response"""
+        request_id = request_packet["data"]["request_id"]
+
+        self.mephisto_state.pending_agent_requests[request_id] = True
+        self._send_message(self.mephisto_state.mephisto_socket, request_packet)
+        start_time = time.time()
+        res = None
+        while time.time() - start_time < 30 and res is None:
+            res = self.mephisto_state.received_agent_responses.get(request_id)
+            time.sleep(0.01)
+        if res is not None:
+            del self.mephisto_state.received_agent_responses[request_id]
+        return res
+
+ +
+ +

Base implementation of a websocket server that handles +all of the socket based IO for mephisto-task

+
+ + +
+
#   + + + MephistoRouter(*args, **kwargs) +
+ +
+ View Source +
    def __init__(self, *args, **kwargs):
+        """Initialize with the gloabl state of MephistoRouters"""
+        super().__init__(*args, **kwargs)
+        self.mephisto_state = register_router_application(self)
+
+ +
+ +

Initialize with the gloabl state of MephistoRouters

+
+ + +
+
+
#   + + + def + on_open(self) -> None: +
+ +
+ View Source +
    def on_open(self) -> None:
+        """
+        Initialize a new client connection, and give them a uuid to refer to
+        """
+        current_client = self.ws.handler.active_client
+        debug_log("Some client connected!", current_client)
+        current_client.mephisto_id = str(uuid4())
+
+ +
+ +

Initialize a new client connection, and give them a uuid to refer to

+
+ + +
+
+
#   + + + def + on_message(self, message: str) -> None: +
+ +
+ View Source +
    def on_message(self, message: str) -> None:
+        """
+        Determine the type of message, and then handle via the correct handler
+        """
+        if message is None:
+            return
+
+        state = self.mephisto_state
+        current_client = self.ws.handler.active_client
+        client = current_client
+        packet = json.loads(message)
+        packet["router_incoming_timestamp"] = time.time()
+        if packet["packet_type"] == PACKET_TYPE_REQUEST_STATUSES:
+            debug_log("Mephisto requesting status")
+            self._handle_get_agent_status(packet)
+        elif packet["packet_type"] == PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+            debug_log("Agent action: ", packet)
+            self._send_message(self.mephisto_state.mephisto_socket, packet)
+        elif packet["packet_type"] == PACKET_TYPE_ERROR:
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_ALIVE:
+            debug_log("Agent alive: ", packet)
+            self._handle_alive(self.ws.handler.active_client, packet)
+        elif packet["packet_type"] == PACKET_TYPE_UPDATE_STATUS:
+            debug_log("Update agent status", packet)
+            self._handle_update_local_status(packet)
+            self._handle_forward(packet)
+        elif packet["packet_type"] == PACKET_TYPE_AGENT_DETAILS:
+            request_id = packet["data"].get("request_id")
+            if request_id is None:
+                request_id = packet["subject_id"]
+            res_event = state.pending_agent_requests.get(request_id)
+            if res_event is not None:
+                state.received_agent_responses[request_id] = packet
+                del state.pending_agent_requests[request_id]
+        elif packet["packet_type"] == PACKET_TYPE_HEARTBEAT:
+            packet["data"] = {"last_mephisto_ping": js_time(state.last_mephisto_ping)}
+            agent_id = packet["subject_id"]
+            agent = state.agent_id_to_agent.get(agent_id)
+            if agent is not None:
+                agent.is_alive = True
+                packet["data"]["status"] = agent.status
+                local_client = state.agent_id_to_client.get(agent.agent_id)
+                if local_client != client and local_client is not None:
+                    # Not communicating to the correct socket, update
+                    debug_log("Updating client for ", agent)
+                    state.agent_id_to_client[agent.agent_id] = client
+                    state.client_id_to_agent[client.mephisto_id] = agent
+            self._handle_forward(packet)
+        else:
+            debug_log("Unknown message", packet)
+
+ +
+ +

Determine the type of message, and then handle via the correct handler

+
+ + +
+
+
#   + + + def + on_close(self, reason: Any) -> None: +
+ +
+ View Source +
    def on_close(self, reason: Any) -> None:
+        """Mark a socket dead for a LocalAgentState, give time to reconnect"""
+        client = self.ws.handler.active_client
+        debug_log("Some client disconnected!", client.mephisto_id)
+        agent = self.mephisto_state.client_id_to_agent.get(client.mephisto_id)
+        if agent is None:
+            return  # Agent not being tracked
+        agent.is_alive = False
+        agent.disconnect_time = time.time()
+
+ +
+ +

Mark a socket dead for a LocalAgentState, give time to reconnect

+
+ + +
+
+
#   + + + def + make_agent_request( + self, + request_packet: Dict[str, Any] +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def make_agent_request(
+        self, request_packet: Dict[str, Any]
+    ) -> Optional[Dict[str, Any]]:
+        """Make a request to the core Mephisto server, and then await the response"""
+        request_id = request_packet["data"]["request_id"]
+
+        self.mephisto_state.pending_agent_requests[request_id] = True
+        self._send_message(self.mephisto_state.mephisto_socket, request_packet)
+        start_time = time.time()
+        res = None
+        while time.time() - start_time < 30 and res is None:
+            res = self.mephisto_state.received_agent_responses.get(request_id)
+            time.sleep(0.01)
+        if res is not None:
+            del self.mephisto_state.received_agent_responses[request_id]
+        return res
+
+ +
+ +

Make a request to the core Mephisto server, and then await the response

+
+ + +
+
+
Inherited Members
+
+
geventwebsocket.resource.WebSocketApplication
+
protocol_class
+
handle
+
protocol_name
+ +
+
+
+
+
+
#   + +
@mephisto_router.route('/request_agent', methods=['POST'])
+ + def + request_agent(): +
+ +
+ View Source +
@mephisto_router.route("/request_agent", methods=["POST"])
+def request_agent():
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    request_id = str(uuid4())
+    provider_data = data["provider_data"]
+    assert mephisto_router_app is not None, "Must initialize router before this call"
+    packet = {
+        "packet_type": PACKET_TYPE_REGISTER_AGENT,
+        "subject_id": request_id,
+        "data": {
+            "provider_data": provider_data,
+            "request_id": request_id,
+        },
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    res = mephisto_router_app.make_agent_request(packet)
+    if res is not None:
+        return jsonify(res)
+    else:
+        # Timed out waiting for Mephisto to respond
+        abort(408)
+        return None
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/submit_onboarding', methods=['POST'])
+ + def + submit_onboarding(): +
+ +
+ View Source +
@mephisto_router.route("/submit_onboarding", methods=["POST"])
+def submit_onboarding():
+    """
+    Parse onboarding as if it were a request sent from the
+    active agent, rather than coming as a request from the router.
+    """
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    provider_data = data["provider_data"]
+    agent_id = provider_data["USED_AGENT_ID"]
+    del provider_data["USED_AGENT_ID"]
+    provider_data["request_id"] = str(uuid4())
+
+    if "onboarding_data" not in provider_data:
+        provider_data["onboarding_data"] = {}
+
+    # Construct and send onboarding submission packet
+    packet = {
+        "packet_type": PACKET_TYPE_SUBMIT_ONBOARDING,
+        "subject_id": agent_id,
+        "data": provider_data,
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    res = mephisto_router_app.make_agent_request(packet)
+    if res is not None:
+        return jsonify(res)
+    else:
+        # Timed out waiting for Mephisto to respond
+        abort(408)
+        return None
+
+ +
+ +

Parse onboarding as if it were a request sent from the +active agent, rather than coming as a request from the router.

+
+ + +
+
+
#   + +
@mephisto_router.route('/submit_task', methods=['POST'])
+ + def + submit_task(): +
+ +
+ View Source +
@mephisto_router.route("/submit_task", methods=["POST"])
+def submit_task():
+    """Parse task submission as if it were an act"""
+    router_incoming_timestamp = time.time()
+    provider_data = request.get_json()
+    filenames = []
+    if provider_data is None:
+        # Multipart form submit
+        provider_data = request.form.to_dict()
+        files = request.files.to_dict()
+        if len(files) > 0:
+            timestamp = int(time.time())
+            rand = str(uuid4())[:8]
+            for filename, filepoint in files.items():
+                full_name = f"{timestamp}-{rand}-{secure_filename(filename)}"
+                filepoint.save(os.path.join("/tmp/", full_name))
+                filenames.append({"filename": full_name})
+
+    extracted_data = provider_data.get("final_data")
+    if extracted_data is None and "final_string_data" in provider_data:
+        extracted_data = json.loads(provider_data.final_string_data)
+
+    if len(filenames) > 0:
+        extracted_data.files = filenames
+
+    agent_id = provider_data["USED_AGENT_ID"]
+
+    packet = {
+        "packet_type": PACKET_TYPE_SUBMIT_UNIT,
+        "subject_id": agent_id,
+        "data": extracted_data,
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    mephisto_router_app._handle_forward(packet)
+    return jsonify({"status": "Error log sent!"})
+
+ +
+ +

Parse task submission as if it were an act

+
+ + +
+
+
#   + +
@mephisto_router.route('/log_error', methods=['POST'])
+ + def + log_error(): +
+ +
+ View Source +
@mephisto_router.route("/log_error", methods=["POST"])
+def log_error():
+    router_incoming_timestamp = time.time()
+    data = request.get_json()
+    packet = {
+        "packet_type": PACKET_TYPE_ERROR,
+        "subject_id": data["USED_AGENT_ID"],
+        "data": data["error_data"],
+        "client_timestamp": data["client_timestamp"],
+        "router_incoming_timestamp": router_incoming_timestamp,
+    }
+    mephisto_router_app._handle_forward(packet)
+    return jsonify({"status": "Error log sent!"})
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/is_alive', methods=['GET'])
+ + def + is_alive(): +
+ +
+ View Source +
@mephisto_router.route("/is_alive", methods=["GET"])
+def is_alive():
+    return jsonify({"status": "Alive!"})
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/get_timestamp', methods=['GET'])
+ + def + get_timestamp(): +
+ +
+ View Source +
@mephisto_router.route("/get_timestamp", methods=["GET"])
+def get_timestamp():
+    return jsonify({"timestamp": time.time()})
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/download_file/<filename>', methods=['GET'])
+ + def + download_file(filename): +
+ +
+ View Source +
@mephisto_router.route("/download_file/<filename>", methods=["GET"])
+def download_file(filename):
+    try:
+        return send_from_directory("/tmp/", filename)
+    except:
+        abort(404)
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/')
+ + def + show_index(): +
+ +
+ View Source +
@mephisto_router.route("/")
+def show_index():
+    try:
+        return send_from_directory("static", "index.html")
+    except:
+        abort(404)
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/task_config.json')
+ + def + get_task_config(res): +
+ +
+ View Source +
@mephisto_router.route("/task_config.json")
+def get_task_config(res):
+    args = request.args
+    mephisto_task_version = args.get("mephisto_task_version")
+    if mephisto_task_version != CURR_MEPHISTO_TASK_VERSION:
+        _handle_forward(
+            {
+                "packet_type": PACKET_TYPE_ERROR,
+                "subject_id": SYSTEM_CHANNEL_ID,
+                "data": {
+                    "error_type": "version-mismatch",
+                    "text": (
+                        "Package `mephisto-task` version mismatch. Expected "
+                        f"version {CURR_MEPHISTO_TASK_VERSION} but frontend is "
+                        f"currently using {mephisto_task_version}. This may "
+                        "cause unexpected errors, be sure to update your "
+                        "`mephisto-task` dependency with `npm install "
+                        f"mephisto-task@{CURR_MEPHISTO_TASK_VERSION} --save`. "
+                        "If this warning still persists or the version isn't found, "
+                        "please open an issue at "
+                        "https://github.com/facebookresearch/Mephisto/issues"
+                    ),
+                },
+            }
+        )
+    try:
+        return send_from_directory("static", "task_config.json")
+    except:
+        abort(404)
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.route('/<res>')
+ + def + get_static(res): +
+ +
+ View Source +
@mephisto_router.route("/<res>")
+def get_static(res):
+    try:
+        return send_from_directory("static", res)
+    except:
+        abort(404)
+
+ +
+ + + +
+
+
#   + +
@mephisto_router.after_request
+ + def + add_header(r): +
+ +
+ View Source +
@mephisto_router.after_request
+def add_header(r):
+    """
+    Add headers to prevent caching, as this server may be used in local
+    development or with the same address but different contents
+    """
+    r.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
+    r.headers["Pragma"] = "no-cache"
+    r.headers["Expires"] = "0"
+    r.headers["Cache-Control"] = "public, max-age=0"
+    return r
+
+ +
+ +

Add headers to prevent caching, as this server may be used in local +development or with the same address but different contents

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprint.html new file mode 100644 index 000000000..7cfbc4316 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprint.html @@ -0,0 +1,1628 @@ + + + + + + + + + mephisto.abstractions.blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from abc import ABC, abstractmethod
+from typing import (
+    ClassVar,
+    List,
+    Dict,
+    Any,
+    Type,
+    Union,
+    Iterable,
+    Callable,
+    TYPE_CHECKING,
+)
+
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+
+from mephisto.abstractions._subcomponents.task_builder import TaskBuilder
+from mephisto.abstractions._subcomponents.task_runner import TaskRunner
+from mephisto.abstractions._subcomponents.agent_state import AgentState
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import InitializationData
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.worker import Worker
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+@dataclass
+class BlueprintArgs:
+    _blueprint_type: str = MISSING
+    block_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Specify the name of a qualification used to soft block workers.")
+        },
+    )
+
+
+@dataclass
+class SharedTaskState:
+    """
+    Base class for specifying additional state that can't just
+    be passed as Hydra args, like functions and objects
+    """
+
+    task_config: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Values to be included in the frontend MephistoTask.task_config object"
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    qualifications: List[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List of qualification dicts of the form returned by "
+                "mephisto.utils.qualifications.make_qualification_dict "
+                "to be used with this task run."
+            ),
+            "type": "List[Dict]",
+            "default": "[]",
+        },
+    )
+    worker_can_do_unit: Callable[["Worker", "Unit"], bool] = field(
+        default_factory=lambda: (lambda worker, unit: True),
+        metadata={
+            "help": ("Function to evaluate if a worker is eligible for a given unit"),
+            "type": "Callable[[Worker, Unit], bool]",
+            "default": "Returns True always",
+        },
+    )
+    on_unit_submitted: Callable[["Unit"], None] = field(
+        default_factory=lambda: (lambda unit: None),
+        metadata={
+            "help": ("Function to evaluate on every unit completed or disconnected"),
+            "type": "Callable[[Unit], None]",
+            "default": "No-op function",
+        },
+    )
+
+
+class BlueprintMixin(ABC):
+    """
+    Base class for compositional mixins for blueprints
+
+    We expect mixins that subclass other mixins to handle subinitialization
+    work, such that only the highest class needs to be called.
+    """
+
+    # @property
+    # @abstractmethod
+    # def ArgsMixin(self) -> Type[object]:  # Should be a dataclass, to extend BlueprintArgs
+    #     pass
+
+    # @property
+    # @abstractmethod
+    # def SharedStateMixin(
+    #     self,
+    # ) -> Type[object]:  # Also should be a dataclass, to extend SharedTaskState
+    #     pass
+    ArgsMixin: ClassVar[Type[object]]
+    SharedStateMixin: ClassVar[Type[object]]
+
+    @staticmethod
+    def extract_unique_mixins(blueprint_class: Type["Blueprint"]):
+        """Return the unique mixin classes that are used in the given blueprint class"""
+        mixin_subclasses = [
+            clazz
+            for clazz in blueprint_class.mro()
+            if issubclass(clazz, BlueprintMixin)
+        ]
+        target_class: Union[Type["Blueprint"], Type["BlueprintMixin"]] = blueprint_class
+        # Remove magic created with `mixin_args_and_state`
+        while target_class.__name__ == "MixedInBlueprint":
+            target_class = mixin_subclasses.pop(0)
+        removed_locals = [
+            clazz
+            for clazz in mixin_subclasses
+            if "MixedInBlueprint" not in clazz.__name__
+        ]
+        filtered_subclasses = set(
+            clazz
+            for clazz in removed_locals
+            if clazz != BlueprintMixin and clazz != target_class
+        )
+        # we also want to make sure that we don't double-count extensions of mixins, so remove classes that other classes are subclasses of
+        def is_subclassed(clazz):
+            return True in [
+                issubclass(x, clazz) and x != clazz for x in filtered_subclasses
+            ]
+
+        unique_subclasses = [
+            clazz for clazz in filtered_subclasses if not is_subclassed(clazz)
+        ]
+        return unique_subclasses
+
+    @abstractmethod
+    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        raise NotImplementedError()
+
+    @classmethod
+    @abstractmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        raise NotImplementedError()
+
+    @classmethod
+    @abstractmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        raise NotImplementedError()
+
+    @classmethod
+    def mixin_args_and_state(
+        mixin_cls: Type["BlueprintMixin"], target_cls: Type["Blueprint"]
+    ):
+        """
+        Magic utility decorator that can be used to inject mixin configurations
+        (BlueprintArgs and SharedTaskState) without the user needing to define new
+        classes for these. Should only be used by tasks that aren't already specifying
+        new versions of these, which should just inherit otherwise.
+
+        Usage:
+          @register_mephisto_abstraction()
+          @ABlueprintMixin.mixin_args_and_state
+          class MyBlueprint(ABlueprintMixin, Blueprint):
+              pass
+        """
+        # Ignore typing on most of this, as mypy is not able to parse what's happening
+        @dataclass
+        class MixedInArgsClass(mixin_cls.ArgsMixin, target_cls.ArgsClass):  # type: ignore
+            pass
+
+        @dataclass
+        class MixedInSharedStateClass(
+            mixin_cls.SharedStateMixin, target_cls.SharedStateClass  # type: ignore
+        ):
+            pass
+
+        class MixedInBlueprint(target_cls):  # type: ignore
+            ArgsClass = MixedInArgsClass
+            SharedStateClass = MixedInSharedStateClass
+
+        return MixedInBlueprint
+
+
+class Blueprint(ABC):
+    """
+    Configuration class for the various parts of building, launching,
+    and running a task of a specific task. Provides utility functions
+    for managing between the three main components, which are separated
+    into separate classes in acknowledgement that some tasks may have
+    particularly complicated processes for them
+    """
+
+    AgentStateClass: ClassVar[Type["AgentState"]]
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = AgentState  # type: ignore
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]]
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]]
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = BlueprintArgs
+    SharedStateClass: ClassVar[Type["SharedTaskState"]] = SharedTaskState
+    BLUEPRINT_TYPE: str
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        self.args = args
+        self.shared_state = shared_state
+        self.frontend_task_config = shared_state.task_config
+
+        # We automatically call all mixins `init_mixin_config` methods available.
+        mixin_subclasses = BlueprintMixin.extract_unique_mixins(self.__class__)
+        for clazz in mixin_subclasses:
+            clazz.init_mixin_config(self, task_run, args, shared_state)
+
+    @classmethod
+    def get_required_qualifications(
+        cls, args: DictConfig, shared_state: "SharedTaskState"
+    ):
+        quals = []
+        for clazz in BlueprintMixin.extract_unique_mixins(cls):
+            quals += clazz.get_mixin_qualifications(args, shared_state)
+        return quals
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        # We automatically call all mixins `assert_task_args` methods available.
+        mixin_subclasses = BlueprintMixin.extract_unique_mixins(cls)
+        for clazz in mixin_subclasses:
+            clazz.assert_mixin_args(args, shared_state)
+        return
+
+    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options should be fowarded
+        to the client for use by the task's frontend
+        """
+        return self.frontend_task_config.copy()
+
+    @abstractmethod
+    def get_initialization_data(
+        self,
+    ) -> Iterable["InitializationData"]:
+        """
+        Get all of the data used to initialize tasks from this blueprint.
+        Can either be a simple iterable if all the assignments can
+        be processed at once, or a Generator if the number
+        of tasks is unknown or changes based on something running
+        concurrently with the job.
+        """
+        raise NotImplementedError
+
+ +
+ +
+
+
+ #   + + + class + BlueprintArgs: +
+ +
+ View Source +
class BlueprintArgs:
+    _blueprint_type: str = MISSING
+    block_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Specify the name of a qualification used to soft block workers.")
+        },
+    )
+
+ +
+ +

BlueprintArgs(_blueprint_type: str = '???', block_qualification: str = '???')

+
+ + +
+
#   + + + BlueprintArgs(_blueprint_type: str = '???', block_qualification: str = '???') +
+ + + + +
+
+
#   + + block_qualification: str = '???' +
+ + + + +
+
+
+
+ #   + + + class + SharedTaskState: +
+ +
+ View Source +
class SharedTaskState:
+    """
+    Base class for specifying additional state that can't just
+    be passed as Hydra args, like functions and objects
+    """
+
+    task_config: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Values to be included in the frontend MephistoTask.task_config object"
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    qualifications: List[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List of qualification dicts of the form returned by "
+                "mephisto.utils.qualifications.make_qualification_dict "
+                "to be used with this task run."
+            ),
+            "type": "List[Dict]",
+            "default": "[]",
+        },
+    )
+    worker_can_do_unit: Callable[["Worker", "Unit"], bool] = field(
+        default_factory=lambda: (lambda worker, unit: True),
+        metadata={
+            "help": ("Function to evaluate if a worker is eligible for a given unit"),
+            "type": "Callable[[Worker, Unit], bool]",
+            "default": "Returns True always",
+        },
+    )
+    on_unit_submitted: Callable[["Unit"], None] = field(
+        default_factory=lambda: (lambda unit: None),
+        metadata={
+            "help": ("Function to evaluate on every unit completed or disconnected"),
+            "type": "Callable[[Unit], None]",
+            "default": "No-op function",
+        },
+    )
+
+ +
+ +

Base class for specifying additional state that can't just +be passed as Hydra args, like functions and objects

+
+ + +
+
#   + + + SharedTaskState( + task_config: Dict[str, Any] = <factory>, + qualifications: List[Any] = <factory>, + worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = <factory>, + on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = <factory> +) +
+ + + + +
+
+
+
+ #   + + + class + BlueprintMixin(abc.ABC): +
+ +
+ View Source +
class BlueprintMixin(ABC):
+    """
+    Base class for compositional mixins for blueprints
+
+    We expect mixins that subclass other mixins to handle subinitialization
+    work, such that only the highest class needs to be called.
+    """
+
+    # @property
+    # @abstractmethod
+    # def ArgsMixin(self) -> Type[object]:  # Should be a dataclass, to extend BlueprintArgs
+    #     pass
+
+    # @property
+    # @abstractmethod
+    # def SharedStateMixin(
+    #     self,
+    # ) -> Type[object]:  # Also should be a dataclass, to extend SharedTaskState
+    #     pass
+    ArgsMixin: ClassVar[Type[object]]
+    SharedStateMixin: ClassVar[Type[object]]
+
+    @staticmethod
+    def extract_unique_mixins(blueprint_class: Type["Blueprint"]):
+        """Return the unique mixin classes that are used in the given blueprint class"""
+        mixin_subclasses = [
+            clazz
+            for clazz in blueprint_class.mro()
+            if issubclass(clazz, BlueprintMixin)
+        ]
+        target_class: Union[Type["Blueprint"], Type["BlueprintMixin"]] = blueprint_class
+        # Remove magic created with `mixin_args_and_state`
+        while target_class.__name__ == "MixedInBlueprint":
+            target_class = mixin_subclasses.pop(0)
+        removed_locals = [
+            clazz
+            for clazz in mixin_subclasses
+            if "MixedInBlueprint" not in clazz.__name__
+        ]
+        filtered_subclasses = set(
+            clazz
+            for clazz in removed_locals
+            if clazz != BlueprintMixin and clazz != target_class
+        )
+        # we also want to make sure that we don't double-count extensions of mixins, so remove classes that other classes are subclasses of
+        def is_subclassed(clazz):
+            return True in [
+                issubclass(x, clazz) and x != clazz for x in filtered_subclasses
+            ]
+
+        unique_subclasses = [
+            clazz for clazz in filtered_subclasses if not is_subclassed(clazz)
+        ]
+        return unique_subclasses
+
+    @abstractmethod
+    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        raise NotImplementedError()
+
+    @classmethod
+    @abstractmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        raise NotImplementedError()
+
+    @classmethod
+    @abstractmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        raise NotImplementedError()
+
+    @classmethod
+    def mixin_args_and_state(
+        mixin_cls: Type["BlueprintMixin"], target_cls: Type["Blueprint"]
+    ):
+        """
+        Magic utility decorator that can be used to inject mixin configurations
+        (BlueprintArgs and SharedTaskState) without the user needing to define new
+        classes for these. Should only be used by tasks that aren't already specifying
+        new versions of these, which should just inherit otherwise.
+
+        Usage:
+          @register_mephisto_abstraction()
+          @ABlueprintMixin.mixin_args_and_state
+          class MyBlueprint(ABlueprintMixin, Blueprint):
+              pass
+        """
+        # Ignore typing on most of this, as mypy is not able to parse what's happening
+        @dataclass
+        class MixedInArgsClass(mixin_cls.ArgsMixin, target_cls.ArgsClass):  # type: ignore
+            pass
+
+        @dataclass
+        class MixedInSharedStateClass(
+            mixin_cls.SharedStateMixin, target_cls.SharedStateClass  # type: ignore
+        ):
+            pass
+
+        class MixedInBlueprint(target_cls):  # type: ignore
+            ArgsClass = MixedInArgsClass
+            SharedStateClass = MixedInSharedStateClass
+
+        return MixedInBlueprint
+
+ +
+ +

Base class for compositional mixins for blueprints

+ +

We expect mixins that subclass other mixins to handle subinitialization +work, such that only the highest class needs to be called.

+
+ + +
+
#   + +
@staticmethod
+ + def + extract_unique_mixins(blueprint_class: type[mephisto.abstractions.blueprint.Blueprint]): +
+ +
+ View Source +
    @staticmethod
+    def extract_unique_mixins(blueprint_class: Type["Blueprint"]):
+        """Return the unique mixin classes that are used in the given blueprint class"""
+        mixin_subclasses = [
+            clazz
+            for clazz in blueprint_class.mro()
+            if issubclass(clazz, BlueprintMixin)
+        ]
+        target_class: Union[Type["Blueprint"], Type["BlueprintMixin"]] = blueprint_class
+        # Remove magic created with `mixin_args_and_state`
+        while target_class.__name__ == "MixedInBlueprint":
+            target_class = mixin_subclasses.pop(0)
+        removed_locals = [
+            clazz
+            for clazz in mixin_subclasses
+            if "MixedInBlueprint" not in clazz.__name__
+        ]
+        filtered_subclasses = set(
+            clazz
+            for clazz in removed_locals
+            if clazz != BlueprintMixin and clazz != target_class
+        )
+        # we also want to make sure that we don't double-count extensions of mixins, so remove classes that other classes are subclasses of
+        def is_subclassed(clazz):
+            return True in [
+                issubclass(x, clazz) and x != clazz for x in filtered_subclasses
+            ]
+
+        unique_subclasses = [
+            clazz for clazz in filtered_subclasses if not is_subclassed(clazz)
+        ]
+        return unique_subclasses
+
+ +
+ +

Return the unique mixin classes that are used in the given blueprint class

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + init_mixin_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @abstractmethod
+    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        raise NotImplementedError()
+
+ +
+ +

Method to initialize any required attributes to make this mixin function

+
+ + +
+
+
#   + +
@classmethod
+
@abstractmethod
+ + def + assert_mixin_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @classmethod
+    @abstractmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        raise NotImplementedError()
+
+ +
+ +

Method to validate the incoming args and throw if something won't work

+
+ + +
+
+
#   + +
@classmethod
+
@abstractmethod
+ + def + get_mixin_qualifications( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> List[Dict[str, Any]]: +
+ +
+ View Source +
    @classmethod
+    @abstractmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        raise NotImplementedError()
+
+ +
+ +

Method to provide any required qualifications to make this mixin function

+
+ + +
+
+
#   + +
@classmethod
+ + def + mixin_args_and_state( + mixin_cls: type[mephisto.abstractions.blueprint.BlueprintMixin], + target_cls: type[mephisto.abstractions.blueprint.Blueprint] +): +
+ +
+ View Source +
    @classmethod
+    def mixin_args_and_state(
+        mixin_cls: Type["BlueprintMixin"], target_cls: Type["Blueprint"]
+    ):
+        """
+        Magic utility decorator that can be used to inject mixin configurations
+        (BlueprintArgs and SharedTaskState) without the user needing to define new
+        classes for these. Should only be used by tasks that aren't already specifying
+        new versions of these, which should just inherit otherwise.
+
+        Usage:
+          @register_mephisto_abstraction()
+          @ABlueprintMixin.mixin_args_and_state
+          class MyBlueprint(ABlueprintMixin, Blueprint):
+              pass
+        """
+        # Ignore typing on most of this, as mypy is not able to parse what's happening
+        @dataclass
+        class MixedInArgsClass(mixin_cls.ArgsMixin, target_cls.ArgsClass):  # type: ignore
+            pass
+
+        @dataclass
+        class MixedInSharedStateClass(
+            mixin_cls.SharedStateMixin, target_cls.SharedStateClass  # type: ignore
+        ):
+            pass
+
+        class MixedInBlueprint(target_cls):  # type: ignore
+            ArgsClass = MixedInArgsClass
+            SharedStateClass = MixedInSharedStateClass
+
+        return MixedInBlueprint
+
+ +
+ +

Magic utility decorator that can be used to inject mixin configurations +(BlueprintArgs and SharedTaskState) without the user needing to define new +classes for these. Should only be used by tasks that aren't already specifying +new versions of these, which should just inherit otherwise.

+ +

Usage: + @register_mephisto_abstraction() + @ABlueprintMixin.mixin_args_and_state + class MyBlueprint(ABlueprintMixin, Blueprint): + pass

+
+ + +
+
+
+
+ #   + + + class + Blueprint(abc.ABC): +
+ +
+ View Source +
class Blueprint(ABC):
+    """
+    Configuration class for the various parts of building, launching,
+    and running a task of a specific task. Provides utility functions
+    for managing between the three main components, which are separated
+    into separate classes in acknowledgement that some tasks may have
+    particularly complicated processes for them
+    """
+
+    AgentStateClass: ClassVar[Type["AgentState"]]
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = AgentState  # type: ignore
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]]
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]]
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = BlueprintArgs
+    SharedStateClass: ClassVar[Type["SharedTaskState"]] = SharedTaskState
+    BLUEPRINT_TYPE: str
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        self.args = args
+        self.shared_state = shared_state
+        self.frontend_task_config = shared_state.task_config
+
+        # We automatically call all mixins `init_mixin_config` methods available.
+        mixin_subclasses = BlueprintMixin.extract_unique_mixins(self.__class__)
+        for clazz in mixin_subclasses:
+            clazz.init_mixin_config(self, task_run, args, shared_state)
+
+    @classmethod
+    def get_required_qualifications(
+        cls, args: DictConfig, shared_state: "SharedTaskState"
+    ):
+        quals = []
+        for clazz in BlueprintMixin.extract_unique_mixins(cls):
+            quals += clazz.get_mixin_qualifications(args, shared_state)
+        return quals
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        # We automatically call all mixins `assert_task_args` methods available.
+        mixin_subclasses = BlueprintMixin.extract_unique_mixins(cls)
+        for clazz in mixin_subclasses:
+            clazz.assert_mixin_args(args, shared_state)
+        return
+
+    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options should be fowarded
+        to the client for use by the task's frontend
+        """
+        return self.frontend_task_config.copy()
+
+    @abstractmethod
+    def get_initialization_data(
+        self,
+    ) -> Iterable["InitializationData"]:
+        """
+        Get all of the data used to initialize tasks from this blueprint.
+        Can either be a simple iterable if all the assignments can
+        be processed at once, or a Generator if the number
+        of tasks is unknown or changes based on something running
+        concurrently with the job.
+        """
+        raise NotImplementedError
+
+ +
+ +

Configuration class for the various parts of building, launching, +and running a task of a specific task. Provides utility functions +for managing between the three main components, which are separated +into separate classes in acknowledgement that some tasks may have +particularly complicated processes for them

+
+ + +
+
#   + +
@classmethod
+ + def + get_required_qualifications( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def get_required_qualifications(
+        cls, args: DictConfig, shared_state: "SharedTaskState"
+    ):
+        quals = []
+        for clazz in BlueprintMixin.extract_unique_mixins(cls):
+            quals += clazz.get_mixin_qualifications(args, shared_state)
+        return quals
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        # We automatically call all mixins `assert_task_args` methods available.
+        mixin_subclasses = BlueprintMixin.extract_unique_mixins(cls)
+        for clazz in mixin_subclasses:
+            clazz.assert_mixin_args(args, shared_state)
+        return
+
+ +
+ +

Assert that the provided arguments are valid. Should +fail if a task launched with these arguments would +not work

+
+ + +
+
+
#   + + + def + get_frontend_args(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options should be fowarded
+        to the client for use by the task's frontend
+        """
+        return self.frontend_task_config.copy()
+
+ +
+ +

Specifies what options should be fowarded +to the client for use by the task's frontend

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + get_initialization_data( + self +) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]: +
+ +
+ View Source +
    @abstractmethod
+    def get_initialization_data(
+        self,
+    ) -> Iterable["InitializationData"]:
+        """
+        Get all of the data used to initialize tasks from this blueprint.
+        Can either be a simple iterable if all the assignments can
+        be processed at once, or a Generator if the number
+        of tasks is unknown or changes based on something running
+        concurrently with the job.
+        """
+        raise NotImplementedError
+
+ +
+ +

Get all of the data used to initialize tasks from this blueprint. +Can either be a simple iterable if all the assignments can +be processed at once, or a Generator if the number +of tasks is unknown or changes based on something running +concurrently with the job.

+
+ + +
+
+
+
+ #   + + + class + Blueprint.OnboardingAgentStateClass(abc.ABC): +
+ +
+ View Source +
class AgentState(ABC):
+    """
+    Class for holding state information about work by an Agent on a Unit, currently
+    stored as current task work into a json file.
+
+    Specific state implementations will need to be created for different Task Types,
+    as different tasks store and load differing data.
+    """
+
+    # Possible Agent Status Values
+    STATUS_NONE = "none"
+    STATUS_ACCEPTED = "accepted"
+    STATUS_ONBOARDING = "onboarding"
+    STATUS_WAITING = "waiting"
+    STATUS_IN_TASK = "in task"
+    STATUS_COMPLETED = "completed"
+    STATUS_DISCONNECT = "disconnect"
+    STATUS_TIMEOUT = "timeout"
+    STATUS_PARTNER_DISCONNECT = "partner disconnect"
+    STATUS_EXPIRED = "expired"
+    STATUS_RETURNED = "returned"
+    STATUS_APPROVED = "approved"
+    STATUS_SOFT_REJECTED = "soft_rejected"
+    STATUS_REJECTED = "rejected"
+
+    def __new__(cls, agent: Union["Agent", "OnboardingAgent"]) -> "AgentState":
+        """Return the correct agent state for the given agent"""
+        if cls == AgentState:
+            from mephisto.data_model.agent import Agent
+            from mephisto.operations.registry import get_blueprint_from_type
+
+            # We are trying to construct an AgentState, find what type to use and
+            # create that instead
+            if isinstance(agent, Agent):
+                correct_class = get_blueprint_from_type(agent.task_type).AgentStateClass
+            else:
+                correct_class = get_blueprint_from_type(
+                    agent.task_type
+                ).OnboardingAgentStateClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    @staticmethod
+    def complete() -> List[str]:
+        """Return all final Agent statuses which will not be updated by the WorkerPool"""
+        return [
+            AgentState.STATUS_COMPLETED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+            AgentState.STATUS_EXPIRED,
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_SOFT_REJECTED,
+            AgentState.STATUS_APPROVED,
+            AgentState.STATUS_REJECTED,
+        ]
+
+    @staticmethod
+    def valid() -> List[str]:
+        """Return all valid Agent statuses"""
+        return [
+            AgentState.STATUS_NONE,
+            AgentState.STATUS_ACCEPTED,
+            AgentState.STATUS_ONBOARDING,
+            AgentState.STATUS_WAITING,
+            AgentState.STATUS_IN_TASK,
+            AgentState.STATUS_COMPLETED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+            AgentState.STATUS_PARTNER_DISCONNECT,
+            AgentState.STATUS_EXPIRED,
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_SOFT_REJECTED,
+            AgentState.STATUS_APPROVED,
+            AgentState.STATUS_REJECTED,
+        ]
+
+    # Implementations of an AgentState must implement the following:
+
+    @abstractmethod
+    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Implementations should initialize any required files for saving and
+        loading state data somewhere.
+
+        If said file already exists based on the given agent, load that data
+        instead.
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        raise NotImplementedError()
+
+    @abstractmethod
+    def get_init_state(self) -> Optional[Any]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def load_data(self) -> None:
+        """
+        Load stored data from a file to this object
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def get_data(self) -> Dict[str, Any]:
+        """
+        Return the currently stored data for this task in the format
+        expected by any frontend displays
+        """
+        raise NotImplementedError()
+
+    def get_parsed_data(self) -> Any:
+        """
+        Return the portion of the data that is relevant to a human
+        who wants to parse or analyze the data
+
+        Utility function to handle stripping the data of any
+        context that is only important for reproducing the task
+        exactly. By default is just `get_data`
+        """
+        return self.get_data()
+
+    @abstractmethod
+    def save_data(self) -> None:
+        """
+        Save the relevant data from this Unit to a file in the expected location
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Put new live update data into this AgentState. Keep only what is
+        necessary to recreate the task for evaluation and later use.
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def update_submit(self, submit_data: Dict[str, Any]) -> None:
+        """
+        Update this AgentState with the final submission data.
+        """
+        raise NotImplementedError()
+
+    def get_task_start(self) -> Optional[float]:
+        """
+        Return the start time for this task, if it is available
+        """
+        return 0.0
+
+    def get_task_end(self) -> Optional[float]:
+        """
+        Return the end time for this task, if it is available
+        """
+        return 0.0
+
+ +
+ +

Class for holding state information about work by an Agent on a Unit, currently +stored as current task work into a json file.

+ +

Specific state implementations will need to be created for different Task Types, +as different tasks store and load differing data.

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.agent_state.AgentState
+
AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
set_init_state
+
get_init_state
+
load_data
+
get_data
+
get_parsed_data
+
save_data
+
update_data
+
update_submit
+
get_task_start
+
get_task_end
+ +
+
+
+
+
+
+ #   + + + class + Blueprint.ArgsClass: +
+ +
+ View Source +
class BlueprintArgs:
+    _blueprint_type: str = MISSING
+    block_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Specify the name of a qualification used to soft block workers.")
+        },
+    )
+
+ +
+ +

BlueprintArgs(_blueprint_type: str = '???', block_qualification: str = '???')

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+
+ #   + + + class + Blueprint.SharedStateClass: +
+ +
+ View Source +
class SharedTaskState:
+    """
+    Base class for specifying additional state that can't just
+    be passed as Hydra args, like functions and objects
+    """
+
+    task_config: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Values to be included in the frontend MephistoTask.task_config object"
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    qualifications: List[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List of qualification dicts of the form returned by "
+                "mephisto.utils.qualifications.make_qualification_dict "
+                "to be used with this task run."
+            ),
+            "type": "List[Dict]",
+            "default": "[]",
+        },
+    )
+    worker_can_do_unit: Callable[["Worker", "Unit"], bool] = field(
+        default_factory=lambda: (lambda worker, unit: True),
+        metadata={
+            "help": ("Function to evaluate if a worker is eligible for a given unit"),
+            "type": "Callable[[Worker, Unit], bool]",
+            "default": "Returns True always",
+        },
+    )
+    on_unit_submitted: Callable[["Unit"], None] = field(
+        default_factory=lambda: (lambda unit: None),
+        metadata={
+            "help": ("Function to evaluate on every unit completed or disconnected"),
+            "type": "Callable[[Unit], None]",
+            "default": "No-op function",
+        },
+    )
+
+ +
+ +

Base class for specifying additional state that can't just +be passed as Hydra args, like functions and objects

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints.html b/docs/web/static/python_api/mephisto/abstractions/blueprints.html new file mode 100644 index 000000000..38a535418 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints.html @@ -0,0 +1,349 @@ + + + + + + + + + mephisto.abstractions.blueprints API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints

+ +

Blueprints

+ +

Overview

+ +

Blueprints serve to package tasks (and groups of similar tasks) into a reusable format. They can be used to work through piloting tasks, collecting data, testing different formats, etc. They're also used by the architecture to simplify the data accumulation and review processes. The StaticBlueprint is a good starting example of how to implement a blueprint.

+ +

Implementation Details

+ +

AgentState

+ +

The agent state is responsible for defining the data that is important to store for a specific Unit, as well as methods for writing that locally to disk. To abstract this, it must implement the following methods:

+ +
    +
  • set_init_state(data): given data provided by the get_init_data_for_agent method, initialize this agent state to whatever starting state is relevant for this Unit.
  • +
  • get_init_state(): Return the initial state to be sent to the agent for use in the frontend.
  • +
  • load_data(): Load data that is saved to file to re-initialize the state for this AgentState. Generally data should be stored in self.agent.get_data_dir(), however any storage solution will work as long as it remains consistent.
  • +
  • get_data(): Return the stored data for this task in the format containing everything the frontend needs to render and run the task.
  • +
  • get_parsed_data(): Return the stored data for this task in the format that is relevant for review or packaging the data.
  • +
  • save_data(): Save data to a file such that it can be re-initialized later. Generally data should be stored in self.agent.get_data_dir(), however any storage solution will work as long as it remains consistent, and load_data() will be able to find it.
  • +
  • update_data(): Update the local state stored in this AgentState given the data sent from the frontend. Given your frontend is what packages data to send, this is entirely customizable by the task creator.
  • +
+ +

TaskBuilder

+ +

TaskBuilders exist to abstract away the portion of building a frontend to however one would want to, allowing Mephisto users to design tasks however they'd like. They also can take build options to customize what ends up built. They must implement the following:

+ +
    +
  • build_in_dir(build_dir): Take any important source files and put them into the given build dir. This directory will be deployed to the frontend and will become the static target for completing the task.
  • +
  • get_extra_options(): Return the specific task options that are relevant to customize the frontend when build_in_dir is called.
  • +
+ +

TaskRunner

+ +

The TaskRunner component of a blueprint is responsible for actually stepping Agents through the task when it is live. It is, in short, able to set up task control. A TaskRunner needs to implement the following:

+ +
    +
  • get_init_data_for_agent: Provide initial data for an assignment. If this agent is reconnecting (and as such attached to an existing task), update that task to point to the new agent (as the old agent object will no longer receive data from the frontend).
  • +
  • run_assignment: Handle setup for any resources required to get this assignment running. It will be launched in a background thread, and should be tolerant to being interrupted by cleanup_assignment.
  • +
  • cleanup_assignment: Send any signals to the required thread for the given assignment to tell it to terminate, then clean up any resources that were set within it.
  • +
  • get_data_for_assignment (optional): Get the data that an assignment is going to use when run. By default, this pulls from assignment.get_assignment_data() however if a task has a special storage mechanism or data type, the assignment data can be fetched here.
  • +
+ +

SharedTaskState

+ +

A blueprint is able to create a container that handles any shared data that is initialized during a task or modified between tasks, or for function hooks that are used across a run. The following hooks are already provided in the base:

+ +
    +
  • validate_onboarding: A function that takes in an onboarding agent's AgentState.get_data() call, and should always return a boolean of if that state represents a successful onboarding completion.
  • +
  • worker_can_do_unit: A function that takes in a Worker and a Unit, and should return a boolean representing if the worker is eligible to work on that particular unit.
  • +
  • on_unit_submitted: A function that takes in a Unit after a TaskRunner ends, and is able to do any automatic post-processing operations on that unit that a Mephisto user may want.
  • +
+ +

Blueprint Mixins

+ +

Blueprints sometimes share some component functionality that may be useful across a multitude of tasks. We capture these in mixins. Mephisto is able to recognize certain mixins in order to complete additional operations, however custom mixins may help cut down on boiler plate in common run_task.py scripts. As your tasks mature, we suggest utilizing blueprint mixins to share common workflows and design patterns you observe.

+ +

OnboardingRequired

+ +

This mixin allows for blueprints that require people to complete an onboarding task _before_ they're even able to start on their first task. Usually this is useful for providing task context, and then quizzing workers to see if they understand what's provided. Tasks using this mixin will activate onboarding mode for new Workers whenever the mephisto.blueprint.onboarding_qualification hydra argument is provided.

+ +

ScreenTaskRequired

+ +

This mixin allows for blueprints that require people to complete a _test_ version of the real task the first time a worker does the task. This allows you to validate workers on a run of the real task, either on your actual data (when providing SharedTaskState.screening_data_factory=False) or on test data that you may more easily validate using (when providing a generator to SharedTaskState.screening_data_factory). The tasks should be the same as your standard task, just able to be easily validated. You do pay for screening tasks, and as such we ask you set mephisto.blueprint.max_screening_units to put a cap on how many screening units you want to launch.

+ +

Implementations

+ +

StaticBlueprint

+ +

The StaticBlueprint class allows a replication of the interface that MTurk provides, being able to take a snippet of HTML and a .csv file and deploy tasks that fill templates of the HTML with values from the .csv.

+ +

You can also specify the task data in a .json file, or by passing the data array or a generator to SharedStaticTaskState.static_task_data.

+ +

MockBlueprint

+ +

The MockBlueprint exists to test other parts of the Mephisto architecture, and doesn't actually provide a real task.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract.html new file mode 100644 index 000000000..6aea76410 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract.html @@ -0,0 +1,265 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract

+ +

Abstract blueprints

+ +

The blueprints present in this folder provide a set of common underlying blueprint infrastructure, but are incomplete in some form or other. They are not registered as blueprints because they aren't intended to be launched, but rather to be extended upon.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task.html new file mode 100644 index 000000000..78d97d9fe --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task.html @@ -0,0 +1,253 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract.static_task API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract.static_task

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/empty_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/empty_task_builder.html new file mode 100644 index 000000000..8c67dd4d9 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/empty_task_builder.html @@ -0,0 +1,345 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskBuilder
+
+
+class EmptyStaticTaskBuilder(TaskBuilder):
+    """
+    Abstract class for a task builder for static tasks
+    """
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        raise AssertionError(
+            "Classes that extend the abstract StaticBlueprint must define a custom "
+            "TaskBuilder class that pulls the correct frontend together. Examples "
+            "can be seen in the static_react_task and static_html_task folders. "
+            "Note that extra static content will be provided in `args.blueprint.extra_source_dir` "
+        )
+
+ +
+ +
+
+
+ #   + + + class + EmptyStaticTaskBuilder(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class EmptyStaticTaskBuilder(TaskBuilder):
+    """
+    Abstract class for a task builder for static tasks
+    """
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        raise AssertionError(
+            "Classes that extend the abstract StaticBlueprint must define a custom "
+            "TaskBuilder class that pulls the correct frontend together. Examples "
+            "can be seen in the static_react_task and static_html_task folders. "
+            "Note that extra static content will be provided in `args.blueprint.extra_source_dir` "
+        )
+
+ +
+ +

Abstract class for a task builder for static tasks

+
+ + +
+
#   + + + def + build_in_dir(self, build_dir: str): +
+ +
+ View Source +
    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        raise AssertionError(
+            "Classes that extend the abstract StaticBlueprint must define a custom "
+            "TaskBuilder class that pulls the correct frontend together. Examples "
+            "can be seen in the static_react_task and static_html_task folders. "
+            "Note that extra static content will be provided in `args.blueprint.extra_source_dir` "
+        )
+
+ +
+ +

Build the frontend if it doesn't exist, then copy into the server directory

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_agent_state.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_agent_state.html new file mode 100644 index 000000000..9346a091e --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_agent_state.html @@ -0,0 +1,817 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract.static_task.static_agent_state API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract.static_task.static_agent_state

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Dict, Optional, Any, TYPE_CHECKING
+from mephisto.abstractions.blueprint import AgentState
+import os
+import json
+import time
+import weakref
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.packet import Packet
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+DATA_FILE = "agent_data.json"
+
+
+class StaticAgentState(AgentState):
+    """
+    Agent state for static tasks.
+    """
+
+    def _get_empty_state(self) -> Dict[str, Optional[Dict[str, Any]]]:
+        return {
+            "inputs": None,
+            "outputs": None,
+            "times": {"task_start": 0, "task_end": 0},
+        }
+
+    def __init__(self, agent: "Agent"):
+        """
+        Static agent states should store
+        input dict -> output dict pairs to disc
+        """
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Optional[Dict[str, Any]]] = self._get_empty_state()
+        self.load_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.get_init_state() is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.state["inputs"] = data
+            times_dict = self.state["times"]
+            assert isinstance(times_dict, dict)
+            times_dict["task_start"] = time.time()
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.state["inputs"] is None:
+            return None
+        return self.state["inputs"].copy()
+
+    def load_data(self) -> None:
+        """Load data for this agent from disk"""
+        data_dir = self.agent.get_data_dir()
+        data_path = os.path.join(data_dir, DATA_FILE)
+        if os.path.exists(data_path):
+            with open(data_path, "r") as data_file:
+                self.state = json.load(data_file)
+        else:
+            self.state = self._get_empty_state()
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state.copy()
+
+    def save_data(self) -> None:
+        """Save static agent data to disk"""
+        data_dir = self.agent.get_data_dir()
+        os.makedirs(data_dir, exist_ok=True)
+        out_filename = os.path.join(data_dir, DATA_FILE)
+        with open(out_filename, "w+") as data_file:
+            json.dump(self.state, data_file)
+        logger.info(f"SAVED_DATA_TO_DISC at {out_filename}")
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Process the incoming data packet, and handle updating the state
+        """
+        raise Exception("Static tasks should only have final act, but got live update")
+
+    def update_submit(self, submission_data: Dict[str, Any]) -> None:
+        """Move the submitted output to the local dict"""
+        outputs: Dict[str, Any]
+        output_files = submission_data.get("files")
+        if output_files is not None:
+            submission_data["files"] = [f["filename"] for f in submission_data["files"]]
+        self.state["outputs"] = submission_data
+        times_dict = self.state["times"]
+        assert isinstance(times_dict, dict)
+        times_dict["task_end"] = time.time()
+        self.save_data()
+
+    def get_task_start(self) -> Optional[float]:
+        """
+        Extract out and return the start time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_start"]
+
+    def get_task_end(self) -> Optional[float]:
+        """
+        Extract out and return the end time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_end"]
+
+ +
+ +
+
+
+ #   + + + class + StaticAgentState(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class StaticAgentState(AgentState):
+    """
+    Agent state for static tasks.
+    """
+
+    def _get_empty_state(self) -> Dict[str, Optional[Dict[str, Any]]]:
+        return {
+            "inputs": None,
+            "outputs": None,
+            "times": {"task_start": 0, "task_end": 0},
+        }
+
+    def __init__(self, agent: "Agent"):
+        """
+        Static agent states should store
+        input dict -> output dict pairs to disc
+        """
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Optional[Dict[str, Any]]] = self._get_empty_state()
+        self.load_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.get_init_state() is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.state["inputs"] = data
+            times_dict = self.state["times"]
+            assert isinstance(times_dict, dict)
+            times_dict["task_start"] = time.time()
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.state["inputs"] is None:
+            return None
+        return self.state["inputs"].copy()
+
+    def load_data(self) -> None:
+        """Load data for this agent from disk"""
+        data_dir = self.agent.get_data_dir()
+        data_path = os.path.join(data_dir, DATA_FILE)
+        if os.path.exists(data_path):
+            with open(data_path, "r") as data_file:
+                self.state = json.load(data_file)
+        else:
+            self.state = self._get_empty_state()
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state.copy()
+
+    def save_data(self) -> None:
+        """Save static agent data to disk"""
+        data_dir = self.agent.get_data_dir()
+        os.makedirs(data_dir, exist_ok=True)
+        out_filename = os.path.join(data_dir, DATA_FILE)
+        with open(out_filename, "w+") as data_file:
+            json.dump(self.state, data_file)
+        logger.info(f"SAVED_DATA_TO_DISC at {out_filename}")
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Process the incoming data packet, and handle updating the state
+        """
+        raise Exception("Static tasks should only have final act, but got live update")
+
+    def update_submit(self, submission_data: Dict[str, Any]) -> None:
+        """Move the submitted output to the local dict"""
+        outputs: Dict[str, Any]
+        output_files = submission_data.get("files")
+        if output_files is not None:
+            submission_data["files"] = [f["filename"] for f in submission_data["files"]]
+        self.state["outputs"] = submission_data
+        times_dict = self.state["times"]
+        assert isinstance(times_dict, dict)
+        times_dict["task_end"] = time.time()
+        self.save_data()
+
+    def get_task_start(self) -> Optional[float]:
+        """
+        Extract out and return the start time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_start"]
+
+    def get_task_end(self) -> Optional[float]:
+        """
+        Extract out and return the end time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_end"]
+
+ +
+ +

Agent state for static tasks.

+
+ + +
+
#   + + + StaticAgentState(agent: mephisto.data_model.agent.Agent) +
+ +
+ View Source +
    def __init__(self, agent: "Agent"):
+        """
+        Static agent states should store
+        input dict -> output dict pairs to disc
+        """
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Optional[Dict[str, Any]]] = self._get_empty_state()
+        self.load_data()
+
+ +
+ +

Static agent states should store +input dict -> output dict pairs to disc

+
+ + +
+
+
#   + + + def + set_init_state(self, data: Any) -> bool: +
+ +
+ View Source +
    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.get_init_state() is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.state["inputs"] = data
+            times_dict = self.state["times"]
+            assert isinstance(times_dict, dict)
+            times_dict["task_start"] = time.time()
+            self.save_data()
+            return True
+
+ +
+ +

Set the initial state for this agent

+
+ + +
+
+
#   + + + def + get_init_state(self) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.state["inputs"] is None:
+            return None
+        return self.state["inputs"].copy()
+
+ +
+ +

Return the initial state for this agent, +None if no such state exists

+
+ + +
+
+
#   + + + def + load_data(self) -> None: +
+ +
+ View Source +
    def load_data(self) -> None:
+        """Load data for this agent from disk"""
+        data_dir = self.agent.get_data_dir()
+        data_path = os.path.join(data_dir, DATA_FILE)
+        if os.path.exists(data_path):
+            with open(data_path, "r") as data_file:
+                self.state = json.load(data_file)
+        else:
+            self.state = self._get_empty_state()
+
+ +
+ +

Load data for this agent from disk

+
+ + +
+
+
#   + + + def + get_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state.copy()
+
+ +
+ +

Return dict of this agent's state

+
+ + +
+
+
#   + + + def + save_data(self) -> None: +
+ +
+ View Source +
    def save_data(self) -> None:
+        """Save static agent data to disk"""
+        data_dir = self.agent.get_data_dir()
+        os.makedirs(data_dir, exist_ok=True)
+        out_filename = os.path.join(data_dir, DATA_FILE)
+        with open(out_filename, "w+") as data_file:
+            json.dump(self.state, data_file)
+        logger.info(f"SAVED_DATA_TO_DISC at {out_filename}")
+
+ +
+ +

Save static agent data to disk

+
+ + +
+
+
#   + + + def + update_data(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Process the incoming data packet, and handle updating the state
+        """
+        raise Exception("Static tasks should only have final act, but got live update")
+
+ +
+ +

Process the incoming data packet, and handle updating the state

+
+ + +
+
+
#   + + + def + update_submit(self, submission_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_submit(self, submission_data: Dict[str, Any]) -> None:
+        """Move the submitted output to the local dict"""
+        outputs: Dict[str, Any]
+        output_files = submission_data.get("files")
+        if output_files is not None:
+            submission_data["files"] = [f["filename"] for f in submission_data["files"]]
+        self.state["outputs"] = submission_data
+        times_dict = self.state["times"]
+        assert isinstance(times_dict, dict)
+        times_dict["task_end"] = time.time()
+        self.save_data()
+
+ +
+ +

Move the submitted output to the local dict

+
+ + +
+
+
#   + + + def + get_task_start(self) -> Union[float, NoneType]: +
+ +
+ View Source +
    def get_task_start(self) -> Optional[float]:
+        """
+        Extract out and return the start time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_start"]
+
+ +
+ +

Extract out and return the start time recorded for this task.

+
+ + +
+
+
#   + + + def + get_task_end(self) -> Union[float, NoneType]: +
+ +
+ View Source +
    def get_task_end(self) -> Optional[float]:
+        """
+        Extract out and return the end time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_end"]
+
+ +
+ +

Extract out and return the end time recorded for this task.

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_blueprint.html new file mode 100644 index 000000000..947eeb60d --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_blueprint.html @@ -0,0 +1,1623 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract.static_task.static_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract.static_task.static_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import (
+    Blueprint,
+    BlueprintArgs,
+    SharedTaskState,
+)
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+    OnboardingSharedState,
+    OnboardingRequiredArgs,
+)
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.assignment import InitializationData
+from mephisto.abstractions.blueprints.abstract.static_task.static_agent_state import (
+    StaticAgentState,
+)
+from mephisto.abstractions.blueprints.abstract.static_task.static_task_runner import (
+    StaticTaskRunner,
+)
+from mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder import (
+    EmptyStaticTaskBuilder,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+
+import os
+import time
+import csv
+import json
+import types
+
+from typing import ClassVar, List, Type, Any, Dict, Iterable, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import (
+        AgentState,
+        TaskRunner,
+        TaskBuilder,
+        OnboardingAgent,
+    )
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+
+
+BLUEPRINT_TYPE_STATIC = "abstract_static"
+
+
+@dataclass
+class SharedStaticTaskState(OnboardingSharedState, SharedTaskState):
+    static_task_data: Iterable[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List or generator that returns dicts of task data. Generators can be "
+                "used for tasks with lengths that aren't known at the start of a "
+                "run, or are otherwise determined during the run. "
+            ),
+            "type": "Iterable[Dict[str, Any]]",
+            "default": "[]",
+        },
+    )
+
+
+@dataclass
+class StaticBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Abstract Static Blueprints should not be launched manually, but "
+                "include all tasks with units containing just one input and output "
+                "of arbitrary data, with no live component. "
+            )
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the HTML may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    data_json: str = field(
+        default=MISSING, metadata={"help": "Path to JSON file containing task data"}
+    )
+    data_jsonl: str = field(
+        default=MISSING, metadata={"help": "Path to JSON-L file containing task data"}
+    )
+    data_csv: str = field(
+        default=MISSING, metadata={"help": "Path to csv file containing task data"}
+    )
+
+
+class StaticBlueprint(OnboardingRequired, Blueprint):
+    """
+    Abstract blueprint for a task that runs without any extensive backend.
+    These are generally one-off tasks sending data to the frontend and then
+    awaiting a response.
+    """
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = StaticAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = StaticAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = EmptyStaticTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = StaticTaskRunner
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = StaticBlueprintArgs
+    SharedStateClass = SharedStaticTaskState
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedStaticTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+
+        # Originally just a list of dicts, but can also be a generator of dicts
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        super().assert_task_args(args, shared_state)
+
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Must use SharedStaticTaskState for static blueprints"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO(#97) can we check something about this?
+                # Some discussion here: https://stackoverflow.com/questions/661603/how-do-i-know-if-a-generator-is-empty-from-the-start
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +
+
+ + +
+ View Source +
class SharedStaticTaskState(OnboardingSharedState, SharedTaskState):
+    static_task_data: Iterable[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List or generator that returns dicts of task data. Generators can be "
+                "used for tasks with lengths that aren't known at the start of a "
+                "run, or are otherwise determined during the run. "
+            ),
+            "type": "Iterable[Dict[str, Any]]",
+            "default": "[]",
+        },
+    )
+
+ +
+ +

SharedStaticTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , static_task_data: Iterable[Any] = )

+
+ + +
+
#   + + + SharedStaticTaskState( + task_config: Dict[str, Any] = <factory>, + qualifications: List[Any] = <factory>, + worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = <factory>, + on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = <factory>, + onboarding_data: Dict[str, Any] = <factory>, + validate_onboarding: Callable[[Any], bool] = <factory>, + static_task_data: Iterable[Any] = <factory> +) +
+ + + + +
+
+
+ + +
+ View Source +
class StaticBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Abstract Static Blueprints should not be launched manually, but "
+                "include all tasks with units containing just one input and output "
+                "of arbitrary data, with no live component. "
+            )
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the HTML may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    data_json: str = field(
+        default=MISSING, metadata={"help": "Path to JSON file containing task data"}
+    )
+    data_jsonl: str = field(
+        default=MISSING, metadata={"help": "Path to JSON-L file containing task data"}
+    )
+    data_csv: str = field(
+        default=MISSING, metadata={"help": "Path to csv file containing task data"}
+    )
+
+ +
+ +

StaticBlueprintArgs(_blueprint_type: str = 'abstract_static', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'StaticBlueprint', units_per_assignment: int = 1, extra_source_dir: str = '???', data_json: str = '???', data_jsonl: str = '???', data_csv: str = '???')

+
+ + +
+
#   + + + StaticBlueprintArgs( + _blueprint_type: str = 'abstract_static', + block_qualification: str = '???', + onboarding_qualification: str = '???', + _group: str = 'StaticBlueprint', + units_per_assignment: int = 1, + extra_source_dir: str = '???', + data_json: str = '???', + data_jsonl: str = '???', + data_csv: str = '???' +) +
+ + + + +
+
+
#   + + units_per_assignment: int = 1 +
+ + + + +
+
+
#   + + extra_source_dir: str = '???' +
+ + + + +
+
+
#   + + data_json: str = '???' +
+ + + + +
+
+
#   + + data_jsonl: str = '???' +
+ + + + +
+
+
#   + + data_csv: str = '???' +
+ + + + +
+ +
+
+ + +
+ View Source +
class StaticBlueprint(OnboardingRequired, Blueprint):
+    """
+    Abstract blueprint for a task that runs without any extensive backend.
+    These are generally one-off tasks sending data to the frontend and then
+    awaiting a response.
+    """
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = StaticAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = StaticAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = EmptyStaticTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = StaticTaskRunner
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = StaticBlueprintArgs
+    SharedStateClass = SharedStaticTaskState
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedStaticTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+
+        # Originally just a list of dicts, but can also be a generator of dicts
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        super().assert_task_args(args, shared_state)
+
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Must use SharedStaticTaskState for static blueprints"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO(#97) can we check something about this?
+                # Some discussion here: https://stackoverflow.com/questions/661603/how-do-i-know-if-a-generator-is-empty-from-the-start
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +

Abstract blueprint for a task that runs without any extensive backend. +These are generally one-off tasks sending data to the frontend and then +awaiting a response.

+
+ + +
+
#   + + + StaticBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState +) +
+ +
+ View Source +
    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedStaticTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+
+        # Originally just a list of dicts, but can also be a generator of dicts
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        super().assert_task_args(args, shared_state)
+
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Must use SharedStaticTaskState for static blueprints"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO(#97) can we check something about this?
+                # Some discussion here: https://stackoverflow.com/questions/661603/how-do-i-know-if-a-generator-is-empty-from-the-start
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+ +
+ +

Ensure that the data can be properly loaded

+
+ + +
+
+
#   + + + def + get_initialization_data( + self +) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]: +
+ +
+ View Source +
    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +

Return the InitializationData retrieved from the specified stream

+
+ + +
+ +
+
+
+ #   + + + class + StaticBlueprint.AgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class StaticAgentState(AgentState):
+    """
+    Agent state for static tasks.
+    """
+
+    def _get_empty_state(self) -> Dict[str, Optional[Dict[str, Any]]]:
+        return {
+            "inputs": None,
+            "outputs": None,
+            "times": {"task_start": 0, "task_end": 0},
+        }
+
+    def __init__(self, agent: "Agent"):
+        """
+        Static agent states should store
+        input dict -> output dict pairs to disc
+        """
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Optional[Dict[str, Any]]] = self._get_empty_state()
+        self.load_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.get_init_state() is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.state["inputs"] = data
+            times_dict = self.state["times"]
+            assert isinstance(times_dict, dict)
+            times_dict["task_start"] = time.time()
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.state["inputs"] is None:
+            return None
+        return self.state["inputs"].copy()
+
+    def load_data(self) -> None:
+        """Load data for this agent from disk"""
+        data_dir = self.agent.get_data_dir()
+        data_path = os.path.join(data_dir, DATA_FILE)
+        if os.path.exists(data_path):
+            with open(data_path, "r") as data_file:
+                self.state = json.load(data_file)
+        else:
+            self.state = self._get_empty_state()
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state.copy()
+
+    def save_data(self) -> None:
+        """Save static agent data to disk"""
+        data_dir = self.agent.get_data_dir()
+        os.makedirs(data_dir, exist_ok=True)
+        out_filename = os.path.join(data_dir, DATA_FILE)
+        with open(out_filename, "w+") as data_file:
+            json.dump(self.state, data_file)
+        logger.info(f"SAVED_DATA_TO_DISC at {out_filename}")
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Process the incoming data packet, and handle updating the state
+        """
+        raise Exception("Static tasks should only have final act, but got live update")
+
+    def update_submit(self, submission_data: Dict[str, Any]) -> None:
+        """Move the submitted output to the local dict"""
+        outputs: Dict[str, Any]
+        output_files = submission_data.get("files")
+        if output_files is not None:
+            submission_data["files"] = [f["filename"] for f in submission_data["files"]]
+        self.state["outputs"] = submission_data
+        times_dict = self.state["times"]
+        assert isinstance(times_dict, dict)
+        times_dict["task_end"] = time.time()
+        self.save_data()
+
+    def get_task_start(self) -> Optional[float]:
+        """
+        Extract out and return the start time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_start"]
+
+    def get_task_end(self) -> Optional[float]:
+        """
+        Extract out and return the end time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_end"]
+
+ +
+ +

Agent state for static tasks.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+ +
+
+
+
+
+
+ #   + + + class + StaticBlueprint.OnboardingAgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class StaticAgentState(AgentState):
+    """
+    Agent state for static tasks.
+    """
+
+    def _get_empty_state(self) -> Dict[str, Optional[Dict[str, Any]]]:
+        return {
+            "inputs": None,
+            "outputs": None,
+            "times": {"task_start": 0, "task_end": 0},
+        }
+
+    def __init__(self, agent: "Agent"):
+        """
+        Static agent states should store
+        input dict -> output dict pairs to disc
+        """
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Optional[Dict[str, Any]]] = self._get_empty_state()
+        self.load_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.get_init_state() is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.state["inputs"] = data
+            times_dict = self.state["times"]
+            assert isinstance(times_dict, dict)
+            times_dict["task_start"] = time.time()
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.state["inputs"] is None:
+            return None
+        return self.state["inputs"].copy()
+
+    def load_data(self) -> None:
+        """Load data for this agent from disk"""
+        data_dir = self.agent.get_data_dir()
+        data_path = os.path.join(data_dir, DATA_FILE)
+        if os.path.exists(data_path):
+            with open(data_path, "r") as data_file:
+                self.state = json.load(data_file)
+        else:
+            self.state = self._get_empty_state()
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state.copy()
+
+    def save_data(self) -> None:
+        """Save static agent data to disk"""
+        data_dir = self.agent.get_data_dir()
+        os.makedirs(data_dir, exist_ok=True)
+        out_filename = os.path.join(data_dir, DATA_FILE)
+        with open(out_filename, "w+") as data_file:
+            json.dump(self.state, data_file)
+        logger.info(f"SAVED_DATA_TO_DISC at {out_filename}")
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Process the incoming data packet, and handle updating the state
+        """
+        raise Exception("Static tasks should only have final act, but got live update")
+
+    def update_submit(self, submission_data: Dict[str, Any]) -> None:
+        """Move the submitted output to the local dict"""
+        outputs: Dict[str, Any]
+        output_files = submission_data.get("files")
+        if output_files is not None:
+            submission_data["files"] = [f["filename"] for f in submission_data["files"]]
+        self.state["outputs"] = submission_data
+        times_dict = self.state["times"]
+        assert isinstance(times_dict, dict)
+        times_dict["task_end"] = time.time()
+        self.save_data()
+
+    def get_task_start(self) -> Optional[float]:
+        """
+        Extract out and return the start time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_start"]
+
+    def get_task_end(self) -> Optional[float]:
+        """
+        Extract out and return the end time recorded for this task.
+        """
+        stored_times = self.state["times"]
+        assert stored_times is not None
+        return stored_times["task_end"]
+
+ +
+ +

Agent state for static tasks.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+ +
+
+
+
+
+
+ #   + + + class + StaticBlueprint.TaskBuilderClass(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class EmptyStaticTaskBuilder(TaskBuilder):
+    """
+    Abstract class for a task builder for static tasks
+    """
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        raise AssertionError(
+            "Classes that extend the abstract StaticBlueprint must define a custom "
+            "TaskBuilder class that pulls the correct frontend together. Examples "
+            "can be seen in the static_react_task and static_html_task folders. "
+            "Note that extra static content will be provided in `args.blueprint.extra_source_dir` "
+        )
+
+ +
+ +

Abstract class for a task builder for static tasks

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+
+ #   + + + class + StaticBlueprint.TaskRunnerClass(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class StaticTaskRunner(TaskRunner):
+    """
+    Task runner for a static task
+
+    Static tasks always assume single unit assignments,
+    as only one person can work on them at a time
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.is_concurrent = False
+        self.assignment_duration_in_seconds = (
+            task_run.get_task_args().assignment_duration_in_seconds
+        )
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            return assignment_data.shared
+
+    def run_onboarding(self, agent: "OnboardingAgent"):
+        """
+        Static onboarding flows exactly like a regular task, waiting for
+        the submit to come through
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent"):
+        """Nothing to clean up in a static onboarding"""
+        return
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Static runners will get the task data, send it to the user, then
+        wait for the agent to act (the data to be completed)
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """There is currently no cleanup associated with killing an incomplete task"""
+        return
+
+ +
+ +

Task runner for a static task

+ +

Static tasks always assume single unit assignments, +as only one person can work on them at a time

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+
run_assignment
+
cleanup_assignment
+ +
+
+
+
+
+ + +
+ View Source +
class StaticBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Abstract Static Blueprints should not be launched manually, but "
+                "include all tasks with units containing just one input and output "
+                "of arbitrary data, with no live component. "
+            )
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the HTML may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    data_json: str = field(
+        default=MISSING, metadata={"help": "Path to JSON file containing task data"}
+    )
+    data_jsonl: str = field(
+        default=MISSING, metadata={"help": "Path to JSON-L file containing task data"}
+    )
+    data_csv: str = field(
+        default=MISSING, metadata={"help": "Path to csv file containing task data"}
+    )
+
+ +
+ +

StaticBlueprintArgs(_blueprint_type: str = 'abstract_static', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'StaticBlueprint', units_per_assignment: int = 1, extra_source_dir: str = '???', data_json: str = '???', data_jsonl: str = '???', data_csv: str = '???')

+
+ + + +
+
+ + +
+ View Source +
class SharedStaticTaskState(OnboardingSharedState, SharedTaskState):
+    static_task_data: Iterable[Any] = field(
+        default_factory=list,
+        metadata={
+            "help": (
+                "List or generator that returns dicts of task data. Generators can be "
+                "used for tasks with lengths that aren't known at the start of a "
+                "run, or are otherwise determined during the run. "
+            ),
+            "type": "Iterable[Dict[str, Any]]",
+            "default": "[]",
+        },
+    )
+
+ +
+ +

SharedStaticTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , static_task_data: Iterable[Any] = )

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_task_runner.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_task_runner.html new file mode 100644 index 000000000..e2b45029c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/abstract/static_task/static_task_runner.html @@ -0,0 +1,603 @@ + + + + + + + + + mephisto.abstractions.blueprints.abstract.static_task.static_task_runner API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.abstract.static_task.static_task_runner

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskRunner
+
+import os
+import time
+import threading
+
+from typing import ClassVar, List, Type, Any, Dict, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import InitializationData
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from omegaconf import DictConfig
+
+
+class StaticTaskRunner(TaskRunner):
+    """
+    Task runner for a static task
+
+    Static tasks always assume single unit assignments,
+    as only one person can work on them at a time
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.is_concurrent = False
+        self.assignment_duration_in_seconds = (
+            task_run.get_task_args().assignment_duration_in_seconds
+        )
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            return assignment_data.shared
+
+    def run_onboarding(self, agent: "OnboardingAgent"):
+        """
+        Static onboarding flows exactly like a regular task, waiting for
+        the submit to come through
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent"):
+        """Nothing to clean up in a static onboarding"""
+        return
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Static runners will get the task data, send it to the user, then
+        wait for the agent to act (the data to be completed)
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """There is currently no cleanup associated with killing an incomplete task"""
+        return
+
+ +
+ +
+
+
+ #   + + + class + StaticTaskRunner(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class StaticTaskRunner(TaskRunner):
+    """
+    Task runner for a static task
+
+    Static tasks always assume single unit assignments,
+    as only one person can work on them at a time
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.is_concurrent = False
+        self.assignment_duration_in_seconds = (
+            task_run.get_task_args().assignment_duration_in_seconds
+        )
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            return assignment_data.shared
+
+    def run_onboarding(self, agent: "OnboardingAgent"):
+        """
+        Static onboarding flows exactly like a regular task, waiting for
+        the submit to come through
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent"):
+        """Nothing to clean up in a static onboarding"""
+        return
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Static runners will get the task data, send it to the user, then
+        wait for the agent to act (the data to be completed)
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """There is currently no cleanup associated with killing an incomplete task"""
+        return
+
+ +
+ +

Task runner for a static task

+ +

Static tasks always assume single unit assignments, +as only one person can work on them at a time

+
+ + +
+
#   + + + StaticTaskRunner( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __new__(
+        cls, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> "TaskRunner":
+        """Get the correct TaskRunner for this task run"""
+        if cls == TaskRunner:
+            from mephisto.operations.registry import get_blueprint_from_type
+
+            # We are trying to construct an AgentState, find what type to use and
+            # create that instead
+            correct_class = get_blueprint_from_type(task_run.task_type).TaskRunnerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

Get the correct TaskRunner for this task run

+
+ + +
+
+
#   + + + def + get_init_data_for_agent(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            return assignment_data.shared
+
+ +
+ +

Return the data for an agent already assigned to a particular unit

+
+ + +
+
+
#   + + + def + run_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent): +
+ +
+ View Source +
    def run_onboarding(self, agent: "OnboardingAgent"):
+        """
+        Static onboarding flows exactly like a regular task, waiting for
+        the submit to come through
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+ +
+ +

Static onboarding flows exactly like a regular task, waiting for +the submit to come through

+
+ + +
+
+
#   + + + def + cleanup_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent): +
+ +
+ View Source +
    def cleanup_onboarding(self, agent: "OnboardingAgent"):
+        """Nothing to clean up in a static onboarding"""
+        return
+
+ +
+ +

Nothing to clean up in a static onboarding

+
+ + +
+
+
#   + + + def + run_unit( + self, + unit: mephisto.data_model.unit.Unit, + agent: mephisto.data_model.agent.Agent +) -> None: +
+ +
+ View Source +
    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Static runners will get the task data, send it to the user, then
+        wait for the agent to act (the data to be completed)
+        """
+        agent.await_submit(self.assignment_duration_in_seconds)
+
+ +
+ +

Static runners will get the task data, send it to the user, then +wait for the agent to act (the data to be completed)

+
+ + +
+
+
#   + + + def + cleanup_unit(self, unit: mephisto.data_model.unit.Unit) -> None: +
+ +
+ View Source +
    def cleanup_unit(self, unit: "Unit") -> None:
+        """There is currently no cleanup associated with killing an incomplete task"""
+        return
+
+ +
+ +

There is currently no cleanup associated with killing an incomplete task

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+
run_assignment
+
cleanup_assignment
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins.html new file mode 100644 index 000000000..d2b0edc1d --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins.html @@ -0,0 +1,252 @@ + + + + + + + + + mephisto.abstractions.blueprints.mixins API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mixins

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/onboarding_required.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/onboarding_required.html new file mode 100644 index 000000000..54fbe83d7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/onboarding_required.html @@ -0,0 +1,1083 @@ + + + + + + + + + mephisto.abstractions.blueprints.mixins.onboarding_required API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mixins.onboarding_required

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import (
+    Optional,
+    Dict,
+    List,
+    Any,
+    Callable,
+    TYPE_CHECKING,
+)
+
+from mephisto.abstractions.blueprint import BlueprintMixin
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.qualification import QUAL_NOT_EXIST
+from mephisto.utils.qualifications import (
+    make_qualification_dict,
+    find_or_create_qualification,
+)
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from mephisto.data_model.agent import OnboardingAgent
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.worker import Worker
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+@dataclass
+class OnboardingRequiredArgs:
+    onboarding_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to block workers who fail onboarding, "
+                "Empty will skip onboarding."
+            )
+        },
+    )
+
+
+@dataclass
+class OnboardingSharedState:
+    onboarding_data: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Task data to send for the initialTaskData available in the frontend during onboarding."
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    validate_onboarding: Callable[[Any], bool] = field(
+        default_factory=lambda: (lambda x: True),
+        metadata={
+            "help": (
+                "Function that takes in the result task data (from AgentState.get_data()) "
+                "and returns whether or not the onboarding was successful."
+            ),
+            "type": "Callable[[Any], bool]",
+            "default": "Returns true always",
+        },
+    )
+
+
+class OnboardingRequired(BlueprintMixin):
+    """
+    Compositional class for blueprints that may have an onboarding step
+    """
+
+    shared_state: "SharedTaskState"
+    ArgsMixin = OnboardingRequiredArgs
+    SharedStateMixin = OnboardingSharedState
+
+    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        self.init_onboarding_config(task_run, args, shared_state)
+
+    @classmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        # Is there any validation that should be done on the onboarding qualification name?
+        return
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        if onboarding_qualification_name is None:
+            # Not using an onboarding qualification
+            return []
+        return [
+            # We need to keep a separate qualification for failed onboarding
+            # to push to a crowd provider in order to prevent workers
+            # who have failed from being shown our task
+            make_qualification_dict(
+                cls.get_failed_qual(onboarding_qualification_name),
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+    @staticmethod
+    def get_failed_qual(qual_name: str) -> str:
+        """Returns the wrapper for a qualification to represent failing an onboarding"""
+        return qual_name + "-failed"
+
+    def init_onboarding_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        self.onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        self.onboarding_data = shared_state.onboarding_data
+        self.use_onboarding = self.onboarding_qualification_name is not None
+        self.onboarding_qualification_id = None
+        if not self.use_onboarding:
+            return
+        onboarding_qualification_name = self.onboarding_qualification_name
+        assert onboarding_qualification_name is not None
+
+        db = task_run.db
+        self.onboarding_qualification_id = find_or_create_qualification(
+            db,
+            onboarding_qualification_name,
+        )
+        self.onboarding_failed_name = self.get_failed_qual(
+            onboarding_qualification_name
+        )
+        self.onboarding_failed_id = find_or_create_qualification(
+            db, self.onboarding_failed_name
+        )
+
+    def get_onboarding_data(self, worker_id: str) -> Dict[str, Any]:
+        """
+        If the onboarding task on the frontend requires any specialized data, the blueprint
+        should provide it for the user.
+
+        As onboarding qualifies a worker for all tasks from this blueprint, this should
+        generally be static data that can later be evaluated against.
+        """
+        return self.onboarding_data
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Check the incoming onboarding data and evaluate if the worker
+        has passed the qualification or not. Return True if the worker
+        has qualified.
+
+        By default we use the validate_onboarding provided in a run_task,
+        and all onboarding tasks should allow run_task to specify additional
+        or entirely override what's provided in a blueprint.
+        """
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        data = onboarding_agent.state.get_data()
+        return shared_state.validate_onboarding(data)
+
+ +
+ +
+
+
+ #   + + + class + OnboardingRequiredArgs: +
+ +
+ View Source +
class OnboardingRequiredArgs:
+    onboarding_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to block workers who fail onboarding, "
+                "Empty will skip onboarding."
+            )
+        },
+    )
+
+ +
+ +

OnboardingRequiredArgs(onboarding_qualification: str = '???')

+
+ + +
+
#   + + + OnboardingRequiredArgs(onboarding_qualification: str = '???') +
+ + + + +
+
+
#   + + onboarding_qualification: str = '???' +
+ + + + +
+
+
+
+ #   + + + class + OnboardingSharedState: +
+ +
+ View Source +
class OnboardingSharedState:
+    onboarding_data: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Task data to send for the initialTaskData available in the frontend during onboarding."
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    validate_onboarding: Callable[[Any], bool] = field(
+        default_factory=lambda: (lambda x: True),
+        metadata={
+            "help": (
+                "Function that takes in the result task data (from AgentState.get_data()) "
+                "and returns whether or not the onboarding was successful."
+            ),
+            "type": "Callable[[Any], bool]",
+            "default": "Returns true always",
+        },
+    )
+
+ +
+ +

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

+
+ + +
+
#   + + + OnboardingSharedState( + onboarding_data: Dict[str, Any] = <factory>, + validate_onboarding: Callable[[Any], bool] = <factory> +) +
+ + + + +
+
+
+
+ #   + + + class + OnboardingRequired(mephisto.abstractions.blueprint.BlueprintMixin): +
+ +
+ View Source +
class OnboardingRequired(BlueprintMixin):
+    """
+    Compositional class for blueprints that may have an onboarding step
+    """
+
+    shared_state: "SharedTaskState"
+    ArgsMixin = OnboardingRequiredArgs
+    SharedStateMixin = OnboardingSharedState
+
+    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        self.init_onboarding_config(task_run, args, shared_state)
+
+    @classmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        # Is there any validation that should be done on the onboarding qualification name?
+        return
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        if onboarding_qualification_name is None:
+            # Not using an onboarding qualification
+            return []
+        return [
+            # We need to keep a separate qualification for failed onboarding
+            # to push to a crowd provider in order to prevent workers
+            # who have failed from being shown our task
+            make_qualification_dict(
+                cls.get_failed_qual(onboarding_qualification_name),
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+    @staticmethod
+    def get_failed_qual(qual_name: str) -> str:
+        """Returns the wrapper for a qualification to represent failing an onboarding"""
+        return qual_name + "-failed"
+
+    def init_onboarding_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        self.onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        self.onboarding_data = shared_state.onboarding_data
+        self.use_onboarding = self.onboarding_qualification_name is not None
+        self.onboarding_qualification_id = None
+        if not self.use_onboarding:
+            return
+        onboarding_qualification_name = self.onboarding_qualification_name
+        assert onboarding_qualification_name is not None
+
+        db = task_run.db
+        self.onboarding_qualification_id = find_or_create_qualification(
+            db,
+            onboarding_qualification_name,
+        )
+        self.onboarding_failed_name = self.get_failed_qual(
+            onboarding_qualification_name
+        )
+        self.onboarding_failed_id = find_or_create_qualification(
+            db, self.onboarding_failed_name
+        )
+
+    def get_onboarding_data(self, worker_id: str) -> Dict[str, Any]:
+        """
+        If the onboarding task on the frontend requires any specialized data, the blueprint
+        should provide it for the user.
+
+        As onboarding qualifies a worker for all tasks from this blueprint, this should
+        generally be static data that can later be evaluated against.
+        """
+        return self.onboarding_data
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Check the incoming onboarding data and evaluate if the worker
+        has passed the qualification or not. Return True if the worker
+        has qualified.
+
+        By default we use the validate_onboarding provided in a run_task,
+        and all onboarding tasks should allow run_task to specify additional
+        or entirely override what's provided in a blueprint.
+        """
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        data = onboarding_agent.state.get_data()
+        return shared_state.validate_onboarding(data)
+
+ +
+ +

Compositional class for blueprints that may have an onboarding step

+
+ + +
+
#   + + + OnboardingRequired() +
+ + + + +
+
+
#   + + + def + init_mixin_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    def init_mixin_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to initialize any required attributes to make this mixin function"""
+        self.init_onboarding_config(task_run, args, shared_state)
+
+ +
+ +

Method to initialize any required attributes to make this mixin function

+
+ + +
+
+
#   + +
@classmethod
+ + def + assert_mixin_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @classmethod
+    def assert_mixin_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Method to validate the incoming args and throw if something won't work"""
+        # Is there any validation that should be done on the onboarding qualification name?
+        return
+
+ +
+ +

Method to validate the incoming args and throw if something won't work

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_mixin_qualifications( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> List[Dict[str, Any]]: +
+ +
+ View Source +
    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> List[Dict[str, Any]]:
+        """Method to provide any required qualifications to make this mixin function"""
+        onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        if onboarding_qualification_name is None:
+            # Not using an onboarding qualification
+            return []
+        return [
+            # We need to keep a separate qualification for failed onboarding
+            # to push to a crowd provider in order to prevent workers
+            # who have failed from being shown our task
+            make_qualification_dict(
+                cls.get_failed_qual(onboarding_qualification_name),
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +

Method to provide any required qualifications to make this mixin function

+
+ + +
+
+
#   + +
@staticmethod
+ + def + get_failed_qual(qual_name: str) -> str: +
+ +
+ View Source +
    @staticmethod
+    def get_failed_qual(qual_name: str) -> str:
+        """Returns the wrapper for a qualification to represent failing an onboarding"""
+        return qual_name + "-failed"
+
+ +
+ +

Returns the wrapper for a qualification to represent failing an onboarding

+
+ + +
+
+
#   + + + def + init_onboarding_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    def init_onboarding_config(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        self.onboarding_qualification_name: Optional[str] = args.blueprint.get(
+            "onboarding_qualification", None
+        )
+        self.onboarding_data = shared_state.onboarding_data
+        self.use_onboarding = self.onboarding_qualification_name is not None
+        self.onboarding_qualification_id = None
+        if not self.use_onboarding:
+            return
+        onboarding_qualification_name = self.onboarding_qualification_name
+        assert onboarding_qualification_name is not None
+
+        db = task_run.db
+        self.onboarding_qualification_id = find_or_create_qualification(
+            db,
+            onboarding_qualification_name,
+        )
+        self.onboarding_failed_name = self.get_failed_qual(
+            onboarding_qualification_name
+        )
+        self.onboarding_failed_id = find_or_create_qualification(
+            db, self.onboarding_failed_name
+        )
+
+ +
+ + + +
+
+
#   + + + def + get_onboarding_data(self, worker_id: str) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_onboarding_data(self, worker_id: str) -> Dict[str, Any]:
+        """
+        If the onboarding task on the frontend requires any specialized data, the blueprint
+        should provide it for the user.
+
+        As onboarding qualifies a worker for all tasks from this blueprint, this should
+        generally be static data that can later be evaluated against.
+        """
+        return self.onboarding_data
+
+ +
+ +

If the onboarding task on the frontend requires any specialized data, the blueprint +should provide it for the user.

+ +

As onboarding qualifies a worker for all tasks from this blueprint, this should +generally be static data that can later be evaluated against.

+
+ + +
+
+
#   + + + def + validate_onboarding( + self, + worker: mephisto.data_model.worker.Worker, + onboarding_agent: mephisto.data_model.agent.OnboardingAgent +) -> bool: +
+ +
+ View Source +
    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Check the incoming onboarding data and evaluate if the worker
+        has passed the qualification or not. Return True if the worker
+        has qualified.
+
+        By default we use the validate_onboarding provided in a run_task,
+        and all onboarding tasks should allow run_task to specify additional
+        or entirely override what's provided in a blueprint.
+        """
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, OnboardingSharedState
+        ), f"Cannot init onboarding config with {shared_state}, need OnboardingSharedState"
+        data = onboarding_agent.state.get_data()
+        return shared_state.validate_onboarding(data)
+
+ +
+ +

Check the incoming onboarding data and evaluate if the worker +has passed the qualification or not. Return True if the worker +has qualified.

+ +

By default we use the validate_onboarding provided in a run_task, +and all onboarding tasks should allow run_task to specify additional +or entirely override what's provided in a blueprint.

+
+ + +
+ +
+
+
+ #   + + + class + OnboardingRequired.ArgsMixin: +
+ +
+ View Source +
class OnboardingRequiredArgs:
+    onboarding_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to block workers who fail onboarding, "
+                "Empty will skip onboarding."
+            )
+        },
+    )
+
+ +
+ +

OnboardingRequiredArgs(onboarding_qualification: str = '???')

+
+ + + +
+
+
+ #   + + + class + OnboardingRequired.SharedStateMixin: +
+ +
+ View Source +
class OnboardingSharedState:
+    onboarding_data: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Task data to send for the initialTaskData available in the frontend during onboarding."
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    validate_onboarding: Callable[[Any], bool] = field(
+        default_factory=lambda: (lambda x: True),
+        metadata={
+            "help": (
+                "Function that takes in the result task data (from AgentState.get_data()) "
+                "and returns whether or not the onboarding was successful."
+            ),
+            "type": "Callable[[Any], bool]",
+            "default": "Returns true always",
+        },
+    )
+
+ +
+ +

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/screen_task_required.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/screen_task_required.html new file mode 100644 index 000000000..248f715a7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/screen_task_required.html @@ -0,0 +1,1293 @@ + + + + + + + + + mephisto.abstractions.blueprints.mixins.screen_task_required API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mixins.screen_task_required

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import (
+    Optional,
+    Dict,
+    Any,
+    Union,
+    Iterable,
+    Callable,
+    Tuple,
+    cast,
+    Generator,
+    TYPE_CHECKING,
+)
+
+import types
+from mephisto.abstractions.blueprint import BlueprintMixin
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.qualification import QUAL_NOT_EXIST
+from mephisto.utils.qualifications import (
+    make_qualification_dict,
+    find_or_create_qualification,
+)
+
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.worker import Worker
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+@dataclass
+class ScreenTaskRequiredArgs:
+    passed_qualification_name: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to designate "
+                "workers who have passed screening."
+            )
+        },
+    )
+    max_screening_units: int = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "The maximum number of screening units that can be launched "
+                "with this batch, specified to limit the number of validations "
+                "you may need to pay out for."
+            )
+        },
+    )
+    use_screening_task: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use a screening task in this run.")},
+    )
+
+
+ScreenUnitDataGenerator = Generator[Dict[str, Any], None, None]
+
+
+def blank_generator():
+    while True:
+        yield {}
+
+
+@dataclass
+class ScreenTaskSharedState:
+    screening_data_factory: Tuple[bool, ScreenUnitDataGenerator] = field(
+        default_factory=lambda: blank_generator(),
+        metadata={
+            "help": (
+                "Either a generator that will create task data dicts to "
+                "be used as the `shared` field in InitializationData, or "
+                "the bool False to use real data in screening tasks."
+            ),
+            "Type": "Tuple[bool, ScreenUnitDataGenerator]",
+            "default": "Generator that creates empty data forever",
+        },
+    )
+
+
+class ScreenTaskRequired(BlueprintMixin):
+    """
+    Compositional class for blueprints that may have a first task to
+    qualify workers who have never attempted the task before
+    """
+
+    shared_state: "SharedTaskState"
+    ArgsMixin = ScreenTaskRequiredArgs
+    SharedStateMixin = ScreenTaskSharedState
+
+    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        return self.init_screening_config(task_run, args, shared_state)
+
+    def init_screening_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "ScreenTaskSharedState",
+    ) -> None:
+        self.use_screening_task = args.blueprint.get("use_screening_task", False)
+        if not self.use_screening_task:
+            return
+
+        # Runs that are using a qualification task should be able to assign
+        # a specially generated unit to unqualified workers
+        self.passed_qualification_name = args.blueprint.passed_qualification_name
+        self.failed_qualification_name = args.blueprint.block_qualification
+        self.screening_data_factory: Tuple[
+            bool, ScreenUnitDataGenerator
+        ] = shared_state.screening_data_factory
+        self.screening_units_launched = 0
+        self.screening_unit_cap = args.blueprint.max_screening_units
+
+        find_or_create_qualification(task_run.db, self.passed_qualification_name)
+        find_or_create_qualification(task_run.db, self.failed_qualification_name)
+
+    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_screening_task = args.blueprint.get("use_screening_task", False)
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        if not use_screening_task:
+            return
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "screening before moving into real units."
+        )
+        assert (
+            passed_qualification_name is not None
+        ), "Must supply an passed_qualification_name in Hydra args to use a qualification task"
+        assert (
+            failed_qualification_name is not None
+        ), "Must supply an block_qualification in Hydra args to use a qualification task"
+        assert hasattr(shared_state, "screening_data_factory"), (
+            "You must supply a screening_data_factory generator in your SharedTaskState to use "
+            "screening units, or False if you can screen on any tasks."
+        )
+        max_screening_units = args.blueprint.max_screening_units
+        assert max_screening_units is not None, (
+            "You must supply a blueprint.max_screening_units argument to set the maximum number of "
+            "additional units you will pay out for the purpose of screening new workers. Note that you "
+            "do pay for screening units, they are just like any other units."
+        )
+        screening_data_factory = shared_state.screening_data_factory
+        if screening_data_factory is not False:
+            assert isinstance(screening_data_factory, types.GeneratorType), (
+                "Must provide a generator function to SharedTaskState.screening_data_factory if "
+                "you want to generate screening tasks on the fly, or False if you can screen on any task "
+            )
+
+    def worker_needs_screening(self, worker: "Worker") -> bool:
+        """Workers that are able to access the task (not blocked) but are not passed need qualification"""
+        return worker.get_granted_qualification(self.passed_qualification_name) is None
+
+    def should_generate_unit(self) -> bool:
+        return self.screening_data_factory is not False
+
+    def get_screening_unit_data(self) -> Optional[Dict[str, Any]]:
+        try:
+            if self.screening_units_launched >= self.screening_unit_cap:
+                return None  # Exceeded the cap on these units
+            else:
+                data = next(
+                    cast(
+                        Generator[Dict[str, Any], None, None],
+                        self.screening_data_factory,
+                    )
+                )
+                self.screening_units_launched += 1
+                return data
+        except StopIteration:
+            return None  # No screening units left...
+
+    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+
+        def _wrapped_validate(unit):
+            if unit.unit_index >= 0:
+                return  # We only run validation on the validatable units
+
+            agent = unit.get_assigned_agent()
+            if agent is None:
+                return  # Cannot validate a unit with no agent
+
+            validation_result = screen_unit(unit)
+            if validation_result is True:
+                agent.get_worker().grant_qualification(passed_qualification_name)
+            elif validation_result is False:
+                agent.get_worker().grant_qualification(failed_qualification_name)
+
+        return _wrapped_validate
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        return [
+            make_qualification_dict(
+                failed_qualification_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +
+
+
+ #   + + + class + ScreenTaskRequiredArgs: +
+ +
+ View Source +
class ScreenTaskRequiredArgs:
+    passed_qualification_name: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to designate "
+                "workers who have passed screening."
+            )
+        },
+    )
+    max_screening_units: int = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "The maximum number of screening units that can be launched "
+                "with this batch, specified to limit the number of validations "
+                "you may need to pay out for."
+            )
+        },
+    )
+    use_screening_task: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use a screening task in this run.")},
+    )
+
+ +
+ +

ScreenTaskRequiredArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False)

+
+ + +
+
#   + + + ScreenTaskRequiredArgs( + passed_qualification_name: str = '???', + max_screening_units: int = '???', + use_screening_task: bool = False +) +
+ + + + +
+
+
#   + + passed_qualification_name: str = '???' +
+ + + + +
+
+
#   + + max_screening_units: int = '???' +
+ + + + +
+
+
#   + + use_screening_task: bool = False +
+ + + + +
+
+
+
#   + + + def + blank_generator(): +
+ +
+ View Source +
def blank_generator():
+    while True:
+        yield {}
+
+ +
+ + + +
+
+
+ #   + + + class + ScreenTaskSharedState: +
+ +
+ View Source +
class ScreenTaskSharedState:
+    screening_data_factory: Tuple[bool, ScreenUnitDataGenerator] = field(
+        default_factory=lambda: blank_generator(),
+        metadata={
+            "help": (
+                "Either a generator that will create task data dicts to "
+                "be used as the `shared` field in InitializationData, or "
+                "the bool False to use real data in screening tasks."
+            ),
+            "Type": "Tuple[bool, ScreenUnitDataGenerator]",
+            "default": "Generator that creates empty data forever",
+        },
+    )
+
+ +
+ +

ScreenTaskSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = )

+
+ + +
+
#   + + + ScreenTaskSharedState( + screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = <factory> +) +
+ + + + +
+
+
+
+ #   + + + class + ScreenTaskRequired(mephisto.abstractions.blueprint.BlueprintMixin): +
+ +
+ View Source +
class ScreenTaskRequired(BlueprintMixin):
+    """
+    Compositional class for blueprints that may have a first task to
+    qualify workers who have never attempted the task before
+    """
+
+    shared_state: "SharedTaskState"
+    ArgsMixin = ScreenTaskRequiredArgs
+    SharedStateMixin = ScreenTaskSharedState
+
+    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        return self.init_screening_config(task_run, args, shared_state)
+
+    def init_screening_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "ScreenTaskSharedState",
+    ) -> None:
+        self.use_screening_task = args.blueprint.get("use_screening_task", False)
+        if not self.use_screening_task:
+            return
+
+        # Runs that are using a qualification task should be able to assign
+        # a specially generated unit to unqualified workers
+        self.passed_qualification_name = args.blueprint.passed_qualification_name
+        self.failed_qualification_name = args.blueprint.block_qualification
+        self.screening_data_factory: Tuple[
+            bool, ScreenUnitDataGenerator
+        ] = shared_state.screening_data_factory
+        self.screening_units_launched = 0
+        self.screening_unit_cap = args.blueprint.max_screening_units
+
+        find_or_create_qualification(task_run.db, self.passed_qualification_name)
+        find_or_create_qualification(task_run.db, self.failed_qualification_name)
+
+    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_screening_task = args.blueprint.get("use_screening_task", False)
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        if not use_screening_task:
+            return
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "screening before moving into real units."
+        )
+        assert (
+            passed_qualification_name is not None
+        ), "Must supply an passed_qualification_name in Hydra args to use a qualification task"
+        assert (
+            failed_qualification_name is not None
+        ), "Must supply an block_qualification in Hydra args to use a qualification task"
+        assert hasattr(shared_state, "screening_data_factory"), (
+            "You must supply a screening_data_factory generator in your SharedTaskState to use "
+            "screening units, or False if you can screen on any tasks."
+        )
+        max_screening_units = args.blueprint.max_screening_units
+        assert max_screening_units is not None, (
+            "You must supply a blueprint.max_screening_units argument to set the maximum number of "
+            "additional units you will pay out for the purpose of screening new workers. Note that you "
+            "do pay for screening units, they are just like any other units."
+        )
+        screening_data_factory = shared_state.screening_data_factory
+        if screening_data_factory is not False:
+            assert isinstance(screening_data_factory, types.GeneratorType), (
+                "Must provide a generator function to SharedTaskState.screening_data_factory if "
+                "you want to generate screening tasks on the fly, or False if you can screen on any task "
+            )
+
+    def worker_needs_screening(self, worker: "Worker") -> bool:
+        """Workers that are able to access the task (not blocked) but are not passed need qualification"""
+        return worker.get_granted_qualification(self.passed_qualification_name) is None
+
+    def should_generate_unit(self) -> bool:
+        return self.screening_data_factory is not False
+
+    def get_screening_unit_data(self) -> Optional[Dict[str, Any]]:
+        try:
+            if self.screening_units_launched >= self.screening_unit_cap:
+                return None  # Exceeded the cap on these units
+            else:
+                data = next(
+                    cast(
+                        Generator[Dict[str, Any], None, None],
+                        self.screening_data_factory,
+                    )
+                )
+                self.screening_units_launched += 1
+                return data
+        except StopIteration:
+            return None  # No screening units left...
+
+    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+
+        def _wrapped_validate(unit):
+            if unit.unit_index >= 0:
+                return  # We only run validation on the validatable units
+
+            agent = unit.get_assigned_agent()
+            if agent is None:
+                return  # Cannot validate a unit with no agent
+
+            validation_result = screen_unit(unit)
+            if validation_result is True:
+                agent.get_worker().grant_qualification(passed_qualification_name)
+            elif validation_result is False:
+                agent.get_worker().grant_qualification(failed_qualification_name)
+
+        return _wrapped_validate
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        return [
+            make_qualification_dict(
+                failed_qualification_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +

Compositional class for blueprints that may have a first task to +qualify workers who have never attempted the task before

+
+ + +
+
#   + + + ScreenTaskRequired() +
+ + + + +
+
+
#   + + + def + init_mixin_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        return self.init_screening_config(task_run, args, shared_state)
+
+ +
+ +

Method to initialize any required attributes to make this mixin function

+
+ + +
+
+
#   + + + def + init_screening_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState +) -> None: +
+ +
+ View Source +
    def init_screening_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "ScreenTaskSharedState",
+    ) -> None:
+        self.use_screening_task = args.blueprint.get("use_screening_task", False)
+        if not self.use_screening_task:
+            return
+
+        # Runs that are using a qualification task should be able to assign
+        # a specially generated unit to unqualified workers
+        self.passed_qualification_name = args.blueprint.passed_qualification_name
+        self.failed_qualification_name = args.blueprint.block_qualification
+        self.screening_data_factory: Tuple[
+            bool, ScreenUnitDataGenerator
+        ] = shared_state.screening_data_factory
+        self.screening_units_launched = 0
+        self.screening_unit_cap = args.blueprint.max_screening_units
+
+        find_or_create_qualification(task_run.db, self.passed_qualification_name)
+        find_or_create_qualification(task_run.db, self.failed_qualification_name)
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + assert_mixin_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_screening_task = args.blueprint.get("use_screening_task", False)
+        assert isinstance(
+            shared_state, ScreenTaskSharedState
+        ), "Must use ScreenTaskSharedState with ScreenTaskRequired blueprint"
+        if not use_screening_task:
+            return
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "screening before moving into real units."
+        )
+        assert (
+            passed_qualification_name is not None
+        ), "Must supply an passed_qualification_name in Hydra args to use a qualification task"
+        assert (
+            failed_qualification_name is not None
+        ), "Must supply an block_qualification in Hydra args to use a qualification task"
+        assert hasattr(shared_state, "screening_data_factory"), (
+            "You must supply a screening_data_factory generator in your SharedTaskState to use "
+            "screening units, or False if you can screen on any tasks."
+        )
+        max_screening_units = args.blueprint.max_screening_units
+        assert max_screening_units is not None, (
+            "You must supply a blueprint.max_screening_units argument to set the maximum number of "
+            "additional units you will pay out for the purpose of screening new workers. Note that you "
+            "do pay for screening units, they are just like any other units."
+        )
+        screening_data_factory = shared_state.screening_data_factory
+        if screening_data_factory is not False:
+            assert isinstance(screening_data_factory, types.GeneratorType), (
+                "Must provide a generator function to SharedTaskState.screening_data_factory if "
+                "you want to generate screening tasks on the fly, or False if you can screen on any task "
+            )
+
+ +
+ +

Method to validate the incoming args and throw if something won't work

+
+ + +
+
+
#   + + + def + worker_needs_screening(self, worker: mephisto.data_model.worker.Worker) -> bool: +
+ +
+ View Source +
    def worker_needs_screening(self, worker: "Worker") -> bool:
+        """Workers that are able to access the task (not blocked) but are not passed need qualification"""
+        return worker.get_granted_qualification(self.passed_qualification_name) is None
+
+ +
+ +

Workers that are able to access the task (not blocked) but are not passed need qualification

+
+ + +
+
+
#   + + + def + should_generate_unit(self) -> bool: +
+ +
+ View Source +
    def should_generate_unit(self) -> bool:
+        return self.screening_data_factory is not False
+
+ +
+ + + +
+
+
#   + + + def + get_screening_unit_data(self) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_screening_unit_data(self) -> Optional[Dict[str, Any]]:
+        try:
+            if self.screening_units_launched >= self.screening_unit_cap:
+                return None  # Exceeded the cap on these units
+            else:
+                data = next(
+                    cast(
+                        Generator[Dict[str, Any], None, None],
+                        self.screening_data_factory,
+                    )
+                )
+                self.screening_units_launched += 1
+                return data
+        except StopIteration:
+            return None  # No screening units left...
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + create_validation_function( + cls, + args: omegaconf.dictconfig.DictConfig, + screen_unit: collections.abc.Callable[mephisto.data_model.unit.Unit, bool] +): +
+ +
+ View Source +
    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+
+        def _wrapped_validate(unit):
+            if unit.unit_index >= 0:
+                return  # We only run validation on the validatable units
+
+            agent = unit.get_assigned_agent()
+            if agent is None:
+                return  # Cannot validate a unit with no agent
+
+            validation_result = screen_unit(unit)
+            if validation_result is True:
+                agent.get_worker().grant_qualification(passed_qualification_name)
+            elif validation_result is False:
+                agent.get_worker().grant_qualification(failed_qualification_name)
+
+        return _wrapped_validate
+
+ +
+ +

Takes in a validator function to determine if validation units are +passable, and returns a on_unit_submitted function to be used +in the SharedTaskState

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_mixin_qualifications( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        passed_qualification_name = args.blueprint.passed_qualification_name
+        failed_qualification_name = args.blueprint.block_qualification
+        return [
+            make_qualification_dict(
+                failed_qualification_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +

Creates the relevant task qualifications for this task

+
+ + +
+ +
+
+
+ #   + + + class + ScreenTaskRequired.ArgsMixin: +
+ +
+ View Source +
class ScreenTaskRequiredArgs:
+    passed_qualification_name: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to designate "
+                "workers who have passed screening."
+            )
+        },
+    )
+    max_screening_units: int = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "The maximum number of screening units that can be launched "
+                "with this batch, specified to limit the number of validations "
+                "you may need to pay out for."
+            )
+        },
+    )
+    use_screening_task: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use a screening task in this run.")},
+    )
+
+ +
+ +

ScreenTaskRequiredArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False)

+
+ + + +
+
+
+ #   + + + class + ScreenTaskRequired.SharedStateMixin: +
+ +
+ View Source +
class ScreenTaskSharedState:
+    screening_data_factory: Tuple[bool, ScreenUnitDataGenerator] = field(
+        default_factory=lambda: blank_generator(),
+        metadata={
+            "help": (
+                "Either a generator that will create task data dicts to "
+                "be used as the `shared` field in InitializationData, or "
+                "the bool False to use real data in screening tasks."
+            ),
+            "Type": "Tuple[bool, ScreenUnitDataGenerator]",
+            "default": "Generator that creates empty data forever",
+        },
+    )
+
+ +
+ +

ScreenTaskSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = )

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/use_gold_unit.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/use_gold_unit.html new file mode 100644 index 000000000..294d31916 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mixins/use_gold_unit.html @@ -0,0 +1,1715 @@ + + + + + + + + + mephisto.abstractions.blueprints.mixins.use_gold_unit API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mixins.use_gold_unit

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import (
+    List,
+    Optional,
+    Dict,
+    Any,
+    Union,
+    Iterable,
+    Callable,
+    Tuple,
+    Generator,
+    TYPE_CHECKING,
+)
+
+import types
+import random
+import math
+import traceback
+from mephisto.abstractions.blueprint import BlueprintMixin, AgentState
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.qualification import QUAL_NOT_EXIST
+from mephisto.utils.qualifications import (
+    make_qualification_dict,
+    find_or_create_qualification,
+)
+from mephisto.operations.task_launcher import GOLD_UNIT_INDEX
+
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.worker import Worker
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+@dataclass
+class UseGoldUnitArgs:
+    gold_qualification_base: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Basename for a qualification that tracks gold completion rates")
+        },
+    )
+    use_golds: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use gold tasks in this run.")},
+    )
+    min_golds: int = field(
+        default=1,
+        metadata={
+            "help": (
+                "Minimum golds a worker needs to complete before getting real units."
+            )
+        },
+    )
+    max_incorrect_golds: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum number of golds a worker can get incorrect before being disqualified"
+            )
+        },
+    )
+
+
+GoldFactory = Callable[["Worker"], Dict[str, Any]]
+
+
+def get_gold_factory(golds: List[Dict[str, Any]]) -> GoldFactory:
+    """
+    Returns a gold factory that can be used to distribute golds to workers
+    Usage of golds only persists within a single TaskRun, so golds may repeat
+    on future task runs.
+    """
+    worker_gold_maps: Dict[str, List[int]] = {}
+    num_golds = len(golds)
+    assert num_golds != 0, "Must provide at least one gold to get_gold_factory"
+
+    def get_gold_for_worker(worker: "Worker"):
+        if (
+            worker.db_id not in worker_gold_maps
+            or len(worker_gold_maps[worker.db_id]) == 0
+        ):
+            # create a list of gold indices a worker hasn't done
+            worker_gold_maps[worker.db_id] = [x for x in range(num_golds)]
+        # select a random gold index from what remains
+        rg = worker_gold_maps[worker.db_id]
+        selected_idx = random.randint(0, len(rg) - 1)
+        rg[selected_idx], rg[-1] = rg[-1], rg[selected_idx]
+        gold_idx = rg.pop()
+        return golds[gold_idx]
+
+    return get_gold_for_worker
+
+
+def worker_needs_gold(
+    units_completed: int, num_correct: int, num_incorrect: int, min_golds: int
+) -> bool:
+    """
+    Return a bool of whether or not a worker needs to be shown a gold unit in the current slot.
+    Generally we show a lot of of golds to begin with, (up until min_golds), and then scale down.
+    """
+    # After launching, if the correct golds are less than the min, we need more golds
+    if num_correct < min_golds:
+        return True
+    excess_golds = num_correct - (min_golds + num_incorrect)
+
+    # (Somewhat arbitrarily), we scale to ensure that workers complete golds for every
+    # This gives ~5% gold at 100 and ~1% gold at 1000
+    target_gold = math.ceil(math.pow(math.log10(units_completed + 1), 2.2)) - 1
+    if excess_golds < target_gold:
+        return True
+    return False
+
+
+def worker_qualifies(
+    units_completed: int, num_correct: int, num_incorrect: int, max_incorrect_golds: int
+) -> bool:
+    """
+    Return a bool of whether or not a worker is qualified to continue working on these tasks.
+    """
+    # We could potentially use a scaling function on the proportion of incorrect golds
+    # over the total number of units completed, to be a little more lax, but this methodology
+    # needs more investigation.
+
+    # Instead, we just have strikes system
+    return num_incorrect <= max_incorrect_golds
+
+
+@dataclass
+class GoldUnitSharedState:
+    get_gold_for_worker: GoldFactory = field(
+        default_factory=lambda: get_gold_factory([{}])
+    )
+    worker_needs_gold: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_needs_gold,
+    )
+    worker_qualifies: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_qualifies,
+    )
+
+
+class UseGoldUnit(BlueprintMixin):
+    """
+    Compositional class for blueprints that want to inject gold units
+    into worker queues.
+
+    # TODO(#97) add support for adding gold subunits
+    """
+
+    ArgsMixin = UseGoldUnitArgs
+    SharedStateMixin = GoldUnitSharedState
+
+    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, GoldUnitSharedState
+        ), f"Must use GoldUnitSharedState with this mixin, found {shared_state}"
+        return self.init_gold_config(task_run, args, shared_state)
+
+    def init_gold_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "GoldUnitSharedState",
+    ) -> None:
+        self.use_golds = args.blueprint.get("use_golds", False)
+        if not self.use_golds:
+            return
+
+        # Runs using gold units need to keep track of the frequency and
+        # usage of golds
+        self.base_qual_name = args.blueprint.gold_qualification_base
+        self.golds_correct_qual_name = f"{self.base_qual_name}-correct-golds"
+        self.golds_failed_qual_name = f"{self.base_qual_name}-wrong-golds"
+        self.disqualified_qual_name = f"{self.base_qual_name}-disqualified"
+        self.task_count_qual_name = f"{self.base_qual_name}-completed-count"
+
+        self.get_gold_for_worker = shared_state.get_gold_for_worker
+        self.worker_needs_gold = shared_state.worker_needs_gold
+        self.worker_qualifies = shared_state.worker_qualifies
+
+        self.min_golds = args.blueprint.min_golds
+        self.max_incorrect_golds = args.blueprint.max_incorrect_golds
+
+        find_or_create_qualification(task_run.db, self.golds_correct_qual_name)
+        find_or_create_qualification(task_run.db, self.golds_failed_qual_name)
+        find_or_create_qualification(task_run.db, self.disqualified_qual_name)
+        find_or_create_qualification(task_run.db, self.task_count_qual_name)
+
+    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_golds = args.blueprint.get("use_golds", False)
+        if not use_golds:
+            return
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "golds are completed in order."
+        )
+        gold_qualification_base = args.blueprint.gold_qualification_base
+        assert (
+            gold_qualification_base is not None
+        ), "Must supply an gold_qualification_base in Hydra args to use gold units"
+
+        assert hasattr(shared_state, "get_gold_for_worker"), (
+            "You must supply a get_gold_for_worker generator in your SharedTaskState to use "
+            "gold units units."
+        )
+        # TODO(#97) it would be nice to test that `get_gold_for_worker` actually returns a task when
+        # given a worker
+
+    @staticmethod
+    def get_current_qual_or_default(
+        worker: "Worker", qual_name: str, default_val: Any = 0
+    ) -> Any:
+        """Return the qualification of this name for the worker, or the default value"""
+        found_qual = worker.get_granted_qualification(qual_name)
+        return default_val if found_qual is None else found_qual.value
+
+    def get_completion_stats_for_worker(self, worker: "Worker") -> Tuple[int, int, int]:
+        """Return the correct and incorrect gold counts, as well as the total count for a worker"""
+        completed_units = UseGoldUnit.get_current_qual_or_default(
+            worker, self.task_count_qual_name
+        )
+        correct_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_correct_qual_name
+        )
+        incorrect_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_failed_qual_name
+        )
+        return completed_units, correct_golds, incorrect_golds
+
+    def should_produce_gold_for_worker(self, worker: "Worker") -> bool:
+        """Workers that can access the task should be evaluated to do a gold"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            return False
+        return self.worker_needs_gold(
+            completed_units, correct_units, incorrect_units, self.min_golds
+        )
+
+    def update_qualified_status(self, worker: "Worker") -> bool:
+        """Workers qualification status may change after failing a unit"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            worker.grant_qualification(self.disqualified_qual_name)
+            return True
+        return False
+
+    def get_gold_unit_data_for_worker(
+        self, worker: "Worker"
+    ) -> Optional[Dict[str, Any]]:
+        try:
+            return self.get_gold_for_worker(worker)
+        except Exception as e:
+            logger.warning(f"Could not generate gold for {worker} due to {e}")
+            traceback.print_exc()
+            return None
+
+    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_correct_qual_name = f"{base_qual_name}-correct-golds"
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        disqualified_qual_name = f"{base_qual_name}-disqualified"
+        task_count_qual_name = f"{base_qual_name}-completed-count"
+
+        def _wrapped_validate(unit):
+            agent = unit.get_assigned_agent()
+            if unit.unit_index != GOLD_UNIT_INDEX:
+                if (
+                    agent is not None
+                    and agent.get_status() == AgentState.STATUS_COMPLETED
+                ):
+                    worker = agent.get_worker()
+                    completed_units = UseGoldUnit.get_current_qual_or_default(
+                        worker, task_count_qual_name
+                    )
+                    worker.grant_qualification(
+                        task_count_qual_name,
+                        value=completed_units + 1,
+                        skip_crowd=True,
+                    )
+                return  # We only run validation on the validatable units
+
+            if agent is None:
+                return  # Can't validate incomplete unit
+
+            validation_result = screen_unit(unit)
+            agent = unit.get_assigned_agent()
+            worker = agent.get_worker()
+
+            if validation_result is True:
+                correct_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_correct_qual_name
+                )
+                worker.grant_qualification(
+                    golds_correct_qual_name, correct_units + 1, skip_crowd=True
+                )
+            elif validation_result is False:
+                incorrect_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_failed_qual_name
+                )
+                worker.grant_qualification(
+                    golds_failed_qual_name, incorrect_units + 1, skip_crowd=True
+                )
+
+        return _wrapped_validate
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        return [
+            make_qualification_dict(
+                golds_failed_qual_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +
+
+
+ #   + + + class + UseGoldUnitArgs: +
+ +
+ View Source +
class UseGoldUnitArgs:
+    gold_qualification_base: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Basename for a qualification that tracks gold completion rates")
+        },
+    )
+    use_golds: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use gold tasks in this run.")},
+    )
+    min_golds: int = field(
+        default=1,
+        metadata={
+            "help": (
+                "Minimum golds a worker needs to complete before getting real units."
+            )
+        },
+    )
+    max_incorrect_golds: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum number of golds a worker can get incorrect before being disqualified"
+            )
+        },
+    )
+
+ +
+ +

UseGoldUnitArgs(gold_qualification_base: str = '???', use_golds: bool = False, min_golds: int = 1, max_incorrect_golds: int = 0)

+
+ + +
+
#   + + + UseGoldUnitArgs( + gold_qualification_base: str = '???', + use_golds: bool = False, + min_golds: int = 1, + max_incorrect_golds: int = 0 +) +
+ + + + +
+
+
#   + + gold_qualification_base: str = '???' +
+ + + + +
+
+
#   + + use_golds: bool = False +
+ + + + +
+
+
#   + + min_golds: int = 1 +
+ + + + +
+
+
#   + + max_incorrect_golds: int = 0 +
+ + + + +
+
+
+
#   + + + def + get_gold_factory( + golds: List[Dict[str, Any]] +) -> collections.abc.Callable[mephisto.data_model.worker.Worker, typing.Dict[str, typing.Any]]: +
+ +
+ View Source +
def get_gold_factory(golds: List[Dict[str, Any]]) -> GoldFactory:
+    """
+    Returns a gold factory that can be used to distribute golds to workers
+    Usage of golds only persists within a single TaskRun, so golds may repeat
+    on future task runs.
+    """
+    worker_gold_maps: Dict[str, List[int]] = {}
+    num_golds = len(golds)
+    assert num_golds != 0, "Must provide at least one gold to get_gold_factory"
+
+    def get_gold_for_worker(worker: "Worker"):
+        if (
+            worker.db_id not in worker_gold_maps
+            or len(worker_gold_maps[worker.db_id]) == 0
+        ):
+            # create a list of gold indices a worker hasn't done
+            worker_gold_maps[worker.db_id] = [x for x in range(num_golds)]
+        # select a random gold index from what remains
+        rg = worker_gold_maps[worker.db_id]
+        selected_idx = random.randint(0, len(rg) - 1)
+        rg[selected_idx], rg[-1] = rg[-1], rg[selected_idx]
+        gold_idx = rg.pop()
+        return golds[gold_idx]
+
+    return get_gold_for_worker
+
+ +
+ +

Returns a gold factory that can be used to distribute golds to workers +Usage of golds only persists within a single TaskRun, so golds may repeat +on future task runs.

+
+ + +
+
+
#   + + + def + worker_needs_gold( + units_completed: int, + num_correct: int, + num_incorrect: int, + min_golds: int +) -> bool: +
+ +
+ View Source +
def worker_needs_gold(
+    units_completed: int, num_correct: int, num_incorrect: int, min_golds: int
+) -> bool:
+    """
+    Return a bool of whether or not a worker needs to be shown a gold unit in the current slot.
+    Generally we show a lot of of golds to begin with, (up until min_golds), and then scale down.
+    """
+    # After launching, if the correct golds are less than the min, we need more golds
+    if num_correct < min_golds:
+        return True
+    excess_golds = num_correct - (min_golds + num_incorrect)
+
+    # (Somewhat arbitrarily), we scale to ensure that workers complete golds for every
+    # This gives ~5% gold at 100 and ~1% gold at 1000
+    target_gold = math.ceil(math.pow(math.log10(units_completed + 1), 2.2)) - 1
+    if excess_golds < target_gold:
+        return True
+    return False
+
+ +
+ +

Return a bool of whether or not a worker needs to be shown a gold unit in the current slot. +Generally we show a lot of of golds to begin with, (up until min_golds), and then scale down.

+
+ + +
+
+
#   + + + def + worker_qualifies( + units_completed: int, + num_correct: int, + num_incorrect: int, + max_incorrect_golds: int +) -> bool: +
+ +
+ View Source +
def worker_qualifies(
+    units_completed: int, num_correct: int, num_incorrect: int, max_incorrect_golds: int
+) -> bool:
+    """
+    Return a bool of whether or not a worker is qualified to continue working on these tasks.
+    """
+    # We could potentially use a scaling function on the proportion of incorrect golds
+    # over the total number of units completed, to be a little more lax, but this methodology
+    # needs more investigation.
+
+    # Instead, we just have strikes system
+    return num_incorrect <= max_incorrect_golds
+
+ +
+ +

Return a bool of whether or not a worker is qualified to continue working on these tasks.

+
+ + +
+
+
+ #   + + + class + GoldUnitSharedState: +
+ +
+ View Source +
class GoldUnitSharedState:
+    get_gold_for_worker: GoldFactory = field(
+        default_factory=lambda: get_gold_factory([{}])
+    )
+    worker_needs_gold: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_needs_gold,
+    )
+    worker_qualifies: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_qualifies,
+    )
+
+ +
+ +

GoldUnitSharedState(get_gold_for_worker: Callable[[ForwardRef('Worker')], Dict[str, Any]] = , worker_needs_gold: Callable[[int, int, int, int], bool] = , worker_qualifies: Callable[[int, int, int, int], bool] = )

+
+ + +
+
#   + + + GoldUnitSharedState( + get_gold_for_worker: collections.abc.Callable[mephisto.data_model.worker.Worker, typing.Dict[str, typing.Any]] = <factory>, + worker_needs_gold: Callable[[int, int, int, int], bool] = <factory>, + worker_qualifies: Callable[[int, int, int, int], bool] = <factory> +) +
+ + + + +
+
+
+
+ #   + + + class + UseGoldUnit(mephisto.abstractions.blueprint.BlueprintMixin): +
+ +
+ View Source +
class UseGoldUnit(BlueprintMixin):
+    """
+    Compositional class for blueprints that want to inject gold units
+    into worker queues.
+
+    # TODO(#97) add support for adding gold subunits
+    """
+
+    ArgsMixin = UseGoldUnitArgs
+    SharedStateMixin = GoldUnitSharedState
+
+    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, GoldUnitSharedState
+        ), f"Must use GoldUnitSharedState with this mixin, found {shared_state}"
+        return self.init_gold_config(task_run, args, shared_state)
+
+    def init_gold_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "GoldUnitSharedState",
+    ) -> None:
+        self.use_golds = args.blueprint.get("use_golds", False)
+        if not self.use_golds:
+            return
+
+        # Runs using gold units need to keep track of the frequency and
+        # usage of golds
+        self.base_qual_name = args.blueprint.gold_qualification_base
+        self.golds_correct_qual_name = f"{self.base_qual_name}-correct-golds"
+        self.golds_failed_qual_name = f"{self.base_qual_name}-wrong-golds"
+        self.disqualified_qual_name = f"{self.base_qual_name}-disqualified"
+        self.task_count_qual_name = f"{self.base_qual_name}-completed-count"
+
+        self.get_gold_for_worker = shared_state.get_gold_for_worker
+        self.worker_needs_gold = shared_state.worker_needs_gold
+        self.worker_qualifies = shared_state.worker_qualifies
+
+        self.min_golds = args.blueprint.min_golds
+        self.max_incorrect_golds = args.blueprint.max_incorrect_golds
+
+        find_or_create_qualification(task_run.db, self.golds_correct_qual_name)
+        find_or_create_qualification(task_run.db, self.golds_failed_qual_name)
+        find_or_create_qualification(task_run.db, self.disqualified_qual_name)
+        find_or_create_qualification(task_run.db, self.task_count_qual_name)
+
+    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_golds = args.blueprint.get("use_golds", False)
+        if not use_golds:
+            return
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "golds are completed in order."
+        )
+        gold_qualification_base = args.blueprint.gold_qualification_base
+        assert (
+            gold_qualification_base is not None
+        ), "Must supply an gold_qualification_base in Hydra args to use gold units"
+
+        assert hasattr(shared_state, "get_gold_for_worker"), (
+            "You must supply a get_gold_for_worker generator in your SharedTaskState to use "
+            "gold units units."
+        )
+        # TODO(#97) it would be nice to test that `get_gold_for_worker` actually returns a task when
+        # given a worker
+
+    @staticmethod
+    def get_current_qual_or_default(
+        worker: "Worker", qual_name: str, default_val: Any = 0
+    ) -> Any:
+        """Return the qualification of this name for the worker, or the default value"""
+        found_qual = worker.get_granted_qualification(qual_name)
+        return default_val if found_qual is None else found_qual.value
+
+    def get_completion_stats_for_worker(self, worker: "Worker") -> Tuple[int, int, int]:
+        """Return the correct and incorrect gold counts, as well as the total count for a worker"""
+        completed_units = UseGoldUnit.get_current_qual_or_default(
+            worker, self.task_count_qual_name
+        )
+        correct_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_correct_qual_name
+        )
+        incorrect_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_failed_qual_name
+        )
+        return completed_units, correct_golds, incorrect_golds
+
+    def should_produce_gold_for_worker(self, worker: "Worker") -> bool:
+        """Workers that can access the task should be evaluated to do a gold"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            return False
+        return self.worker_needs_gold(
+            completed_units, correct_units, incorrect_units, self.min_golds
+        )
+
+    def update_qualified_status(self, worker: "Worker") -> bool:
+        """Workers qualification status may change after failing a unit"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            worker.grant_qualification(self.disqualified_qual_name)
+            return True
+        return False
+
+    def get_gold_unit_data_for_worker(
+        self, worker: "Worker"
+    ) -> Optional[Dict[str, Any]]:
+        try:
+            return self.get_gold_for_worker(worker)
+        except Exception as e:
+            logger.warning(f"Could not generate gold for {worker} due to {e}")
+            traceback.print_exc()
+            return None
+
+    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_correct_qual_name = f"{base_qual_name}-correct-golds"
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        disqualified_qual_name = f"{base_qual_name}-disqualified"
+        task_count_qual_name = f"{base_qual_name}-completed-count"
+
+        def _wrapped_validate(unit):
+            agent = unit.get_assigned_agent()
+            if unit.unit_index != GOLD_UNIT_INDEX:
+                if (
+                    agent is not None
+                    and agent.get_status() == AgentState.STATUS_COMPLETED
+                ):
+                    worker = agent.get_worker()
+                    completed_units = UseGoldUnit.get_current_qual_or_default(
+                        worker, task_count_qual_name
+                    )
+                    worker.grant_qualification(
+                        task_count_qual_name,
+                        value=completed_units + 1,
+                        skip_crowd=True,
+                    )
+                return  # We only run validation on the validatable units
+
+            if agent is None:
+                return  # Can't validate incomplete unit
+
+            validation_result = screen_unit(unit)
+            agent = unit.get_assigned_agent()
+            worker = agent.get_worker()
+
+            if validation_result is True:
+                correct_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_correct_qual_name
+                )
+                worker.grant_qualification(
+                    golds_correct_qual_name, correct_units + 1, skip_crowd=True
+                )
+            elif validation_result is False:
+                incorrect_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_failed_qual_name
+                )
+                worker.grant_qualification(
+                    golds_failed_qual_name, incorrect_units + 1, skip_crowd=True
+                )
+
+        return _wrapped_validate
+
+    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        return [
+            make_qualification_dict(
+                golds_failed_qual_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +

Compositional class for blueprints that want to inject gold units +into worker queues.

+ +

TODO(#97) add support for adding gold subunits

+
+ + +
+
#   + + + UseGoldUnit() +
+ + + + +
+
+
#   + + + def + init_mixin_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    def init_mixin_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ) -> None:
+        assert isinstance(
+            shared_state, GoldUnitSharedState
+        ), f"Must use GoldUnitSharedState with this mixin, found {shared_state}"
+        return self.init_gold_config(task_run, args, shared_state)
+
+ +
+ +

Method to initialize any required attributes to make this mixin function

+
+ + +
+
+
#   + + + def + init_gold_config( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState +) -> None: +
+ +
+ View Source +
    def init_gold_config(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "GoldUnitSharedState",
+    ) -> None:
+        self.use_golds = args.blueprint.get("use_golds", False)
+        if not self.use_golds:
+            return
+
+        # Runs using gold units need to keep track of the frequency and
+        # usage of golds
+        self.base_qual_name = args.blueprint.gold_qualification_base
+        self.golds_correct_qual_name = f"{self.base_qual_name}-correct-golds"
+        self.golds_failed_qual_name = f"{self.base_qual_name}-wrong-golds"
+        self.disqualified_qual_name = f"{self.base_qual_name}-disqualified"
+        self.task_count_qual_name = f"{self.base_qual_name}-completed-count"
+
+        self.get_gold_for_worker = shared_state.get_gold_for_worker
+        self.worker_needs_gold = shared_state.worker_needs_gold
+        self.worker_qualifies = shared_state.worker_qualifies
+
+        self.min_golds = args.blueprint.min_golds
+        self.max_incorrect_golds = args.blueprint.max_incorrect_golds
+
+        find_or_create_qualification(task_run.db, self.golds_correct_qual_name)
+        find_or_create_qualification(task_run.db, self.golds_failed_qual_name)
+        find_or_create_qualification(task_run.db, self.disqualified_qual_name)
+        find_or_create_qualification(task_run.db, self.task_count_qual_name)
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + assert_mixin_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_mixin_args(cls, args: "DictConfig", shared_state: "SharedTaskState"):
+        use_golds = args.blueprint.get("use_golds", False)
+        if not use_golds:
+            return
+        assert args.task.allowed_concurrent == 1, (
+            "Can only run this task type with one allowed concurrent unit at a time per worker, to ensure "
+            "golds are completed in order."
+        )
+        gold_qualification_base = args.blueprint.gold_qualification_base
+        assert (
+            gold_qualification_base is not None
+        ), "Must supply an gold_qualification_base in Hydra args to use gold units"
+
+        assert hasattr(shared_state, "get_gold_for_worker"), (
+            "You must supply a get_gold_for_worker generator in your SharedTaskState to use "
+            "gold units units."
+        )
+
+ +
+ +

Method to validate the incoming args and throw if something won't work

+
+ + +
+
+
#   + +
@staticmethod
+ + def + get_current_qual_or_default( + worker: mephisto.data_model.worker.Worker, + qual_name: str, + default_val: Any = 0 +) -> Any: +
+ +
+ View Source +
    @staticmethod
+    def get_current_qual_or_default(
+        worker: "Worker", qual_name: str, default_val: Any = 0
+    ) -> Any:
+        """Return the qualification of this name for the worker, or the default value"""
+        found_qual = worker.get_granted_qualification(qual_name)
+        return default_val if found_qual is None else found_qual.value
+
+ +
+ +

Return the qualification of this name for the worker, or the default value

+
+ + +
+
+
#   + + + def + get_completion_stats_for_worker( + self, + worker: mephisto.data_model.worker.Worker +) -> Tuple[int, int, int]: +
+ +
+ View Source +
    def get_completion_stats_for_worker(self, worker: "Worker") -> Tuple[int, int, int]:
+        """Return the correct and incorrect gold counts, as well as the total count for a worker"""
+        completed_units = UseGoldUnit.get_current_qual_or_default(
+            worker, self.task_count_qual_name
+        )
+        correct_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_correct_qual_name
+        )
+        incorrect_golds = UseGoldUnit.get_current_qual_or_default(
+            worker, self.golds_failed_qual_name
+        )
+        return completed_units, correct_golds, incorrect_golds
+
+ +
+ +

Return the correct and incorrect gold counts, as well as the total count for a worker

+
+ + +
+
+
#   + + + def + should_produce_gold_for_worker(self, worker: mephisto.data_model.worker.Worker) -> bool: +
+ +
+ View Source +
    def should_produce_gold_for_worker(self, worker: "Worker") -> bool:
+        """Workers that can access the task should be evaluated to do a gold"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            return False
+        return self.worker_needs_gold(
+            completed_units, correct_units, incorrect_units, self.min_golds
+        )
+
+ +
+ +

Workers that can access the task should be evaluated to do a gold

+
+ + +
+
+
#   + + + def + update_qualified_status(self, worker: mephisto.data_model.worker.Worker) -> bool: +
+ +
+ View Source +
    def update_qualified_status(self, worker: "Worker") -> bool:
+        """Workers qualification status may change after failing a unit"""
+        (
+            completed_units,
+            correct_units,
+            incorrect_units,
+        ) = self.get_completion_stats_for_worker(worker)
+        if not self.worker_qualifies(
+            completed_units, correct_units, incorrect_units, self.max_incorrect_golds
+        ):
+            worker.grant_qualification(self.disqualified_qual_name)
+            return True
+        return False
+
+ +
+ +

Workers qualification status may change after failing a unit

+
+ + +
+
+
#   + + + def + get_gold_unit_data_for_worker( + self, + worker: mephisto.data_model.worker.Worker +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_gold_unit_data_for_worker(
+        self, worker: "Worker"
+    ) -> Optional[Dict[str, Any]]:
+        try:
+            return self.get_gold_for_worker(worker)
+        except Exception as e:
+            logger.warning(f"Could not generate gold for {worker} due to {e}")
+            traceback.print_exc()
+            return None
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + def + create_validation_function( + cls, + args: omegaconf.dictconfig.DictConfig, + screen_unit: collections.abc.Callable[mephisto.data_model.unit.Unit, bool] +): +
+ +
+ View Source +
    @classmethod
+    def create_validation_function(
+        cls, args: "DictConfig", screen_unit: Callable[["Unit"], bool]
+    ):
+        """
+        Takes in a validator function to determine if validation units are
+        passable, and returns a `on_unit_submitted` function to be used
+        in the SharedTaskState
+        """
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_correct_qual_name = f"{base_qual_name}-correct-golds"
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        disqualified_qual_name = f"{base_qual_name}-disqualified"
+        task_count_qual_name = f"{base_qual_name}-completed-count"
+
+        def _wrapped_validate(unit):
+            agent = unit.get_assigned_agent()
+            if unit.unit_index != GOLD_UNIT_INDEX:
+                if (
+                    agent is not None
+                    and agent.get_status() == AgentState.STATUS_COMPLETED
+                ):
+                    worker = agent.get_worker()
+                    completed_units = UseGoldUnit.get_current_qual_or_default(
+                        worker, task_count_qual_name
+                    )
+                    worker.grant_qualification(
+                        task_count_qual_name,
+                        value=completed_units + 1,
+                        skip_crowd=True,
+                    )
+                return  # We only run validation on the validatable units
+
+            if agent is None:
+                return  # Can't validate incomplete unit
+
+            validation_result = screen_unit(unit)
+            agent = unit.get_assigned_agent()
+            worker = agent.get_worker()
+
+            if validation_result is True:
+                correct_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_correct_qual_name
+                )
+                worker.grant_qualification(
+                    golds_correct_qual_name, correct_units + 1, skip_crowd=True
+                )
+            elif validation_result is False:
+                incorrect_units = UseGoldUnit.get_current_qual_or_default(
+                    worker, golds_failed_qual_name
+                )
+                worker.grant_qualification(
+                    golds_failed_qual_name, incorrect_units + 1, skip_crowd=True
+                )
+
+        return _wrapped_validate
+
+ +
+ +

Takes in a validator function to determine if validation units are +passable, and returns a on_unit_submitted function to be used +in the SharedTaskState

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_mixin_qualifications( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def get_mixin_qualifications(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        """Creates the relevant task qualifications for this task"""
+        base_qual_name = args.blueprint.gold_qualification_base
+        golds_failed_qual_name = f"{base_qual_name}-wrong-golds"
+        return [
+            make_qualification_dict(
+                golds_failed_qual_name,
+                QUAL_NOT_EXIST,
+                None,
+            )
+        ]
+
+ +
+ +

Creates the relevant task qualifications for this task

+
+ + +
+ +
+
+
+ #   + + + class + UseGoldUnit.ArgsMixin: +
+ +
+ View Source +
class UseGoldUnitArgs:
+    gold_qualification_base: str = field(
+        default=MISSING,
+        metadata={
+            "help": ("Basename for a qualification that tracks gold completion rates")
+        },
+    )
+    use_golds: bool = field(
+        default=False,
+        metadata={"help": ("Whether or not to use gold tasks in this run.")},
+    )
+    min_golds: int = field(
+        default=1,
+        metadata={
+            "help": (
+                "Minimum golds a worker needs to complete before getting real units."
+            )
+        },
+    )
+    max_incorrect_golds: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum number of golds a worker can get incorrect before being disqualified"
+            )
+        },
+    )
+
+ +
+ +

UseGoldUnitArgs(gold_qualification_base: str = '???', use_golds: bool = False, min_golds: int = 1, max_incorrect_golds: int = 0)

+
+ + + +
+
+
+ #   + + + class + UseGoldUnit.SharedStateMixin: +
+ +
+ View Source +
class GoldUnitSharedState:
+    get_gold_for_worker: GoldFactory = field(
+        default_factory=lambda: get_gold_factory([{}])
+    )
+    worker_needs_gold: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_needs_gold,
+    )
+    worker_qualifies: Callable[[int, int, int, int], bool] = field(
+        default_factory=lambda: worker_qualifies,
+    )
+
+ +
+ +

GoldUnitSharedState(get_gold_for_worker: Callable[[ForwardRef('Worker')], Dict[str, Any]] = , worker_needs_gold: Callable[[int, int, int, int], bool] = , worker_qualifies: Callable[[int, int, int, int], bool] = )

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mock.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock.html new file mode 100644 index 000000000..7248d1112 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock.html @@ -0,0 +1,253 @@ + + + + + + + + + mephisto.abstractions.blueprints.mock API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mock

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_agent_state.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_agent_state.html new file mode 100644 index 000000000..92e89fad4 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_agent_state.html @@ -0,0 +1,620 @@ + + + + + + + + + mephisto.abstractions.blueprints.mock.mock_agent_state API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mock.mock_agent_state

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Dict, Any, TYPE_CHECKING
+from mephisto.abstractions.blueprint import AgentState
+import os
+import json
+import weakref
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.packet import Packet
+
+
+class MockAgentState(AgentState):
+    """
+    Mock agent state that is to be used for testing
+    """
+
+    def __init__(self, agent: "Agent"):
+        """Mock agent states keep everything in local memory"""
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Any] = {}
+        self.init_state: Any = None
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_state is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_state = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        return self.init_state
+
+    def load_data(self) -> None:
+        """Mock agent states have no data stored"""
+        pass
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state
+
+    def save_data(self) -> None:
+        """Mock agents don't save data (yet)"""
+        pass
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """Put new data into this mock state"""
+        self.state = live_update
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Move the submitted data into the live state"""
+        self.state = submitted_data
+
+ +
+ +
+
+
+ #   + + + class + MockAgentState(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class MockAgentState(AgentState):
+    """
+    Mock agent state that is to be used for testing
+    """
+
+    def __init__(self, agent: "Agent"):
+        """Mock agent states keep everything in local memory"""
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Any] = {}
+        self.init_state: Any = None
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_state is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_state = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        return self.init_state
+
+    def load_data(self) -> None:
+        """Mock agent states have no data stored"""
+        pass
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state
+
+    def save_data(self) -> None:
+        """Mock agents don't save data (yet)"""
+        pass
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """Put new data into this mock state"""
+        self.state = live_update
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Move the submitted data into the live state"""
+        self.state = submitted_data
+
+ +
+ +

Mock agent state that is to be used for testing

+
+ + +
+
#   + + + MockAgentState(agent: mephisto.data_model.agent.Agent) +
+ +
+ View Source +
    def __init__(self, agent: "Agent"):
+        """Mock agent states keep everything in local memory"""
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Any] = {}
+        self.init_state: Any = None
+
+ +
+ +

Mock agent states keep everything in local memory

+
+ + +
+
+
#   + + + def + set_init_state(self, data: Any) -> bool: +
+ +
+ View Source +
    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_state is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_state = data
+            self.save_data()
+            return True
+
+ +
+ +

Set the initial state for this agent

+
+ + +
+
+
#   + + + def + get_init_state(self) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        return self.init_state
+
+ +
+ +

Return the initial state for this agent, +None if no such state exists

+
+ + +
+
+
#   + + + def + load_data(self) -> None: +
+ +
+ View Source +
    def load_data(self) -> None:
+        """Mock agent states have no data stored"""
+        pass
+
+ +
+ +

Mock agent states have no data stored

+
+ + +
+
+
#   + + + def + get_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state
+
+ +
+ +

Return dict of this agent's state

+
+ + +
+
+
#   + + + def + save_data(self) -> None: +
+ +
+ View Source +
    def save_data(self) -> None:
+        """Mock agents don't save data (yet)"""
+        pass
+
+ +
+ +

Mock agents don't save data (yet)

+
+ + +
+
+
#   + + + def + update_data(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """Put new data into this mock state"""
+        self.state = live_update
+
+ +
+ +

Put new data into this mock state

+
+ + +
+
+
#   + + + def + update_submit(self, submitted_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Move the submitted data into the live state"""
+        self.state = submitted_data
+
+ +
+ +

Move the submitted data into the live state

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+
get_task_start
+
get_task_end
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_blueprint.html new file mode 100644 index 000000000..abfcaa432 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_blueprint.html @@ -0,0 +1,1349 @@ + + + + + + + + + mephisto.abstractions.blueprints.mock.mock_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mock.mock_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import (
+    Blueprint,
+    BlueprintArgs,
+    SharedTaskState,
+)
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+    OnboardingSharedState,
+    OnboardingRequiredArgs,
+)
+from mephisto.abstractions.blueprints.mixins.screen_task_required import (
+    ScreenTaskRequired,
+    ScreenTaskSharedState,
+    ScreenTaskRequiredArgs,
+)
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.assignment import InitializationData
+from mephisto.abstractions.blueprints.mock.mock_agent_state import MockAgentState
+from mephisto.abstractions.blueprints.mock.mock_task_runner import MockTaskRunner
+from mephisto.abstractions.blueprints.mock.mock_task_builder import MockTaskBuilder
+from mephisto.operations.registry import register_mephisto_abstraction
+
+import os
+import time
+
+from typing import ClassVar, List, Type, Any, Dict, Iterable, TYPE_CHECKING, Optional
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import OnboardingAgent
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import AgentState, TaskRunner, TaskBuilder
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+
+BLUEPRINT_TYPE_MOCK = "mock"
+
+
+@dataclass
+class MockBlueprintArgs(BlueprintArgs, OnboardingRequiredArgs, ScreenTaskRequiredArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_MOCK
+    num_assignments: int = field(
+        default=MISSING,
+        metadata={
+            "help": "How many workers you want to do each assignment",
+            "required": True,
+        },
+    )
+    use_onboarding: bool = field(
+        default=False, metadata={"help": "Whether onboarding should be required"}
+    )
+    timeout_time: int = field(
+        default=0,
+        metadata={"help": "Whether acts in the run assignment should have a timeout"},
+    )
+    is_concurrent: bool = field(
+        default=True,
+        metadata={"help": "Whether to run this mock task as a concurrent task or not"},
+    )
+
+
+# Mock tasks right now inherit all mixins, this way we can test them.
+# In the future, we'll likely want to compose mock tasks for mixin testing
+@dataclass
+class MockSharedState(SharedTaskState, OnboardingSharedState, ScreenTaskSharedState):
+    pass
+
+
+@register_mephisto_abstraction()
+class MockBlueprint(Blueprint, OnboardingRequired, ScreenTaskRequired):
+    """Mock of a task type, for use in testing"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = MockAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = MockAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = MockTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = MockTaskRunner
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = MockBlueprintArgs
+    SharedStateClass: ClassVar[Type["SharedTaskState"]] = MockSharedState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_MOCK
+
+    # making Mypy happy, these aren't used in a blueprint, only mixins
+    ArgsMixin: ClassVar[Any]
+    SharedStateMixin: ClassVar[Any]
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "MockSharedState"
+    ):
+        super().__init__(task_run, args, shared_state)
+
+    def get_initialization_data(self) -> Iterable[InitializationData]:
+        """
+        Return the number of empty assignments specified in --num-assignments
+        """
+        return [
+            MockTaskRunner.get_mock_assignment_data()
+            for i in range(self.args.blueprint.num_assignments)
+        ]
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Onboarding validation for MockBlueprints just returns the 'should_pass' field
+        """
+        return onboarding_agent.state.get_data()["should_pass"]
+
+ +
+ +
+
+ + +
+ View Source +
class MockBlueprintArgs(BlueprintArgs, OnboardingRequiredArgs, ScreenTaskRequiredArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_MOCK
+    num_assignments: int = field(
+        default=MISSING,
+        metadata={
+            "help": "How many workers you want to do each assignment",
+            "required": True,
+        },
+    )
+    use_onboarding: bool = field(
+        default=False, metadata={"help": "Whether onboarding should be required"}
+    )
+    timeout_time: int = field(
+        default=0,
+        metadata={"help": "Whether acts in the run assignment should have a timeout"},
+    )
+    is_concurrent: bool = field(
+        default=True,
+        metadata={"help": "Whether to run this mock task as a concurrent task or not"},
+    )
+
+ +
+ +

MockBlueprintArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False, onboarding_qualification: str = '???', _blueprint_type: str = 'mock', block_qualification: str = '???', num_assignments: int = '???', use_onboarding: bool = False, timeout_time: int = 0, is_concurrent: bool = True)

+
+ + +
+
#   + + + MockBlueprintArgs( + passed_qualification_name: str = '???', + max_screening_units: int = '???', + use_screening_task: bool = False, + onboarding_qualification: str = '???', + _blueprint_type: str = 'mock', + block_qualification: str = '???', + num_assignments: int = '???', + use_onboarding: bool = False, + timeout_time: int = 0, + is_concurrent: bool = True +) +
+ + + + +
+
+
#   + + num_assignments: int = '???' +
+ + + + +
+
+
#   + + use_onboarding: bool = False +
+ + + + +
+
+
#   + + timeout_time: int = 0 +
+ + + + +
+
+
#   + + is_concurrent: bool = True +
+ + + + +
+ +
+
+ + +
+ View Source +
class MockSharedState(SharedTaskState, OnboardingSharedState, ScreenTaskSharedState):
+    pass
+
+ +
+ +

MockSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = )

+
+ + +
+
#   + + + MockSharedState( + screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = <factory>, + onboarding_data: Dict[str, Any] = <factory>, + validate_onboarding: Callable[[Any], bool] = <factory>, + task_config: Dict[str, Any] = <factory>, + qualifications: List[Any] = <factory>, + worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = <factory>, + on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = <factory> +) +
+ + + + +
+
+
+ + +
+ View Source +
class MockBlueprint(Blueprint, OnboardingRequired, ScreenTaskRequired):
+    """Mock of a task type, for use in testing"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = MockAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = MockAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = MockTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = MockTaskRunner
+    ArgsClass: ClassVar[Type["BlueprintArgs"]] = MockBlueprintArgs
+    SharedStateClass: ClassVar[Type["SharedTaskState"]] = MockSharedState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_MOCK
+
+    # making Mypy happy, these aren't used in a blueprint, only mixins
+    ArgsMixin: ClassVar[Any]
+    SharedStateMixin: ClassVar[Any]
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "MockSharedState"
+    ):
+        super().__init__(task_run, args, shared_state)
+
+    def get_initialization_data(self) -> Iterable[InitializationData]:
+        """
+        Return the number of empty assignments specified in --num-assignments
+        """
+        return [
+            MockTaskRunner.get_mock_assignment_data()
+            for i in range(self.args.blueprint.num_assignments)
+        ]
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Onboarding validation for MockBlueprints just returns the 'should_pass' field
+        """
+        return onboarding_agent.state.get_data()["should_pass"]
+
+ +
+ +

Mock of a task type, for use in testing

+
+ + +
+
#   + + + MockBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState +) +
+ +
+ View Source +
    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "MockSharedState"
+    ):
+        super().__init__(task_run, args, shared_state)
+
+ +
+ + + +
+
+
#   + + BLUEPRINT_TYPE: str = 'mock' +
+ + + + +
+
+
#   + + + def + get_initialization_data(self) -> Iterable[mephisto.data_model.assignment.InitializationData]: +
+ +
+ View Source +
    def get_initialization_data(self) -> Iterable[InitializationData]:
+        """
+        Return the number of empty assignments specified in --num-assignments
+        """
+        return [
+            MockTaskRunner.get_mock_assignment_data()
+            for i in range(self.args.blueprint.num_assignments)
+        ]
+
+ +
+ +

Return the number of empty assignments specified in --num-assignments

+
+ + +
+
+
#   + + + def + validate_onboarding( + self, + worker: mephisto.data_model.worker.Worker, + onboarding_agent: mephisto.data_model.agent.OnboardingAgent +) -> bool: +
+ +
+ View Source +
    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        """
+        Onboarding validation for MockBlueprints just returns the 'should_pass' field
+        """
+        return onboarding_agent.state.get_data()["should_pass"]
+
+ +
+ +

Onboarding validation for MockBlueprints just returns the 'should_pass' field

+
+ + +
+ +
+
+
+ #   + + + class + MockBlueprint.AgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class MockAgentState(AgentState):
+    """
+    Mock agent state that is to be used for testing
+    """
+
+    def __init__(self, agent: "Agent"):
+        """Mock agent states keep everything in local memory"""
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Any] = {}
+        self.init_state: Any = None
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_state is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_state = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        return self.init_state
+
+    def load_data(self) -> None:
+        """Mock agent states have no data stored"""
+        pass
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state
+
+    def save_data(self) -> None:
+        """Mock agents don't save data (yet)"""
+        pass
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """Put new data into this mock state"""
+        self.state = live_update
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Move the submitted data into the live state"""
+        self.state = submitted_data
+
+ +
+ +

Mock agent state that is to be used for testing

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+
get_task_start
+
get_task_end
+ +
+
+
+
+
+
+ #   + + + class + MockBlueprint.OnboardingAgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class MockAgentState(AgentState):
+    """
+    Mock agent state that is to be used for testing
+    """
+
+    def __init__(self, agent: "Agent"):
+        """Mock agent states keep everything in local memory"""
+        self.agent = weakref.proxy(agent)
+        self.state: Dict[str, Any] = {}
+        self.init_state: Any = None
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_state is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_state = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        return self.init_state
+
+    def load_data(self) -> None:
+        """Mock agent states have no data stored"""
+        pass
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict of this agent's state"""
+        return self.state
+
+    def save_data(self) -> None:
+        """Mock agents don't save data (yet)"""
+        pass
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """Put new data into this mock state"""
+        self.state = live_update
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Move the submitted data into the live state"""
+        self.state = submitted_data
+
+ +
+ +

Mock agent state that is to be used for testing

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+
get_parsed_data
+
get_task_start
+
get_task_end
+ +
+
+
+
+
+
+ #   + + + class + MockBlueprint.TaskBuilderClass(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class MockTaskBuilder(TaskBuilder):
+    """Builder for a mock task, for use in testing"""
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Mock tasks don't really build anything (yet)"""
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a mock task, for use in testing

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+
+ #   + + + class + MockBlueprint.TaskRunnerClass(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class MockTaskRunner(TaskRunner):
+    """Mock of a task runner, for use in testing"""
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.timeout = args.blueprint.timeout_time
+        self.tracked_tasks: Dict[str, Union["Assignment", "Unit"]] = {}
+        self.is_concurrent = args.blueprint.get("is_concurrent", True)
+
+    @staticmethod
+    def get_mock_assignment_data() -> InitializationData:
+        return InitializationData(shared={}, unit_data=[{}, {}])
+
+    @staticmethod
+    def get_data_for_assignment(assignment: "Assignment") -> InitializationData:
+        """
+        Mock tasks have no data unless given during testing
+        """
+        return MockTaskRunner.get_mock_assignment_data()
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        # TODO(#97) implement
+        pass
+
+    def run_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Mock runners simply wait for an act to come in with whether
+        or not onboarding is complete
+        """
+        onboarding_agent.await_submit(self.timeout)
+
+    def run_unit(self, unit: "Unit", agent: "Agent"):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[unit.db_id] = unit
+        time.sleep(0.3)
+        assigned_agent = unit.get_assigned_agent()
+        assert assigned_agent is not None, "No agent was assigned"
+        assert (
+            assigned_agent.db_id == agent.db_id
+        ), "Task was not given to assigned agent"
+        packet = agent.get_live_update(timeout=self.timeout)
+        if packet is not None:
+            agent.observe(packet)
+        agent.await_submit(self.timeout)
+        del self.tracked_tasks[unit.db_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[assignment.db_id] = assignment
+        agent_dict = {a.db_id: a for a in agents}
+        time.sleep(0.3)
+        agents = []
+        for unit in assignment.get_units():
+            assigned_agent = unit.get_assigned_agent()
+            assert assigned_agent is not None, "Task was not fully assigned"
+            agent = agent_dict.get(assigned_agent.db_id)
+            assert agent is not None, "Task was not launched with assigned agents"
+            agents.append(agent)
+        for agent in agents:
+            packet = agent.get_live_update(timeout=self.timeout)
+            if packet is not None:
+                agent.observe(packet)
+        for agent in agents:
+            agent.await_submit(self.timeout)
+        del self.tracked_tasks[assignment.db_id]
+
+    def cleanup_assignment(self, assignment: "Assignment"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_unit(self, unit: "Unit"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """No cleanup required yet for ending onboarding in mocks"""
+        pass
+
+ +
+ +

Mock of a task runner, for use in testing

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
filter_units_for_worker
+
shutdown
+ +
+
+
+
+
+ + +
+ View Source +
class MockBlueprintArgs(BlueprintArgs, OnboardingRequiredArgs, ScreenTaskRequiredArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_MOCK
+    num_assignments: int = field(
+        default=MISSING,
+        metadata={
+            "help": "How many workers you want to do each assignment",
+            "required": True,
+        },
+    )
+    use_onboarding: bool = field(
+        default=False, metadata={"help": "Whether onboarding should be required"}
+    )
+    timeout_time: int = field(
+        default=0,
+        metadata={"help": "Whether acts in the run assignment should have a timeout"},
+    )
+    is_concurrent: bool = field(
+        default=True,
+        metadata={"help": "Whether to run this mock task as a concurrent task or not"},
+    )
+
+ +
+ +

MockBlueprintArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False, onboarding_qualification: str = '???', _blueprint_type: str = 'mock', block_qualification: str = '???', num_assignments: int = '???', use_onboarding: bool = False, timeout_time: int = 0, is_concurrent: bool = True)

+
+ + + +
+
+ + +
+ View Source +
class MockSharedState(SharedTaskState, OnboardingSharedState, ScreenTaskSharedState):
+    pass
+
+ +
+ +

MockSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = )

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+
+ #   + + + class + MockBlueprint.ArgsMixin: +
+ +
+ View Source +
class OnboardingRequiredArgs:
+    onboarding_qualification: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Specify the name of a qualification used to block workers who fail onboarding, "
+                "Empty will skip onboarding."
+            )
+        },
+    )
+
+ +
+ +

OnboardingRequiredArgs(onboarding_qualification: str = '???')

+
+ + + +
+
+
+ #   + + + class + MockBlueprint.SharedStateMixin: +
+ +
+ View Source +
class OnboardingSharedState:
+    onboarding_data: Dict[str, Any] = field(
+        default_factory=dict,
+        metadata={
+            "help": (
+                "Task data to send for the initialTaskData available in the frontend during onboarding."
+            ),
+            "type": "Dict[str, Any]",
+            "default": "{}",
+        },
+    )
+    validate_onboarding: Callable[[Any], bool] = field(
+        default_factory=lambda: (lambda x: True),
+        metadata={
+            "help": (
+                "Function that takes in the result task data (from AgentState.get_data()) "
+                "and returns whether or not the onboarding was successful."
+            ),
+            "type": "Callable[[Any], bool]",
+            "default": "Returns true always",
+        },
+    )
+
+ +
+ +

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_builder.html new file mode 100644 index 000000000..17cf80f8b --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_builder.html @@ -0,0 +1,371 @@ + + + + + + + + + mephisto.abstractions.blueprints.mock.mock_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mock.mock_task_builder

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskBuilder
+
+import os
+import time
+
+from typing import ClassVar, List, Type, Any, Dict, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import Assignment
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+class MockTaskBuilder(TaskBuilder):
+    """Builder for a mock task, for use in testing"""
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Mock tasks don't really build anything (yet)"""
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +
+
+
+ #   + + + class + MockTaskBuilder(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class MockTaskBuilder(TaskBuilder):
+    """Builder for a mock task, for use in testing"""
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Mock tasks don't really build anything (yet)"""
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a mock task, for use in testing

+
+ + +
+
#   + + BUILT_FILE = 'done.built' +
+ + + + +
+
+
#   + + BUILT_MESSAGE = 'built!' +
+ + + + +
+
+
#   + + + def + build_in_dir(self, build_dir: str): +
+ +
+ View Source +
    def build_in_dir(self, build_dir: str):
+        """Mock tasks don't really build anything (yet)"""
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Mock tasks don't really build anything (yet)

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_runner.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_runner.html new file mode 100644 index 000000000..885bdb583 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/mock/mock_task_runner.html @@ -0,0 +1,802 @@ + + + + + + + + + mephisto.abstractions.blueprints.mock.mock_task_runner API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.mock.mock_task_runner

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskRunner, SharedTaskState
+from mephisto.data_model.assignment import InitializationData
+
+import os
+import time
+
+from typing import ClassVar, List, Type, Any, Dict, Union, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from argparse import _ArgumentGroup as ArgumentGroup
+    from omegaconf import DictConfig
+
+
+class MockTaskRunner(TaskRunner):
+    """Mock of a task runner, for use in testing"""
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.timeout = args.blueprint.timeout_time
+        self.tracked_tasks: Dict[str, Union["Assignment", "Unit"]] = {}
+        self.is_concurrent = args.blueprint.get("is_concurrent", True)
+
+    @staticmethod
+    def get_mock_assignment_data() -> InitializationData:
+        return InitializationData(shared={}, unit_data=[{}, {}])
+
+    @staticmethod
+    def get_data_for_assignment(assignment: "Assignment") -> InitializationData:
+        """
+        Mock tasks have no data unless given during testing
+        """
+        return MockTaskRunner.get_mock_assignment_data()
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        # TODO(#97) implement
+        pass
+
+    def run_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Mock runners simply wait for an act to come in with whether
+        or not onboarding is complete
+        """
+        onboarding_agent.await_submit(self.timeout)
+
+    def run_unit(self, unit: "Unit", agent: "Agent"):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[unit.db_id] = unit
+        time.sleep(0.3)
+        assigned_agent = unit.get_assigned_agent()
+        assert assigned_agent is not None, "No agent was assigned"
+        assert (
+            assigned_agent.db_id == agent.db_id
+        ), "Task was not given to assigned agent"
+        packet = agent.get_live_update(timeout=self.timeout)
+        if packet is not None:
+            agent.observe(packet)
+        agent.await_submit(self.timeout)
+        del self.tracked_tasks[unit.db_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[assignment.db_id] = assignment
+        agent_dict = {a.db_id: a for a in agents}
+        time.sleep(0.3)
+        agents = []
+        for unit in assignment.get_units():
+            assigned_agent = unit.get_assigned_agent()
+            assert assigned_agent is not None, "Task was not fully assigned"
+            agent = agent_dict.get(assigned_agent.db_id)
+            assert agent is not None, "Task was not launched with assigned agents"
+            agents.append(agent)
+        for agent in agents:
+            packet = agent.get_live_update(timeout=self.timeout)
+            if packet is not None:
+                agent.observe(packet)
+        for agent in agents:
+            agent.await_submit(self.timeout)
+        del self.tracked_tasks[assignment.db_id]
+
+    def cleanup_assignment(self, assignment: "Assignment"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_unit(self, unit: "Unit"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """No cleanup required yet for ending onboarding in mocks"""
+        pass
+
+ +
+ +
+
+
+ #   + + + class + MockTaskRunner(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class MockTaskRunner(TaskRunner):
+    """Mock of a task runner, for use in testing"""
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        self.timeout = args.blueprint.timeout_time
+        self.tracked_tasks: Dict[str, Union["Assignment", "Unit"]] = {}
+        self.is_concurrent = args.blueprint.get("is_concurrent", True)
+
+    @staticmethod
+    def get_mock_assignment_data() -> InitializationData:
+        return InitializationData(shared={}, unit_data=[{}, {}])
+
+    @staticmethod
+    def get_data_for_assignment(assignment: "Assignment") -> InitializationData:
+        """
+        Mock tasks have no data unless given during testing
+        """
+        return MockTaskRunner.get_mock_assignment_data()
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        # TODO(#97) implement
+        pass
+
+    def run_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Mock runners simply wait for an act to come in with whether
+        or not onboarding is complete
+        """
+        onboarding_agent.await_submit(self.timeout)
+
+    def run_unit(self, unit: "Unit", agent: "Agent"):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[unit.db_id] = unit
+        time.sleep(0.3)
+        assigned_agent = unit.get_assigned_agent()
+        assert assigned_agent is not None, "No agent was assigned"
+        assert (
+            assigned_agent.db_id == agent.db_id
+        ), "Task was not given to assigned agent"
+        packet = agent.get_live_update(timeout=self.timeout)
+        if packet is not None:
+            agent.observe(packet)
+        agent.await_submit(self.timeout)
+        del self.tracked_tasks[unit.db_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[assignment.db_id] = assignment
+        agent_dict = {a.db_id: a for a in agents}
+        time.sleep(0.3)
+        agents = []
+        for unit in assignment.get_units():
+            assigned_agent = unit.get_assigned_agent()
+            assert assigned_agent is not None, "Task was not fully assigned"
+            agent = agent_dict.get(assigned_agent.db_id)
+            assert agent is not None, "Task was not launched with assigned agents"
+            agents.append(agent)
+        for agent in agents:
+            packet = agent.get_live_update(timeout=self.timeout)
+            if packet is not None:
+                agent.observe(packet)
+        for agent in agents:
+            agent.await_submit(self.timeout)
+        del self.tracked_tasks[assignment.db_id]
+
+    def cleanup_assignment(self, assignment: "Assignment"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_unit(self, unit: "Unit"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+    def cleanup_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """No cleanup required yet for ending onboarding in mocks"""
+        pass
+
+ +
+ +

Mock of a task runner, for use in testing

+
+ + +
+
#   + + + MockTaskRunner( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __new__(
+        cls, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> "TaskRunner":
+        """Get the correct TaskRunner for this task run"""
+        if cls == TaskRunner:
+            from mephisto.operations.registry import get_blueprint_from_type
+
+            # We are trying to construct an AgentState, find what type to use and
+            # create that instead
+            correct_class = get_blueprint_from_type(task_run.task_type).TaskRunnerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

Get the correct TaskRunner for this task run

+
+ + +
+
+
#   + +
@staticmethod
+ + def + get_mock_assignment_data() -> mephisto.data_model.assignment.InitializationData: +
+ +
+ View Source +
    @staticmethod
+    def get_mock_assignment_data() -> InitializationData:
+        return InitializationData(shared={}, unit_data=[{}, {}])
+
+ +
+ + + +
+
+
#   + +
@staticmethod
+ + def + get_data_for_assignment( + assignment: mephisto.data_model.assignment.Assignment +) -> mephisto.data_model.assignment.InitializationData: +
+ +
+ View Source +
    @staticmethod
+    def get_data_for_assignment(assignment: "Assignment") -> InitializationData:
+        """
+        Mock tasks have no data unless given during testing
+        """
+        return MockTaskRunner.get_mock_assignment_data()
+
+ +
+ +

Mock tasks have no data unless given during testing

+
+ + +
+
+
#   + + + def + get_init_data_for_agent(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        # TODO(#97) implement
+        pass
+
+ +
+ +

Return the data for an agent already assigned to a particular unit

+
+ + +
+
+
#   + + + def + run_onboarding(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent): +
+ +
+ View Source +
    def run_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Mock runners simply wait for an act to come in with whether
+        or not onboarding is complete
+        """
+        onboarding_agent.await_submit(self.timeout)
+
+ +
+ +

Mock runners simply wait for an act to come in with whether +or not onboarding is complete

+
+ + +
+
+
#   + + + def + run_unit( + self, + unit: mephisto.data_model.unit.Unit, + agent: mephisto.data_model.agent.Agent +): +
+ +
+ View Source +
    def run_unit(self, unit: "Unit", agent: "Agent"):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[unit.db_id] = unit
+        time.sleep(0.3)
+        assigned_agent = unit.get_assigned_agent()
+        assert assigned_agent is not None, "No agent was assigned"
+        assert (
+            assigned_agent.db_id == agent.db_id
+        ), "Task was not given to assigned agent"
+        packet = agent.get_live_update(timeout=self.timeout)
+        if packet is not None:
+            agent.observe(packet)
+        agent.await_submit(self.timeout)
+        del self.tracked_tasks[unit.db_id]
+
+ +
+ +

Mock runners will pass the agents for the given assignment +all of the required messages to finish a task.

+
+ + +
+
+
#   + + + def + run_assignment( + self, + assignment: mephisto.data_model.assignment.Assignment, + agents: list[mephisto.data_model.agent.Agent] +): +
+ +
+ View Source +
    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]):
+        """
+        Mock runners will pass the agents for the given assignment
+        all of the required messages to finish a task.
+        """
+        self.tracked_tasks[assignment.db_id] = assignment
+        agent_dict = {a.db_id: a for a in agents}
+        time.sleep(0.3)
+        agents = []
+        for unit in assignment.get_units():
+            assigned_agent = unit.get_assigned_agent()
+            assert assigned_agent is not None, "Task was not fully assigned"
+            agent = agent_dict.get(assigned_agent.db_id)
+            assert agent is not None, "Task was not launched with assigned agents"
+            agents.append(agent)
+        for agent in agents:
+            packet = agent.get_live_update(timeout=self.timeout)
+            if packet is not None:
+                agent.observe(packet)
+        for agent in agents:
+            agent.await_submit(self.timeout)
+        del self.tracked_tasks[assignment.db_id]
+
+ +
+ +

Mock runners will pass the agents for the given assignment +all of the required messages to finish a task.

+
+ + +
+
+
#   + + + def + cleanup_assignment(self, assignment: mephisto.data_model.assignment.Assignment): +
+ +
+ View Source +
    def cleanup_assignment(self, assignment: "Assignment"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+ +
+ +

No cleanup required yet for ending mock runs

+
+ + +
+
+
#   + + + def + cleanup_unit(self, unit: mephisto.data_model.unit.Unit): +
+ +
+ View Source +
    def cleanup_unit(self, unit: "Unit"):
+        """No cleanup required yet for ending mock runs"""
+        pass
+
+ +
+ +

No cleanup required yet for ending mock runs

+
+ + +
+
+
#   + + + def + cleanup_onboarding(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent): +
+ +
+ View Source +
    def cleanup_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """No cleanup required yet for ending onboarding in mocks"""
+        pass
+
+ +
+ +

No cleanup required yet for ending onboarding in mocks

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
filter_units_for_worker
+
shutdown
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat.html new file mode 100644 index 000000000..eb47d071e --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat.html @@ -0,0 +1,254 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_agent_state.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_agent_state.html new file mode 100644 index 000000000..84b267b50 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_agent_state.html @@ -0,0 +1,899 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Dict, Any, Tuple, TYPE_CHECKING
+from mephisto.abstractions.blueprint import AgentState
+import os
+import json
+import time
+import weakref
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.packet import Packet
+
+
+class ParlAIChatAgentState(AgentState):
+    """
+    Holds information about ParlAI-style chat. Data is stored in json files
+    containing every act from the ParlAI world.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.messages: List[Dict[str, Any]] = []
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.init_data = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        return {"task_data": self.init_data, "past_live_updates": self.messages}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.messages = state["outputs"]["messages"]
+            self.init_data = state["inputs"]
+            self.final_submission = state["outputs"].get("final_submission")
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "outputs": {
+                "messages": self.messages,
+                "final_submission": self.final_submission,
+            },
+            "inputs": self.init_data,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return properly parsed data from this task"""
+        init_data = self.init_data
+        save_data = None
+
+        agent_name = None
+        for m in self.messages:
+            if "agent_display_name" in m["task_data"]:
+                agent_name = m["task_data"]["agent_display_name"]
+                break
+
+        messages = self.messages
+        if len(messages) > 0:
+            if "WORLD_DATA" in messages[-1]:
+                save_data = messages[-1]["WORLD_DATA"]
+                messages = messages[:-1]
+
+        return {
+            "agent_name": agent_name,
+            "initial_data": init_data,
+            "messages": messages,
+            "save_data": save_data,
+            "final_submission": self.final_submission,
+        }
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task, the timestamp of the very first message.
+        """
+        return self.messages[0]["timestamp"]
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task, the timestamp of the very final message.
+        """
+        return self.messages[-1]["timestamp"]
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as its arrival time
+        """
+        live_update["timestamp"] = time.time()
+        self.messages.append(live_update)
+        self.save_data()
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +
+
+
+ #   + + + class + ParlAIChatAgentState(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class ParlAIChatAgentState(AgentState):
+    """
+    Holds information about ParlAI-style chat. Data is stored in json files
+    containing every act from the ParlAI world.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.messages: List[Dict[str, Any]] = []
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.init_data = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        return {"task_data": self.init_data, "past_live_updates": self.messages}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.messages = state["outputs"]["messages"]
+            self.init_data = state["inputs"]
+            self.final_submission = state["outputs"].get("final_submission")
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "outputs": {
+                "messages": self.messages,
+                "final_submission": self.final_submission,
+            },
+            "inputs": self.init_data,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return properly parsed data from this task"""
+        init_data = self.init_data
+        save_data = None
+
+        agent_name = None
+        for m in self.messages:
+            if "agent_display_name" in m["task_data"]:
+                agent_name = m["task_data"]["agent_display_name"]
+                break
+
+        messages = self.messages
+        if len(messages) > 0:
+            if "WORLD_DATA" in messages[-1]:
+                save_data = messages[-1]["WORLD_DATA"]
+                messages = messages[:-1]
+
+        return {
+            "agent_name": agent_name,
+            "initial_data": init_data,
+            "messages": messages,
+            "save_data": save_data,
+            "final_submission": self.final_submission,
+        }
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task, the timestamp of the very first message.
+        """
+        return self.messages[0]["timestamp"]
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task, the timestamp of the very final message.
+        """
+        return self.messages[-1]["timestamp"]
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as its arrival time
+        """
+        live_update["timestamp"] = time.time()
+        self.messages.append(live_update)
+        self.save_data()
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about ParlAI-style chat. Data is stored in json files +containing every act from the ParlAI world.

+
+ + +
+
#   + + + ParlAIChatAgentState(agent: mephisto.data_model.agent.Agent) +
+ +
+ View Source +
    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.messages: List[Dict[str, Any]] = []
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.init_data = None
+            self.save_data()
+
+ +
+ +

Create an AgentState to track the state of an agent's work on a Unit

+ +

Initialize with an existing file if it exists.

+
+ + +
+
+
#   + + + def + set_init_state(self, data: Any) -> bool: +
+ +
+ View Source +
    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+ +
+ +

Set the initial state for this agent

+
+ + +
+
+
#   + + + def + get_init_state(self) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        return {"task_data": self.init_data, "past_live_updates": self.messages}
+
+ +
+ +

Return the initial state for this agent, +None if no such state exists

+
+ + +
+
+
#   + + + def + load_data(self) -> None: +
+ +
+ View Source +
    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.messages = state["outputs"]["messages"]
+            self.init_data = state["inputs"]
+            self.final_submission = state["outputs"].get("final_submission")
+
+ +
+ +

Load stored data from a file to this object

+
+ + +
+
+
#   + + + def + get_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "outputs": {
+                "messages": self.messages,
+                "final_submission": self.final_submission,
+            },
+            "inputs": self.init_data,
+        }
+
+ +
+ +

Return dict with the messages of this agent

+
+ + +
+
+
#   + + + def + get_parsed_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return properly parsed data from this task"""
+        init_data = self.init_data
+        save_data = None
+
+        agent_name = None
+        for m in self.messages:
+            if "agent_display_name" in m["task_data"]:
+                agent_name = m["task_data"]["agent_display_name"]
+                break
+
+        messages = self.messages
+        if len(messages) > 0:
+            if "WORLD_DATA" in messages[-1]:
+                save_data = messages[-1]["WORLD_DATA"]
+                messages = messages[:-1]
+
+        return {
+            "agent_name": agent_name,
+            "initial_data": init_data,
+            "messages": messages,
+            "save_data": save_data,
+            "final_submission": self.final_submission,
+        }
+
+ +
+ +

Return properly parsed data from this task

+
+ + +
+
+
#   + + + def + get_task_start(self) -> float: +
+ +
+ View Source +
    def get_task_start(self) -> float:
+        """
+        Return the start time for this task, the timestamp of the very first message.
+        """
+        return self.messages[0]["timestamp"]
+
+ +
+ +

Return the start time for this task, the timestamp of the very first message.

+
+ + +
+
+
#   + + + def + get_task_end(self) -> float: +
+ +
+ View Source +
    def get_task_end(self) -> float:
+        """
+        Return the end time for this task, the timestamp of the very final message.
+        """
+        return self.messages[-1]["timestamp"]
+
+ +
+ +

Return the end time for this task, the timestamp of the very final message.

+
+ + +
+
+
#   + + + def + save_data(self) -> None: +
+ +
+ View Source +
    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+ +
+ +

Save all messages from this agent to

+
+ + +
+
+
#   + + + def + update_data(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as its arrival time
+        """
+        live_update["timestamp"] = time.time()
+        self.messages.append(live_update)
+        self.save_data()
+
+ +
+ +

Append the incoming packet as well as its arrival time

+
+ + +
+
+
#   + + + def + update_submit(self, submitted_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Append any final submission to this state

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_blueprint.html new file mode 100644 index 000000000..52f08bfd3 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_blueprint.html @@ -0,0 +1,2436 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import (
+    Blueprint,
+    BlueprintArgs,
+    SharedTaskState,
+)
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+    OnboardingSharedState,
+    OnboardingRequiredArgs,
+)
+from dataclasses import dataclass, field
+from mephisto.data_model.assignment import InitializationData
+from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state import (
+    ParlAIChatAgentState,
+)
+from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner import (
+    ParlAIChatTaskRunner,
+)
+from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder import (
+    ParlAIChatTaskBuilder,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+from omegaconf import DictConfig, MISSING
+
+import os
+import time
+import csv
+import sys
+import json
+
+from importlib import import_module
+
+from typing import ClassVar, List, Type, Any, Dict, Iterable, Optional, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import AgentState, TaskRunner, TaskBuilder
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.unit import Unit
+
+BLUEPRINT_TYPE_PARLAI_CHAT = "parlai_chat"
+
+
+MISSING_SOMETHING_TEXT = (
+    "<h1>"
+    "You didn't specify a task_description_file and also didn't override the "
+    "frontend `TaskPreviewView` (if this is a preview) or the `TaskDescription` "
+    "component (if this is in-task)."
+    "</h1>"
+)
+
+
+@dataclass
+class SharedParlAITaskState(OnboardingSharedState, SharedTaskState):
+    frontend_task_opts: Dict[str, Any] = field(default_factory=dict)
+    world_opt: Dict[str, Any] = field(default_factory=dict)
+    onboarding_world_opt: Dict[str, Any] = field(default_factory=dict)
+    world_module: Optional[Any] = None
+
+
+@dataclass
+class ParlAIChatBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_PARLAI_CHAT
+    _group: str = field(
+        default="ParlAIChatBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from ParlAI blueprints require the number of
+                conversations (either an int or task data for each convo), as
+                well as a world to initialize for connecting workers.
+            """
+        },
+    )
+    world_file: str = field(
+        default=MISSING,
+        metadata={"help": "Path to file containing ParlAI world", "required": True},
+    )
+    preview_source: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    task_description_file: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Path to file for the extended description of the task. "
+                "Required if not providing a custom source bundle."
+            )
+        },
+    )
+    custom_source_bundle: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a fully custom frontend bundle"},
+    )
+    custom_source_dir: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a directory containing custom js code"},
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the frontend may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    context_csv: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to csv containing task context"},
+    )
+    context_jsonl: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to jsonl file containing task context"},
+    )
+    num_conversations: int = field(
+        default=MISSING,
+        metadata={
+            "help": "Optional count of conversations to have if no context provided"
+        },
+    )
+
+
+@register_mephisto_abstraction()
+class ParlAIChatBlueprint(OnboardingRequired, Blueprint):
+    """Blueprint for a task that runs a parlai chat"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = ParlAIChatAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = ParlAIChatAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = ParlAIChatTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = ParlAIChatTaskRunner
+    ArgsClass = ParlAIChatBlueprintArgs
+    SharedStateClass = SharedParlAITaskState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_PARLAI_CHAT
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedParlAITaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: List[Dict[str, Any]] = []
+
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data: Dict[str, Any] = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif args.blueprint.get("num_conversations", None) is not None:
+            self._initialization_data_dicts = [{}] * args.blueprint.num_conversations
+        else:
+            raise NotImplementedError(
+                "Parsing parlai tasks directly from dicts or JSON is not supported yet"
+            )
+
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.world_module = world_module
+        assert hasattr(world_module, "make_world")
+        assert hasattr(world_module, "get_world_params")
+        self.agent_count = world_module.get_world_params()[  # type: ignore
+            "agent_count"
+        ]
+
+        self.full_task_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("task_description_file", None) is not None:
+            full_path = os.path.expanduser(args.blueprint.task_description_file)
+            assert os.path.exists(
+                full_path
+            ), f"Target task description path {full_path} doesn't exist"
+            with open(full_path, "r") as description_fp:
+                self.full_task_description = description_fp.read()
+        self.full_preview_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Target preview source path {preview_source_file} doesn't exist"
+            with open(preview_source_file, "r") as description_fp:
+                self.full_preview_description = description_fp.read()
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        # Find world module
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        world_module = shared_state.world_module
+        if world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            assert os.path.exists(
+                world_file_path
+            ), f"Provided world path {world_file_path} doesn't exist"
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        # assert world file is valid
+        assert hasattr(
+            world_module, "make_world"
+        ), "Provided world file has no `make_world` method"
+        assert hasattr(
+            world_module, "get_world_params"
+        ), "Provided world file has no `get_world_params` method"
+
+        # assert some method for determining quantity of conversations
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Target context_csv path {csv_file} doesn't exist"
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Target context_jsonl path {jsonl_file} doesn't exist"
+        elif args.blueprint.get("num_conversations", None) is not None:
+            assert (
+                args.blueprint.num_conversations > 0
+            ), "Must have at least one conversation"
+        else:
+            raise AssertionError(
+                "Must specify one of --context-csv, --context-jsonl or --num-conversations"
+            )
+
+        if args.blueprint.get("custom_source_bundle", None) is not None:
+            custom_source_file_path = os.path.expanduser(
+                args.blueprint.custom_source_bundle
+            )
+            assert os.path.exists(
+                custom_source_file_path
+            ), f"Provided custom bundle doesn't exist at {custom_source_file_path}"
+
+        if args.blueprint.get("custom_source_dir", None) is not None:
+            custom_source_dir_path = os.path.expanduser(
+                args.blueprint.custom_source_dir
+            )
+            assert os.path.exists(
+                custom_source_dir_path
+            ), f"Provided custom source dir doesn't exist at {custom_source_dir_path}"
+
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Provided preview source doesn't exist at {preview_source_file}"
+
+        if args.blueprint.get("extra_source_dir", None) is not None:
+            extra_source_dir = os.path.expanduser(args.blueprint.extra_source_dir)
+            assert os.path.exists(
+                extra_source_dir
+            ), f"Provided extra resource dir doesn't exist at {extra_source_dir}"
+
+    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options within a task_config should be fowarded
+        to the client for use by the task's frontend
+        """
+        # Start with standard task configuration arguments
+        frontend_task_config = super().get_frontend_args()
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        # Add ParlAI standards
+        frontend_task_config.update(
+            {
+                "task_description": self.full_task_description,
+                "preview_html": self.full_preview_description,
+                "frame_height": 650,
+                "chat_title": self.args.task.task_title,
+                "has_preview": self.args.blueprint.get("preview_source", None)
+                is not None,
+                "block_mobile": True,
+                "frontend_task_opts": shared_state.frontend_task_opts,
+            }
+        )
+        # Use overrides provided downstream
+        frontend_task_config.update(self.frontend_task_config)
+        return frontend_task_config
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        return [
+            InitializationData(shared=d, unit_data=[{}] * self.agent_count)
+            for d in self._initialization_data_dicts
+        ]
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        if hasattr(self.world_module, "validate_onboarding"):
+            return self.world_module.validate_onboarding(  # type: ignore
+                onboarding_agent.state.get_data()
+            )
+        return True
+
+ +
+ +
+
+ + +
+ View Source +
class SharedParlAITaskState(OnboardingSharedState, SharedTaskState):
+    frontend_task_opts: Dict[str, Any] = field(default_factory=dict)
+    world_opt: Dict[str, Any] = field(default_factory=dict)
+    onboarding_world_opt: Dict[str, Any] = field(default_factory=dict)
+    world_module: Optional[Any] = None
+
+ +
+ +

SharedParlAITaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , frontend_task_opts: Dict[str, Any] = , world_opt: Dict[str, Any] = , onboarding_world_opt: Dict[str, Any] = , world_module: Union[Any, NoneType] = None)

+
+ + +
+
#   + + + SharedParlAITaskState( + task_config: Dict[str, Any] = <factory>, + qualifications: List[Any] = <factory>, + worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = <factory>, + on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = <factory>, + onboarding_data: Dict[str, Any] = <factory>, + validate_onboarding: Callable[[Any], bool] = <factory>, + frontend_task_opts: Dict[str, Any] = <factory>, + world_opt: Dict[str, Any] = <factory>, + onboarding_world_opt: Dict[str, Any] = <factory>, + world_module: Union[Any, NoneType] = None +) +
+ + + + +
+
+
#   + + world_module: Union[Any, NoneType] = None +
+ + + + +
+
+
+ + +
+ View Source +
class ParlAIChatBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_PARLAI_CHAT
+    _group: str = field(
+        default="ParlAIChatBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from ParlAI blueprints require the number of
+                conversations (either an int or task data for each convo), as
+                well as a world to initialize for connecting workers.
+            """
+        },
+    )
+    world_file: str = field(
+        default=MISSING,
+        metadata={"help": "Path to file containing ParlAI world", "required": True},
+    )
+    preview_source: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    task_description_file: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Path to file for the extended description of the task. "
+                "Required if not providing a custom source bundle."
+            )
+        },
+    )
+    custom_source_bundle: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a fully custom frontend bundle"},
+    )
+    custom_source_dir: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a directory containing custom js code"},
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the frontend may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    context_csv: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to csv containing task context"},
+    )
+    context_jsonl: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to jsonl file containing task context"},
+    )
+    num_conversations: int = field(
+        default=MISSING,
+        metadata={
+            "help": "Optional count of conversations to have if no context provided"
+        },
+    )
+
+ +
+ +

ParlAIChatBlueprintArgs(_blueprint_type: str = 'parlai_chat', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'ParlAIChatBlueprint', world_file: str = '???', preview_source: str = '???', task_description_file: str = '???', custom_source_bundle: str = '???', custom_source_dir: str = '???', extra_source_dir: str = '???', context_csv: str = '???', context_jsonl: str = '???', num_conversations: int = '???')

+
+ + +
+
#   + + + ParlAIChatBlueprintArgs( + _blueprint_type: str = 'parlai_chat', + block_qualification: str = '???', + onboarding_qualification: str = '???', + _group: str = 'ParlAIChatBlueprint', + world_file: str = '???', + preview_source: str = '???', + task_description_file: str = '???', + custom_source_bundle: str = '???', + custom_source_dir: str = '???', + extra_source_dir: str = '???', + context_csv: str = '???', + context_jsonl: str = '???', + num_conversations: int = '???' +) +
+ + + + +
+
+
#   + + world_file: str = '???' +
+ + + + +
+
+
#   + + preview_source: str = '???' +
+ + + + +
+
+
#   + + task_description_file: str = '???' +
+ + + + +
+
+
#   + + custom_source_bundle: str = '???' +
+ + + + +
+
+
#   + + custom_source_dir: str = '???' +
+ + + + +
+
+
#   + + extra_source_dir: str = '???' +
+ + + + +
+
+
#   + + context_csv: str = '???' +
+ + + + +
+
+
#   + + context_jsonl: str = '???' +
+ + + + +
+
+
#   + + num_conversations: int = '???' +
+ + + + +
+ +
+
+ + +
+ View Source +
class ParlAIChatBlueprint(OnboardingRequired, Blueprint):
+    """Blueprint for a task that runs a parlai chat"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = ParlAIChatAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = ParlAIChatAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = ParlAIChatTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = ParlAIChatTaskRunner
+    ArgsClass = ParlAIChatBlueprintArgs
+    SharedStateClass = SharedParlAITaskState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_PARLAI_CHAT
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedParlAITaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: List[Dict[str, Any]] = []
+
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data: Dict[str, Any] = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif args.blueprint.get("num_conversations", None) is not None:
+            self._initialization_data_dicts = [{}] * args.blueprint.num_conversations
+        else:
+            raise NotImplementedError(
+                "Parsing parlai tasks directly from dicts or JSON is not supported yet"
+            )
+
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.world_module = world_module
+        assert hasattr(world_module, "make_world")
+        assert hasattr(world_module, "get_world_params")
+        self.agent_count = world_module.get_world_params()[  # type: ignore
+            "agent_count"
+        ]
+
+        self.full_task_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("task_description_file", None) is not None:
+            full_path = os.path.expanduser(args.blueprint.task_description_file)
+            assert os.path.exists(
+                full_path
+            ), f"Target task description path {full_path} doesn't exist"
+            with open(full_path, "r") as description_fp:
+                self.full_task_description = description_fp.read()
+        self.full_preview_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Target preview source path {preview_source_file} doesn't exist"
+            with open(preview_source_file, "r") as description_fp:
+                self.full_preview_description = description_fp.read()
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        # Find world module
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        world_module = shared_state.world_module
+        if world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            assert os.path.exists(
+                world_file_path
+            ), f"Provided world path {world_file_path} doesn't exist"
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        # assert world file is valid
+        assert hasattr(
+            world_module, "make_world"
+        ), "Provided world file has no `make_world` method"
+        assert hasattr(
+            world_module, "get_world_params"
+        ), "Provided world file has no `get_world_params` method"
+
+        # assert some method for determining quantity of conversations
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Target context_csv path {csv_file} doesn't exist"
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Target context_jsonl path {jsonl_file} doesn't exist"
+        elif args.blueprint.get("num_conversations", None) is not None:
+            assert (
+                args.blueprint.num_conversations > 0
+            ), "Must have at least one conversation"
+        else:
+            raise AssertionError(
+                "Must specify one of --context-csv, --context-jsonl or --num-conversations"
+            )
+
+        if args.blueprint.get("custom_source_bundle", None) is not None:
+            custom_source_file_path = os.path.expanduser(
+                args.blueprint.custom_source_bundle
+            )
+            assert os.path.exists(
+                custom_source_file_path
+            ), f"Provided custom bundle doesn't exist at {custom_source_file_path}"
+
+        if args.blueprint.get("custom_source_dir", None) is not None:
+            custom_source_dir_path = os.path.expanduser(
+                args.blueprint.custom_source_dir
+            )
+            assert os.path.exists(
+                custom_source_dir_path
+            ), f"Provided custom source dir doesn't exist at {custom_source_dir_path}"
+
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Provided preview source doesn't exist at {preview_source_file}"
+
+        if args.blueprint.get("extra_source_dir", None) is not None:
+            extra_source_dir = os.path.expanduser(args.blueprint.extra_source_dir)
+            assert os.path.exists(
+                extra_source_dir
+            ), f"Provided extra resource dir doesn't exist at {extra_source_dir}"
+
+    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options within a task_config should be fowarded
+        to the client for use by the task's frontend
+        """
+        # Start with standard task configuration arguments
+        frontend_task_config = super().get_frontend_args()
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        # Add ParlAI standards
+        frontend_task_config.update(
+            {
+                "task_description": self.full_task_description,
+                "preview_html": self.full_preview_description,
+                "frame_height": 650,
+                "chat_title": self.args.task.task_title,
+                "has_preview": self.args.blueprint.get("preview_source", None)
+                is not None,
+                "block_mobile": True,
+                "frontend_task_opts": shared_state.frontend_task_opts,
+            }
+        )
+        # Use overrides provided downstream
+        frontend_task_config.update(self.frontend_task_config)
+        return frontend_task_config
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        return [
+            InitializationData(shared=d, unit_data=[{}] * self.agent_count)
+            for d in self._initialization_data_dicts
+        ]
+
+    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        if hasattr(self.world_module, "validate_onboarding"):
+            return self.world_module.validate_onboarding(  # type: ignore
+                onboarding_agent.state.get_data()
+            )
+        return True
+
+ +
+ +

Blueprint for a task that runs a parlai chat

+
+ + +
+
#   + + + ParlAIChatBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState +) +
+ +
+ View Source +
    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedParlAITaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: List[Dict[str, Any]] = []
+
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data: Dict[str, Any] = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif args.blueprint.get("num_conversations", None) is not None:
+            self._initialization_data_dicts = [{}] * args.blueprint.num_conversations
+        else:
+            raise NotImplementedError(
+                "Parsing parlai tasks directly from dicts or JSON is not supported yet"
+            )
+
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.world_module = world_module
+        assert hasattr(world_module, "make_world")
+        assert hasattr(world_module, "get_world_params")
+        self.agent_count = world_module.get_world_params()[  # type: ignore
+            "agent_count"
+        ]
+
+        self.full_task_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("task_description_file", None) is not None:
+            full_path = os.path.expanduser(args.blueprint.task_description_file)
+            assert os.path.exists(
+                full_path
+            ), f"Target task description path {full_path} doesn't exist"
+            with open(full_path, "r") as description_fp:
+                self.full_task_description = description_fp.read()
+        self.full_preview_description = MISSING_SOMETHING_TEXT
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Target preview source path {preview_source_file} doesn't exist"
+            with open(preview_source_file, "r") as description_fp:
+                self.full_preview_description = description_fp.read()
+
+ +
+ + + +
+
+
#   + + BLUEPRINT_TYPE: str = 'parlai_chat' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        # Find world module
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        world_module = shared_state.world_module
+        if world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            assert os.path.exists(
+                world_file_path
+            ), f"Provided world path {world_file_path} doesn't exist"
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        # assert world file is valid
+        assert hasattr(
+            world_module, "make_world"
+        ), "Provided world file has no `make_world` method"
+        assert hasattr(
+            world_module, "get_world_params"
+        ), "Provided world file has no `get_world_params` method"
+
+        # assert some method for determining quantity of conversations
+        if args.blueprint.get("context_csv", None) is not None:
+            csv_file = os.path.expanduser(args.blueprint.context_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Target context_csv path {csv_file} doesn't exist"
+        elif args.blueprint.get("context_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(args.blueprint.context_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Target context_jsonl path {jsonl_file} doesn't exist"
+        elif args.blueprint.get("num_conversations", None) is not None:
+            assert (
+                args.blueprint.num_conversations > 0
+            ), "Must have at least one conversation"
+        else:
+            raise AssertionError(
+                "Must specify one of --context-csv, --context-jsonl or --num-conversations"
+            )
+
+        if args.blueprint.get("custom_source_bundle", None) is not None:
+            custom_source_file_path = os.path.expanduser(
+                args.blueprint.custom_source_bundle
+            )
+            assert os.path.exists(
+                custom_source_file_path
+            ), f"Provided custom bundle doesn't exist at {custom_source_file_path}"
+
+        if args.blueprint.get("custom_source_dir", None) is not None:
+            custom_source_dir_path = os.path.expanduser(
+                args.blueprint.custom_source_dir
+            )
+            assert os.path.exists(
+                custom_source_dir_path
+            ), f"Provided custom source dir doesn't exist at {custom_source_dir_path}"
+
+        if args.blueprint.get("preview_source", None) is not None:
+            preview_source_file = os.path.expanduser(args.blueprint.preview_source)
+            assert os.path.exists(
+                preview_source_file
+            ), f"Provided preview source doesn't exist at {preview_source_file}"
+
+        if args.blueprint.get("extra_source_dir", None) is not None:
+            extra_source_dir = os.path.expanduser(args.blueprint.extra_source_dir)
+            assert os.path.exists(
+                extra_source_dir
+            ), f"Provided extra resource dir doesn't exist at {extra_source_dir}"
+
+ +
+ +

Ensure that arguments are properly configured to launch this task

+
+ + +
+
+
#   + + + def + get_frontend_args(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_frontend_args(self) -> Dict[str, Any]:
+        """
+        Specifies what options within a task_config should be fowarded
+        to the client for use by the task's frontend
+        """
+        # Start with standard task configuration arguments
+        frontend_task_config = super().get_frontend_args()
+        shared_state = self.shared_state
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState with ParlAIChatBlueprint"
+        # Add ParlAI standards
+        frontend_task_config.update(
+            {
+                "task_description": self.full_task_description,
+                "preview_html": self.full_preview_description,
+                "frame_height": 650,
+                "chat_title": self.args.task.task_title,
+                "has_preview": self.args.blueprint.get("preview_source", None)
+                is not None,
+                "block_mobile": True,
+                "frontend_task_opts": shared_state.frontend_task_opts,
+            }
+        )
+        # Use overrides provided downstream
+        frontend_task_config.update(self.frontend_task_config)
+        return frontend_task_config
+
+ +
+ +

Specifies what options within a task_config should be fowarded +to the client for use by the task's frontend

+
+ + +
+
+
#   + + + def + get_initialization_data( + self +) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]: +
+ +
+ View Source +
    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        return [
+            InitializationData(shared=d, unit_data=[{}] * self.agent_count)
+            for d in self._initialization_data_dicts
+        ]
+
+ +
+ +

Return the InitializationData retrieved from the specified stream

+
+ + +
+
+
#   + + + def + validate_onboarding( + self, + worker: mephisto.data_model.worker.Worker, + onboarding_agent: mephisto.data_model.agent.OnboardingAgent +) -> bool: +
+ +
+ View Source +
    def validate_onboarding(
+        self, worker: "Worker", onboarding_agent: "OnboardingAgent"
+    ) -> bool:
+        if hasattr(self.world_module, "validate_onboarding"):
+            return self.world_module.validate_onboarding(  # type: ignore
+                onboarding_agent.state.get_data()
+            )
+        return True
+
+ +
+ +

Check the incoming onboarding data and evaluate if the worker +has passed the qualification or not. Return True if the worker +has qualified.

+ +

By default we use the validate_onboarding provided in a run_task, +and all onboarding tasks should allow run_task to specify additional +or entirely override what's provided in a blueprint.

+
+ + +
+ +
+
+
+ #   + + + class + ParlAIChatBlueprint.AgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class ParlAIChatAgentState(AgentState):
+    """
+    Holds information about ParlAI-style chat. Data is stored in json files
+    containing every act from the ParlAI world.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.messages: List[Dict[str, Any]] = []
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.init_data = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        return {"task_data": self.init_data, "past_live_updates": self.messages}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.messages = state["outputs"]["messages"]
+            self.init_data = state["inputs"]
+            self.final_submission = state["outputs"].get("final_submission")
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "outputs": {
+                "messages": self.messages,
+                "final_submission": self.final_submission,
+            },
+            "inputs": self.init_data,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return properly parsed data from this task"""
+        init_data = self.init_data
+        save_data = None
+
+        agent_name = None
+        for m in self.messages:
+            if "agent_display_name" in m["task_data"]:
+                agent_name = m["task_data"]["agent_display_name"]
+                break
+
+        messages = self.messages
+        if len(messages) > 0:
+            if "WORLD_DATA" in messages[-1]:
+                save_data = messages[-1]["WORLD_DATA"]
+                messages = messages[:-1]
+
+        return {
+            "agent_name": agent_name,
+            "initial_data": init_data,
+            "messages": messages,
+            "save_data": save_data,
+            "final_submission": self.final_submission,
+        }
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task, the timestamp of the very first message.
+        """
+        return self.messages[0]["timestamp"]
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task, the timestamp of the very final message.
+        """
+        return self.messages[-1]["timestamp"]
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as its arrival time
+        """
+        live_update["timestamp"] = time.time()
+        self.messages.append(live_update)
+        self.save_data()
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about ParlAI-style chat. Data is stored in json files +containing every act from the ParlAI world.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+
+ #   + + + class + ParlAIChatBlueprint.OnboardingAgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class ParlAIChatAgentState(AgentState):
+    """
+    Holds information about ParlAI-style chat. Data is stored in json files
+    containing every act from the ParlAI world.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an AgentState to track the state of an agent's work on a Unit
+
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.messages: List[Dict[str, Any]] = []
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.init_data = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        return {"task_data": self.init_data, "past_live_updates": self.messages}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.messages = state["outputs"]["messages"]
+            self.init_data = state["inputs"]
+            self.final_submission = state["outputs"].get("final_submission")
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "outputs": {
+                "messages": self.messages,
+                "final_submission": self.final_submission,
+            },
+            "inputs": self.init_data,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return properly parsed data from this task"""
+        init_data = self.init_data
+        save_data = None
+
+        agent_name = None
+        for m in self.messages:
+            if "agent_display_name" in m["task_data"]:
+                agent_name = m["task_data"]["agent_display_name"]
+                break
+
+        messages = self.messages
+        if len(messages) > 0:
+            if "WORLD_DATA" in messages[-1]:
+                save_data = messages[-1]["WORLD_DATA"]
+                messages = messages[:-1]
+
+        return {
+            "agent_name": agent_name,
+            "initial_data": init_data,
+            "messages": messages,
+            "save_data": save_data,
+            "final_submission": self.final_submission,
+        }
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task, the timestamp of the very first message.
+        """
+        return self.messages[0]["timestamp"]
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task, the timestamp of the very final message.
+        """
+        return self.messages[-1]["timestamp"]
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as its arrival time
+        """
+        live_update["timestamp"] = time.time()
+        self.messages.append(live_update)
+        self.save_data()
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about ParlAI-style chat. Data is stored in json files +containing every act from the ParlAI world.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+
+ #   + + + class + ParlAIChatBlueprint.TaskBuilderClass(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class ParlAIChatTaskBuilder(TaskBuilder):
+    """
+    Builder for a parlai chat task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = BUILT_FILE
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_custom_bundle(self, custom_src_dir):
+        """Locate all of the custom files used for a custom build, create
+        a prebuild directory containing all of them, then build the
+        custom source.
+
+        Check dates to only go through this build process when files have changes
+        """
+        TARGET_BUILD_FILES = {
+            "main.js": "src/main.js",
+            "package.json": "package.json",
+            "style.css": "src/style.css",
+        }
+        TARGET_BUILD_FOLDERS = {"components": "src/components"}
+
+        prebuild_path = os.path.join(custom_src_dir, CUSTOM_BUILD_DIRNAME)
+        build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+        # see if we need to rebuild
+        if os.path.exists(build_path):
+            created_date = os.path.getmtime(build_path)
+            up_to_date = True
+            for fn in TARGET_BUILD_FILES.keys():
+                possible_conflict = os.path.join(custom_src_dir, fn)
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            for fn in TARGET_BUILD_FOLDERS.keys():
+                if not up_to_date:
+                    break
+                possible_conflict_dir = os.path.join(custom_src_dir, fn)
+                for root, dirs, files in os.walk(possible_conflict_dir):
+                    if not up_to_date:
+                        break
+                    for fname in files:
+                        path = os.path.join(root, fname)
+                        if os.path.getmtime(path) > created_date:
+                            up_to_date = False
+                            break
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            if up_to_date:
+                return build_path
+
+        # build anew
+        REQUIRED_SOURCE_FILES = [
+            ".babelrc",
+            ".eslintrc",
+            "package.json",
+            "webpack.config.js",
+        ]
+        REQUIRED_SOURCE_DIRS = ["src"]
+        if not os.path.exists(os.path.join(prebuild_path, "build")):
+            os.makedirs(os.path.join(prebuild_path, "build"), exist_ok=True)
+
+        # Copy default files
+        for src_dir in REQUIRED_SOURCE_DIRS:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_dir)
+            dst_path = os.path.join(prebuild_path, src_dir)
+            if os.path.exists(dst_path):
+                shutil.rmtree(dst_path)
+            shutil.copytree(src_path, dst_path)
+        for src_file in REQUIRED_SOURCE_FILES:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_file)
+            dst_path = os.path.join(prebuild_path, src_file)
+            shutil.copy2(src_path, dst_path)
+
+        # copy custom files
+        for src_file in TARGET_BUILD_FILES.keys():
+            src_path = os.path.join(custom_src_dir, src_file)
+            if os.path.exists(src_path):
+                dst_path = os.path.join(prebuild_path, TARGET_BUILD_FILES[src_file])
+                shutil.copy2(src_path, dst_path)
+        for src_dir in TARGET_BUILD_FOLDERS.keys():
+            src_path = os.path.join(custom_src_dir, src_dir)
+            dst_path = os.path.join(prebuild_path, TARGET_BUILD_FOLDERS[src_dir])
+            if os.path.exists(src_path):
+                if os.path.exists(dst_path):
+                    shutil.rmtree(dst_path)
+                shutil.copytree(src_path, dst_path)
+
+        # navigate and build
+        return_dir = os.getcwd()
+        os.chdir(prebuild_path)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+
+        # cleanup and return
+        os.chdir(return_dir)
+        return build_path
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        custom_source_dir = self.args.blueprint.get("custom_source_dir", None)
+        build_bundle = None
+        if custom_source_dir is not None:
+            custom_source_dir = os.path.expanduser(custom_source_dir)
+            build_bundle = self.build_custom_bundle(custom_source_dir)
+
+        # Copy over the preview file as preview.html, use the default if none specified
+        target_resource_dir = os.path.join(build_dir, "static")
+        preview_file = self.args.blueprint.get("preview_source", None)
+        if preview_file is not None:
+            use_preview_file = os.path.expanduser(preview_file)
+            target_path = os.path.join(target_resource_dir, "preview.html")
+            shutil.copy2(use_preview_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = self.args.blueprint.get("custom_source_bundle", None)
+        if bundle_js_file is None:
+            if build_bundle is not None:
+                bundle_js_file = build_bundle
+            else:
+                bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Copy over the static files for this task:
+        for fin_file in ["index.html", "notif.mp3"]:
+            copied_static_file = os.path.join(
+                FRONTEND_SOURCE_DIR, "src", "static", fin_file
+            )
+            target_path = os.path.join(target_resource_dir, fin_file)
+            shutil.copy2(copied_static_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a parlai chat task, pulls the appropriate html, +builds the frontend (if a build doesn't already exist), +then puts the file into the server directory

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+
+ #   + + + class + ParlAIChatBlueprint.TaskRunnerClass(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class ParlAIChatTaskRunner(TaskRunner):
+    """
+    Task runner for a parlai chat task
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.parlai_world_module = world_module
+        world_params = world_module.get_world_params()  # type: ignore
+        self.is_concurrent = world_params["agent_count"] > 1
+        self.id_to_worlds: Dict[str, Any] = {}
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def get_world_id(self, world_type: str, extra_id: str) -> str:
+        """Get a world id specific to the given world type"""
+        return f"{world_type}-{extra_id}"
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        ParlAI Onboarding will initialize an onboarding
+        world, then run it to completion if possible
+        """
+        shared_state = self.shared_state
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        opt: Dict[str, Any] = shared_state.onboarding_world_opt
+        parlai_agent = MephistoAgentWrapper(agent)
+        try:
+            world = self.parlai_world_module.make_onboarding_world(  # type: ignore
+                opt,
+                parlai_agent,
+                initialization_data=shared_state.onboarding_data,
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_onboarding_world(opt, parlai_agent)  # type: ignore
+
+        world_id = self.get_world_id("onboard", agent.get_agent_id())
+        self.id_to_worlds[world_id] = world
+        while (
+            not world.episode_done()
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            world.parley()
+
+        # Ensure agent can submit after onboarding
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        world.shutdown()
+        agent.state.update_data(
+            {
+                "id": "SUBMIT_WORLD_DATA",
+                "WORLD_DATA": world.prep_save_data([parlai_agent]),
+                "text": "",
+            }
+        )
+
+        # Mark the agent as done, then wait for the incoming submit action
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown the world"""
+        onboarding_id = agent.get_agent_id()
+        world_id = self.get_world_id("onboard", onboarding_id)
+        # Only shut down world if it was actually started
+        if world_id in self.id_to_worlds:
+            self.id_to_worlds[world_id].shutdown()
+            del self.id_to_worlds[world_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]) -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        for agent in agents:
+            assert agent is not None, "task was not fully assigned"
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=assignment.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and assignment.db_id in self.running_assignments:
+            world.parley()
+
+        # Ensure agents can submit after completion
+        for idx in range(len(parlai_agents)):
+            agents[idx].observe({"task_data": {"task_done": True}})
+
+        # TODO(WISH) it would be nice to have individual agents be able to submit their
+        # final things without needing to wait for their partner, such
+        # as if one needs to rate and the other doesn't
+
+        world.shutdown()
+        for idx in range(len(parlai_agents)):
+            agents[idx].state.update_data(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data([parlai_agents[idx]]),
+                    "text": "",
+                }
+            )
+
+    def cleanup_assignment(self, assignment: "Assignment") -> None:
+        """Handle cleanup for a specific assignment"""
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        agents = [agent]
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=unit.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and unit.db_id in self.running_units:
+            world.parley()
+
+        # Ensure agent can submit after completion
+        agent.observe({"task_data": {"task_done": True}})
+
+        world.shutdown()
+        if hasattr(world, "prep_save_data"):
+            agent.observe(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data(parlai_agents),
+                    "text": "",
+                }
+            )
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+ +
+ +

Task runner for a parlai chat task

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+ +
+
+
+
+
+ + +
+ View Source +
class ParlAIChatBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_PARLAI_CHAT
+    _group: str = field(
+        default="ParlAIChatBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from ParlAI blueprints require the number of
+                conversations (either an int or task data for each convo), as
+                well as a world to initialize for connecting workers.
+            """
+        },
+    )
+    world_file: str = field(
+        default=MISSING,
+        metadata={"help": "Path to file containing ParlAI world", "required": True},
+    )
+    preview_source: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    task_description_file: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Path to file for the extended description of the task. "
+                "Required if not providing a custom source bundle."
+            )
+        },
+    )
+    custom_source_bundle: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a fully custom frontend bundle"},
+    )
+    custom_source_dir: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to a directory containing custom js code"},
+    )
+    extra_source_dir: str = field(
+        default=MISSING,
+        metadata={
+            "help": (
+                "Optional path to sources that the frontend may "
+                "refer to (such as images/video/css/scripts)"
+            )
+        },
+    )
+    context_csv: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to csv containing task context"},
+    )
+    context_jsonl: str = field(
+        default=MISSING,
+        metadata={"help": "Optional path to jsonl file containing task context"},
+    )
+    num_conversations: int = field(
+        default=MISSING,
+        metadata={
+            "help": "Optional count of conversations to have if no context provided"
+        },
+    )
+
+ +
+ +

ParlAIChatBlueprintArgs(_blueprint_type: str = 'parlai_chat', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'ParlAIChatBlueprint', world_file: str = '???', preview_source: str = '???', task_description_file: str = '???', custom_source_bundle: str = '???', custom_source_dir: str = '???', extra_source_dir: str = '???', context_csv: str = '???', context_jsonl: str = '???', num_conversations: int = '???')

+
+ + + +
+
+ + +
+ View Source +
class SharedParlAITaskState(OnboardingSharedState, SharedTaskState):
+    frontend_task_opts: Dict[str, Any] = field(default_factory=dict)
+    world_opt: Dict[str, Any] = field(default_factory=dict)
+    onboarding_world_opt: Dict[str, Any] = field(default_factory=dict)
+    world_module: Optional[Any] = None
+
+ +
+ +

SharedParlAITaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , frontend_task_opts: Dict[str, Any] = , world_opt: Dict[str, Any] = , onboarding_world_opt: Dict[str, Any] = , world_module: Union[Any, NoneType] = None)

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_builder.html new file mode 100644 index 000000000..15d735b27 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_builder.html @@ -0,0 +1,938 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskBuilder
+
+from distutils.dir_util import copy_tree
+import os
+import time
+import sh  # type: ignore
+import shutil
+import subprocess
+
+from typing import ClassVar, List, Type, Any, Dict, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import Assignment
+
+PARLAI_TASK_DIR = os.path.dirname(__file__)
+FRONTEND_SOURCE_DIR = os.path.join(PARLAI_TASK_DIR, "webapp")
+FRONTEND_BUILD_DIR = os.path.join(FRONTEND_SOURCE_DIR, "build")
+
+BUILT_FILE = "done.built"
+CUSTOM_BUILD_DIRNAME = "_generated"
+
+
+class ParlAIChatTaskBuilder(TaskBuilder):
+    """
+    Builder for a parlai chat task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = BUILT_FILE
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_custom_bundle(self, custom_src_dir):
+        """Locate all of the custom files used for a custom build, create
+        a prebuild directory containing all of them, then build the
+        custom source.
+
+        Check dates to only go through this build process when files have changes
+        """
+        TARGET_BUILD_FILES = {
+            "main.js": "src/main.js",
+            "package.json": "package.json",
+            "style.css": "src/style.css",
+        }
+        TARGET_BUILD_FOLDERS = {"components": "src/components"}
+
+        prebuild_path = os.path.join(custom_src_dir, CUSTOM_BUILD_DIRNAME)
+        build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+        # see if we need to rebuild
+        if os.path.exists(build_path):
+            created_date = os.path.getmtime(build_path)
+            up_to_date = True
+            for fn in TARGET_BUILD_FILES.keys():
+                possible_conflict = os.path.join(custom_src_dir, fn)
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            for fn in TARGET_BUILD_FOLDERS.keys():
+                if not up_to_date:
+                    break
+                possible_conflict_dir = os.path.join(custom_src_dir, fn)
+                for root, dirs, files in os.walk(possible_conflict_dir):
+                    if not up_to_date:
+                        break
+                    for fname in files:
+                        path = os.path.join(root, fname)
+                        if os.path.getmtime(path) > created_date:
+                            up_to_date = False
+                            break
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            if up_to_date:
+                return build_path
+
+        # build anew
+        REQUIRED_SOURCE_FILES = [
+            ".babelrc",
+            ".eslintrc",
+            "package.json",
+            "webpack.config.js",
+        ]
+        REQUIRED_SOURCE_DIRS = ["src"]
+        if not os.path.exists(os.path.join(prebuild_path, "build")):
+            os.makedirs(os.path.join(prebuild_path, "build"), exist_ok=True)
+
+        # Copy default files
+        for src_dir in REQUIRED_SOURCE_DIRS:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_dir)
+            dst_path = os.path.join(prebuild_path, src_dir)
+            if os.path.exists(dst_path):
+                shutil.rmtree(dst_path)
+            shutil.copytree(src_path, dst_path)
+        for src_file in REQUIRED_SOURCE_FILES:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_file)
+            dst_path = os.path.join(prebuild_path, src_file)
+            shutil.copy2(src_path, dst_path)
+
+        # copy custom files
+        for src_file in TARGET_BUILD_FILES.keys():
+            src_path = os.path.join(custom_src_dir, src_file)
+            if os.path.exists(src_path):
+                dst_path = os.path.join(prebuild_path, TARGET_BUILD_FILES[src_file])
+                shutil.copy2(src_path, dst_path)
+        for src_dir in TARGET_BUILD_FOLDERS.keys():
+            src_path = os.path.join(custom_src_dir, src_dir)
+            dst_path = os.path.join(prebuild_path, TARGET_BUILD_FOLDERS[src_dir])
+            if os.path.exists(src_path):
+                if os.path.exists(dst_path):
+                    shutil.rmtree(dst_path)
+                shutil.copytree(src_path, dst_path)
+
+        # navigate and build
+        return_dir = os.getcwd()
+        os.chdir(prebuild_path)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+
+        # cleanup and return
+        os.chdir(return_dir)
+        return build_path
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        custom_source_dir = self.args.blueprint.get("custom_source_dir", None)
+        build_bundle = None
+        if custom_source_dir is not None:
+            custom_source_dir = os.path.expanduser(custom_source_dir)
+            build_bundle = self.build_custom_bundle(custom_source_dir)
+
+        # Copy over the preview file as preview.html, use the default if none specified
+        target_resource_dir = os.path.join(build_dir, "static")
+        preview_file = self.args.blueprint.get("preview_source", None)
+        if preview_file is not None:
+            use_preview_file = os.path.expanduser(preview_file)
+            target_path = os.path.join(target_resource_dir, "preview.html")
+            shutil.copy2(use_preview_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = self.args.blueprint.get("custom_source_bundle", None)
+        if bundle_js_file is None:
+            if build_bundle is not None:
+                bundle_js_file = build_bundle
+            else:
+                bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Copy over the static files for this task:
+        for fin_file in ["index.html", "notif.mp3"]:
+            copied_static_file = os.path.join(
+                FRONTEND_SOURCE_DIR, "src", "static", fin_file
+            )
+            target_path = os.path.join(target_resource_dir, fin_file)
+            shutil.copy2(copied_static_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +
+
+
+ #   + + + class + ParlAIChatTaskBuilder(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class ParlAIChatTaskBuilder(TaskBuilder):
+    """
+    Builder for a parlai chat task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = BUILT_FILE
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_custom_bundle(self, custom_src_dir):
+        """Locate all of the custom files used for a custom build, create
+        a prebuild directory containing all of them, then build the
+        custom source.
+
+        Check dates to only go through this build process when files have changes
+        """
+        TARGET_BUILD_FILES = {
+            "main.js": "src/main.js",
+            "package.json": "package.json",
+            "style.css": "src/style.css",
+        }
+        TARGET_BUILD_FOLDERS = {"components": "src/components"}
+
+        prebuild_path = os.path.join(custom_src_dir, CUSTOM_BUILD_DIRNAME)
+        build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+        # see if we need to rebuild
+        if os.path.exists(build_path):
+            created_date = os.path.getmtime(build_path)
+            up_to_date = True
+            for fn in TARGET_BUILD_FILES.keys():
+                possible_conflict = os.path.join(custom_src_dir, fn)
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            for fn in TARGET_BUILD_FOLDERS.keys():
+                if not up_to_date:
+                    break
+                possible_conflict_dir = os.path.join(custom_src_dir, fn)
+                for root, dirs, files in os.walk(possible_conflict_dir):
+                    if not up_to_date:
+                        break
+                    for fname in files:
+                        path = os.path.join(root, fname)
+                        if os.path.getmtime(path) > created_date:
+                            up_to_date = False
+                            break
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            if up_to_date:
+                return build_path
+
+        # build anew
+        REQUIRED_SOURCE_FILES = [
+            ".babelrc",
+            ".eslintrc",
+            "package.json",
+            "webpack.config.js",
+        ]
+        REQUIRED_SOURCE_DIRS = ["src"]
+        if not os.path.exists(os.path.join(prebuild_path, "build")):
+            os.makedirs(os.path.join(prebuild_path, "build"), exist_ok=True)
+
+        # Copy default files
+        for src_dir in REQUIRED_SOURCE_DIRS:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_dir)
+            dst_path = os.path.join(prebuild_path, src_dir)
+            if os.path.exists(dst_path):
+                shutil.rmtree(dst_path)
+            shutil.copytree(src_path, dst_path)
+        for src_file in REQUIRED_SOURCE_FILES:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_file)
+            dst_path = os.path.join(prebuild_path, src_file)
+            shutil.copy2(src_path, dst_path)
+
+        # copy custom files
+        for src_file in TARGET_BUILD_FILES.keys():
+            src_path = os.path.join(custom_src_dir, src_file)
+            if os.path.exists(src_path):
+                dst_path = os.path.join(prebuild_path, TARGET_BUILD_FILES[src_file])
+                shutil.copy2(src_path, dst_path)
+        for src_dir in TARGET_BUILD_FOLDERS.keys():
+            src_path = os.path.join(custom_src_dir, src_dir)
+            dst_path = os.path.join(prebuild_path, TARGET_BUILD_FOLDERS[src_dir])
+            if os.path.exists(src_path):
+                if os.path.exists(dst_path):
+                    shutil.rmtree(dst_path)
+                shutil.copytree(src_path, dst_path)
+
+        # navigate and build
+        return_dir = os.getcwd()
+        os.chdir(prebuild_path)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+
+        # cleanup and return
+        os.chdir(return_dir)
+        return build_path
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        custom_source_dir = self.args.blueprint.get("custom_source_dir", None)
+        build_bundle = None
+        if custom_source_dir is not None:
+            custom_source_dir = os.path.expanduser(custom_source_dir)
+            build_bundle = self.build_custom_bundle(custom_source_dir)
+
+        # Copy over the preview file as preview.html, use the default if none specified
+        target_resource_dir = os.path.join(build_dir, "static")
+        preview_file = self.args.blueprint.get("preview_source", None)
+        if preview_file is not None:
+            use_preview_file = os.path.expanduser(preview_file)
+            target_path = os.path.join(target_resource_dir, "preview.html")
+            shutil.copy2(use_preview_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = self.args.blueprint.get("custom_source_bundle", None)
+        if bundle_js_file is None:
+            if build_bundle is not None:
+                bundle_js_file = build_bundle
+            else:
+                bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Copy over the static files for this task:
+        for fin_file in ["index.html", "notif.mp3"]:
+            copied_static_file = os.path.join(
+                FRONTEND_SOURCE_DIR, "src", "static", fin_file
+            )
+            target_path = os.path.join(target_resource_dir, fin_file)
+            shutil.copy2(copied_static_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a parlai chat task, pulls the appropriate html, +builds the frontend (if a build doesn't already exist), +then puts the file into the server directory

+
+ + +
+
#   + + BUILT_FILE = 'done.built' +
+ + + + +
+
+
#   + + BUILT_MESSAGE = 'built!' +
+ + + + +
+
+
#   + + + def + rebuild_core(self): +
+ +
+ View Source +
    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+ +
+ +

Rebuild the frontend for this task

+
+ + +
+
+
#   + + + def + build_custom_bundle(self, custom_src_dir): +
+ +
+ View Source +
    def build_custom_bundle(self, custom_src_dir):
+        """Locate all of the custom files used for a custom build, create
+        a prebuild directory containing all of them, then build the
+        custom source.
+
+        Check dates to only go through this build process when files have changes
+        """
+        TARGET_BUILD_FILES = {
+            "main.js": "src/main.js",
+            "package.json": "package.json",
+            "style.css": "src/style.css",
+        }
+        TARGET_BUILD_FOLDERS = {"components": "src/components"}
+
+        prebuild_path = os.path.join(custom_src_dir, CUSTOM_BUILD_DIRNAME)
+        build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+        # see if we need to rebuild
+        if os.path.exists(build_path):
+            created_date = os.path.getmtime(build_path)
+            up_to_date = True
+            for fn in TARGET_BUILD_FILES.keys():
+                possible_conflict = os.path.join(custom_src_dir, fn)
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            for fn in TARGET_BUILD_FOLDERS.keys():
+                if not up_to_date:
+                    break
+                possible_conflict_dir = os.path.join(custom_src_dir, fn)
+                for root, dirs, files in os.walk(possible_conflict_dir):
+                    if not up_to_date:
+                        break
+                    for fname in files:
+                        path = os.path.join(root, fname)
+                        if os.path.getmtime(path) > created_date:
+                            up_to_date = False
+                            break
+                if os.path.exists(possible_conflict):
+                    if os.path.getmtime(possible_conflict) > created_date:
+                        up_to_date = False
+                        break
+            if up_to_date:
+                return build_path
+
+        # build anew
+        REQUIRED_SOURCE_FILES = [
+            ".babelrc",
+            ".eslintrc",
+            "package.json",
+            "webpack.config.js",
+        ]
+        REQUIRED_SOURCE_DIRS = ["src"]
+        if not os.path.exists(os.path.join(prebuild_path, "build")):
+            os.makedirs(os.path.join(prebuild_path, "build"), exist_ok=True)
+
+        # Copy default files
+        for src_dir in REQUIRED_SOURCE_DIRS:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_dir)
+            dst_path = os.path.join(prebuild_path, src_dir)
+            if os.path.exists(dst_path):
+                shutil.rmtree(dst_path)
+            shutil.copytree(src_path, dst_path)
+        for src_file in REQUIRED_SOURCE_FILES:
+            src_path = os.path.join(FRONTEND_SOURCE_DIR, src_file)
+            dst_path = os.path.join(prebuild_path, src_file)
+            shutil.copy2(src_path, dst_path)
+
+        # copy custom files
+        for src_file in TARGET_BUILD_FILES.keys():
+            src_path = os.path.join(custom_src_dir, src_file)
+            if os.path.exists(src_path):
+                dst_path = os.path.join(prebuild_path, TARGET_BUILD_FILES[src_file])
+                shutil.copy2(src_path, dst_path)
+        for src_dir in TARGET_BUILD_FOLDERS.keys():
+            src_path = os.path.join(custom_src_dir, src_dir)
+            dst_path = os.path.join(prebuild_path, TARGET_BUILD_FOLDERS[src_dir])
+            if os.path.exists(src_path):
+                if os.path.exists(dst_path):
+                    shutil.rmtree(dst_path)
+                shutil.copytree(src_path, dst_path)
+
+        # navigate and build
+        return_dir = os.getcwd()
+        os.chdir(prebuild_path)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+
+        # cleanup and return
+        os.chdir(return_dir)
+        return build_path
+
+ +
+ +

Locate all of the custom files used for a custom build, create +a prebuild directory containing all of them, then build the +custom source.

+ +

Check dates to only go through this build process when files have changes

+
+ + +
+
+
#   + + + def + build_in_dir(self, build_dir: str): +
+ +
+ View Source +
    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        custom_source_dir = self.args.blueprint.get("custom_source_dir", None)
+        build_bundle = None
+        if custom_source_dir is not None:
+            custom_source_dir = os.path.expanduser(custom_source_dir)
+            build_bundle = self.build_custom_bundle(custom_source_dir)
+
+        # Copy over the preview file as preview.html, use the default if none specified
+        target_resource_dir = os.path.join(build_dir, "static")
+        preview_file = self.args.blueprint.get("preview_source", None)
+        if preview_file is not None:
+            use_preview_file = os.path.expanduser(preview_file)
+            target_path = os.path.join(target_resource_dir, "preview.html")
+            shutil.copy2(use_preview_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = self.args.blueprint.get("custom_source_bundle", None)
+        if bundle_js_file is None:
+            if build_bundle is not None:
+                bundle_js_file = build_bundle
+            else:
+                bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Copy over the static files for this task:
+        for fin_file in ["index.html", "notif.mp3"]:
+            copied_static_file = os.path.join(
+                FRONTEND_SOURCE_DIR, "src", "static", fin_file
+            )
+            target_path = os.path.join(target_resource_dir, fin_file)
+            shutil.copy2(copied_static_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Build the frontend if it doesn't exist, then copy into the server directory

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_runner.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_runner.html new file mode 100644 index 000000000..4af2ce957 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_chat_task_runner.html @@ -0,0 +1,1389 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskRunner, SharedTaskState
+from mephisto.data_model.agent import Agent, OnboardingAgent
+import time
+
+try:
+    from parlai.core.agents import Agent as ParlAIAgent  # type: ignore
+    from parlai.core.message import Message  # type: ignore
+except ImportError:
+    from mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed import ParlAIAgent, Message  # type: ignore
+
+    pass  # ParlAI is not installed. TODO remove when we move this blueprint to ParlAI
+
+from importlib import import_module
+
+import os
+import sh  # type: ignore
+import shlex
+import shutil
+import subprocess
+import sys
+from mephisto.abstractions.blueprint import AgentState
+from uuid import uuid4
+
+from typing import ClassVar, List, Type, Any, Dict, Union, cast, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+        SharedParlAITaskState,
+    )
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.unit import Unit
+    from omegaconf import DictConfig
+
+
+class MephistoAgentWrapper(ParlAIAgent):
+    """
+    Class that wraps a mephisto agent to be used as an
+    agent in ParlAI worlds
+    """
+
+    def __init__(self, agent: Union[Agent, OnboardingAgent]):
+        self.mephisto_agent = agent
+        self.__agent_id = "unnamed agent"
+        self.__mephisto_agent_id = agent.get_agent_id()
+        self.__act_requested = False
+
+    @property
+    def id(self):
+        """Alias for agent_id"""
+        return self.__agent_id
+
+    @property
+    def agent_id(self):
+        """
+        Agent IDs in ParlAI are used to identify the speaker,
+        and often are a label like "teacher"
+        """
+        return self.__agent_id
+
+    @agent_id.setter
+    def agent_id(self, new_agent_id: str):
+        """
+        We want to be able to display these labels to the
+        frontend users, so when these are updated by a
+        world we forward that to the frontend
+        """
+        self.mephisto_agent.observe(
+            {"task_data": {"agent_display_name": new_agent_id}},
+        )
+        self.__agent_id = new_agent_id
+
+    def act(self, timeout=None):
+        """
+        ParlAI Agents send an act dict, we must convert this
+        """
+        gotten_act = self.mephisto_agent.get_live_update()
+        if gotten_act is None:
+            # No act received, see that one is requested:
+            if not self.__act_requested:
+                self.mephisto_agent.observe(
+                    {"task_data": {"live_update_requested": True}}
+                )
+                self.__act_requested = True
+            if timeout is not None:
+                gotten_act = self.mephisto_agent.get_live_update(timeout=timeout)
+        if gotten_act is None:
+            return None
+        self.__act_requested = False
+        gotten_act["id"] = self.__agent_id
+        return Message(gotten_act)
+
+    def observe(self, act):
+        """We can simply add a message id if not already provided to these"""
+        if act.get("update_id") is None:
+            act["update_id"] = str(uuid4())
+        self.mephisto_agent.observe(dict(act))
+
+
+class ParlAIChatTaskRunner(TaskRunner):
+    """
+    Task runner for a parlai chat task
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.parlai_world_module = world_module
+        world_params = world_module.get_world_params()  # type: ignore
+        self.is_concurrent = world_params["agent_count"] > 1
+        self.id_to_worlds: Dict[str, Any] = {}
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def get_world_id(self, world_type: str, extra_id: str) -> str:
+        """Get a world id specific to the given world type"""
+        return f"{world_type}-{extra_id}"
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        ParlAI Onboarding will initialize an onboarding
+        world, then run it to completion if possible
+        """
+        shared_state = self.shared_state
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        opt: Dict[str, Any] = shared_state.onboarding_world_opt
+        parlai_agent = MephistoAgentWrapper(agent)
+        try:
+            world = self.parlai_world_module.make_onboarding_world(  # type: ignore
+                opt,
+                parlai_agent,
+                initialization_data=shared_state.onboarding_data,
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_onboarding_world(opt, parlai_agent)  # type: ignore
+
+        world_id = self.get_world_id("onboard", agent.get_agent_id())
+        self.id_to_worlds[world_id] = world
+        while (
+            not world.episode_done()
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            world.parley()
+
+        # Ensure agent can submit after onboarding
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        world.shutdown()
+        agent.state.update_data(
+            {
+                "id": "SUBMIT_WORLD_DATA",
+                "WORLD_DATA": world.prep_save_data([parlai_agent]),
+                "text": "",
+            }
+        )
+
+        # Mark the agent as done, then wait for the incoming submit action
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown the world"""
+        onboarding_id = agent.get_agent_id()
+        world_id = self.get_world_id("onboard", onboarding_id)
+        # Only shut down world if it was actually started
+        if world_id in self.id_to_worlds:
+            self.id_to_worlds[world_id].shutdown()
+            del self.id_to_worlds[world_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]) -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        for agent in agents:
+            assert agent is not None, "task was not fully assigned"
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=assignment.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and assignment.db_id in self.running_assignments:
+            world.parley()
+
+        # Ensure agents can submit after completion
+        for idx in range(len(parlai_agents)):
+            agents[idx].observe({"task_data": {"task_done": True}})
+
+        # TODO(WISH) it would be nice to have individual agents be able to submit their
+        # final things without needing to wait for their partner, such
+        # as if one needs to rate and the other doesn't
+
+        world.shutdown()
+        for idx in range(len(parlai_agents)):
+            agents[idx].state.update_data(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data([parlai_agents[idx]]),
+                    "text": "",
+                }
+            )
+
+    def cleanup_assignment(self, assignment: "Assignment") -> None:
+        """Handle cleanup for a specific assignment"""
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        agents = [agent]
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=unit.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and unit.db_id in self.running_units:
+            world.parley()
+
+        # Ensure agent can submit after completion
+        agent.observe({"task_data": {"task_done": True}})
+
+        world.shutdown()
+        if hasattr(world, "prep_save_data"):
+            agent.observe(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data(parlai_agents),
+                    "text": "",
+                }
+            )
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+ +
+ +
+
+
+ #   + + + class + MephistoAgentWrapper(parlai.core.agents.Agent): +
+ +
+ View Source +
class MephistoAgentWrapper(ParlAIAgent):
+    """
+    Class that wraps a mephisto agent to be used as an
+    agent in ParlAI worlds
+    """
+
+    def __init__(self, agent: Union[Agent, OnboardingAgent]):
+        self.mephisto_agent = agent
+        self.__agent_id = "unnamed agent"
+        self.__mephisto_agent_id = agent.get_agent_id()
+        self.__act_requested = False
+
+    @property
+    def id(self):
+        """Alias for agent_id"""
+        return self.__agent_id
+
+    @property
+    def agent_id(self):
+        """
+        Agent IDs in ParlAI are used to identify the speaker,
+        and often are a label like "teacher"
+        """
+        return self.__agent_id
+
+    @agent_id.setter
+    def agent_id(self, new_agent_id: str):
+        """
+        We want to be able to display these labels to the
+        frontend users, so when these are updated by a
+        world we forward that to the frontend
+        """
+        self.mephisto_agent.observe(
+            {"task_data": {"agent_display_name": new_agent_id}},
+        )
+        self.__agent_id = new_agent_id
+
+    def act(self, timeout=None):
+        """
+        ParlAI Agents send an act dict, we must convert this
+        """
+        gotten_act = self.mephisto_agent.get_live_update()
+        if gotten_act is None:
+            # No act received, see that one is requested:
+            if not self.__act_requested:
+                self.mephisto_agent.observe(
+                    {"task_data": {"live_update_requested": True}}
+                )
+                self.__act_requested = True
+            if timeout is not None:
+                gotten_act = self.mephisto_agent.get_live_update(timeout=timeout)
+        if gotten_act is None:
+            return None
+        self.__act_requested = False
+        gotten_act["id"] = self.__agent_id
+        return Message(gotten_act)
+
+    def observe(self, act):
+        """We can simply add a message id if not already provided to these"""
+        if act.get("update_id") is None:
+            act["update_id"] = str(uuid4())
+        self.mephisto_agent.observe(dict(act))
+
+ +
+ +

Class that wraps a mephisto agent to be used as an +agent in ParlAI worlds

+
+ + +
+
#   + + + MephistoAgentWrapper( + agent: Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent] +) +
+ +
+ View Source +
    def __init__(self, agent: Union[Agent, OnboardingAgent]):
+        self.mephisto_agent = agent
+        self.__agent_id = "unnamed agent"
+        self.__mephisto_agent_id = agent.get_agent_id()
+        self.__act_requested = False
+
+ +
+ + + +
+
+
#   + + id +
+ + +

Alias for agent_id

+
+ + +
+
+
#   + + agent_id +
+ + +

Agent IDs in ParlAI are used to identify the speaker, +and often are a label like "teacher"

+
+ + +
+
+
#   + + + def + act(self, timeout=None): +
+ +
+ View Source +
    def act(self, timeout=None):
+        """
+        ParlAI Agents send an act dict, we must convert this
+        """
+        gotten_act = self.mephisto_agent.get_live_update()
+        if gotten_act is None:
+            # No act received, see that one is requested:
+            if not self.__act_requested:
+                self.mephisto_agent.observe(
+                    {"task_data": {"live_update_requested": True}}
+                )
+                self.__act_requested = True
+            if timeout is not None:
+                gotten_act = self.mephisto_agent.get_live_update(timeout=timeout)
+        if gotten_act is None:
+            return None
+        self.__act_requested = False
+        gotten_act["id"] = self.__agent_id
+        return Message(gotten_act)
+
+ +
+ +

ParlAI Agents send an act dict, we must convert this

+
+ + +
+
+
#   + + + def + observe(self, act): +
+ +
+ View Source +
    def observe(self, act):
+        """We can simply add a message id if not already provided to these"""
+        if act.get("update_id") is None:
+            act["update_id"] = str(uuid4())
+        self.mephisto_agent.observe(dict(act))
+
+ +
+ +

We can simply add a message id if not already provided to these

+
+ + +
+
+
Inherited Members
+
+
parlai.core.agents.Agent
+
getID
+
epoch_done
+
reset
+
reset_metrics
+
save
+
clone
+
share
+
shutdown
+
respond
+
batch_respond
+
upgrade_opt
+ +
+
+
+
+
+
+ #   + + + class + ParlAIChatTaskRunner(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class ParlAIChatTaskRunner(TaskRunner):
+    """
+    Task runner for a parlai chat task
+    """
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        super().__init__(task_run, args, shared_state)
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        if shared_state.world_module is None:
+            world_file_path = os.path.expanduser(args.blueprint.world_file)
+            world_module_dir = os.path.dirname(world_file_path)
+            sys.path.append(world_module_dir)
+            world_module_name = os.path.basename(world_file_path)[:-3]
+            world_module = import_module(world_module_name)
+        else:
+            world_module = shared_state.world_module
+        self.parlai_world_module = world_module
+        world_params = world_module.get_world_params()  # type: ignore
+        self.is_concurrent = world_params["agent_count"] > 1
+        self.id_to_worlds: Dict[str, Any] = {}
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def get_world_id(self, world_type: str, extra_id: str) -> str:
+        """Get a world id specific to the given world type"""
+        return f"{world_type}-{extra_id}"
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        ParlAI Onboarding will initialize an onboarding
+        world, then run it to completion if possible
+        """
+        shared_state = self.shared_state
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        opt: Dict[str, Any] = shared_state.onboarding_world_opt
+        parlai_agent = MephistoAgentWrapper(agent)
+        try:
+            world = self.parlai_world_module.make_onboarding_world(  # type: ignore
+                opt,
+                parlai_agent,
+                initialization_data=shared_state.onboarding_data,
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_onboarding_world(opt, parlai_agent)  # type: ignore
+
+        world_id = self.get_world_id("onboard", agent.get_agent_id())
+        self.id_to_worlds[world_id] = world
+        while (
+            not world.episode_done()
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            world.parley()
+
+        # Ensure agent can submit after onboarding
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        world.shutdown()
+        agent.state.update_data(
+            {
+                "id": "SUBMIT_WORLD_DATA",
+                "WORLD_DATA": world.prep_save_data([parlai_agent]),
+                "text": "",
+            }
+        )
+
+        # Mark the agent as done, then wait for the incoming submit action
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown the world"""
+        onboarding_id = agent.get_agent_id()
+        world_id = self.get_world_id("onboard", onboarding_id)
+        # Only shut down world if it was actually started
+        if world_id in self.id_to_worlds:
+            self.id_to_worlds[world_id].shutdown()
+            del self.id_to_worlds[world_id]
+
+    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]) -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        for agent in agents:
+            assert agent is not None, "task was not fully assigned"
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=assignment.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and assignment.db_id in self.running_assignments:
+            world.parley()
+
+        # Ensure agents can submit after completion
+        for idx in range(len(parlai_agents)):
+            agents[idx].observe({"task_data": {"task_done": True}})
+
+        # TODO(WISH) it would be nice to have individual agents be able to submit their
+        # final things without needing to wait for their partner, such
+        # as if one needs to rate and the other doesn't
+
+        world.shutdown()
+        for idx in range(len(parlai_agents)):
+            agents[idx].state.update_data(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data([parlai_agents[idx]]),
+                    "text": "",
+                }
+            )
+
+    def cleanup_assignment(self, assignment: "Assignment") -> None:
+        """Handle cleanup for a specific assignment"""
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        agents = [agent]
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=unit.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and unit.db_id in self.running_units:
+            world.parley()
+
+        # Ensure agent can submit after completion
+        agent.observe({"task_data": {"task_done": True}})
+
+        world.shutdown()
+        if hasattr(world, "prep_save_data"):
+            agent.observe(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data(parlai_agents),
+                    "text": "",
+                }
+            )
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+ +
+ +

Task runner for a parlai chat task

+
+ + +
+
#   + + + ParlAIChatTaskRunner( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __new__(
+        cls, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> "TaskRunner":
+        """Get the correct TaskRunner for this task run"""
+        if cls == TaskRunner:
+            from mephisto.operations.registry import get_blueprint_from_type
+
+            # We are trying to construct an AgentState, find what type to use and
+            # create that instead
+            correct_class = get_blueprint_from_type(task_run.task_type).TaskRunnerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

Get the correct TaskRunner for this task run

+
+ + +
+
+
#   + + + def + get_init_data_for_agent(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+ +
+ +

Return the data for an agent already assigned to a particular unit

+
+ + +
+
+
#   + + + def + get_world_id(self, world_type: str, extra_id: str) -> str: +
+ +
+ View Source +
    def get_world_id(self, world_type: str, extra_id: str) -> str:
+        """Get a world id specific to the given world type"""
+        return f"{world_type}-{extra_id}"
+
+ +
+ +

Get a world id specific to the given world type

+
+ + +
+
+
#   + + + def + run_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None: +
+ +
+ View Source +
    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        ParlAI Onboarding will initialize an onboarding
+        world, then run it to completion if possible
+        """
+        shared_state = self.shared_state
+        from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import (
+            SharedParlAITaskState,
+        )
+
+        assert isinstance(
+            shared_state, SharedParlAITaskState
+        ), "Must use SharedParlAITaskState for parlai blueprints"
+        opt: Dict[str, Any] = shared_state.onboarding_world_opt
+        parlai_agent = MephistoAgentWrapper(agent)
+        try:
+            world = self.parlai_world_module.make_onboarding_world(  # type: ignore
+                opt,
+                parlai_agent,
+                initialization_data=shared_state.onboarding_data,
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_onboarding_world(opt, parlai_agent)  # type: ignore
+
+        world_id = self.get_world_id("onboard", agent.get_agent_id())
+        self.id_to_worlds[world_id] = world
+        while (
+            not world.episode_done()
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            world.parley()
+
+        # Ensure agent can submit after onboarding
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        world.shutdown()
+        agent.state.update_data(
+            {
+                "id": "SUBMIT_WORLD_DATA",
+                "WORLD_DATA": world.prep_save_data([parlai_agent]),
+                "text": "",
+            }
+        )
+
+        # Mark the agent as done, then wait for the incoming submit action
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+ +
+ +

ParlAI Onboarding will initialize an onboarding +world, then run it to completion if possible

+
+ + +
+
+
#   + + + def + cleanup_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None: +
+ +
+ View Source +
    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown the world"""
+        onboarding_id = agent.get_agent_id()
+        world_id = self.get_world_id("onboard", onboarding_id)
+        # Only shut down world if it was actually started
+        if world_id in self.id_to_worlds:
+            self.id_to_worlds[world_id].shutdown()
+            del self.id_to_worlds[world_id]
+
+ +
+ +

Shutdown the world

+
+ + +
+
+
#   + + + def + run_assignment( + self, + assignment: mephisto.data_model.assignment.Assignment, + agents: list[mephisto.data_model.agent.Agent] +) -> None: +
+ +
+ View Source +
    def run_assignment(self, assignment: "Assignment", agents: List["Agent"]) -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        for agent in agents:
+            assert agent is not None, "task was not fully assigned"
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=assignment.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and assignment.db_id in self.running_assignments:
+            world.parley()
+
+        # Ensure agents can submit after completion
+        for idx in range(len(parlai_agents)):
+            agents[idx].observe({"task_data": {"task_done": True}})
+
+        # TODO(WISH) it would be nice to have individual agents be able to submit their
+        # final things without needing to wait for their partner, such
+        # as if one needs to rate and the other doesn't
+
+        world.shutdown()
+        for idx in range(len(parlai_agents)):
+            agents[idx].state.update_data(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data([parlai_agents[idx]]),
+                    "text": "",
+                }
+            )
+
+ +
+ +

ParlAI runners will initialize a task world, then run them to completion +if possible

+
+ + +
+
+
#   + + + def + cleanup_assignment(self, assignment: mephisto.data_model.assignment.Assignment) -> None: +
+ +
+ View Source +
    def cleanup_assignment(self, assignment: "Assignment") -> None:
+        """Handle cleanup for a specific assignment"""
+        world_id = self.get_world_id("assignment", assignment.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+ +
+ +

Handle cleanup for a specific assignment

+
+ + +
+
+
#   + + + def + run_unit( + self, + unit: mephisto.data_model.unit.Unit, + agent: mephisto.data_model.agent.Agent +) -> None: +
+ +
+ View Source +
    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        ParlAI runners will initialize a task world, then run them to completion
+        if possible
+        """
+        agents = [agent]
+        opt: Dict[str, Any] = cast("SharedParlAITaskState", self.shared_state).world_opt
+        parlai_agents = [MephistoAgentWrapper(a) for a in agents]
+        try:
+            world = self.parlai_world_module.make_world(  # type: ignore
+                opt, parlai_agents, initialization_data=unit.get_assignment_data()
+            )
+        except TypeError:
+            # make_world doesn't ask for initialization_data
+            world = self.parlai_world_module.make_world(opt, parlai_agents)  # type: ignore
+
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id] = world
+        while not world.episode_done() and unit.db_id in self.running_units:
+            world.parley()
+
+        # Ensure agent can submit after completion
+        agent.observe({"task_data": {"task_done": True}})
+
+        world.shutdown()
+        if hasattr(world, "prep_save_data"):
+            agent.observe(
+                {
+                    "id": "SUBMIT_WORLD_DATA",
+                    "WORLD_DATA": world.prep_save_data(parlai_agents),
+                    "text": "",
+                }
+            )
+
+ +
+ +

ParlAI runners will initialize a task world, then run them to completion +if possible

+
+ + +
+
+
#   + + + def + cleanup_unit(self, unit: mephisto.data_model.unit.Unit) -> None: +
+ +
+ View Source +
    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        world_id = self.get_world_id("unit", unit.db_id)
+        self.id_to_worlds[world_id].shutdown()
+        del self.id_to_worlds[world_id]
+
+ +
+ +

Handle cleanup for a specific unit

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_not_installed.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_not_installed.html new file mode 100644 index 000000000..3416a23e1 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/parlai_chat/parlai_not_installed.html @@ -0,0 +1,356 @@ + + + + + + + + + mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+class ParlAIAgent:
+    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+
+class Message:
+    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+ +
+ +
+
+
+ #   + + + class + ParlAIAgent: +
+ +
+ View Source +
class ParlAIAgent:
+    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+ +
+ + + +
+
#   + + + ParlAIAgent(*args, **kwargs) +
+ +
+ View Source +
    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+ +
+ + + +
+
+
+
+ #   + + + class + Message: +
+ +
+ View Source +
class Message:
+    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+ +
+ + + +
+
#   + + + Message(*args, **kwargs) +
+ +
+ View Source +
    def __init__(self, *args, **kwargs):
+        raise NotImplementedError("You need to install ParlAI to use this blueprint")
+
+ +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure.html new file mode 100644 index 000000000..d9eb1490e --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure.html @@ -0,0 +1,253 @@ + + + + + + + + + mephisto.abstractions.blueprints.remote_procedure API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.remote_procedure

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_agent_state.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_agent_state.html new file mode 100644 index 000000000..69b088abf --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_agent_state.html @@ -0,0 +1,998 @@ + + + + + + + + + mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Dict, Any, Tuple, TYPE_CHECKING
+from mephisto.abstractions.blueprint import AgentState
+import os
+import json
+import time
+import weakref
+from uuid import uuid4
+from dataclasses import dataclass, fields
+
+if TYPE_CHECKING:
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.packet import Packet
+
+
+@dataclass
+class RemoteRequest:
+    uuid: str
+    target: str
+    args_json: Optional[str]
+    response_json: Optional[str]
+    timestamp: float
+
+    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+
+class RemoteProcedureAgentState(AgentState):
+    """
+    Holds information about tasks with live interactions in a remote query model.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an agent state that keeps track of incoming actions from the frontend client
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.requests: Dict[str, RemoteRequest] = {}
+            self.start_time = time.time()
+            self.end_time = -1
+            self.init_data: Optional[Dict[str, Any]] = None
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        prev_requests = []
+        if len(self.requests) > 0:
+            requests = self.requests.values()
+            sorted_requests = sorted(requests, key=lambda x: x.timestamp)
+            prev_requests = [r.to_dict() for r in sorted_requests]
+        return {"task_data": self.init_data, "previous_requests": prev_requests}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.requests = {x["uuid"]: x for x in state["requests"]}
+            self.init_data = state["init_data"]
+            self.outputs = state["final_submission"]
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "final_submission": self.final_submission,
+            "init_data": self.init_data,
+            "requests": [r.to_dict() for r in self.requests.values()],
+            "start_time": self.start_time,
+            "end_time": self.end_time,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return the formatted content"""
+        # TODO implement actually getting this data
+        return self.get_data()
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task
+        """
+        return self.start_time
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task
+        """
+        return self.end_time
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as who it came from
+        """
+        if "handles" in live_update:
+            # outgoing
+            response_id = str(uuid4())
+            response = RemoteRequest(
+                uuid=response_id,
+                target=live_update["handles"],
+                args_json=None,
+                response_json=live_update["response"],
+                timestamp=time.time(),
+            )
+            self.requests[response_id] = response
+        else:
+            # incoming
+            request = RemoteRequest(
+                uuid=live_update["request_id"],
+                target=live_update["target"],
+                args_json=live_update["args"],
+                response_json=None,
+                timestamp=time.time(),
+            )
+            self.requests[live_update["request_id"]] = request
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +
+
+
+ #   + + + class + RemoteRequest: +
+ +
+ View Source +
class RemoteRequest:
+    uuid: str
+    target: str
+    args_json: Optional[str]
+    response_json: Optional[str]
+    timestamp: float
+
+    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+ +
+ +

RemoteRequest(uuid: str, target: str, args_json: Union[str, NoneType], response_json: Union[str, NoneType], timestamp: float)

+
+ + +
+
#   + + + RemoteRequest( + uuid: str, + target: str, + args_json: Union[str, NoneType], + response_json: Union[str, NoneType], + timestamp: float +) +
+ + + + +
+
+
#   + + + def + to_dict(self): +
+ +
+ View Source +
    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+ +
+ + + +
+
+
+
+ #   + + + class + RemoteProcedureAgentState(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class RemoteProcedureAgentState(AgentState):
+    """
+    Holds information about tasks with live interactions in a remote query model.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an agent state that keeps track of incoming actions from the frontend client
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.requests: Dict[str, RemoteRequest] = {}
+            self.start_time = time.time()
+            self.end_time = -1
+            self.init_data: Optional[Dict[str, Any]] = None
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        prev_requests = []
+        if len(self.requests) > 0:
+            requests = self.requests.values()
+            sorted_requests = sorted(requests, key=lambda x: x.timestamp)
+            prev_requests = [r.to_dict() for r in sorted_requests]
+        return {"task_data": self.init_data, "previous_requests": prev_requests}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.requests = {x["uuid"]: x for x in state["requests"]}
+            self.init_data = state["init_data"]
+            self.outputs = state["final_submission"]
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "final_submission": self.final_submission,
+            "init_data": self.init_data,
+            "requests": [r.to_dict() for r in self.requests.values()],
+            "start_time": self.start_time,
+            "end_time": self.end_time,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return the formatted content"""
+        # TODO implement actually getting this data
+        return self.get_data()
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task
+        """
+        return self.start_time
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task
+        """
+        return self.end_time
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as who it came from
+        """
+        if "handles" in live_update:
+            # outgoing
+            response_id = str(uuid4())
+            response = RemoteRequest(
+                uuid=response_id,
+                target=live_update["handles"],
+                args_json=None,
+                response_json=live_update["response"],
+                timestamp=time.time(),
+            )
+            self.requests[response_id] = response
+        else:
+            # incoming
+            request = RemoteRequest(
+                uuid=live_update["request_id"],
+                target=live_update["target"],
+                args_json=live_update["args"],
+                response_json=None,
+                timestamp=time.time(),
+            )
+            self.requests[live_update["request_id"]] = request
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about tasks with live interactions in a remote query model.

+
+ + +
+
#   + + + RemoteProcedureAgentState(agent: mephisto.data_model.agent.Agent) +
+ +
+ View Source +
    def __init__(self, agent: "Agent"):
+        """
+        Create an agent state that keeps track of incoming actions from the frontend client
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.requests: Dict[str, RemoteRequest] = {}
+            self.start_time = time.time()
+            self.end_time = -1
+            self.init_data: Optional[Dict[str, Any]] = None
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.save_data()
+
+ +
+ +

Create an agent state that keeps track of incoming actions from the frontend client +Initialize with an existing file if it exists.

+
+ + +
+
+
#   + + + def + set_init_state(self, data: Any) -> bool: +
+ +
+ View Source +
    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+ +
+ +

Set the initial state for this agent

+
+ + +
+
+
#   + + + def + get_init_state(self) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        prev_requests = []
+        if len(self.requests) > 0:
+            requests = self.requests.values()
+            sorted_requests = sorted(requests, key=lambda x: x.timestamp)
+            prev_requests = [r.to_dict() for r in sorted_requests]
+        return {"task_data": self.init_data, "previous_requests": prev_requests}
+
+ +
+ +

Return the initial state for this agent, +None if no such state exists

+
+ + +
+
+
#   + + + def + load_data(self) -> None: +
+ +
+ View Source +
    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.requests = {x["uuid"]: x for x in state["requests"]}
+            self.init_data = state["init_data"]
+            self.outputs = state["final_submission"]
+
+ +
+ +

Load stored data from a file to this object

+
+ + +
+
+
#   + + + def + get_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "final_submission": self.final_submission,
+            "init_data": self.init_data,
+            "requests": [r.to_dict() for r in self.requests.values()],
+            "start_time": self.start_time,
+            "end_time": self.end_time,
+        }
+
+ +
+ +

Return dict with the messages of this agent

+
+ + +
+
+
#   + + + def + get_parsed_data(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return the formatted content"""
+        # TODO implement actually getting this data
+        return self.get_data()
+
+ +
+ +

Return the formatted content

+
+ + +
+
+
#   + + + def + get_task_start(self) -> float: +
+ +
+ View Source +
    def get_task_start(self) -> float:
+        """
+        Return the start time for this task
+        """
+        return self.start_time
+
+ +
+ +

Return the start time for this task

+
+ + +
+
+
#   + + + def + get_task_end(self) -> float: +
+ +
+ View Source +
    def get_task_end(self) -> float:
+        """
+        Return the end time for this task
+        """
+        return self.end_time
+
+ +
+ +

Return the end time for this task

+
+ + +
+
+
#   + + + def + save_data(self) -> None: +
+ +
+ View Source +
    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+ +
+ +

Save all messages from this agent to

+
+ + +
+
+
#   + + + def + update_data(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as who it came from
+        """
+        if "handles" in live_update:
+            # outgoing
+            response_id = str(uuid4())
+            response = RemoteRequest(
+                uuid=response_id,
+                target=live_update["handles"],
+                args_json=None,
+                response_json=live_update["response"],
+                timestamp=time.time(),
+            )
+            self.requests[response_id] = response
+        else:
+            # incoming
+            request = RemoteRequest(
+                uuid=live_update["request_id"],
+                target=live_update["target"],
+                args_json=live_update["args"],
+                response_json=None,
+                timestamp=time.time(),
+            )
+            self.requests[live_update["request_id"]] = request
+
+ +
+ +

Append the incoming packet as well as who it came from

+
+ + +
+
+
#   + + + def + update_submit(self, submitted_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Append any final submission to this state

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_blueprint.html new file mode 100644 index 000000000..66761a3bb --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_blueprint.html @@ -0,0 +1,1736 @@ + + + + + + + + + mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import (
+    Blueprint,
+    BlueprintArgs,
+    SharedTaskState,
+)
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+    OnboardingSharedState,
+    OnboardingRequiredArgs,
+)
+from dataclasses import dataclass, field
+from mephisto.data_model.assignment import InitializationData
+from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state import (
+    RemoteProcedureAgentState,
+)
+from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner import (
+    RemoteProcedureTaskRunner,
+)
+from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder import (
+    RemoteProcedureTaskBuilder,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+from omegaconf import DictConfig, MISSING
+
+import os
+import time
+import csv
+import sys
+import json
+import types
+
+from importlib import import_module
+
+from typing import (
+    ClassVar,
+    Callable,
+    List,
+    Type,
+    Any,
+    Dict,
+    Iterable,
+    Optional,
+    Mapping,
+    TYPE_CHECKING,
+)
+
+if TYPE_CHECKING:
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import AgentState, TaskRunner, TaskBuilder
+    from mephisto.data_model.unit import Unit
+
+BLUEPRINT_TYPE_REMOTE_PROCEDURE = "remote_procedure"
+
+
+@dataclass
+class SharedRemoteProcedureTaskState(OnboardingSharedState, SharedTaskState):
+    function_registry: Optional[
+        Mapping[
+            str,
+            Callable[
+                [str, Dict[str, Any], "RemoteProcedureAgentState"],
+                Optional[Dict[str, Any]],
+            ],
+        ]
+    ] = None
+    static_task_data: Iterable[Any] = field(default_factory=list)
+
+
+@dataclass
+class RemoteProcedureBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_REMOTE_PROCEDURE
+    _group: str = field(
+        default="RemoteProcedureBlueprintArgs",
+        metadata={
+            "help": """
+                Tasks launched from remote query blueprints need a
+                source html file to display to workers, as well as a csv
+                containing values that will be inserted into templates in
+                the html.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+
+
+@register_mephisto_abstraction()
+class RemoteProcedureBlueprint(OnboardingRequired, Blueprint):
+    """Blueprint for a task that runs a parlai chat"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = RemoteProcedureAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = RemoteProcedureAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = RemoteProcedureTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = RemoteProcedureTaskRunner
+    ArgsClass = RemoteProcedureBlueprintArgs
+    SharedStateClass = SharedRemoteProcedureTaskState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_REMOTE_PROCEDURE
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        assert isinstance(
+            shared_state, SharedRemoteProcedureTaskState
+        ), "Must use SharedTaskState with RemoteProcedureBlueprint"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO can we check something about this?
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+        assert shared_state.function_registry is not None, (
+            "Must provide a valid function registry to use with the task, a mapping "
+            "of function names to functions that take as input a string and an agent "
+            "and return a string. "
+        )
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +
+
+ + +
+ View Source +
class SharedRemoteProcedureTaskState(OnboardingSharedState, SharedTaskState):
+    function_registry: Optional[
+        Mapping[
+            str,
+            Callable[
+                [str, Dict[str, Any], "RemoteProcedureAgentState"],
+                Optional[Dict[str, Any]],
+            ],
+        ]
+    ] = None
+    static_task_data: Iterable[Any] = field(default_factory=list)
+
+ +
+ +

SharedRemoteProcedureTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , function_registry: Union[Mapping[str, Callable[[str, Dict[str, Any], ForwardRef('RemoteProcedureAgentState')], Union[Dict[str, Any], NoneType]]], NoneType] = None, static_task_data: Iterable[Any] = )

+
+ + +
+
#   + + + SharedRemoteProcedureTaskState( + task_config: Dict[str, Any] = <factory>, + qualifications: List[Any] = <factory>, + worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = <factory>, + on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = <factory>, + onboarding_data: Dict[str, Any] = <factory>, + validate_onboarding: Callable[[Any], bool] = <factory>, + function_registry: Union[collections.abc.Mapping[str, collections.abc.Callable[str, Dict[str, Any], mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState, Union[Dict[str, Any], NoneType]]], NoneType] = None, + static_task_data: Iterable[Any] = <factory> +) +
+ + + + +
+
+
#   + + function_registry: Union[collections.abc.Mapping[str, collections.abc.Callable[str, Dict[str, Any], mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState, Union[Dict[str, Any], NoneType]]], NoneType] = None +
+ + + + +
+
+
+ + +
+ View Source +
class RemoteProcedureBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_REMOTE_PROCEDURE
+    _group: str = field(
+        default="RemoteProcedureBlueprintArgs",
+        metadata={
+            "help": """
+                Tasks launched from remote query blueprints need a
+                source html file to display to workers, as well as a csv
+                containing values that will be inserted into templates in
+                the html.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+
+ +
+ +

RemoteProcedureBlueprintArgs(_blueprint_type: str = 'remote_procedure', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'RemoteProcedureBlueprintArgs', task_source: str = '???', link_task_source: bool = False, units_per_assignment: int = 1)

+
+ + +
+
#   + + + RemoteProcedureBlueprintArgs( + _blueprint_type: str = 'remote_procedure', + block_qualification: str = '???', + onboarding_qualification: str = '???', + _group: str = 'RemoteProcedureBlueprintArgs', + task_source: str = '???', + link_task_source: bool = False, + units_per_assignment: int = 1 +) +
+ + + + +
+
+
#   + + task_source: str = '???' +
+ + + + +
+ +
+
#   + + units_per_assignment: int = 1 +
+ + + + +
+ +
+
+ + +
+ View Source +
class RemoteProcedureBlueprint(OnboardingRequired, Blueprint):
+    """Blueprint for a task that runs a parlai chat"""
+
+    AgentStateClass: ClassVar[Type["AgentState"]] = RemoteProcedureAgentState
+    OnboardingAgentStateClass: ClassVar[Type["AgentState"]] = RemoteProcedureAgentState
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = RemoteProcedureTaskBuilder
+    TaskRunnerClass: ClassVar[Type["TaskRunner"]] = RemoteProcedureTaskRunner
+    ArgsClass = RemoteProcedureBlueprintArgs
+    SharedStateClass = SharedRemoteProcedureTaskState
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_REMOTE_PROCEDURE
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        assert isinstance(
+            shared_state, SharedRemoteProcedureTaskState
+        ), "Must use SharedTaskState with RemoteProcedureBlueprint"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO can we check something about this?
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+        assert shared_state.function_registry is not None, (
+            "Must provide a valid function registry to use with the task, a mapping "
+            "of function names to functions that take as input a string and an agent "
+            "and return a string. "
+        )
+
+    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +

Blueprint for a task that runs a parlai chat

+
+ + +
+
#   + + + RemoteProcedureBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState +) +
+ +
+ View Source +
    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        self._initialization_data_dicts: Iterable[Dict[str, Any]] = []
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            with open(csv_file, "r", encoding="utf-8-sig") as csv_fp:
+                csv_reader = csv.reader(csv_fp)
+                headers = next(csv_reader)
+                for row in csv_reader:
+                    row_data = {}
+                    for i, col in enumerate(row):
+                        row_data[headers[i]] = col
+                    self._initialization_data_dicts.append(row_data)
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            with open(json_file, "r", encoding="utf-8-sig") as json_fp:
+                json_data = json.load(json_fp)
+            for jd in json_data:
+                self._initialization_data_dicts.append(jd)
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            with open(jsonl_file, "r", encoding="utf-8-sig") as jsonl_fp:
+                line = jsonl_fp.readline()
+                while line:
+                    j = json.loads(line)
+                    self._initialization_data_dicts.append(j)
+                    line = jsonl_fp.readline()
+        elif shared_state.static_task_data is not None:
+            self._initialization_data_dicts = shared_state.static_task_data
+        else:
+            # instantiating a version of the blueprint, but not necessarily needing the data
+            pass
+
+ +
+ + + +
+
+
#   + + BLUEPRINT_TYPE: str = 'remote_procedure' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that arguments are properly configured to launch this task"""
+        assert isinstance(
+            shared_state, SharedRemoteProcedureTaskState
+        ), "Must use SharedTaskState with RemoteProcedureBlueprint"
+        blue_args = args.blueprint
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            if isinstance(shared_state.static_task_data, types.GeneratorType):
+                # TODO can we check something about this?
+                pass
+            else:
+                assert (
+                    len([x for x in shared_state.static_task_data]) > 0
+                ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+        assert shared_state.function_registry is not None, (
+            "Must provide a valid function registry to use with the task, a mapping "
+            "of function names to functions that take as input a string and an agent "
+            "and return a string. "
+        )
+
+ +
+ +

Ensure that arguments are properly configured to launch this task

+
+ + +
+
+
#   + + + def + get_initialization_data( + self +) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]: +
+ +
+ View Source +
    def get_initialization_data(self) -> Iterable["InitializationData"]:
+        """
+        Return the InitializationData retrieved from the specified stream
+        """
+        if isinstance(self._initialization_data_dicts, types.GeneratorType):
+
+            def data_generator() -> Iterable["InitializationData"]:
+                for item in self._initialization_data_dicts:
+                    yield InitializationData(
+                        shared=item,
+                        unit_data=[{}] * self.args.blueprint.units_per_assignment,
+                    )
+
+            return data_generator()
+        else:
+            return [
+                InitializationData(
+                    shared=d, unit_data=[{}] * self.args.blueprint.units_per_assignment
+                )
+                for d in self._initialization_data_dicts
+            ]
+
+ +
+ +

Return the InitializationData retrieved from the specified stream

+
+ + +
+ +
+
+
+ #   + + + class + RemoteProcedureBlueprint.AgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class RemoteProcedureAgentState(AgentState):
+    """
+    Holds information about tasks with live interactions in a remote query model.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an agent state that keeps track of incoming actions from the frontend client
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.requests: Dict[str, RemoteRequest] = {}
+            self.start_time = time.time()
+            self.end_time = -1
+            self.init_data: Optional[Dict[str, Any]] = None
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        prev_requests = []
+        if len(self.requests) > 0:
+            requests = self.requests.values()
+            sorted_requests = sorted(requests, key=lambda x: x.timestamp)
+            prev_requests = [r.to_dict() for r in sorted_requests]
+        return {"task_data": self.init_data, "previous_requests": prev_requests}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.requests = {x["uuid"]: x for x in state["requests"]}
+            self.init_data = state["init_data"]
+            self.outputs = state["final_submission"]
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "final_submission": self.final_submission,
+            "init_data": self.init_data,
+            "requests": [r.to_dict() for r in self.requests.values()],
+            "start_time": self.start_time,
+            "end_time": self.end_time,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return the formatted content"""
+        # TODO implement actually getting this data
+        return self.get_data()
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task
+        """
+        return self.start_time
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task
+        """
+        return self.end_time
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as who it came from
+        """
+        if "handles" in live_update:
+            # outgoing
+            response_id = str(uuid4())
+            response = RemoteRequest(
+                uuid=response_id,
+                target=live_update["handles"],
+                args_json=None,
+                response_json=live_update["response"],
+                timestamp=time.time(),
+            )
+            self.requests[response_id] = response
+        else:
+            # incoming
+            request = RemoteRequest(
+                uuid=live_update["request_id"],
+                target=live_update["target"],
+                args_json=live_update["args"],
+                response_json=None,
+                timestamp=time.time(),
+            )
+            self.requests[live_update["request_id"]] = request
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about tasks with live interactions in a remote query model.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+
+ #   + + + class + RemoteProcedureBlueprint.OnboardingAgentStateClass(mephisto.abstractions._subcomponents.agent_state.AgentState): +
+ +
+ View Source +
class RemoteProcedureAgentState(AgentState):
+    """
+    Holds information about tasks with live interactions in a remote query model.
+    """
+
+    def __init__(self, agent: "Agent"):
+        """
+        Create an agent state that keeps track of incoming actions from the frontend client
+        Initialize with an existing file if it exists.
+        """
+        self.agent = weakref.proxy(agent)
+        data_file = self._get_expected_data_file()
+        if os.path.exists(data_file):
+            self.load_data()
+        else:
+            self.requests: Dict[str, RemoteRequest] = {}
+            self.start_time = time.time()
+            self.end_time = -1
+            self.init_data: Optional[Dict[str, Any]] = None
+            self.final_submission: Optional[Dict[str, Any]] = None
+            self.save_data()
+
+    def set_init_state(self, data: Any) -> bool:
+        """Set the initial state for this agent"""
+        if self.init_data is not None:
+            # Initial state is already set
+            return False
+        else:
+            self.init_data = data
+            self.save_data()
+            return True
+
+    def get_init_state(self) -> Optional[Dict[str, Any]]:
+        """
+        Return the initial state for this agent,
+        None if no such state exists
+        """
+        if self.init_data is None:
+            return None
+        prev_requests = []
+        if len(self.requests) > 0:
+            requests = self.requests.values()
+            sorted_requests = sorted(requests, key=lambda x: x.timestamp)
+            prev_requests = [r.to_dict() for r in sorted_requests]
+        return {"task_data": self.init_data, "previous_requests": prev_requests}
+
+    def _get_expected_data_file(self) -> str:
+        """Return the place we would expect to find data for this agent state"""
+        agent_dir = self.agent.get_data_dir()
+        os.makedirs(agent_dir, exist_ok=True)
+        return os.path.join(agent_dir, "state.json")
+
+    def load_data(self) -> None:
+        """Load stored data from a file to this object"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "r") as state_json:
+            state = json.load(state_json)
+            self.requests = {x["uuid"]: x for x in state["requests"]}
+            self.init_data = state["init_data"]
+            self.outputs = state["final_submission"]
+
+    def get_data(self) -> Dict[str, Any]:
+        """Return dict with the messages of this agent"""
+        return {
+            "final_submission": self.final_submission,
+            "init_data": self.init_data,
+            "requests": [r.to_dict() for r in self.requests.values()],
+            "start_time": self.start_time,
+            "end_time": self.end_time,
+        }
+
+    def get_parsed_data(self) -> Dict[str, Any]:
+        """Return the formatted content"""
+        # TODO implement actually getting this data
+        return self.get_data()
+
+    def get_task_start(self) -> float:
+        """
+        Return the start time for this task
+        """
+        return self.start_time
+
+    def get_task_end(self) -> float:
+        """
+        Return the end time for this task
+        """
+        return self.end_time
+
+    def save_data(self) -> None:
+        """Save all messages from this agent to"""
+        agent_file = self._get_expected_data_file()
+        with open(agent_file, "w+") as state_json:
+            json.dump(self.get_data(), state_json)
+
+    def update_data(self, live_update: Dict[str, Any]) -> None:
+        """
+        Append the incoming packet as well as who it came from
+        """
+        if "handles" in live_update:
+            # outgoing
+            response_id = str(uuid4())
+            response = RemoteRequest(
+                uuid=response_id,
+                target=live_update["handles"],
+                args_json=None,
+                response_json=live_update["response"],
+                timestamp=time.time(),
+            )
+            self.requests[response_id] = response
+        else:
+            # incoming
+            request = RemoteRequest(
+                uuid=live_update["request_id"],
+                target=live_update["target"],
+                args_json=live_update["args"],
+                response_json=None,
+                timestamp=time.time(),
+            )
+            self.requests[live_update["request_id"]] = request
+
+    def update_submit(self, submitted_data: Dict[str, Any]) -> None:
+        """Append any final submission to this state"""
+        self.final_submission = submitted_data
+        self.save_data()
+
+ +
+ +

Holds information about tasks with live interactions in a remote query model.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.agent_state.AgentState
+
STATUS_NONE
+
STATUS_ACCEPTED
+
STATUS_ONBOARDING
+
STATUS_WAITING
+
STATUS_IN_TASK
+
STATUS_COMPLETED
+
STATUS_DISCONNECT
+
STATUS_TIMEOUT
+
STATUS_PARTNER_DISCONNECT
+
STATUS_EXPIRED
+
STATUS_RETURNED
+
STATUS_APPROVED
+
STATUS_SOFT_REJECTED
+
STATUS_REJECTED
+
complete
+
valid
+ +
+
+
+
+
+ + +
+ View Source +
class RemoteProcedureTaskBuilder(StaticReactTaskBuilder):
+    """
+    Builder for a "static task" that has access to remote queries.
+    At the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks
+    in the same way.
+    """
+
+    pass
+
+ +
+ +

Builder for a "static task" that has access to remote queries. +At the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks +in the same way.

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+
+ #   + + + class + RemoteProcedureBlueprint.TaskRunnerClass(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class RemoteProcedureTaskRunner(TaskRunner):
+    """
+    Task runner for a task with live remote queries on the local machine
+    # TODO this is pretty gross, and would be better as a series of worker
+    # threads that handle commands, as the functions all have direct access
+    # to the full worker state.
+    """
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        # TODO load up the possible functions from the shared_state
+        self.is_concurrent = False  # This task is 1 person w/ backend
+        self.function_registry = shared_state.function_registry
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def _agent_in_onboarding_or_live(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> bool:
+        """Determine if an agent server should still be maintained"""
+        return (
+            agent.get_agent_id() in self.running_units
+            or agent.get_agent_id() in self.running_onboardings
+        )
+
+    def _run_server_timestep_for_agent(self, agent: Union["Agent", "OnboardingAgent"]):
+        """
+        Both onboarding and regular tasks have access to the server for remote
+        queries
+        """
+        live_update = agent.get_live_update()
+        if live_update is not None and "request_id" in live_update:
+            request_id = live_update["request_id"]
+            # Execute commands that come in from the frontend
+            # TODO extend scope to handle yield-style functions, and
+            # move these to async tasks
+            assert (
+                self.function_registry is not None
+                and live_update["target"] in self.function_registry
+            ), f"Target function {live_update['target']} not found in registry: {self.function_registry}"
+            state = agent.state
+            assert isinstance(
+                state, RemoteProcedureAgentState
+            ), "Must use an agent with RemoteProcedureAgentState"
+            res = self.function_registry[live_update["target"]](
+                request_id, json.loads(live_update["args"]), state
+            )
+
+            agent.observe(
+                {
+                    "handles": request_id,
+                    "response": json.dumps(res),
+                }
+            )
+
+        # sleep to avoid tight loop
+        time.sleep(THREAD_SHORT_SLEEP)
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        Running onboarding with access to remote queries
+        """
+        # Run the server while the task isn't submitted yet
+        while (
+            not agent.await_submit(timeout=None)
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown onboarding resources"""
+        pass
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Running a task with access to remote queries
+        """
+        while not agent.await_submit(timeout=None) and unit.db_id in self.running_units:
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        pass
+
+ +
+ +

Task runner for a task with live remote queries on the local machine

+ +

TODO this is pretty gross, and would be better as a series of worker

+ +

threads that handle commands, as the functions all have direct access

+ +

to the full worker state.

+
+ + +
+
Inherited Members
+
+ +
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+
run_assignment
+
cleanup_assignment
+ +
+
+
+
+
+ + +
+ View Source +
class RemoteProcedureBlueprintArgs(OnboardingRequiredArgs, BlueprintArgs):
+    _blueprint_type: str = BLUEPRINT_TYPE_REMOTE_PROCEDURE
+    _group: str = field(
+        default="RemoteProcedureBlueprintArgs",
+        metadata={
+            "help": """
+                Tasks launched from remote query blueprints need a
+                source html file to display to workers, as well as a csv
+                containing values that will be inserted into templates in
+                the html.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+    units_per_assignment: int = field(
+        default=1, metadata={"help": "How many workers you want to do each assignment"}
+    )
+
+ +
+ +

RemoteProcedureBlueprintArgs(_blueprint_type: str = 'remote_procedure', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'RemoteProcedureBlueprintArgs', task_source: str = '???', link_task_source: bool = False, units_per_assignment: int = 1)

+
+ + + +
+
+ + +
+ View Source +
class SharedRemoteProcedureTaskState(OnboardingSharedState, SharedTaskState):
+    function_registry: Optional[
+        Mapping[
+            str,
+            Callable[
+                [str, Dict[str, Any], "RemoteProcedureAgentState"],
+                Optional[Dict[str, Any]],
+            ],
+        ]
+    ] = None
+    static_task_data: Iterable[Any] = field(default_factory=list)
+
+ +
+ +

SharedRemoteProcedureTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , function_registry: Union[Mapping[str, Callable[[str, Dict[str, Any], ForwardRef('RemoteProcedureAgentState')], Union[Dict[str, Any], NoneType]]], NoneType] = None, static_task_data: Iterable[Any] = )

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_builder.html new file mode 100644 index 000000000..98a00d033 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_builder.html @@ -0,0 +1,315 @@ + + + + + + + + + mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder

+ + +
+ View Source +
# !/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprints.static_react_task.static_react_task_builder import (
+    StaticReactTaskBuilder,
+)
+
+
+class RemoteProcedureTaskBuilder(StaticReactTaskBuilder):
+    """
+    Builder for a "static task" that has access to remote queries.
+    At the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks
+    in the same way.
+    """
+
+    pass
+
+ +
+ +
+
+ + +
+ View Source +
class RemoteProcedureTaskBuilder(StaticReactTaskBuilder):
+    """
+    Builder for a "static task" that has access to remote queries.
+    At the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks
+    in the same way.
+    """
+
+    pass
+
+ +
+ +

Builder for a "static task" that has access to remote queries. +At the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks +in the same way.

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_runner.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_runner.html new file mode 100644 index 000000000..f67e345b2 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/remote_procedure/remote_procedure_task_runner.html @@ -0,0 +1,737 @@ + + + + + + + + + mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskRunner
+from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state import (
+    RemoteProcedureAgentState,
+)
+from mephisto.data_model.agent import Agent, OnboardingAgent
+import time
+import json
+
+from uuid import uuid4
+
+from typing import ClassVar, List, Type, Any, Dict, Union, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import AgentState
+    from mephisto.data_model.assignment import Assignment
+    from omegaconf import DictConfig
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint import (
+        SharedRemoteProcedureTaskState,
+    )
+
+
+THREAD_SHORT_SLEEP = 0.3
+
+
+class RemoteProcedureTaskRunner(TaskRunner):
+    """
+    Task runner for a task with live remote queries on the local machine
+    # TODO this is pretty gross, and would be better as a series of worker
+    # threads that handle commands, as the functions all have direct access
+    # to the full worker state.
+    """
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        # TODO load up the possible functions from the shared_state
+        self.is_concurrent = False  # This task is 1 person w/ backend
+        self.function_registry = shared_state.function_registry
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def _agent_in_onboarding_or_live(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> bool:
+        """Determine if an agent server should still be maintained"""
+        return (
+            agent.get_agent_id() in self.running_units
+            or agent.get_agent_id() in self.running_onboardings
+        )
+
+    def _run_server_timestep_for_agent(self, agent: Union["Agent", "OnboardingAgent"]):
+        """
+        Both onboarding and regular tasks have access to the server for remote
+        queries
+        """
+        live_update = agent.get_live_update()
+        if live_update is not None and "request_id" in live_update:
+            request_id = live_update["request_id"]
+            # Execute commands that come in from the frontend
+            # TODO extend scope to handle yield-style functions, and
+            # move these to async tasks
+            assert (
+                self.function_registry is not None
+                and live_update["target"] in self.function_registry
+            ), f"Target function {live_update['target']} not found in registry: {self.function_registry}"
+            state = agent.state
+            assert isinstance(
+                state, RemoteProcedureAgentState
+            ), "Must use an agent with RemoteProcedureAgentState"
+            res = self.function_registry[live_update["target"]](
+                request_id, json.loads(live_update["args"]), state
+            )
+
+            agent.observe(
+                {
+                    "handles": request_id,
+                    "response": json.dumps(res),
+                }
+            )
+
+        # sleep to avoid tight loop
+        time.sleep(THREAD_SHORT_SLEEP)
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        Running onboarding with access to remote queries
+        """
+        # Run the server while the task isn't submitted yet
+        while (
+            not agent.await_submit(timeout=None)
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown onboarding resources"""
+        pass
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Running a task with access to remote queries
+        """
+        while not agent.await_submit(timeout=None) and unit.db_id in self.running_units:
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        pass
+
+ +
+ +
+
+
+ #   + + + class + RemoteProcedureTaskRunner(mephisto.abstractions._subcomponents.task_runner.TaskRunner): +
+ +
+ View Source +
class RemoteProcedureTaskRunner(TaskRunner):
+    """
+    Task runner for a task with live remote queries on the local machine
+    # TODO this is pretty gross, and would be better as a series of worker
+    # threads that handle commands, as the functions all have direct access
+    # to the full worker state.
+    """
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedRemoteProcedureTaskState",
+    ):
+        super().__init__(task_run, args, shared_state)
+        # TODO load up the possible functions from the shared_state
+        self.is_concurrent = False  # This task is 1 person w/ backend
+        self.function_registry = shared_state.function_registry
+
+    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+    def _agent_in_onboarding_or_live(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> bool:
+        """Determine if an agent server should still be maintained"""
+        return (
+            agent.get_agent_id() in self.running_units
+            or agent.get_agent_id() in self.running_onboardings
+        )
+
+    def _run_server_timestep_for_agent(self, agent: Union["Agent", "OnboardingAgent"]):
+        """
+        Both onboarding and regular tasks have access to the server for remote
+        queries
+        """
+        live_update = agent.get_live_update()
+        if live_update is not None and "request_id" in live_update:
+            request_id = live_update["request_id"]
+            # Execute commands that come in from the frontend
+            # TODO extend scope to handle yield-style functions, and
+            # move these to async tasks
+            assert (
+                self.function_registry is not None
+                and live_update["target"] in self.function_registry
+            ), f"Target function {live_update['target']} not found in registry: {self.function_registry}"
+            state = agent.state
+            assert isinstance(
+                state, RemoteProcedureAgentState
+            ), "Must use an agent with RemoteProcedureAgentState"
+            res = self.function_registry[live_update["target"]](
+                request_id, json.loads(live_update["args"]), state
+            )
+
+            agent.observe(
+                {
+                    "handles": request_id,
+                    "response": json.dumps(res),
+                }
+            )
+
+        # sleep to avoid tight loop
+        time.sleep(THREAD_SHORT_SLEEP)
+
+    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        Running onboarding with access to remote queries
+        """
+        # Run the server while the task isn't submitted yet
+        while (
+            not agent.await_submit(timeout=None)
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown onboarding resources"""
+        pass
+
+    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Running a task with access to remote queries
+        """
+        while not agent.await_submit(timeout=None) and unit.db_id in self.running_units:
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        pass
+
+ +
+ +

Task runner for a task with live remote queries on the local machine

+ +

TODO this is pretty gross, and would be better as a series of worker

+ +

threads that handle commands, as the functions all have direct access

+ +

to the full worker state.

+
+ + +
+
#   + + + RemoteProcedureTaskRunner( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __new__(
+        cls, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> "TaskRunner":
+        """Get the correct TaskRunner for this task run"""
+        if cls == TaskRunner:
+            from mephisto.operations.registry import get_blueprint_from_type
+
+            # We are trying to construct an AgentState, find what type to use and
+            # create that instead
+            correct_class = get_blueprint_from_type(task_run.task_type).TaskRunnerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

Get the correct TaskRunner for this task run

+
+ + +
+
+
#   + + + def + get_init_data_for_agent(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_init_data_for_agent(self, agent: "Agent") -> Dict[str, Any]:
+        """
+        Return the data for an agent already assigned to a particular unit
+        """
+        init_state = agent.state.get_init_state()
+        if init_state is not None:
+            # reconnecting agent, give what we've got
+            return init_state
+        else:
+            assignment = agent.get_unit().get_assignment()
+            assignment_data = self.get_data_for_assignment(assignment)
+            agent.state.set_init_state(assignment_data.shared)
+            new_state = agent.state.get_init_state()
+            assert new_state is not None, "Recently initialized state still None"
+            return new_state
+
+ +
+ +

Return the data for an agent already assigned to a particular unit

+
+ + +
+
+
#   + + + def + run_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None: +
+ +
+ View Source +
    def run_onboarding(self, agent: "OnboardingAgent") -> None:
+        """
+        Running onboarding with access to remote queries
+        """
+        # Run the server while the task isn't submitted yet
+        while (
+            not agent.await_submit(timeout=None)
+            and agent.get_agent_id() in self.running_onboardings
+        ):
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+ +
+ +

Running onboarding with access to remote queries

+
+ + +
+
+
#   + + + def + cleanup_onboarding(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None: +
+ +
+ View Source +
    def cleanup_onboarding(self, agent: "OnboardingAgent") -> None:
+        """Shutdown onboarding resources"""
+        pass
+
+ +
+ +

Shutdown onboarding resources

+
+ + +
+
+
#   + + + def + run_unit( + self, + unit: mephisto.data_model.unit.Unit, + agent: mephisto.data_model.agent.Agent +) -> None: +
+ +
+ View Source +
    def run_unit(self, unit: "Unit", agent: "Agent") -> None:
+        """
+        Running a task with access to remote queries
+        """
+        while not agent.await_submit(timeout=None) and unit.db_id in self.running_units:
+            self._run_server_timestep_for_agent(agent)
+
+        while not agent.await_submit(timeout=None):
+            time.sleep(0.3)
+
+ +
+ +

Running a task with access to remote queries

+
+ + +
+
+
#   + + + def + cleanup_unit(self, unit: mephisto.data_model.unit.Unit) -> None: +
+ +
+ View Source +
    def cleanup_unit(self, unit: "Unit") -> None:
+        """Handle cleanup for a specific unit"""
+        pass
+
+ +
+ +

Handle cleanup for a specific unit

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_runner.TaskRunner
+
execute_onboarding
+
execute_unit
+
execute_assignment
+
get_data_for_assignment
+
filter_units_for_worker
+
shutdown
+
run_assignment
+
cleanup_assignment
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task.html new file mode 100644 index 000000000..479322f2d --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task.html @@ -0,0 +1,323 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_html_task API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_html_task

+ +

StaticHTMLBlueprint

+ +

Overview

+ +

The StaticHTMLBlueprint exists to create a simple transition stand-in to allow users of other platforms (which generally push for customization with HTML) to begin using Mephisto with minimal changes. This generally exists in the form of specifying a templated HTML file and providing assignment data that fills the templates.

+ +

There are no plans to extend the StaticHTMLBlueprint, or provide other HTML support, as we believe this to be more an onboarding ramp rather than a fully fleshed out feature. The React-based codebase contains better features and cleaner, reusable modules, and as such our focus is on tasks in that area.

+ +

Usage

+ +

An example usage case is available here. General usage for this Blueprint type can be summed up as copying that directory structure, providing your own templated HTML in the server_files, and then providng the data.csv or other data to post those templates to workers. More in-depth descriptions can be seen there.

+ +

Implementation Details

+ +

At a high level, this is a deeper implementation of the abstract StaticArchitect, which contains all of the logic for deploying arbitrary tasks where the worker is given some content, and we ask for one response, as a complete Unit. This module adds the logic to ensure that the frontend where the worker is given content is able to render arbitrary HTML.

+ +

app.jsx

+ +

The app.jsx file contains most of the logic to ensure we can render HTML, including being able to attach and execute the arbitrary scripts that are included or linked in the given HTML file. It creates a react application using the mephisto-task package, and creates an empty form with a submit button. It then populates the inner form using two primary methods:

+ +
    +
  • handleUpdatingRemainingScripts: This method walks through the list of scripts that are given in the attached HTML, either loading the external script and putting it into the head, or directly evaluating the content of local scripts. As the page has already loaded by the time we are loading in the remaining scripts, this all must be injected in an asynchronous manner. _Ultimately_ this isn't incredibly safe if you don't trust the attached scripts.
  • +
  • interpolateHtml: This method injects the values for the specific task into their template variable slots. These template variables are specified in the InitializationData for an assignment, and populate fields as noted in the Template Variables section below.
  • +
+ +

Upon submit, the data in the form (as marked by the name fields of any inputs) will be sent to the backend and stored in the agent_data.json file.

+ +

Template Variables

+ +

You can provide template variables when running your task, generally in the form of template variables that are given names. When you specify these (either via .csv or directly providing a parsed array of dicts for this data), any named variable my_special_variable will be filled into the frontend in all locations containing ${my_special_variable}.

+ +

Mephisto-specific Template Variables

+ +

As of now, we also make available the following variables to the HTML via templating:

+ +
    +
  • ${mephisto_agent_id}: The agent ID that Mephisto has associated with the current worker and task.
  • +
  • ${provider_worker_id}: The worker id that the provider uses locally to identify the worker.
  • +
+ +

StaticHTMLBlueprint

+ +

The Blueprint here extends on the abstract StaticBlueprint, adding HTML-specific requirements to outline the task that ends up visualized. The added arguments are as follows:

+ +
    +
  • task_source: The path to the (templated) HTML that should be displayed for the task.
  • +
  • preview_source: The path to the HTML that should be displayed while previewing a task.
  • +
  • onboarding_source: The path to the HTML that should be displayed during onboarding.
  • +
+ +

Providing an onboarding_source requires also providing an onboarding_qualification in order to trigger onboarding for your task. You should also specify a validate_onboarding in your SharedTaskState to ensure that the onboarding is completed properly.

+ +

StaticHTMLTaskBuilder

+ +

This TaskBuilder class primarily seeks to copy the source files as linked in the StaticHTMLBlueprint and include them in what gets deployed on the server. As these are primarily static files, the builder is fairly straightforward. Regardless of the files that are provided, the onboarding html ends up at onboarding.html on the server and the preview html ends up on the server at preview.html. The task html retains its name, as this is specified as the html arg parsed on the frontend.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_blueprint.html new file mode 100644 index 000000000..0585b6b16 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_blueprint.html @@ -0,0 +1,1027 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_html_task.static_html_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_html_task.static_html_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import (
+    StaticBlueprint,
+    StaticBlueprintArgs,
+    SharedStaticTaskState,
+)
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.abstractions.blueprint import Blueprint
+from mephisto.abstractions.blueprints.static_html_task.static_html_task_builder import (
+    StaticHTMLTaskBuilder,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+
+import os
+import time
+import csv
+import types
+
+from typing import ClassVar, List, Type, Any, Dict, Iterable, Optional, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import (
+        AgentState,
+        TaskRunner,
+        TaskBuilder,
+        SharedTaskState,
+    )
+    from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import (
+        SharedStaticTaskState,
+    )
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.agent import OnboardingAgent
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+
+BLUEPRINT_TYPE_STATIC_HTML = "static_task"
+
+
+@dataclass
+class StaticHTMLBlueprintArgs(StaticBlueprintArgs):
+    """
+    Adds required options for StaticBlueprints.
+    task_source points to the file intending to be deployed for this task
+    data_csv has the data to be deployed for this task.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_HTML
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Tasks launched from static blueprints need a "
+                "source html file to display to workers, as well as a csv "
+                "containing values that will be inserted into templates in "
+                "the html. "
+            )
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to source HTML file for the task being run",
+            "required": True,
+        },
+    )
+    preview_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    onboarding_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to onboarding the task"},
+    )
+
+
+@register_mephisto_abstraction()
+class StaticHTMLBlueprint(StaticBlueprint):
+    """Blueprint for a task that runs off of a built react javascript bundle"""
+
+    TaskBuilderClass = StaticHTMLTaskBuilder
+    ArgsClass = StaticHTMLBlueprintArgs
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_STATIC_HTML
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.html_file = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.html_file):
+            raise FileNotFoundError(
+                f"Specified html file {self.html_file} was not found from {os.getcwd()}"
+            )
+
+        self.onboarding_html_file = args.blueprint.get("onboarding_source", None)
+        if self.onboarding_html_file is not None:
+            self.onboarding_html_file = os.path.expanduser(self.onboarding_html_file)
+            if not os.path.exists(self.onboarding_html_file):
+                raise FileNotFoundError(
+                    f"Specified onboarding html file {self.onboarding_html_file} was not found from {os.getcwd()}"
+                )
+
+        task_file_name = os.path.basename(self.html_file)
+        for entry in self._initialization_data_dicts:
+            entry["html"] = task_file_name
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        Blueprint.assert_task_args(args, shared_state)
+        blue_args = args.blueprint
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        if isinstance(shared_state.static_task_data, types.GeneratorType):
+            raise AssertionError("You can't launch an HTML static task on a generator")
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            assert (
+                len([w for w in shared_state.static_task_data]) > 0
+            ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+        if blue_args.get("onboarding_qualification", None) is not None:
+            assert blue_args.get("onboarding_source", None) is not None, (
+                "Must use onboarding html with an onboarding qualification to "
+                "use onboarding."
+            )
+            assert shared_state.validate_onboarding is not None, (
+                "Must use an onboarding validation function to use onboarding "
+                "with static tasks."
+            )
+
+ +
+ +
+
+ + +
+ View Source +
class StaticHTMLBlueprintArgs(StaticBlueprintArgs):
+    """
+    Adds required options for StaticBlueprints.
+    task_source points to the file intending to be deployed for this task
+    data_csv has the data to be deployed for this task.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_HTML
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Tasks launched from static blueprints need a "
+                "source html file to display to workers, as well as a csv "
+                "containing values that will be inserted into templates in "
+                "the html. "
+            )
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to source HTML file for the task being run",
+            "required": True,
+        },
+    )
+    preview_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    onboarding_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to onboarding the task"},
+    )
+
+ +
+ +

Adds required options for StaticBlueprints. +task_source points to the file intending to be deployed for this task +data_csv has the data to be deployed for this task.

+
+ + +
+
#   + + + StaticHTMLBlueprintArgs( + _blueprint_type: str = 'static_task', + block_qualification: str = '???', + onboarding_qualification: str = '???', + _group: str = 'StaticBlueprint', + units_per_assignment: int = 1, + extra_source_dir: str = '???', + data_json: str = '???', + data_jsonl: str = '???', + data_csv: str = '???', + task_source: str = '???', + preview_source: Union[str, NoneType] = '???', + onboarding_source: Union[str, NoneType] = '???' +) +
+ + + + +
+
+
#   + + task_source: str = '???' +
+ + + + +
+
+
#   + + preview_source: Union[str, NoneType] = '???' +
+ + + + +
+
+
#   + + onboarding_source: Union[str, NoneType] = '???' +
+ + + + +
+ +
+
+ + +
+ View Source +
class StaticHTMLBlueprint(StaticBlueprint):
+    """Blueprint for a task that runs off of a built react javascript bundle"""
+
+    TaskBuilderClass = StaticHTMLTaskBuilder
+    ArgsClass = StaticHTMLBlueprintArgs
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_STATIC_HTML
+
+    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.html_file = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.html_file):
+            raise FileNotFoundError(
+                f"Specified html file {self.html_file} was not found from {os.getcwd()}"
+            )
+
+        self.onboarding_html_file = args.blueprint.get("onboarding_source", None)
+        if self.onboarding_html_file is not None:
+            self.onboarding_html_file = os.path.expanduser(self.onboarding_html_file)
+            if not os.path.exists(self.onboarding_html_file):
+                raise FileNotFoundError(
+                    f"Specified onboarding html file {self.onboarding_html_file} was not found from {os.getcwd()}"
+                )
+
+        task_file_name = os.path.basename(self.html_file)
+        for entry in self._initialization_data_dicts:
+            entry["html"] = task_file_name
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        Blueprint.assert_task_args(args, shared_state)
+        blue_args = args.blueprint
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        if isinstance(shared_state.static_task_data, types.GeneratorType):
+            raise AssertionError("You can't launch an HTML static task on a generator")
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            assert (
+                len([w for w in shared_state.static_task_data]) > 0
+            ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+        if blue_args.get("onboarding_qualification", None) is not None:
+            assert blue_args.get("onboarding_source", None) is not None, (
+                "Must use onboarding html with an onboarding qualification to "
+                "use onboarding."
+            )
+            assert shared_state.validate_onboarding is not None, (
+                "Must use an onboarding validation function to use onboarding "
+                "with static tasks."
+            )
+
+ +
+ +

Blueprint for a task that runs off of a built react javascript bundle

+
+ + +
+
#   + + + StaticHTMLBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __init__(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.html_file = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.html_file):
+            raise FileNotFoundError(
+                f"Specified html file {self.html_file} was not found from {os.getcwd()}"
+            )
+
+        self.onboarding_html_file = args.blueprint.get("onboarding_source", None)
+        if self.onboarding_html_file is not None:
+            self.onboarding_html_file = os.path.expanduser(self.onboarding_html_file)
+            if not os.path.exists(self.onboarding_html_file):
+                raise FileNotFoundError(
+                    f"Specified onboarding html file {self.onboarding_html_file} was not found from {os.getcwd()}"
+                )
+
+        task_file_name = os.path.basename(self.html_file)
+        for entry in self._initialization_data_dicts:
+            entry["html"] = task_file_name
+
+ +
+ + + +
+
+
#   + + BLUEPRINT_TYPE: str = 'static_task' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """Ensure that the data can be properly loaded"""
+        Blueprint.assert_task_args(args, shared_state)
+        blue_args = args.blueprint
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        if isinstance(shared_state.static_task_data, types.GeneratorType):
+            raise AssertionError("You can't launch an HTML static task on a generator")
+        if blue_args.get("data_csv", None) is not None:
+            csv_file = os.path.expanduser(blue_args.data_csv)
+            assert os.path.exists(
+                csv_file
+            ), f"Provided csv file {csv_file} doesn't exist"
+        elif blue_args.get("data_json", None) is not None:
+            json_file = os.path.expanduser(blue_args.data_json)
+            assert os.path.exists(
+                json_file
+            ), f"Provided JSON file {json_file} doesn't exist"
+        elif blue_args.get("data_jsonl", None) is not None:
+            jsonl_file = os.path.expanduser(blue_args.data_jsonl)
+            assert os.path.exists(
+                jsonl_file
+            ), f"Provided JSON-L file {jsonl_file} doesn't exist"
+        elif shared_state.static_task_data is not None:
+            assert (
+                len([w for w in shared_state.static_task_data]) > 0
+            ), "Length of data dict provided was 0"
+        else:
+            raise AssertionError(
+                "Must provide one of a data csv, json, json-L, or a list of tasks"
+            )
+
+        if blue_args.get("onboarding_qualification", None) is not None:
+            assert blue_args.get("onboarding_source", None) is not None, (
+                "Must use onboarding html with an onboarding qualification to "
+                "use onboarding."
+            )
+            assert shared_state.validate_onboarding is not None, (
+                "Must use an onboarding validation function to use onboarding "
+                "with static tasks."
+            )
+
+ +
+ +

Ensure that the data can be properly loaded

+
+ + +
+ +
+
+
+ #   + + + class + StaticHTMLBlueprint.TaskBuilderClass(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class StaticHTMLTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if True:  # not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        # Copy the built core and the given task file to the target path
+        use_html_file = os.path.expanduser(self.args.blueprint["task_source"])
+
+        target_resource_dir = os.path.join(build_dir, "static")
+        file_name = os.path.basename(use_html_file)
+        target_path = os.path.join(target_resource_dir, file_name)
+        shutil.copy2(use_html_file, target_path)
+
+        # Copy over the preview file as preview.html, default to the task file if none specified
+        preview_file = self.args.blueprint.get("preview_source") or use_html_file
+        use_preview_file = os.path.expanduser(preview_file)
+
+        target_path = os.path.join(target_resource_dir, "preview.html")
+        shutil.copy2(use_preview_file, target_path)
+
+        # Copy over the onboarding file as onboarding.html if it's specified
+        onboarding_html_file = self.args.blueprint.get("onboarding_source", None)
+        if onboarding_html_file is not None:
+            onboarding_html_file = os.path.expanduser(onboarding_html_file)
+            target_path = os.path.join(target_resource_dir, "onboarding.html")
+            shutil.copy2(onboarding_html_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir")
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a static task, pulls the appropriate html, +builds the frontend (if a build doesn't already exist), +then puts the file into the server directory

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+ + +
+ View Source +
class StaticHTMLBlueprintArgs(StaticBlueprintArgs):
+    """
+    Adds required options for StaticBlueprints.
+    task_source points to the file intending to be deployed for this task
+    data_csv has the data to be deployed for this task.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_HTML
+    _group: str = field(
+        default="StaticBlueprint",
+        metadata={
+            "help": (
+                "Tasks launched from static blueprints need a "
+                "source html file to display to workers, as well as a csv "
+                "containing values that will be inserted into templates in "
+                "the html. "
+            )
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to source HTML file for the task being run",
+            "required": True,
+        },
+    )
+    preview_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to preview the task"},
+    )
+    onboarding_source: Optional[str] = field(
+        default=MISSING,
+        metadata={"help": "Optional path to source HTML file to onboarding the task"},
+    )
+
+ +
+ +

Adds required options for StaticBlueprints. +task_source points to the file intending to be deployed for this task +data_csv has the data to be deployed for this task.

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_task_builder.html new file mode 100644 index 000000000..e4ded4e49 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_html_task/static_html_task_builder.html @@ -0,0 +1,583 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_html_task.static_html_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_html_task.static_html_task_builder

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskBuilder
+
+from distutils.dir_util import copy_tree
+import os
+import time
+import sh  # type: ignore
+import shutil
+import subprocess
+
+from typing import ClassVar, List, Type, Any, Dict, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.assignment import Assignment
+
+STATIC_TASK_DIR = os.path.dirname(__file__)
+FRONTEND_SOURCE_DIR = os.path.join(STATIC_TASK_DIR, "source")
+FRONTEND_BUILD_DIR = os.path.join(FRONTEND_SOURCE_DIR, "build")
+
+
+class StaticHTMLTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if True:  # not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        # Copy the built core and the given task file to the target path
+        use_html_file = os.path.expanduser(self.args.blueprint["task_source"])
+
+        target_resource_dir = os.path.join(build_dir, "static")
+        file_name = os.path.basename(use_html_file)
+        target_path = os.path.join(target_resource_dir, file_name)
+        shutil.copy2(use_html_file, target_path)
+
+        # Copy over the preview file as preview.html, default to the task file if none specified
+        preview_file = self.args.blueprint.get("preview_source") or use_html_file
+        use_preview_file = os.path.expanduser(preview_file)
+
+        target_path = os.path.join(target_resource_dir, "preview.html")
+        shutil.copy2(use_preview_file, target_path)
+
+        # Copy over the onboarding file as onboarding.html if it's specified
+        onboarding_html_file = self.args.blueprint.get("onboarding_source", None)
+        if onboarding_html_file is not None:
+            onboarding_html_file = os.path.expanduser(onboarding_html_file)
+            target_path = os.path.join(target_resource_dir, "onboarding.html")
+            shutil.copy2(onboarding_html_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir")
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +
+
+
+ #   + + + class + StaticHTMLTaskBuilder(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class StaticHTMLTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, pulls the appropriate html,
+    builds the frontend (if a build doesn't already exist),
+    then puts the file into the server directory
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if True:  # not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        # Copy the built core and the given task file to the target path
+        use_html_file = os.path.expanduser(self.args.blueprint["task_source"])
+
+        target_resource_dir = os.path.join(build_dir, "static")
+        file_name = os.path.basename(use_html_file)
+        target_path = os.path.join(target_resource_dir, file_name)
+        shutil.copy2(use_html_file, target_path)
+
+        # Copy over the preview file as preview.html, default to the task file if none specified
+        preview_file = self.args.blueprint.get("preview_source") or use_html_file
+        use_preview_file = os.path.expanduser(preview_file)
+
+        target_path = os.path.join(target_resource_dir, "preview.html")
+        shutil.copy2(use_preview_file, target_path)
+
+        # Copy over the onboarding file as onboarding.html if it's specified
+        onboarding_html_file = self.args.blueprint.get("onboarding_source", None)
+        if onboarding_html_file is not None:
+            onboarding_html_file = os.path.expanduser(onboarding_html_file)
+            target_path = os.path.join(target_resource_dir, "onboarding.html")
+            shutil.copy2(onboarding_html_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir")
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a static task, pulls the appropriate html, +builds the frontend (if a build doesn't already exist), +then puts the file into the server directory

+
+ + +
+
#   + + BUILT_FILE = 'done.built' +
+ + + + +
+
+
#   + + BUILT_MESSAGE = 'built!' +
+ + + + +
+
+
#   + + + def + rebuild_core(self): +
+ +
+ View Source +
    def rebuild_core(self):
+        """Rebuild the frontend for this task"""
+        return_dir = os.getcwd()
+        os.chdir(FRONTEND_SOURCE_DIR)
+        if os.path.exists(FRONTEND_BUILD_DIR):
+            shutil.rmtree(FRONTEND_BUILD_DIR)
+        packages_installed = subprocess.call(["npm", "install"])
+        if packages_installed != 0:
+            raise Exception(
+                "please make sure npm is installed, otherwise view "
+                "the above error for more info."
+            )
+
+        webpack_complete = subprocess.call(["npm", "run", "dev"])
+        if webpack_complete != 0:
+            raise Exception(
+                "Webpack appears to have failed to build your "
+                "frontend. See the above error for more information."
+            )
+        os.chdir(return_dir)
+
+ +
+ +

Rebuild the frontend for this task

+
+ + +
+
+
#   + + + def + build_in_dir(self, build_dir: str): +
+ +
+ View Source +
    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        # Only build this task if it hasn't already been built
+        if True:  # not os.path.exists(FRONTEND_BUILD_DIR):
+            self.rebuild_core()
+
+        # Copy the built core and the given task file to the target path
+        use_html_file = os.path.expanduser(self.args.blueprint["task_source"])
+
+        target_resource_dir = os.path.join(build_dir, "static")
+        file_name = os.path.basename(use_html_file)
+        target_path = os.path.join(target_resource_dir, file_name)
+        shutil.copy2(use_html_file, target_path)
+
+        # Copy over the preview file as preview.html, default to the task file if none specified
+        preview_file = self.args.blueprint.get("preview_source") or use_html_file
+        use_preview_file = os.path.expanduser(preview_file)
+
+        target_path = os.path.join(target_resource_dir, "preview.html")
+        shutil.copy2(use_preview_file, target_path)
+
+        # Copy over the onboarding file as onboarding.html if it's specified
+        onboarding_html_file = self.args.blueprint.get("onboarding_source", None)
+        if onboarding_html_file is not None:
+            onboarding_html_file = os.path.expanduser(onboarding_html_file)
+            target_path = os.path.join(target_resource_dir, "onboarding.html")
+            shutil.copy2(onboarding_html_file, target_path)
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir")
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        bundle_js_file = os.path.join(FRONTEND_BUILD_DIR, "bundle.js")
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+        shutil.copy2(bundle_js_file, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Build the frontend if it doesn't exist, then copy into the server directory

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task.html new file mode 100644 index 000000000..63fcf142c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task.html @@ -0,0 +1,251 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_react_task API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_react_task

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_blueprint.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_blueprint.html new file mode 100644 index 000000000..269d03d1d --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_blueprint.html @@ -0,0 +1,878 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_react_task.static_react_blueprint API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_react_task.static_react_blueprint

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.assignment import InitializationData
+from dataclasses import dataclass, field
+from omegaconf import MISSING
+from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import (
+    StaticBlueprint,
+    StaticBlueprintArgs,
+    SharedStaticTaskState,
+)
+from mephisto.abstractions.blueprints.static_react_task.static_react_task_builder import (
+    StaticReactTaskBuilder,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+
+import os
+import time
+import csv
+
+from typing import ClassVar, List, Type, Any, Dict, Iterable, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import (
+        AgentState,
+        TaskRunner,
+        TaskBuilder,
+        SharedTaskState,
+    )
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.unit import Unit
+    from omegaconf import DictConfig
+
+BLUEPRINT_TYPE_STATIC_REACT = "static_react_task"
+
+
+@dataclass
+class StaticReactBlueprintArgs(StaticBlueprintArgs):
+    """
+    StaticReactBlueprint: Tasks launched from static blueprints need
+    a prebuilt javascript bundle containing the task. We suggest building
+    with our provided useMephistoTask hook.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_REACT
+    _group: str = field(
+        default="StaticReactBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from static blueprints need
+                a prebuilt javascript bundle containing the task. We suggest building
+                with our provided useMephistoTask hook.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+
+
+@register_mephisto_abstraction()
+class StaticReactBlueprint(StaticBlueprint):
+    """Blueprint for a task that runs off of a built react javascript bundle"""
+
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = StaticReactTaskBuilder
+    ArgsClass = StaticReactBlueprintArgs
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_STATIC_REACT
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.js_bundle = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.js_bundle):
+            raise FileNotFoundError(
+                f"Specified bundle file {self.js_bundle} was not found from {os.getcwd()}"
+            )
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that static requirements are fulfilled, and source file exists"""
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        super().assert_task_args(args, shared_state)
+
+        found_task_source = args.blueprint.task_source
+        assert (
+            found_task_source is not None
+        ), "Must provide a path to a javascript bundle in `task_source`"
+
+        found_task_path = os.path.expanduser(found_task_source)
+        assert os.path.exists(
+            found_task_path
+        ), f"Provided task source {found_task_path} does not exist."
+
+        link_task_source = args.blueprint.link_task_source
+        current_architect = args.architect._architect_type
+        allowed_architects = ["local"]
+        assert link_task_source == False or (
+            link_task_source == True and current_architect in allowed_architects
+        ), f"`link_task_source={link_task_source}` is not compatible with architect type: {args.architect._architect_type}. Please check your task configuration."
+
+ +
+ +
+
+ + +
+ View Source +
class StaticReactBlueprintArgs(StaticBlueprintArgs):
+    """
+    StaticReactBlueprint: Tasks launched from static blueprints need
+    a prebuilt javascript bundle containing the task. We suggest building
+    with our provided useMephistoTask hook.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_REACT
+    _group: str = field(
+        default="StaticReactBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from static blueprints need
+                a prebuilt javascript bundle containing the task. We suggest building
+                with our provided useMephistoTask hook.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+
+ +
+ +

StaticReactBlueprint: Tasks launched from static blueprints need +a prebuilt javascript bundle containing the task. We suggest building +with our provided useMephistoTask hook.

+
+ + +
+
#   + + + StaticReactBlueprintArgs( + _blueprint_type: str = 'static_react_task', + block_qualification: str = '???', + onboarding_qualification: str = '???', + _group: str = 'StaticReactBlueprint', + units_per_assignment: int = 1, + extra_source_dir: str = '???', + data_json: str = '???', + data_jsonl: str = '???', + data_csv: str = '???', + task_source: str = '???', + link_task_source: bool = False +) +
+ + + + +
+
+
#   + + task_source: str = '???' +
+ + + + +
+ + +
+
+ + +
+ View Source +
class StaticReactBlueprint(StaticBlueprint):
+    """Blueprint for a task that runs off of a built react javascript bundle"""
+
+    TaskBuilderClass: ClassVar[Type["TaskBuilder"]] = StaticReactTaskBuilder
+    ArgsClass = StaticReactBlueprintArgs
+    BLUEPRINT_TYPE = BLUEPRINT_TYPE_STATIC_REACT
+
+    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.js_bundle = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.js_bundle):
+            raise FileNotFoundError(
+                f"Specified bundle file {self.js_bundle} was not found from {os.getcwd()}"
+            )
+
+    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that static requirements are fulfilled, and source file exists"""
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        super().assert_task_args(args, shared_state)
+
+        found_task_source = args.blueprint.task_source
+        assert (
+            found_task_source is not None
+        ), "Must provide a path to a javascript bundle in `task_source`"
+
+        found_task_path = os.path.expanduser(found_task_source)
+        assert os.path.exists(
+            found_task_path
+        ), f"Provided task source {found_task_path} does not exist."
+
+        link_task_source = args.blueprint.link_task_source
+        current_architect = args.architect._architect_type
+        allowed_architects = ["local"]
+        assert link_task_source == False or (
+            link_task_source == True and current_architect in allowed_architects
+        ), f"`link_task_source={link_task_source}` is not compatible with architect type: {args.architect._architect_type}. Please check your task configuration."
+
+ +
+ +

Blueprint for a task that runs off of a built react javascript bundle

+
+ + +
+
#   + + + StaticReactBlueprint( + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) +
+ +
+ View Source +
    def __init__(
+        self, task_run: "TaskRun", args: "DictConfig", shared_state: "SharedTaskState"
+    ):
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot initialize with a non-static state"
+        super().__init__(task_run, args, shared_state)
+        self.js_bundle = os.path.expanduser(args.blueprint.task_source)
+        if not os.path.exists(self.js_bundle):
+            raise FileNotFoundError(
+                f"Specified bundle file {self.js_bundle} was not found from {os.getcwd()}"
+            )
+
+ +
+ + + +
+
+
#   + + BLUEPRINT_TYPE: str = 'static_react_task' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +) -> None: +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(
+        cls, args: "DictConfig", shared_state: "SharedTaskState"
+    ) -> None:
+        """Ensure that static requirements are fulfilled, and source file exists"""
+        assert isinstance(
+            shared_state, SharedStaticTaskState
+        ), "Cannot assert args on a non-static state"
+        super().assert_task_args(args, shared_state)
+
+        found_task_source = args.blueprint.task_source
+        assert (
+            found_task_source is not None
+        ), "Must provide a path to a javascript bundle in `task_source`"
+
+        found_task_path = os.path.expanduser(found_task_source)
+        assert os.path.exists(
+            found_task_path
+        ), f"Provided task source {found_task_path} does not exist."
+
+        link_task_source = args.blueprint.link_task_source
+        current_architect = args.architect._architect_type
+        allowed_architects = ["local"]
+        assert link_task_source == False or (
+            link_task_source == True and current_architect in allowed_architects
+        ), f"`link_task_source={link_task_source}` is not compatible with architect type: {args.architect._architect_type}. Please check your task configuration."
+
+ +
+ +

Ensure that static requirements are fulfilled, and source file exists

+
+ + +
+ +
+
+
+ #   + + + class + StaticReactBlueprint.TaskBuilderClass(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class StaticReactTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, puts required files into
+    the server directory for deployment.
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        target_resource_dir = os.path.join(build_dir, "static")
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        # Copy the built core and the given task file to the target path
+        use_bundle = os.path.expanduser(self.args.blueprint.task_source)
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+
+        should_link_task_source = self.args.blueprint.get("link_task_source", False)
+        if should_link_task_source:
+            os.symlink(use_bundle, target_path)
+        else:
+            shutil.copy2(use_bundle, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a static task, puts required files into +the server directory for deployment.

+
+ + +
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+ +
+
+
+
+ + +
+ View Source +
class StaticReactBlueprintArgs(StaticBlueprintArgs):
+    """
+    StaticReactBlueprint: Tasks launched from static blueprints need
+    a prebuilt javascript bundle containing the task. We suggest building
+    with our provided useMephistoTask hook.
+    """
+
+    _blueprint_type: str = BLUEPRINT_TYPE_STATIC_REACT
+    _group: str = field(
+        default="StaticReactBlueprint",
+        metadata={
+            "help": """
+                Tasks launched from static blueprints need
+                a prebuilt javascript bundle containing the task. We suggest building
+                with our provided useMephistoTask hook.
+            """
+        },
+    )
+    task_source: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Path to file containing javascript bundle for the task",
+            "required": True,
+        },
+    )
+    link_task_source: bool = field(
+        default=False,
+        metadata={
+            "help": """
+                Symlinks the task_source file in your development folder to the
+                one used for the server. Useful for local development so you can run
+                a watch-based build for your task_source, allowing the UI code to
+                update without having to restart the server each time.
+            """,
+            "required": False,
+        },
+    )
+
+ +
+ +

StaticReactBlueprint: Tasks launched from static blueprints need +a prebuilt javascript bundle containing the task. We suggest building +with our provided useMephistoTask hook.

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_task_builder.html b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_task_builder.html new file mode 100644 index 000000000..f7f67f356 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/blueprints/static_react_task/static_react_task_builder.html @@ -0,0 +1,429 @@ + + + + + + + + + mephisto.abstractions.blueprints.static_react_task.static_react_task_builder API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.blueprints.static_react_task.static_react_task_builder

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.blueprint import TaskBuilder
+
+from distutils.dir_util import copy_tree
+import os
+import shutil
+
+
+class StaticReactTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, puts required files into
+    the server directory for deployment.
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        target_resource_dir = os.path.join(build_dir, "static")
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        # Copy the built core and the given task file to the target path
+        use_bundle = os.path.expanduser(self.args.blueprint.task_source)
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+
+        should_link_task_source = self.args.blueprint.get("link_task_source", False)
+        if should_link_task_source:
+            os.symlink(use_bundle, target_path)
+        else:
+            shutil.copy2(use_bundle, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +
+
+
+ #   + + + class + StaticReactTaskBuilder(mephisto.abstractions._subcomponents.task_builder.TaskBuilder): +
+ +
+ View Source +
class StaticReactTaskBuilder(TaskBuilder):
+    """
+    Builder for a static task, puts required files into
+    the server directory for deployment.
+    """
+
+    BUILT_FILE = "done.built"
+    BUILT_MESSAGE = "built!"
+
+    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        target_resource_dir = os.path.join(build_dir, "static")
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        # Copy the built core and the given task file to the target path
+        use_bundle = os.path.expanduser(self.args.blueprint.task_source)
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+
+        should_link_task_source = self.args.blueprint.get("link_task_source", False)
+        if should_link_task_source:
+            os.symlink(use_bundle, target_path)
+        else:
+            shutil.copy2(use_bundle, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Builder for a static task, puts required files into +the server directory for deployment.

+
+ + +
+
#   + + BUILT_FILE = 'done.built' +
+ + + + +
+
+
#   + + BUILT_MESSAGE = 'built!' +
+ + + + +
+
+
#   + + + def + build_in_dir(self, build_dir: str): +
+ +
+ View Source +
    def build_in_dir(self, build_dir: str):
+        """Build the frontend if it doesn't exist, then copy into the server directory"""
+        target_resource_dir = os.path.join(build_dir, "static")
+
+        # If any additional task files are required via a source_dir, copy those as well
+        extra_dir_path = self.args.blueprint.get("extra_source_dir", None)
+        if extra_dir_path is not None:
+            extra_dir_path = os.path.expanduser(extra_dir_path)
+            copy_tree(extra_dir_path, target_resource_dir)
+
+        # Copy the built core and the given task file to the target path
+        use_bundle = os.path.expanduser(self.args.blueprint.task_source)
+        target_path = os.path.join(target_resource_dir, "bundle.js")
+
+        should_link_task_source = self.args.blueprint.get("link_task_source", False)
+        if should_link_task_source:
+            os.symlink(use_bundle, target_path)
+        else:
+            shutil.copy2(use_bundle, target_path)
+
+        # Write a built file confirmation
+        with open(os.path.join(build_dir, self.BUILT_FILE), "w+") as built_file:
+            built_file.write(self.BUILT_MESSAGE)
+
+ +
+ +

Build the frontend if it doesn't exist, then copy into the server directory

+
+ + +
+
+
Inherited Members
+
+
mephisto.abstractions._subcomponents.task_builder.TaskBuilder
+
TaskBuilder
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/crowd_provider.html b/docs/web/static/python_api/mephisto/abstractions/crowd_provider.html new file mode 100644 index 000000000..106227a94 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/crowd_provider.html @@ -0,0 +1,2295 @@ + + + + + + + + + mephisto.abstractions.crowd_provider API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.crowd_provider

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from abc import ABC, abstractmethod, abstractproperty
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.abstractions.blueprint import AgentState, SharedTaskState
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.agent import Agent
+
+from typing import List, Optional, Tuple, Dict, Any, ClassVar, Type, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+@dataclass
+class ProviderArgs:
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = MISSING
+    requester_name: str = MISSING
+
+
+class CrowdProvider(ABC):
+    """
+    Base class that defines the required functionality for
+    the mephisto system to be able to interface with an
+    external crowdsourcing vendor.
+
+    Implementing the methods within, as well as supplying
+    wrapped Unit, Requester, Worker, and Agent classes
+    should ensure support for a vendor.
+    """
+
+    PROVIDER_TYPE = "__PROVIDER_BASE_CLASS__"
+
+    UnitClass: ClassVar[Type[Unit]] = Unit
+
+    RequesterClass: ClassVar[Type[Requester]] = Requester
+
+    WorkerClass: ClassVar[Type[Worker]] = Worker
+
+    AgentClass: ClassVar[Type[Agent]] = Agent
+
+    ArgsClass: ClassVar[Type[ProviderArgs]] = ProviderArgs
+
+    def __init__(self, db: "MephistoDB"):
+        """
+        Crowd provider classes should keep as much of their state
+        as possible in their non-python datastore. This way
+        the system can work even after shutdowns, and the
+        state of the system can be managed or observed from
+        other processes.
+
+        In order to set up a datastore, init should check to see
+        if one is already set (using get_datastore_for_provider)
+        and use that one if available, otherwise make a new one
+        and register it with the database.
+        """
+        self.db = db
+        if db.has_datastore_for_provider(self.PROVIDER_TYPE):
+            self.datastore = db.get_datastore_for_provider(self.PROVIDER_TYPE)
+        else:
+            self.datastore_root = db.get_db_path_for_provider(self.PROVIDER_TYPE)
+            self.datastore = self.initialize_provider_datastore(self.datastore_root)
+            db.set_datastore_for_provider(self.PROVIDER_TYPE, self.datastore)
+
+    @classmethod
+    def is_sandbox(cls) -> bool:
+        """Determine if the given crowd provider is a sandbox provider"""
+        return cls.RequesterClass.is_sandbox()
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        return
+
+    @classmethod
+    @abstractmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        raise NotImplementedError
+
+    @abstractmethod
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        Do whatever is required to initialize this provider insofar
+        as setting up local or external state is required to ensure
+        that this vendor is usable.
+
+        Local data storage should be put into the given root path.
+
+        This method should return the local data storage component that
+        is required to do any object initialization, as it will be available
+        from the MephistoDB in a db.get_provider_datastore(PROVIDER_TYPE).
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """
+        Setup any required resources for managing any additional resources
+        surrounding a specific task run.
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """
+        Destroy any resources set up specifically for this task run
+        """
+        raise NotImplementedError()
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """
+        Remove the linked qualification from the crowdprovider if it exists
+        """
+        return None
+
+ +
+ +
+
+
+ #   + + + class + ProviderArgs: +
+ +
+ View Source +
class ProviderArgs:
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = MISSING
+    requester_name: str = MISSING
+
+ +
+ +

Base class for arguments to configure Crowd Providers

+
+ + +
+
#   + + + ProviderArgs(_provider_type: str = '???', requester_name: str = '???') +
+ + + + +
+
+
#   + + requester_name: str = '???' +
+ + + + +
+
+
+
+ #   + + + class + CrowdProvider(abc.ABC): +
+ +
+ View Source +
class CrowdProvider(ABC):
+    """
+    Base class that defines the required functionality for
+    the mephisto system to be able to interface with an
+    external crowdsourcing vendor.
+
+    Implementing the methods within, as well as supplying
+    wrapped Unit, Requester, Worker, and Agent classes
+    should ensure support for a vendor.
+    """
+
+    PROVIDER_TYPE = "__PROVIDER_BASE_CLASS__"
+
+    UnitClass: ClassVar[Type[Unit]] = Unit
+
+    RequesterClass: ClassVar[Type[Requester]] = Requester
+
+    WorkerClass: ClassVar[Type[Worker]] = Worker
+
+    AgentClass: ClassVar[Type[Agent]] = Agent
+
+    ArgsClass: ClassVar[Type[ProviderArgs]] = ProviderArgs
+
+    def __init__(self, db: "MephistoDB"):
+        """
+        Crowd provider classes should keep as much of their state
+        as possible in their non-python datastore. This way
+        the system can work even after shutdowns, and the
+        state of the system can be managed or observed from
+        other processes.
+
+        In order to set up a datastore, init should check to see
+        if one is already set (using get_datastore_for_provider)
+        and use that one if available, otherwise make a new one
+        and register it with the database.
+        """
+        self.db = db
+        if db.has_datastore_for_provider(self.PROVIDER_TYPE):
+            self.datastore = db.get_datastore_for_provider(self.PROVIDER_TYPE)
+        else:
+            self.datastore_root = db.get_db_path_for_provider(self.PROVIDER_TYPE)
+            self.datastore = self.initialize_provider_datastore(self.datastore_root)
+            db.set_datastore_for_provider(self.PROVIDER_TYPE, self.datastore)
+
+    @classmethod
+    def is_sandbox(cls) -> bool:
+        """Determine if the given crowd provider is a sandbox provider"""
+        return cls.RequesterClass.is_sandbox()
+
+    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        return
+
+    @classmethod
+    @abstractmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        raise NotImplementedError
+
+    @abstractmethod
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        Do whatever is required to initialize this provider insofar
+        as setting up local or external state is required to ensure
+        that this vendor is usable.
+
+        Local data storage should be put into the given root path.
+
+        This method should return the local data storage component that
+        is required to do any object initialization, as it will be available
+        from the MephistoDB in a db.get_provider_datastore(PROVIDER_TYPE).
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """
+        Setup any required resources for managing any additional resources
+        surrounding a specific task run.
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """
+        Destroy any resources set up specifically for this task run
+        """
+        raise NotImplementedError()
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """
+        Remove the linked qualification from the crowdprovider if it exists
+        """
+        return None
+
+ +
+ +

Base class that defines the required functionality for +the mephisto system to be able to interface with an +external crowdsourcing vendor.

+ +

Implementing the methods within, as well as supplying +wrapped Unit, Requester, Worker, and Agent classes +should ensure support for a vendor.

+
+ + +
+ + +
+ View Source +
    def __init__(self, db: "MephistoDB"):
+        """
+        Crowd provider classes should keep as much of their state
+        as possible in their non-python datastore. This way
+        the system can work even after shutdowns, and the
+        state of the system can be managed or observed from
+        other processes.
+
+        In order to set up a datastore, init should check to see
+        if one is already set (using get_datastore_for_provider)
+        and use that one if available, otherwise make a new one
+        and register it with the database.
+        """
+        self.db = db
+        if db.has_datastore_for_provider(self.PROVIDER_TYPE):
+            self.datastore = db.get_datastore_for_provider(self.PROVIDER_TYPE)
+        else:
+            self.datastore_root = db.get_db_path_for_provider(self.PROVIDER_TYPE)
+            self.datastore = self.initialize_provider_datastore(self.datastore_root)
+            db.set_datastore_for_provider(self.PROVIDER_TYPE, self.datastore)
+
+ +
+ +

Crowd provider classes should keep as much of their state +as possible in their non-python datastore. This way +the system can work even after shutdowns, and the +state of the system can be managed or observed from +other processes.

+ +

In order to set up a datastore, init should check to see +if one is already set (using get_datastore_for_provider) +and use that one if available, otherwise make a new one +and register it with the database.

+
+ + +
+
+
#   + + PROVIDER_TYPE = '__PROVIDER_BASE_CLASS__' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + is_sandbox(cls) -> bool: +
+ +
+ View Source +
    @classmethod
+    def is_sandbox(cls) -> bool:
+        """Determine if the given crowd provider is a sandbox provider"""
+        return cls.RequesterClass.is_sandbox()
+
+ +
+ +

Determine if the given crowd provider is a sandbox provider

+
+ + +
+
+
#   + +
@classmethod
+ + def + assert_task_args( + cls, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState +): +
+ +
+ View Source +
    @classmethod
+    def assert_task_args(cls, args: DictConfig, shared_state: "SharedTaskState"):
+        """
+        Assert that the provided arguments are valid. Should
+        fail if a task launched with these arguments would
+        not work
+        """
+        return
+
+ +
+ +

Assert that the provided arguments are valid. Should +fail if a task launched with these arguments would +not work

+
+ + +
+
+
#   + +
@classmethod
+
@abstractmethod
+ + def + get_wrapper_js_path(cls): +
+ +
+ View Source +
    @classmethod
+    @abstractmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        raise NotImplementedError
+
+ +
+ +

Return the path to the wrap_crowd_source.js file for this +provider to be deployed to the server

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + initialize_provider_datastore(self, storage_path: str) -> Any: +
+ +
+ View Source +
    @abstractmethod
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        Do whatever is required to initialize this provider insofar
+        as setting up local or external state is required to ensure
+        that this vendor is usable.
+
+        Local data storage should be put into the given root path.
+
+        This method should return the local data storage component that
+        is required to do any object initialization, as it will be available
+        from the MephistoDB in a db.get_provider_datastore(PROVIDER_TYPE).
+        """
+        raise NotImplementedError()
+
+ +
+ +

Do whatever is required to initialize this provider insofar +as setting up local or external state is required to ensure +that this vendor is usable.

+ +

Local data storage should be put into the given root path.

+ +

This method should return the local data storage component that +is required to do any object initialization, as it will be available +from the MephistoDB in a db.get_provider_datastore(PROVIDER_TYPE).

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + setup_resources_for_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + server_url: str +) -> None: +
+ +
+ View Source +
    @abstractmethod
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: DictConfig,
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """
+        Setup any required resources for managing any additional resources
+        surrounding a specific task run.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Setup any required resources for managing any additional resources +surrounding a specific task run.

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + cleanup_resources_from_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + server_url: str +) -> None: +
+ +
+ View Source +
    @abstractmethod
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """
+        Destroy any resources set up specifically for this task run
+        """
+        raise NotImplementedError()
+
+ +
+ +

Destroy any resources set up specifically for this task run

+
+ + +
+
+
#   + + + def + cleanup_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def cleanup_qualification(self, qualification_name: str) -> None:
+        """
+        Remove the linked qualification from the crowdprovider if it exists
+        """
+        return None
+
+ +
+ +

Remove the linked qualification from the crowdprovider if it exists

+
+ + +
+
+
+ + +
+ View Source +
class Unit(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Unit and data model access via ...Unit(db, id) is "
+                "now deprecated in favor of calling Unit.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_unit(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["unit_id"]
+        self.assignment_id: str = row["assignment_id"]
+        self.unit_index: int = row["unit_index"]
+        self.pay_amount: float = row["pay_amount"]
+        self.agent_id: Optional[str] = row["agent_id"]
+        self.provider_type: str = row["provider_type"]
+        self.db_status: str = row["status"]
+        self.task_type: str = row["task_type"]
+        self.task_id: str = row["task_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.requester_id: str = row["requester_id"]
+        self.worker_id: str = row["worker_id"]
+
+        # Deferred loading of related entities
+        self.__task: Optional["Task"] = None
+        self.__task_run: Optional["TaskRun"] = None
+        self.__assignment: Optional["Assignment"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__agent: Optional["Agent"] = None
+        self.__worker: Optional["Worker"] = None
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_crowd_provider_class(self) -> Type["CrowdProvider"]:
+        """Get the CrowdProvider class that manages this Unit"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        return get_crowd_provider_from_type(self.provider_type)
+
+    def get_assignment_data(self) -> "InitializationData":
+        """Return the specific assignment data for this assignment"""
+        return self.get_assignment().get_assignment_data()
+
+    def sync_status(self) -> None:
+        """
+        Ensure that the queried status from this unit and the db status
+        are up to date
+        """
+        # TODO(#102) this will need to be run periodically/on crashes
+        # to sync any lost state
+        self.set_db_status(self.get_status())
+
+    def get_db_status(self) -> str:
+        """
+        Return the status as currently stored in the database
+        """
+        if self.db_status in AssignmentState.final_unit():
+            return self.db_status
+        row = self.db.get_unit(self.db_id)
+        assert row is not None, f"Unit {self.db_id} stopped existing in the db..."
+        return row["status"]
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        assert (
+            status in AssignmentState.valid_unit()
+        ), f"{status} not valid Assignment Status, not in {AssignmentState.valid_unit()}"
+        if status == self.db_status:
+            return
+        logger.debug(f"Updating status for {self} to {status}")
+        ACTIVE_UNIT_STATUSES.labels(
+            status=self.db_status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).inc()
+        self.db_status = status
+        self.db.update_unit(self.db_id, status=status)
+
+    def _mark_agent_assignment(self) -> None:
+        """Special helper to mark the transition from LAUNCHED to ASSIGNED"""
+        assert (
+            self.db_status == AssignmentState.LAUNCHED
+        ), "can only mark LAUNCHED units"
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.LAUNCHED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.ASSIGNED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).inc()
+
+    def get_assignment(self) -> "Assignment":
+        """
+        Return the assignment that this Unit is part of.
+        """
+        if self.__assignment is None:
+            from mephisto.data_model.assignment import Assignment
+
+            self.__assignment = Assignment.get(self.db, self.assignment_id)
+        return self.__assignment
+
+    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            if self.__assignment is not None:
+                self.__task_run = self.__assignment.get_task_run()
+            else:
+                self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+    def get_task(self) -> Task:
+        """
+        Return the task that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__assignment is not None:
+                self.__task = self.__assignment.get_task()
+            elif self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_requester(self) -> "Requester":
+        """
+        Return the requester who offered this Unit
+        """
+        if self.__requester is None:
+            if self.__assignment is not None:
+                self.__requester = self.__assignment.get_requester()
+            elif self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def clear_assigned_agent(self) -> None:
+        """Clear the agent that is assigned to this unit"""
+        logger.debug(f"Clearing assigned agent {self.agent_id} from {self}")
+        self.db.clear_unit_agent_assignment(self.db_id)
+        self.get_task_run().clear_reservation(self)
+        self.agent_id = None
+        self.__agent = None
+
+    def get_assigned_agent(self) -> Optional[Agent]:
+        """
+        Get the agent assigned to this Unit if there is one, else return None
+        """
+        # In these statuses, we know the agent isn't changing anymore, and thus will
+        # not need to be re-queried
+        if self.db_status in AssignmentState.final_unit():
+            if self.agent_id is None:
+                return None
+            return Agent.get(self.db, self.agent_id)
+
+        # Query the database to get the most up-to-date assignment, as this can
+        # change after instantiation if the Unit status isn't final
+        unit_copy = Unit.get(self.db, self.db_id)
+        self.agent_id = unit_copy.agent_id
+        if self.agent_id is not None:
+            return Agent.get(self.db, self.agent_id)
+        return None
+
+    @staticmethod
+    def _register_unit(
+        db: "MephistoDB",
+        assignment: "Assignment",
+        index: int,
+        pay_amount: float,
+        provider_type: str,
+    ) -> "Unit":
+        """
+        Create an entry for this unit in the database
+        """
+        db_id = db.new_unit(
+            assignment.task_id,
+            assignment.task_run_id,
+            assignment.requester_id,
+            assignment.db_id,
+            index,
+            pay_amount,
+            provider_type,
+            assignment.task_type,
+            sandbox=assignment.sandbox,
+        )
+        unit = Unit.get(db, db_id)
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.CREATED, unit_type=INDEX_TO_TYPE_MAP[index]
+        ).inc()
+        logger.debug(f"Registered new unit {unit} for {assignment}.")
+        return unit
+
+    def get_pay_amount(self) -> float:
+        """
+        Return the amount that this Unit is costing against the budget,
+        calculating additional fees as relevant
+        """
+        return self.pay_amount
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes may need to override the following
+
+    def get_status(self) -> str:
+        """
+        Get the status of this unit, as determined by whether there's
+        a worker working on it at the moment, and any other possible states. Should
+        return one of UNIT_STATUSES
+
+        Accurate status is crowd-provider dependent, and thus this method should be
+        defined in the child class to ensure that the local record matches
+        the ground truth in the provider
+        """
+        from mephisto.abstractions.blueprint import AgentState
+
+        db_status = self.db_status
+
+        # Expiration is a terminal state, and shouldn't be changed
+        if db_status == AssignmentState.EXPIRED:
+            return db_status
+
+        computed_status = AssignmentState.LAUNCHED
+
+        agent = self.get_assigned_agent()
+        if agent is None:
+            row = self.db.get_unit(self.db_id)
+            computed_status = row["status"]
+        else:
+            agent_status = agent.get_status()
+            if agent_status == AgentState.STATUS_NONE:
+                computed_status = AssignmentState.LAUNCHED
+            elif agent_status in [
+                AgentState.STATUS_ACCEPTED,
+                AgentState.STATUS_ONBOARDING,
+                AgentState.STATUS_PARTNER_DISCONNECT,
+                AgentState.STATUS_WAITING,
+                AgentState.STATUS_IN_TASK,
+            ]:
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status in [AgentState.STATUS_COMPLETED]:
+                computed_status = AssignmentState.COMPLETED
+            elif agent_status in [AgentState.STATUS_SOFT_REJECTED]:
+                computed_status = AssignmentState.SOFT_REJECTED
+            elif agent_status in [AgentState.STATUS_EXPIRED]:
+                computed_status = AssignmentState.EXPIRED
+            elif agent_status in [
+                AgentState.STATUS_DISCONNECT,
+                AgentState.STATUS_RETURNED,
+                AgentState.STATUS_TIMEOUT,
+            ]:
+                # Still assigned, as we expect the task launcher to explicitly
+                # update our status to expired or to remove the agent
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status == AgentState.STATUS_APPROVED:
+                computed_status = AssignmentState.ACCEPTED
+            elif agent_status == AgentState.STATUS_REJECTED:
+                computed_status = AssignmentState.REJECTED
+
+        if computed_status != db_status:
+            self.set_db_status(computed_status)
+
+        return computed_status
+
+    # Children classes should implement the below methods
+
+    def launch(self, task_url: str) -> None:
+        """
+        Make this Unit available on the crowdsourcing vendor. Depending on
+        the task type, this could mean a number of different setup steps.
+
+        Some crowd providers require setting up a configuration for the
+        very first launch, and this method should call a helper to manage
+        that step if necessary.
+        """
+        raise NotImplementedError()
+
+    def expire(self) -> float:
+        """
+        Expire this unit, removing it from being workable on the vendor.
+        Return the maximum time needed to wait before we know it's taken down.
+        """
+        raise NotImplementedError()
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """
+        Create a Unit for the given assignment
+
+        Implementation should return the result of _register_unit when sure the unit
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+ +

It should be extended for usage with a specific crowd provider

+
+ + + +
+
+
+ #   + + + class + CrowdProvider.RequesterClass(mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin): +
+ +
+ View Source +
class Requester(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass: ClassVar[Type["RequesterArgs"]] = RequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Requester and data model access via Requester(db, id) is "
+                "now deprecated in favor of calling Requester.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_requester(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["requester_id"]
+        self.provider_type: str = row["provider_type"]
+        self.requester_name: str = row["requester_name"]
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_task_runs(self) -> List["TaskRun"]:
+        """
+        Return the list of task runs that are run by this requester
+        """
+        return self.db.find_task_runs(requester_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent by this requester
+        across all tasks.
+        """
+        task_runs = self.db.find_task_runs(requester_id=self.db_id)
+        total_spend = 0.0
+        for run in task_runs:
+            total_spend += run.get_total_spend()
+        return total_spend
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """
+        Determine if this is a requester on a sandbox/test account
+        """
+        return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    @staticmethod
+    def _register_requester(
+        db: "MephistoDB", requester_id: str, provider_type: str
+    ) -> "Requester":
+        """
+        Create an entry for this requester in the database
+        """
+        db_id = db.new_requester(requester_id, provider_type)
+        requester = Requester.get(db, db_id)
+        logger.debug(f"Registered new requester {requester}")
+        return requester
+
+    # Children classes should implement the following methods
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+
+        Should throw an exception if something is wrong with provided registration arguments.
+        """
+        raise NotImplementedError()
+
+    def is_registered(self) -> bool:
+        """Check to see if this requester has already been registered"""
+        raise NotImplementedError()
+
+    def get_available_budget(self) -> float:
+        """
+        Return the funds that this requester profile has available for usage with
+        its crowdsourcing vendor
+        """
+        raise NotImplementedError()
+
+    def to_dict(self) -> Dict[str, Any]:
+        """
+        Produce a dict of this requester and important features for json serialization
+        """
+        return {
+            "requester_id": self.db_id,
+            "provider_type": self.provider_type,
+            "requester_name": self.requester_name,
+            "registered": self.is_registered(),
+        }
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        """
+        Try to create a new requester by this name, raise an exception if
+        the name already exists.
+
+        Implementation should call _register_requester(db, requester_id) when sure the requester
+        can be successfully created to have it put into the db and return the result.
+        """
+        raise NotImplementedError()
+
+ +
+ +

High level class representing a requester on some kind of crowd provider. Sets some default +initializations, but mostly should be extended by the specific requesters for crowd providers +with whatever implementation details are required to get those to work.

+
+ + + +
+
+
+ #   + + + class + CrowdProvider.WorkerClass(mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin): +
+ +
+ View Source +
class Worker(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Worker and data model access via ...Worker(db, id) is "
+                "now deprecated in favor of calling Worker.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_worker(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["worker_id"]
+        self.provider_type = row["provider_type"]
+        self.worker_name = row["worker_name"]
+        # TODO(#568) Do we want any other attributes here?
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    # TODO(#568) make getters for helpful worker statistics
+
+    def get_agents(self, status: Optional[str] = None) -> List["Agent"]:
+        """
+        Get the list of agents that this worker was responsible for, by the given status
+        if needed
+        """
+        assert status is None or status in AgentState.valid(), "Invalid agent status"
+        return self.db.find_agents(worker_id=self.db_id, status=status)
+
+    @staticmethod
+    def _register_worker(
+        db: "MephistoDB", worker_name: str, provider_type: str
+    ) -> "Worker":
+        """
+        Create an entry for this worker in the database
+        """
+        db_id = db.new_worker(worker_name, provider_type)
+        worker = Worker.get(db, db_id)
+        logger.debug(f"Registered new worker {worker}")
+        return worker
+
+    @classmethod
+    def new_from_provider_data(
+        cls, db: "MephistoDB", creation_data: Dict[str, Any]
+    ) -> "Worker":
+        """
+        Given the parameters passed through wrap_crowd_source.js, construct
+        a new worker
+
+        Basic case simply takes the worker id and registers it
+        """
+        return cls.new(db, creation_data["worker_name"])
+
+    def get_granted_qualification(
+        self, qualification_name: str
+    ) -> Optional["GrantedQualification"]:
+        """Return the granted qualification for this worker for the given name"""
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            return None
+        qualification = found_qualifications[0]
+        granted_qualifications = self.db.check_granted_qualifications(
+            qualification.db_id, self.db_id
+        )
+        if len(granted_qualifications) == 0:
+            return None
+        return granted_qualifications[0]
+
+    def is_disqualified(self, qualification_name: str):
+        """
+        Find out if the given worker has been disqualified by the given qualification
+
+        Returns True if the qualification exists and has a falsey value
+        Returns False if the qualification doesn't exist or has a truthy value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return not qualification.value
+
+    def is_qualified(self, qualification_name: str):
+        """
+        Find out if the given worker has qualified by the given qualification
+
+        Returns True if the qualification exists and is truthy value
+        Returns False if the qualification doesn't exist or falsey value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return bool(qualification.value)
+
+    def revoke_qualification(self, qualification_name) -> bool:
+        """
+        Remove this user's qualification if it exists
+
+        Returns True if removal happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        granted_qualification = self.get_granted_qualification(qualification_name)
+        if granted_qualification is None:
+            return False
+
+        logger.debug(f"Revoking qualification {qualification_name} from worker {self}.")
+        self.db.revoke_qualification(granted_qualification.qualification_id, self.db_id)
+        try:
+            self.revoke_crowd_qualification(qualification_name)
+            return True
+        except Exception as e:
+            logger.exception(
+                f"Found error while trying to revoke qualification: {repr(e)}",
+                exc_info=True,
+            )
+            return False
+        return True
+
+    def grant_qualification(
+        self, qualification_name: str, value: int = 1, skip_crowd=False
+    ):
+        """
+        Grant a positive or negative qualification to this worker
+
+        Returns True if granting happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            raise Exception(
+                f"No qualification by the name {qualification_name} found in the db"
+            )
+
+        logger.debug(
+            f"Granting worker {self} qualification {qualification_name}: {value}"
+        )
+        qualification = found_qualifications[0]
+        self.db.grant_qualification(qualification.db_id, self.db_id, value=value)
+        if not skip_crowd:
+            try:
+                self.grant_crowd_qualification(qualification_name, value)
+                return True
+            except Exception as e:
+                logger.exception(
+                    f"Found error while trying to grant qualification: {repr(e)}",
+                    exc_info=True,
+                )
+                return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    # Children classes can implement the following methods
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be granted
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be revoked
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    # Children classes should implement the following methods
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        raise NotImplementedError()
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        raise NotImplementedError()
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason"""
+        raise NotImplementedError()
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        raise NotImplementedError()
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        raise NotImplementedError()
+
+    def register(self, args: Optional[Dict[str, str]] = None) -> None:
+        """Register this worker with the crowdprovider, if necessary"""
+        pass
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_name: str) -> "Worker":
+        """
+        Create a new worker attached to the given identifier, assuming it doesn't already
+        exist in the database.
+
+        Implementation should return the result of _register_worker when sure the worker
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + + +
+
+
+ #   + + + class + CrowdProvider.AgentClass(mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin): +
+ +
+ View Source +
class Agent(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Agent and data model access via ...Agent(db, id) was "
+                "now deprecated in favor of calling Agent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.unit_id: str = row["unit_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.assignment_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._unit: Optional["Unit"] = None
+        self._assignment: Optional["Assignment"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization is deferred
+        self._state = None  # type: ignore
+
+    @property
+    def state(self) -> "AgentState":
+        if self._state is None:
+            self._state = AgentState(self)  # type: ignore
+        return cast("AgentState", self._state)
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+    def get_agent_id(self) -> str:
+        """Return this agent's id"""
+        return self.db_id
+
+    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+    def get_unit(self) -> "Unit":
+        """
+        Return the Unit that this agent is working on.
+        """
+        if self._unit is None:
+            from mephisto.data_model.unit import Unit
+
+            self._unit = Unit.get(self.db, self.unit_id)
+        return self._unit
+
+    def get_assignment(self) -> "Assignment":
+        """Return the assignment this agent is working on"""
+        if self._assignment is None:
+            if self._unit is not None:
+                self._assignment = self._unit.get_assignment()
+            else:
+                from mephisto.data_model.assignment import Assignment
+
+                self._assignment = Assignment.get(self.db, self.assignment_id)
+        return self._assignment
+
+    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            if self._unit is not None:
+                self._task_run = self._unit.get_task_run()
+            elif self._assignment is not None:
+                self._task_run = self._assignment.get_task_run()
+            else:
+                from mephisto.data_model.task_run import TaskRun
+
+                self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._unit is not None:
+                self._task = self._unit.get_task()
+            elif self._assignment is not None:
+                self._task = self._assignment.get_task()
+            elif self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        assignment_dir = self.get_assignment().get_data_dir()
+        return os.path.join(assignment_dir, self.db_id)
+
+    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.push_status_update(self)
+            )
+        if new_status in [
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+        ]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+            if old_status == AgentState.STATUS_WAITING:
+                # Waiting agents' unit can be reassigned, as no work
+                # has been done yet.
+                unit = self.get_unit()
+                logger.debug(f"Clearing {self} from {unit} for update to {new_status}")
+                unit.clear_assigned_agent()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="main").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="main").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(worker_id=self.worker_id, agent_type="main").dec()
+
+    @staticmethod
+    def _register_agent(
+        db: "MephistoDB", worker: Worker, unit: "Unit", provider_type: str
+    ) -> "Agent":
+        """
+        Create this agent in the mephisto db with the correct setup
+        """
+        unit._mark_agent_assignment()
+        db_id = db.new_agent(
+            worker.db_id,
+            unit.db_id,
+            unit.task_id,
+            unit.task_run_id,
+            unit.assignment_id,
+            unit.task_type,
+            provider_type,
+        )
+        a = Agent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="main"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="main").inc()
+        logger.debug(f"Registered new agent {a} for {unit}.")
+        a.update_status(AgentState.STATUS_ACCEPTED)
+        return a
+
+    # Specialized child cases may need to implement the following
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: Worker,
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        agent = cls.new(db, worker, unit)
+        unit.worker_id = worker.db_id
+        agent._unit = unit
+        return agent
+
+    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            # various disconnect cases
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if self._associated_live_run is not None:
+                    live_run = self.get_live_run()
+                    live_run.loop_wrap.execute_coro(
+                        live_run.worker_pool.push_status_update(self)
+                    )
+            self.db_status = row["status"]
+        return self.db_status
+
+    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes should implement the following methods
+
+    def approve_work(self) -> None:
+        """Approve the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def soft_reject_work(self) -> None:
+        """
+        Pay a worker for attempted work, but mark it as below the
+        quality bar for this assignment
+        """
+        # TODO(OWN) extend this method to assign a soft block
+        # qualification automatically if a threshold of
+        # soft rejects as a proportion of total accepts
+        # is exceeded
+        self.approve_work()
+        self.update_status(AgentState.STATUS_SOFT_REJECTED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def mark_done(self) -> None:
+        """
+        Take any required step with the crowd_provider to ensure that
+        the worker can submit their work and be marked as complete via
+        a call to get_status
+        """
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, unit: "Unit") -> "Agent":
+        """
+        Create an agent for this worker to be used for work on the given Unit.
+
+        Implementation should return the result of _register_agent when sure the agent
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + + +
+
+
+ #   + + + class + CrowdProvider.ArgsClass: +
+ +
+ View Source +
class ProviderArgs:
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = MISSING
+    requester_name: str = MISSING
+
+ +
+ +

Base class for arguments to configure Crowd Providers

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/database.html b/docs/web/static/python_api/mephisto/abstractions/database.html new file mode 100644 index 000000000..4b38315d8 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/database.html @@ -0,0 +1,4349 @@ + + + + + + + + + mephisto.abstractions.database API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.database

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import os
+import sqlite3
+from prometheus_client import Histogram  # type: ignore
+
+from abc import ABC, abstractmethod
+from mephisto.utils.dirs import get_data_dir
+from mephisto.operations.registry import (
+    get_crowd_provider_from_type,
+    get_valid_provider_types,
+)
+from typing import Mapping, Optional, Any, List, Dict
+from mephisto.data_model.agent import Agent, OnboardingAgent
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.assignment import Assignment
+from mephisto.data_model.project import Project
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.qualification import Qualification, GrantedQualification
+
+
+# TODO(#101) investigate cursors for DB queries as the project scales
+
+
+class MephistoDBException(Exception):
+    pass
+
+
+class EntryAlreadyExistsException(MephistoDBException):
+    pass
+
+
+class EntryDoesNotExistException(MephistoDBException):
+    pass
+
+
+# Initialize histogram for database latency
+DATABASE_LATENCY = Histogram(
+    "database_latency_seconds", "Logging for db requests", ["method"]
+)
+# Need all the specific decorators b/c cascading is not allowed in decorators
+# thanks to https://mail.python.org/pipermail/python-dev/2004-August/046711.html
+NEW_PROJECT_LATENCY = DATABASE_LATENCY.labels(method="new_project")
+GET_PROJECT_LATENCY = DATABASE_LATENCY.labels(method="get_project")
+FIND_PROJECTS_LATENCY = DATABASE_LATENCY.labels(method="find_projects")
+NEW_TASK_LATENCY = DATABASE_LATENCY.labels(method="new_task")
+GET_TASK_LATENCY = DATABASE_LATENCY.labels(method="get_task")
+FIND_TASKS_LATENCY = DATABASE_LATENCY.labels(method="find_tasks")
+UPDATE_TASK_LATENCY = DATABASE_LATENCY.labels(method="update_task")
+NEW_TASK_RUN_LATENCY = DATABASE_LATENCY.labels(method="new_task_run")
+GET_TASK_RUN_LATENCY = DATABASE_LATENCY.labels(method="get_task_run")
+FIND_TASK_RUNS_LATENCY = DATABASE_LATENCY.labels(method="find_task_runs")
+UPDATE_TASK_RUN_LATENCY = DATABASE_LATENCY.labels(method="update_task_run")
+NEW_ASSIGNMENT_LATENCY = DATABASE_LATENCY.labels(method="new_assignment")
+GET_ASSIGNMENT_LATENCY = DATABASE_LATENCY.labels(method="get_assignment")
+FIND_ASSIGNMENTS_LATENCY = DATABASE_LATENCY.labels(method="find_assignments")
+NEW_UNIT_LATENCY = DATABASE_LATENCY.labels(method="new_unit")
+GET_UNIT_LATENCY = DATABASE_LATENCY.labels(method="get_unit")
+FIND_UNITS_LATENCY = DATABASE_LATENCY.labels(method="find_units")
+UPDATE_UNIT_LATENCY = DATABASE_LATENCY.labels(method="update_unit")
+NEW_REQUESTER_LATENCY = DATABASE_LATENCY.labels(method="new_requester")
+GET_REQUESTER_LATENCY = DATABASE_LATENCY.labels(method="get_requester")
+FIND_REQUESTERS_LATENCY = DATABASE_LATENCY.labels(method="find_requesters")
+NEW_WORKER_LATENCY = DATABASE_LATENCY.labels(method="new_worker")
+GET_WORKER_LATENCY = DATABASE_LATENCY.labels(method="get_worker")
+FIND_WORKERS_LATENCY = DATABASE_LATENCY.labels(method="find_workers")
+NEW_AGENT_LATENCY = DATABASE_LATENCY.labels(method="new_agent")
+GET_AGENT_LATENCY = DATABASE_LATENCY.labels(method="get_agent")
+FIND_AGENTS_LATENCY = DATABASE_LATENCY.labels(method="find_agents")
+UPDATE_AGENT_LATENCY = DATABASE_LATENCY.labels(method="update_agent")
+CLEAR_UNIT_AGENT_ASSIGNMENT_LATENCY = DATABASE_LATENCY.labels(
+    method="clear_unit_agent_assignment"
+)
+NEW_ONBOARDING_AGENT_LATENCY = DATABASE_LATENCY.labels(method="new_onboarding_agent")
+GET_ONBOARDING_AGENT_LATENCY = DATABASE_LATENCY.labels(method="get_onboarding_agent")
+FIND_ONBOARDING_AGENTS_LATENCY = DATABASE_LATENCY.labels(
+    method="find_onboarding_agents"
+)
+UPDATE_ONBOARDING_AGENT_LATENCY = DATABASE_LATENCY.labels(
+    method="update_onboarding_agent"
+)
+MAKE_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(method="make_qualification")
+GET_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(method="get_qualification")
+FIND_QUALIFICATIONS_LATENCY = DATABASE_LATENCY.labels(method="find_qualifications")
+DELETE_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(method="delete_qualification")
+GRANT_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(method="grant_qualification")
+CHECK_GRANTED_QUALIFICATIONS_LATENCY = DATABASE_LATENCY.labels(
+    method="check_granted_qualifications"
+)
+GET_GRANTED_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(
+    method="get_granted_qualification"
+)
+REVOKE_QUALIFICATION_LATENCY = DATABASE_LATENCY.labels(method="revoke_qualification")
+
+
+class MephistoDB(ABC):
+    """
+    Provides the interface for all queries that are necessary for the Mephisto
+    architecture to run as expected. All other databases should implement
+    these methods to be used as the database that backs Mephisto.
+
+    By default, we use a LocalMesphistoDB located at `mephisto/data/database.db`
+    """
+
+    def __init__(self, database_path=None):
+        """Ensure the database is set up and ready to handle data"""
+        if database_path is None:
+            database_path = os.path.join(get_data_dir(), "database.db")
+        self.db_path = database_path
+        self.db_root = os.path.dirname(self.db_path)
+        self.init_tables()
+        self.__provider_datastores: Dict[str, Any] = {}
+
+    def get_db_path_for_provider(self, provider_type) -> str:
+        """Get the path to store data for a specific provider in"""
+        database_root = os.path.dirname(self.db_path)
+        provider_root = os.path.join(database_root, provider_type)
+        os.makedirs(provider_root, exist_ok=True)
+        return provider_root
+
+    def has_datastore_for_provider(self, provider_type: str) -> bool:
+        """Determine if a datastore has been registered for the given provider"""
+        return provider_type in self.__provider_datastores
+
+    def get_datastore_for_provider(self, provider_type: str) -> Any:
+        """Get the provider datastore registered with this db"""
+        if provider_type not in self.__provider_datastores:
+            # Register this provider for usage now
+            ProviderClass = get_crowd_provider_from_type(provider_type)
+            provider = ProviderClass(self)
+        return self.__provider_datastores.get(provider_type)
+
+    def set_datastore_for_provider(self, provider_type: str, datastore: Any) -> None:
+        """Set the provider datastore registered with this db"""
+        self.__provider_datastores[provider_type] = datastore
+
+    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        return None
+
+    def cache_result(self, target_cls, value) -> None:
+        """Opportunity to store the result class from a load"""
+        return None
+
+    @abstractmethod
+    def shutdown(self) -> None:
+        """Do whatever is required to close this database's resources"""
+        raise NotImplementedError()
+
+    @abstractmethod
+    def init_tables(self) -> None:
+        """
+        Initialize any tables that may be required to run this database. If this is an expensive
+        operation, check to see if they already exist before trying to initialize
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def _new_project(self, project_name: str) -> str:
+        """new_project implementation"""
+        raise NotImplementedError()
+
+    @NEW_PROJECT_LATENCY.time()
+    def new_project(self, project_name: str) -> str:
+        """
+        Create a new project with the given project name. Raise EntryAlreadyExistsException if a project
+        with this name has already been created.
+
+        Project names are permanent, as changing directories later is painful.
+        """
+        return self._new_project(project_name=project_name)
+
+    @abstractmethod
+    def _get_project(self, project_id: str) -> Mapping[str, Any]:
+        """get_project implementation"""
+        raise NotImplementedError()
+
+    @GET_PROJECT_LATENCY.time()
+    def get_project(self, project_id: str) -> Mapping[str, Any]:
+        """
+        Return project's fields by the given project_id, raise EntryDoesNotExistException if no id exists
+        in projects
+
+        See Project for the expected returned mapping's fields
+        """
+        return self._get_project(project_id=project_id)
+
+    @abstractmethod
+    def _find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """find_projects implementation"""
+        raise NotImplementedError()
+
+    @FIND_PROJECTS_LATENCY.time()
+    def find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """
+        Try to find any project that matches the above. When called with no arguments,
+        return all projects.
+        """
+        return self._find_projects(project_name=project_name)
+
+    @abstractmethod
+    def _new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """new_task implementation"""
+        raise NotImplementedError()
+
+    @NEW_TASK_LATENCY.time()
+    def new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """
+        Create a new task with the given task name. Raise EntryAlreadyExistsException if a task
+        with this name has already been created.
+        """
+        return self._new_task(
+            task_name=task_name, task_type=task_type, project_id=project_id
+        )
+
+    @abstractmethod
+    def _get_task(self, task_id: str) -> Mapping[str, Any]:
+        """get_task implementation"""
+        raise NotImplementedError()
+
+    @GET_TASK_LATENCY.time()
+    def get_task(self, task_id: str) -> Mapping[str, Any]:
+        """
+        Return task's fields by task_id, raise EntryDoesNotExistException if no id exists
+        in tasks
+
+        See Task for the expected fields for the returned mapping
+        """
+        return self._get_task(task_id=task_id)
+
+    @abstractmethod
+    def _find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """find_tasks implementation"""
+        raise NotImplementedError()
+
+    @FIND_TASKS_LATENCY.time()
+    def find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_tasks(task_name=task_name, project_id=project_id)
+
+    @abstractmethod
+    def _update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """update_task implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_TASK_LATENCY.time()
+    def update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+
+        Should only be runable if no runs have been created for this task
+        """
+        self._update_task(task_id=task_id, task_name=task_name, project_id=project_id)
+
+    @abstractmethod
+    def _new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_task_run implementation"""
+        raise NotImplementedError()
+
+    @NEW_TASK_RUN_LATENCY.time()
+    def new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new task_run for the given task.
+
+        Once a run is created, it should no longer be altered. The assignments and
+        subassignments depend on the data set up within, as the launched task
+        cannot be replaced and the requester can not be swapped mid-run.
+        """
+        return self._new_task_run(
+            task_id=task_id,
+            requester_id=requester_id,
+            init_params=init_params,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """get_task_run implementation"""
+        raise NotImplementedError()
+
+    @GET_TASK_RUN_LATENCY.time()
+    def get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """
+        Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists
+        in task_runs.
+
+        See TaskRun for the expected fields to populate in the returned mapping
+        """
+        return self._get_task_run(task_run_id=task_run_id)
+
+    @abstractmethod
+    def _find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """find_task_runs implementation"""
+        raise NotImplementedError()
+
+    @FIND_TASK_RUNS_LATENCY.time()
+    def find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """
+        Try to find any task_run that matches the above. When called with no arguments,
+        return all task_runs.
+        """
+        return self._find_task_runs(
+            task_id=task_id, requester_id=requester_id, is_completed=is_completed
+        )
+
+    @abstractmethod
+    def _update_task_run(self, task_run_id: str, is_completed: bool):
+        """update_task_run implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_TASK_RUN_LATENCY.time()
+    def update_task_run(self, task_run_id: str, is_completed: bool):
+        """
+        Update a task run. At the moment, can only update completion status
+        """
+        return self._update_task_run(task_run_id=task_run_id, is_completed=is_completed)
+
+    @abstractmethod
+    def _new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_assignment implementation"""
+        raise NotImplementedError()
+
+    @NEW_ASSIGNMENT_LATENCY.time()
+    def new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new assignment for the given task
+
+        Assignments should not be edited or altered once created
+        """
+        return self._new_assignment(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """get_assignment implementation"""
+        raise NotImplementedError()
+
+    @GET_ASSIGNMENT_LATENCY.time()
+    def get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """
+        Return assignment's fields by assignment_id, raise EntryDoesNotExistException if
+        no id exists in tasks
+
+        See Assignment for the expected fields for the returned mapping
+        """
+        return self._get_assignment(assignment_id=assignment_id)
+
+    @abstractmethod
+    def _find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """find_assignments implementation"""
+        raise NotImplementedError()
+
+    @FIND_ASSIGNMENTS_LATENCY.time()
+    def find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_assignments(
+            task_run_id=task_run_id,
+            task_id=task_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_unit implementation"""
+        raise NotImplementedError()
+
+    @NEW_UNIT_LATENCY.time()
+    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        return self._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """get_unit implementation"""
+        raise NotImplementedError()
+
+    @GET_UNIT_LATENCY.time()
+    def get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """
+        Return unit's fields by unit_id, raise EntryDoesNotExistException
+        if no id exists in units
+
+        See unit for the expected fields for the returned mapping
+        """
+        return self._get_unit(unit_id=unit_id)
+
+    @abstractmethod
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """find_units implementation"""
+        raise NotImplementedError()
+
+    @FIND_UNITS_LATENCY.time()
+    def find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Try to find any unit that matches the above. When called with no arguments,
+        return all units.
+        """
+        return self._find_units(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            provider_type=provider_type,
+            task_type=task_type,
+            agent_id=agent_id,
+            worker_id=worker_id,
+            sandbox=sandbox,
+            status=status,
+        )
+
+    @abstractmethod
+    def _clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """clear_unit_agent_assignment implementation"""
+        raise NotImplementedError()
+
+    @CLEAR_UNIT_AGENT_ASSIGNMENT_LATENCY.time()
+    def clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """
+        Update the given unit by removing the agent that is assigned to it, thus updating
+        the status to assignable.
+        """
+        return self._clear_unit_agent_assignment(unit_id=unit_id)
+
+    @abstractmethod
+    def _update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """update_unit implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_UNIT_LATENCY.time()
+    def update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_unit(unit_id=unit_id, status=status)
+
+    @abstractmethod
+    def _new_requester(self, requester_name: str, provider_type: str) -> str:
+        """new_requester implementation"""
+        raise NotImplementedError()
+
+    @NEW_REQUESTER_LATENCY.time()
+    def new_requester(self, requester_name: str, provider_type: str) -> str:
+        """
+        Create a new requester with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a requester with this name
+        """
+        return self._new_requester(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+    @abstractmethod
+    def _get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """get_requester implementation"""
+        raise NotImplementedError()
+
+    @GET_REQUESTER_LATENCY.time()
+    def get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """
+        Return requester's fields by requester_id, raise EntryDoesNotExistException
+        if no id exists in requesters
+
+        See requester for the expected fields for the returned mapping
+        """
+        return self._get_requester(requester_id=requester_id)
+
+    @abstractmethod
+    def _find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """find_requesters implementation"""
+        raise NotImplementedError()
+
+    @FIND_REQUESTERS_LATENCY.time()
+    def find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """
+        Try to find any requester that matches the above. When called with no arguments,
+        return all requesters.
+        """
+        return self._find_requesters(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+    @abstractmethod
+    def _new_worker(self, worker_name: str, provider_type: str) -> str:
+        """new_worker implementation"""
+        raise NotImplementedError()
+
+    @NEW_WORKER_LATENCY.time()
+    def new_worker(self, worker_name: str, provider_type: str) -> str:
+        """
+        Create a new worker with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a worker with this name
+
+        worker_name should be the unique identifier by which the crowd provider
+        is using to keep track of this worker
+        """
+        return self._new_worker(worker_name=worker_name, provider_type=provider_type)
+
+    @abstractmethod
+    def _get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """get_worker implementation"""
+        raise NotImplementedError()
+
+    @GET_WORKER_LATENCY.time()
+    def get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """
+        Return worker's fields by worker_id, raise EntryDoesNotExistException
+        if no id exists in workers
+
+        See worker for the expected fields for the returned mapping
+        """
+        return self._get_worker(worker_id=worker_id)
+
+    @abstractmethod
+    def _find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """find_workers implementation"""
+        raise NotImplementedError()
+
+    @FIND_WORKERS_LATENCY.time()
+    def find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """
+        Try to find any worker that matches the above. When called with no arguments,
+        return all workers.
+        """
+        return self._find_workers(worker_name=worker_name, provider_type=provider_type)
+
+    @abstractmethod
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """new_agent implementation"""
+        raise NotImplementedError()
+
+    @NEW_AGENT_LATENCY.time()
+    def new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_agent(
+            worker_id=worker_id,
+            unit_id=unit_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+    @abstractmethod
+    def _get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """get_agent implementation"""
+        raise NotImplementedError()
+
+    @GET_AGENT_LATENCY.time()
+    def get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """
+        Return agent's fields by agent_id, raise EntryDoesNotExistException
+        if no id exists in agents
+
+        See Agent for the expected fields for the returned mapping
+        """
+        return self._get_agent(agent_id=agent_id)
+
+    @abstractmethod
+    def _update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """update_agent implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_AGENT_LATENCY.time()
+    def update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_agent(agent_id=agent_id, status=status)
+
+    @abstractmethod
+    def _find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """find_agents implementation"""
+        raise NotImplementedError()
+
+    @FIND_AGENTS_LATENCY.time()
+    def find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """
+        Try to find any agent that matches the above. When called with no arguments,
+        return all agents.
+        """
+        return self._find_agents(
+            status=status,
+            unit_id=unit_id,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+    @abstractmethod
+    def _new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """new_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @NEW_ONBOARDING_AGENT_LATENCY.time()
+    def new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_onboarding_agent(
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+    @abstractmethod
+    def _get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """get_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @GET_ONBOARDING_AGENT_LATENCY.time()
+    def get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """
+        Return onboarding agent's fields by onboarding_agent_id, raise
+        EntryDoesNotExistException if no id exists in onboarding_agents
+
+        See OnboardingAgent for the expected fields for the returned mapping
+        """
+        return self._get_onboarding_agent(onboarding_agent_id=onboarding_agent_id)
+
+    @abstractmethod
+    def _update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """update_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_ONBOARDING_AGENT_LATENCY.time()
+    def update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given onboarding agent with the given parameters if possible,
+        raise appropriate exception otherwise.
+        """
+        return self._update_onboarding_agent(
+            onboarding_agent_id=onboarding_agent_id, status=status
+        )
+
+    @abstractmethod
+    def _find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """find_onboarding_agents implementation"""
+        raise NotImplementedError()
+
+    @FIND_ONBOARDING_AGENTS_LATENCY.time()
+    def find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """
+        Try to find any onboarding agent that matches the above. When called with no arguments,
+        return all onboarding agents.
+        """
+        return self._find_onboarding_agents(
+            status=status,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+    @abstractmethod
+    def _make_qualification(self, qualification_name: str) -> str:
+        """make_qualification implementation"""
+        raise NotImplementedError()
+
+    @MAKE_QUALIFICATION_LATENCY.time()
+    def make_qualification(self, qualification_name: str) -> str:
+        """
+        Make a new qualification, throws an error if a qualification by the given name
+        already exists. Return the id for the qualification.
+        """
+        return self._make_qualification(qualification_name=qualification_name)
+
+    @abstractmethod
+    def _find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """find_qualifications implementation"""
+        raise NotImplementedError()
+
+    @FIND_QUALIFICATIONS_LATENCY.time()
+    def find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """
+        Find a qualification. If no name is supplied, returns all qualifications.
+        """
+        return self._find_qualifications(qualification_name=qualification_name)
+
+    @abstractmethod
+    def _get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """get_qualification implementation"""
+        raise NotImplementedError()
+
+    @GET_QUALIFICATION_LATENCY.time()
+    def get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """
+        Return qualification's fields by qualification_id, raise
+        EntryDoesNotExistException if no id exists in qualifications
+
+        See Qualification for the expected fields for the returned mapping
+        """
+        return self._get_qualification(qualification_id=qualification_id)
+
+    @abstractmethod
+    def _delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        raise NotImplementedError()
+
+    @DELETE_QUALIFICATION_LATENCY.time()
+    def delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        self._delete_qualification(qualification_name)
+        for crowd_provider_name in get_valid_provider_types():
+            ProviderClass = get_crowd_provider_from_type(crowd_provider_name)
+            provider = ProviderClass(self)
+            provider.cleanup_qualification(qualification_name)
+
+    @abstractmethod
+    def _grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """grant_qualification implementation"""
+        raise NotImplementedError()
+
+    @GRANT_QUALIFICATION_LATENCY.time()
+    def grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """
+        Grant a worker the given qualification. Update the qualification value if it
+        already exists
+        """
+        return self._grant_qualification(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+    @abstractmethod
+    def _check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """check_granted_qualifications implementation"""
+        raise NotImplementedError()
+
+    @CHECK_GRANTED_QUALIFICATIONS_LATENCY.time()
+    def check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """
+        Find granted qualifications that match the given specifications
+        """
+        return self._check_granted_qualifications(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+    @abstractmethod
+    def _get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """get_granted_qualification implementation"""
+        raise NotImplementedError()
+
+    @GET_GRANTED_QUALIFICATION_LATENCY.time()
+    def get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Return the granted qualification in the database between the given
+        worker and qualification id
+
+        See GrantedQualification for the expected fields for the returned mapping
+        """
+        return self._get_granted_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+    @abstractmethod
+    def _revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """revoke_qualification implementation"""
+        raise NotImplementedError()
+
+    @REVOKE_QUALIFICATION_LATENCY.time()
+    def revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """
+        Remove the given qualification from the given worker
+        """
+        return self._revoke_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+ +
+ +
+
+
+ #   + + + class + MephistoDBException(builtins.Exception): +
+ +
+ View Source +
class MephistoDBException(Exception):
+    pass
+
+ +
+ +

Common base class for all non-exit exceptions.

+
+ + +
+
Inherited Members
+
+
builtins.Exception
+
Exception
+ +
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + EntryAlreadyExistsException(MephistoDBException): +
+ +
+ View Source +
class EntryAlreadyExistsException(MephistoDBException):
+    pass
+
+ +
+ +

Common base class for all non-exit exceptions.

+
+ + +
+
Inherited Members
+
+
builtins.Exception
+
Exception
+ +
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + EntryDoesNotExistException(MephistoDBException): +
+ +
+ View Source +
class EntryDoesNotExistException(MephistoDBException):
+    pass
+
+ +
+ +

Common base class for all non-exit exceptions.

+
+ + +
+
Inherited Members
+
+
builtins.Exception
+
Exception
+ +
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + MephistoDB(abc.ABC): +
+ +
+ View Source +
class MephistoDB(ABC):
+    """
+    Provides the interface for all queries that are necessary for the Mephisto
+    architecture to run as expected. All other databases should implement
+    these methods to be used as the database that backs Mephisto.
+
+    By default, we use a LocalMesphistoDB located at `mephisto/data/database.db`
+    """
+
+    def __init__(self, database_path=None):
+        """Ensure the database is set up and ready to handle data"""
+        if database_path is None:
+            database_path = os.path.join(get_data_dir(), "database.db")
+        self.db_path = database_path
+        self.db_root = os.path.dirname(self.db_path)
+        self.init_tables()
+        self.__provider_datastores: Dict[str, Any] = {}
+
+    def get_db_path_for_provider(self, provider_type) -> str:
+        """Get the path to store data for a specific provider in"""
+        database_root = os.path.dirname(self.db_path)
+        provider_root = os.path.join(database_root, provider_type)
+        os.makedirs(provider_root, exist_ok=True)
+        return provider_root
+
+    def has_datastore_for_provider(self, provider_type: str) -> bool:
+        """Determine if a datastore has been registered for the given provider"""
+        return provider_type in self.__provider_datastores
+
+    def get_datastore_for_provider(self, provider_type: str) -> Any:
+        """Get the provider datastore registered with this db"""
+        if provider_type not in self.__provider_datastores:
+            # Register this provider for usage now
+            ProviderClass = get_crowd_provider_from_type(provider_type)
+            provider = ProviderClass(self)
+        return self.__provider_datastores.get(provider_type)
+
+    def set_datastore_for_provider(self, provider_type: str, datastore: Any) -> None:
+        """Set the provider datastore registered with this db"""
+        self.__provider_datastores[provider_type] = datastore
+
+    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        return None
+
+    def cache_result(self, target_cls, value) -> None:
+        """Opportunity to store the result class from a load"""
+        return None
+
+    @abstractmethod
+    def shutdown(self) -> None:
+        """Do whatever is required to close this database's resources"""
+        raise NotImplementedError()
+
+    @abstractmethod
+    def init_tables(self) -> None:
+        """
+        Initialize any tables that may be required to run this database. If this is an expensive
+        operation, check to see if they already exist before trying to initialize
+        """
+        raise NotImplementedError()
+
+    @abstractmethod
+    def _new_project(self, project_name: str) -> str:
+        """new_project implementation"""
+        raise NotImplementedError()
+
+    @NEW_PROJECT_LATENCY.time()
+    def new_project(self, project_name: str) -> str:
+        """
+        Create a new project with the given project name. Raise EntryAlreadyExistsException if a project
+        with this name has already been created.
+
+        Project names are permanent, as changing directories later is painful.
+        """
+        return self._new_project(project_name=project_name)
+
+    @abstractmethod
+    def _get_project(self, project_id: str) -> Mapping[str, Any]:
+        """get_project implementation"""
+        raise NotImplementedError()
+
+    @GET_PROJECT_LATENCY.time()
+    def get_project(self, project_id: str) -> Mapping[str, Any]:
+        """
+        Return project's fields by the given project_id, raise EntryDoesNotExistException if no id exists
+        in projects
+
+        See Project for the expected returned mapping's fields
+        """
+        return self._get_project(project_id=project_id)
+
+    @abstractmethod
+    def _find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """find_projects implementation"""
+        raise NotImplementedError()
+
+    @FIND_PROJECTS_LATENCY.time()
+    def find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """
+        Try to find any project that matches the above. When called with no arguments,
+        return all projects.
+        """
+        return self._find_projects(project_name=project_name)
+
+    @abstractmethod
+    def _new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """new_task implementation"""
+        raise NotImplementedError()
+
+    @NEW_TASK_LATENCY.time()
+    def new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """
+        Create a new task with the given task name. Raise EntryAlreadyExistsException if a task
+        with this name has already been created.
+        """
+        return self._new_task(
+            task_name=task_name, task_type=task_type, project_id=project_id
+        )
+
+    @abstractmethod
+    def _get_task(self, task_id: str) -> Mapping[str, Any]:
+        """get_task implementation"""
+        raise NotImplementedError()
+
+    @GET_TASK_LATENCY.time()
+    def get_task(self, task_id: str) -> Mapping[str, Any]:
+        """
+        Return task's fields by task_id, raise EntryDoesNotExistException if no id exists
+        in tasks
+
+        See Task for the expected fields for the returned mapping
+        """
+        return self._get_task(task_id=task_id)
+
+    @abstractmethod
+    def _find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """find_tasks implementation"""
+        raise NotImplementedError()
+
+    @FIND_TASKS_LATENCY.time()
+    def find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_tasks(task_name=task_name, project_id=project_id)
+
+    @abstractmethod
+    def _update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """update_task implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_TASK_LATENCY.time()
+    def update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+
+        Should only be runable if no runs have been created for this task
+        """
+        self._update_task(task_id=task_id, task_name=task_name, project_id=project_id)
+
+    @abstractmethod
+    def _new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_task_run implementation"""
+        raise NotImplementedError()
+
+    @NEW_TASK_RUN_LATENCY.time()
+    def new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new task_run for the given task.
+
+        Once a run is created, it should no longer be altered. The assignments and
+        subassignments depend on the data set up within, as the launched task
+        cannot be replaced and the requester can not be swapped mid-run.
+        """
+        return self._new_task_run(
+            task_id=task_id,
+            requester_id=requester_id,
+            init_params=init_params,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """get_task_run implementation"""
+        raise NotImplementedError()
+
+    @GET_TASK_RUN_LATENCY.time()
+    def get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """
+        Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists
+        in task_runs.
+
+        See TaskRun for the expected fields to populate in the returned mapping
+        """
+        return self._get_task_run(task_run_id=task_run_id)
+
+    @abstractmethod
+    def _find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """find_task_runs implementation"""
+        raise NotImplementedError()
+
+    @FIND_TASK_RUNS_LATENCY.time()
+    def find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """
+        Try to find any task_run that matches the above. When called with no arguments,
+        return all task_runs.
+        """
+        return self._find_task_runs(
+            task_id=task_id, requester_id=requester_id, is_completed=is_completed
+        )
+
+    @abstractmethod
+    def _update_task_run(self, task_run_id: str, is_completed: bool):
+        """update_task_run implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_TASK_RUN_LATENCY.time()
+    def update_task_run(self, task_run_id: str, is_completed: bool):
+        """
+        Update a task run. At the moment, can only update completion status
+        """
+        return self._update_task_run(task_run_id=task_run_id, is_completed=is_completed)
+
+    @abstractmethod
+    def _new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_assignment implementation"""
+        raise NotImplementedError()
+
+    @NEW_ASSIGNMENT_LATENCY.time()
+    def new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new assignment for the given task
+
+        Assignments should not be edited or altered once created
+        """
+        return self._new_assignment(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """get_assignment implementation"""
+        raise NotImplementedError()
+
+    @GET_ASSIGNMENT_LATENCY.time()
+    def get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """
+        Return assignment's fields by assignment_id, raise EntryDoesNotExistException if
+        no id exists in tasks
+
+        See Assignment for the expected fields for the returned mapping
+        """
+        return self._get_assignment(assignment_id=assignment_id)
+
+    @abstractmethod
+    def _find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """find_assignments implementation"""
+        raise NotImplementedError()
+
+    @FIND_ASSIGNMENTS_LATENCY.time()
+    def find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_assignments(
+            task_run_id=task_run_id,
+            task_id=task_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """new_unit implementation"""
+        raise NotImplementedError()
+
+    @NEW_UNIT_LATENCY.time()
+    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        return self._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+    @abstractmethod
+    def _get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """get_unit implementation"""
+        raise NotImplementedError()
+
+    @GET_UNIT_LATENCY.time()
+    def get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """
+        Return unit's fields by unit_id, raise EntryDoesNotExistException
+        if no id exists in units
+
+        See unit for the expected fields for the returned mapping
+        """
+        return self._get_unit(unit_id=unit_id)
+
+    @abstractmethod
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """find_units implementation"""
+        raise NotImplementedError()
+
+    @FIND_UNITS_LATENCY.time()
+    def find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Try to find any unit that matches the above. When called with no arguments,
+        return all units.
+        """
+        return self._find_units(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            provider_type=provider_type,
+            task_type=task_type,
+            agent_id=agent_id,
+            worker_id=worker_id,
+            sandbox=sandbox,
+            status=status,
+        )
+
+    @abstractmethod
+    def _clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """clear_unit_agent_assignment implementation"""
+        raise NotImplementedError()
+
+    @CLEAR_UNIT_AGENT_ASSIGNMENT_LATENCY.time()
+    def clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """
+        Update the given unit by removing the agent that is assigned to it, thus updating
+        the status to assignable.
+        """
+        return self._clear_unit_agent_assignment(unit_id=unit_id)
+
+    @abstractmethod
+    def _update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """update_unit implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_UNIT_LATENCY.time()
+    def update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_unit(unit_id=unit_id, status=status)
+
+    @abstractmethod
+    def _new_requester(self, requester_name: str, provider_type: str) -> str:
+        """new_requester implementation"""
+        raise NotImplementedError()
+
+    @NEW_REQUESTER_LATENCY.time()
+    def new_requester(self, requester_name: str, provider_type: str) -> str:
+        """
+        Create a new requester with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a requester with this name
+        """
+        return self._new_requester(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+    @abstractmethod
+    def _get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """get_requester implementation"""
+        raise NotImplementedError()
+
+    @GET_REQUESTER_LATENCY.time()
+    def get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """
+        Return requester's fields by requester_id, raise EntryDoesNotExistException
+        if no id exists in requesters
+
+        See requester for the expected fields for the returned mapping
+        """
+        return self._get_requester(requester_id=requester_id)
+
+    @abstractmethod
+    def _find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """find_requesters implementation"""
+        raise NotImplementedError()
+
+    @FIND_REQUESTERS_LATENCY.time()
+    def find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """
+        Try to find any requester that matches the above. When called with no arguments,
+        return all requesters.
+        """
+        return self._find_requesters(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+    @abstractmethod
+    def _new_worker(self, worker_name: str, provider_type: str) -> str:
+        """new_worker implementation"""
+        raise NotImplementedError()
+
+    @NEW_WORKER_LATENCY.time()
+    def new_worker(self, worker_name: str, provider_type: str) -> str:
+        """
+        Create a new worker with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a worker with this name
+
+        worker_name should be the unique identifier by which the crowd provider
+        is using to keep track of this worker
+        """
+        return self._new_worker(worker_name=worker_name, provider_type=provider_type)
+
+    @abstractmethod
+    def _get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """get_worker implementation"""
+        raise NotImplementedError()
+
+    @GET_WORKER_LATENCY.time()
+    def get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """
+        Return worker's fields by worker_id, raise EntryDoesNotExistException
+        if no id exists in workers
+
+        See worker for the expected fields for the returned mapping
+        """
+        return self._get_worker(worker_id=worker_id)
+
+    @abstractmethod
+    def _find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """find_workers implementation"""
+        raise NotImplementedError()
+
+    @FIND_WORKERS_LATENCY.time()
+    def find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """
+        Try to find any worker that matches the above. When called with no arguments,
+        return all workers.
+        """
+        return self._find_workers(worker_name=worker_name, provider_type=provider_type)
+
+    @abstractmethod
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """new_agent implementation"""
+        raise NotImplementedError()
+
+    @NEW_AGENT_LATENCY.time()
+    def new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_agent(
+            worker_id=worker_id,
+            unit_id=unit_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+    @abstractmethod
+    def _get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """get_agent implementation"""
+        raise NotImplementedError()
+
+    @GET_AGENT_LATENCY.time()
+    def get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """
+        Return agent's fields by agent_id, raise EntryDoesNotExistException
+        if no id exists in agents
+
+        See Agent for the expected fields for the returned mapping
+        """
+        return self._get_agent(agent_id=agent_id)
+
+    @abstractmethod
+    def _update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """update_agent implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_AGENT_LATENCY.time()
+    def update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_agent(agent_id=agent_id, status=status)
+
+    @abstractmethod
+    def _find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """find_agents implementation"""
+        raise NotImplementedError()
+
+    @FIND_AGENTS_LATENCY.time()
+    def find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """
+        Try to find any agent that matches the above. When called with no arguments,
+        return all agents.
+        """
+        return self._find_agents(
+            status=status,
+            unit_id=unit_id,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+    @abstractmethod
+    def _new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """new_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @NEW_ONBOARDING_AGENT_LATENCY.time()
+    def new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_onboarding_agent(
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+    @abstractmethod
+    def _get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """get_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @GET_ONBOARDING_AGENT_LATENCY.time()
+    def get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """
+        Return onboarding agent's fields by onboarding_agent_id, raise
+        EntryDoesNotExistException if no id exists in onboarding_agents
+
+        See OnboardingAgent for the expected fields for the returned mapping
+        """
+        return self._get_onboarding_agent(onboarding_agent_id=onboarding_agent_id)
+
+    @abstractmethod
+    def _update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """update_onboarding_agent implementation"""
+        raise NotImplementedError()
+
+    @UPDATE_ONBOARDING_AGENT_LATENCY.time()
+    def update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given onboarding agent with the given parameters if possible,
+        raise appropriate exception otherwise.
+        """
+        return self._update_onboarding_agent(
+            onboarding_agent_id=onboarding_agent_id, status=status
+        )
+
+    @abstractmethod
+    def _find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """find_onboarding_agents implementation"""
+        raise NotImplementedError()
+
+    @FIND_ONBOARDING_AGENTS_LATENCY.time()
+    def find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """
+        Try to find any onboarding agent that matches the above. When called with no arguments,
+        return all onboarding agents.
+        """
+        return self._find_onboarding_agents(
+            status=status,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+    @abstractmethod
+    def _make_qualification(self, qualification_name: str) -> str:
+        """make_qualification implementation"""
+        raise NotImplementedError()
+
+    @MAKE_QUALIFICATION_LATENCY.time()
+    def make_qualification(self, qualification_name: str) -> str:
+        """
+        Make a new qualification, throws an error if a qualification by the given name
+        already exists. Return the id for the qualification.
+        """
+        return self._make_qualification(qualification_name=qualification_name)
+
+    @abstractmethod
+    def _find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """find_qualifications implementation"""
+        raise NotImplementedError()
+
+    @FIND_QUALIFICATIONS_LATENCY.time()
+    def find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """
+        Find a qualification. If no name is supplied, returns all qualifications.
+        """
+        return self._find_qualifications(qualification_name=qualification_name)
+
+    @abstractmethod
+    def _get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """get_qualification implementation"""
+        raise NotImplementedError()
+
+    @GET_QUALIFICATION_LATENCY.time()
+    def get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """
+        Return qualification's fields by qualification_id, raise
+        EntryDoesNotExistException if no id exists in qualifications
+
+        See Qualification for the expected fields for the returned mapping
+        """
+        return self._get_qualification(qualification_id=qualification_id)
+
+    @abstractmethod
+    def _delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        raise NotImplementedError()
+
+    @DELETE_QUALIFICATION_LATENCY.time()
+    def delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        self._delete_qualification(qualification_name)
+        for crowd_provider_name in get_valid_provider_types():
+            ProviderClass = get_crowd_provider_from_type(crowd_provider_name)
+            provider = ProviderClass(self)
+            provider.cleanup_qualification(qualification_name)
+
+    @abstractmethod
+    def _grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """grant_qualification implementation"""
+        raise NotImplementedError()
+
+    @GRANT_QUALIFICATION_LATENCY.time()
+    def grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """
+        Grant a worker the given qualification. Update the qualification value if it
+        already exists
+        """
+        return self._grant_qualification(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+    @abstractmethod
+    def _check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """check_granted_qualifications implementation"""
+        raise NotImplementedError()
+
+    @CHECK_GRANTED_QUALIFICATIONS_LATENCY.time()
+    def check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """
+        Find granted qualifications that match the given specifications
+        """
+        return self._check_granted_qualifications(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+    @abstractmethod
+    def _get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """get_granted_qualification implementation"""
+        raise NotImplementedError()
+
+    @GET_GRANTED_QUALIFICATION_LATENCY.time()
+    def get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Return the granted qualification in the database between the given
+        worker and qualification id
+
+        See GrantedQualification for the expected fields for the returned mapping
+        """
+        return self._get_granted_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+    @abstractmethod
+    def _revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """revoke_qualification implementation"""
+        raise NotImplementedError()
+
+    @REVOKE_QUALIFICATION_LATENCY.time()
+    def revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """
+        Remove the given qualification from the given worker
+        """
+        return self._revoke_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+ +
+ +

Provides the interface for all queries that are necessary for the Mephisto +architecture to run as expected. All other databases should implement +these methods to be used as the database that backs Mephisto.

+ +

By default, we use a LocalMesphistoDB located at mephisto/data/database.db

+
+ + +
+
#   + + + MephistoDB(database_path=None) +
+ +
+ View Source +
    def __init__(self, database_path=None):
+        """Ensure the database is set up and ready to handle data"""
+        if database_path is None:
+            database_path = os.path.join(get_data_dir(), "database.db")
+        self.db_path = database_path
+        self.db_root = os.path.dirname(self.db_path)
+        self.init_tables()
+        self.__provider_datastores: Dict[str, Any] = {}
+
+ +
+ +

Ensure the database is set up and ready to handle data

+
+ + +
+
+
#   + + + def + get_db_path_for_provider(self, provider_type) -> str: +
+ +
+ View Source +
    def get_db_path_for_provider(self, provider_type) -> str:
+        """Get the path to store data for a specific provider in"""
+        database_root = os.path.dirname(self.db_path)
+        provider_root = os.path.join(database_root, provider_type)
+        os.makedirs(provider_root, exist_ok=True)
+        return provider_root
+
+ +
+ +

Get the path to store data for a specific provider in

+
+ + +
+
+
#   + + + def + has_datastore_for_provider(self, provider_type: str) -> bool: +
+ +
+ View Source +
    def has_datastore_for_provider(self, provider_type: str) -> bool:
+        """Determine if a datastore has been registered for the given provider"""
+        return provider_type in self.__provider_datastores
+
+ +
+ +

Determine if a datastore has been registered for the given provider

+
+ + +
+
+
#   + + + def + get_datastore_for_provider(self, provider_type: str) -> Any: +
+ +
+ View Source +
    def get_datastore_for_provider(self, provider_type: str) -> Any:
+        """Get the provider datastore registered with this db"""
+        if provider_type not in self.__provider_datastores:
+            # Register this provider for usage now
+            ProviderClass = get_crowd_provider_from_type(provider_type)
+            provider = ProviderClass(self)
+        return self.__provider_datastores.get(provider_type)
+
+ +
+ +

Get the provider datastore registered with this db

+
+ + +
+
+
#   + + + def + set_datastore_for_provider(self, provider_type: str, datastore: Any) -> None: +
+ +
+ View Source +
    def set_datastore_for_provider(self, provider_type: str, datastore: Any) -> None:
+        """Set the provider datastore registered with this db"""
+        self.__provider_datastores[provider_type] = datastore
+
+ +
+ +

Set the provider datastore registered with this db

+
+ + +
+
+
#   + + + def + optimized_load( + self, + target_cls, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None +): +
+ +
+ View Source +
    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        return None
+
+ +
+ +

Load the given class in an optimized fashion, if this DB has a more +efficient way of storing and managing the data

+
+ + +
+
+
#   + + + def + cache_result(self, target_cls, value) -> None: +
+ +
+ View Source +
    def cache_result(self, target_cls, value) -> None:
+        """Opportunity to store the result class from a load"""
+        return None
+
+ +
+ +

Opportunity to store the result class from a load

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + shutdown(self) -> None: +
+ +
+ View Source +
    @abstractmethod
+    def shutdown(self) -> None:
+        """Do whatever is required to close this database's resources"""
+        raise NotImplementedError()
+
+ +
+ +

Do whatever is required to close this database's resources

+
+ + +
+
+
#   + +
@abstractmethod
+ + def + init_tables(self) -> None: +
+ +
+ View Source +
    @abstractmethod
+    def init_tables(self) -> None:
+        """
+        Initialize any tables that may be required to run this database. If this is an expensive
+        operation, check to see if they already exist before trying to initialize
+        """
+        raise NotImplementedError()
+
+ +
+ +

Initialize any tables that may be required to run this database. If this is an expensive +operation, check to see if they already exist before trying to initialize

+
+ + +
+
+
#   + +
@NEW_PROJECT_LATENCY.time()
+ + def + new_project(self, project_name: str) -> str: +
+ +
+ View Source +
    @NEW_PROJECT_LATENCY.time()
+    def new_project(self, project_name: str) -> str:
+        """
+        Create a new project with the given project name. Raise EntryAlreadyExistsException if a project
+        with this name has already been created.
+
+        Project names are permanent, as changing directories later is painful.
+        """
+        return self._new_project(project_name=project_name)
+
+ +
+ +

Create a new project with the given project name. Raise EntryAlreadyExistsException if a project +with this name has already been created.

+ +

Project names are permanent, as changing directories later is painful.

+
+ + +
+
+
#   + +
@GET_PROJECT_LATENCY.time()
+ + def + get_project(self, project_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_PROJECT_LATENCY.time()
+    def get_project(self, project_id: str) -> Mapping[str, Any]:
+        """
+        Return project's fields by the given project_id, raise EntryDoesNotExistException if no id exists
+        in projects
+
+        See Project for the expected returned mapping's fields
+        """
+        return self._get_project(project_id=project_id)
+
+ +
+ +

Return project's fields by the given project_id, raise EntryDoesNotExistException if no id exists +in projects

+ +

See Project for the expected returned mapping's fields

+
+ + +
+
+
#   + +
@FIND_PROJECTS_LATENCY.time()
+ + def + find_projects( + self, + project_name: Union[str, NoneType] = None +) -> List[mephisto.data_model.project.Project]: +
+ +
+ View Source +
    @FIND_PROJECTS_LATENCY.time()
+    def find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """
+        Try to find any project that matches the above. When called with no arguments,
+        return all projects.
+        """
+        return self._find_projects(project_name=project_name)
+
+ +
+ +

Try to find any project that matches the above. When called with no arguments, +return all projects.

+
+ + +
+
+
#   + +
@NEW_TASK_LATENCY.time()
+ + def + new_task( + self, + task_name: str, + task_type: str, + project_id: Union[str, NoneType] = None +) -> str: +
+ +
+ View Source +
    @NEW_TASK_LATENCY.time()
+    def new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """
+        Create a new task with the given task name. Raise EntryAlreadyExistsException if a task
+        with this name has already been created.
+        """
+        return self._new_task(
+            task_name=task_name, task_type=task_type, project_id=project_id
+        )
+
+ +
+ +

Create a new task with the given task name. Raise EntryAlreadyExistsException if a task +with this name has already been created.

+
+ + +
+
+
#   + +
@GET_TASK_LATENCY.time()
+ + def + get_task(self, task_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_TASK_LATENCY.time()
+    def get_task(self, task_id: str) -> Mapping[str, Any]:
+        """
+        Return task's fields by task_id, raise EntryDoesNotExistException if no id exists
+        in tasks
+
+        See Task for the expected fields for the returned mapping
+        """
+        return self._get_task(task_id=task_id)
+
+ +
+ +

Return task's fields by task_id, raise EntryDoesNotExistException if no id exists +in tasks

+ +

See Task for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@FIND_TASKS_LATENCY.time()
+ + def + find_tasks( + self, + task_name: Union[str, NoneType] = None, + project_id: Union[str, NoneType] = None +) -> List[mephisto.data_model.task.Task]: +
+ +
+ View Source +
    @FIND_TASKS_LATENCY.time()
+    def find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_tasks(task_name=task_name, project_id=project_id)
+
+ +
+ +

Try to find any task that matches the above. When called with no arguments, +return all tasks.

+
+ + +
+
+
#   + +
@UPDATE_TASK_LATENCY.time()
+ + def + update_task( + self, + task_id: str, + task_name: Union[str, NoneType] = None, + project_id: Union[str, NoneType] = None +) -> None: +
+ +
+ View Source +
    @UPDATE_TASK_LATENCY.time()
+    def update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+
+        Should only be runable if no runs have been created for this task
+        """
+        self._update_task(task_id=task_id, task_name=task_name, project_id=project_id)
+
+ +
+ +

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

+ +

Should only be runable if no runs have been created for this task

+
+ + +
+
+
#   + +
@NEW_TASK_RUN_LATENCY.time()
+ + def + new_task_run( + self, + task_id: str, + requester_id: str, + init_params: str, + provider_type: str, + task_type: str, + sandbox: bool = True +) -> str: +
+ +
+ View Source +
    @NEW_TASK_RUN_LATENCY.time()
+    def new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new task_run for the given task.
+
+        Once a run is created, it should no longer be altered. The assignments and
+        subassignments depend on the data set up within, as the launched task
+        cannot be replaced and the requester can not be swapped mid-run.
+        """
+        return self._new_task_run(
+            task_id=task_id,
+            requester_id=requester_id,
+            init_params=init_params,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Create a new task_run for the given task.

+ +

Once a run is created, it should no longer be altered. The assignments and +subassignments depend on the data set up within, as the launched task +cannot be replaced and the requester can not be swapped mid-run.

+
+ + +
+
+
#   + +
@GET_TASK_RUN_LATENCY.time()
+ + def + get_task_run(self, task_run_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_TASK_RUN_LATENCY.time()
+    def get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """
+        Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists
+        in task_runs.
+
+        See TaskRun for the expected fields to populate in the returned mapping
+        """
+        return self._get_task_run(task_run_id=task_run_id)
+
+ +
+ +

Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists +in task_runs.

+ +

See TaskRun for the expected fields to populate in the returned mapping

+
+ + +
+
+
#   + +
@FIND_TASK_RUNS_LATENCY.time()
+ + def + find_task_runs( + self, + task_id: Union[str, NoneType] = None, + requester_id: Union[str, NoneType] = None, + is_completed: Union[bool, NoneType] = None +) -> List[mephisto.data_model.task_run.TaskRun]: +
+ +
+ View Source +
    @FIND_TASK_RUNS_LATENCY.time()
+    def find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """
+        Try to find any task_run that matches the above. When called with no arguments,
+        return all task_runs.
+        """
+        return self._find_task_runs(
+            task_id=task_id, requester_id=requester_id, is_completed=is_completed
+        )
+
+ +
+ +

Try to find any task_run that matches the above. When called with no arguments, +return all task_runs.

+
+ + +
+
+
#   + +
@UPDATE_TASK_RUN_LATENCY.time()
+ + def + update_task_run(self, task_run_id: str, is_completed: bool): +
+ +
+ View Source +
    @UPDATE_TASK_RUN_LATENCY.time()
+    def update_task_run(self, task_run_id: str, is_completed: bool):
+        """
+        Update a task run. At the moment, can only update completion status
+        """
+        return self._update_task_run(task_run_id=task_run_id, is_completed=is_completed)
+
+ +
+ +

Update a task run. At the moment, can only update completion status

+
+ + +
+
+
#   + +
@NEW_ASSIGNMENT_LATENCY.time()
+ + def + new_assignment( + self, + task_id: str, + task_run_id: str, + requester_id: str, + task_type: str, + provider_type: str, + sandbox: bool = True +) -> str: +
+ +
+ View Source +
    @NEW_ASSIGNMENT_LATENCY.time()
+    def new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new assignment for the given task
+
+        Assignments should not be edited or altered once created
+        """
+        return self._new_assignment(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Create a new assignment for the given task

+ +

Assignments should not be edited or altered once created

+
+ + +
+
+
#   + +
@GET_ASSIGNMENT_LATENCY.time()
+ + def + get_assignment(self, assignment_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_ASSIGNMENT_LATENCY.time()
+    def get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """
+        Return assignment's fields by assignment_id, raise EntryDoesNotExistException if
+        no id exists in tasks
+
+        See Assignment for the expected fields for the returned mapping
+        """
+        return self._get_assignment(assignment_id=assignment_id)
+
+ +
+ +

Return assignment's fields by assignment_id, raise EntryDoesNotExistException if +no id exists in tasks

+ +

See Assignment for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@FIND_ASSIGNMENTS_LATENCY.time()
+ + def + find_assignments( + self, + task_run_id: Union[str, NoneType] = None, + task_id: Union[str, NoneType] = None, + requester_id: Union[str, NoneType] = None, + task_type: Union[str, NoneType] = None, + provider_type: Union[str, NoneType] = None, + sandbox: Union[bool, NoneType] = None +) -> List[mephisto.data_model.assignment.Assignment]: +
+ +
+ View Source +
    @FIND_ASSIGNMENTS_LATENCY.time()
+    def find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        return self._find_assignments(
+            task_run_id=task_run_id,
+            task_id=task_id,
+            requester_id=requester_id,
+            task_type=task_type,
+            provider_type=provider_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Try to find any task that matches the above. When called with no arguments, +return all tasks.

+
+ + +
+
+
#   + +
@NEW_UNIT_LATENCY.time()
+ + def + new_unit( + self, + task_id: str, + task_run_id: str, + requester_id: str, + assignment_id: str, + unit_index: int, + pay_amount: float, + provider_type: str, + task_type: str, + sandbox: bool = True +) -> str: +
+ +
+ View Source +
    @NEW_UNIT_LATENCY.time()
+    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        return self._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Create a new unit with the given index. Raises EntryAlreadyExistsException +if there is already a unit for the given assignment with the given index.

+
+ + +
+
+
#   + +
@GET_UNIT_LATENCY.time()
+ + def + get_unit(self, unit_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_UNIT_LATENCY.time()
+    def get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """
+        Return unit's fields by unit_id, raise EntryDoesNotExistException
+        if no id exists in units
+
+        See unit for the expected fields for the returned mapping
+        """
+        return self._get_unit(unit_id=unit_id)
+
+ +
+ +

Return unit's fields by unit_id, raise EntryDoesNotExistException +if no id exists in units

+ +

See unit for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@FIND_UNITS_LATENCY.time()
+ + def + find_units( + self, + task_id: Union[str, NoneType] = None, + task_run_id: Union[str, NoneType] = None, + requester_id: Union[str, NoneType] = None, + assignment_id: Union[str, NoneType] = None, + unit_index: Union[int, NoneType] = None, + provider_type: Union[str, NoneType] = None, + task_type: Union[str, NoneType] = None, + agent_id: Union[str, NoneType] = None, + worker_id: Union[str, NoneType] = None, + sandbox: Union[bool, NoneType] = None, + status: Union[str, NoneType] = None +) -> List[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    @FIND_UNITS_LATENCY.time()
+    def find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Try to find any unit that matches the above. When called with no arguments,
+        return all units.
+        """
+        return self._find_units(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            provider_type=provider_type,
+            task_type=task_type,
+            agent_id=agent_id,
+            worker_id=worker_id,
+            sandbox=sandbox,
+            status=status,
+        )
+
+ +
+ +

Try to find any unit that matches the above. When called with no arguments, +return all units.

+
+ + +
+
+
#   + +
@CLEAR_UNIT_AGENT_ASSIGNMENT_LATENCY.time()
+ + def + clear_unit_agent_assignment(self, unit_id: str) -> None: +
+ +
+ View Source +
    @CLEAR_UNIT_AGENT_ASSIGNMENT_LATENCY.time()
+    def clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """
+        Update the given unit by removing the agent that is assigned to it, thus updating
+        the status to assignable.
+        """
+        return self._clear_unit_agent_assignment(unit_id=unit_id)
+
+ +
+ +

Update the given unit by removing the agent that is assigned to it, thus updating +the status to assignable.

+
+ + +
+
+
#   + +
@UPDATE_UNIT_LATENCY.time()
+ + def + update_unit( + self, + unit_id: str, + agent_id: Union[str, NoneType] = None, + status: Union[str, NoneType] = None +) -> None: +
+ +
+ View Source +
    @UPDATE_UNIT_LATENCY.time()
+    def update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_unit(unit_id=unit_id, status=status)
+
+ +
+ +

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

+
+ + +
+
+
#   + +
@NEW_REQUESTER_LATENCY.time()
+ + def + new_requester(self, requester_name: str, provider_type: str) -> str: +
+ +
+ View Source +
    @NEW_REQUESTER_LATENCY.time()
+    def new_requester(self, requester_name: str, provider_type: str) -> str:
+        """
+        Create a new requester with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a requester with this name
+        """
+        return self._new_requester(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+ +
+ +

Create a new requester with the given name and provider type. +Raises EntryAlreadyExistsException +if there is already a requester with this name

+
+ + +
+
+
#   + +
@GET_REQUESTER_LATENCY.time()
+ + def + get_requester(self, requester_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_REQUESTER_LATENCY.time()
+    def get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """
+        Return requester's fields by requester_id, raise EntryDoesNotExistException
+        if no id exists in requesters
+
+        See requester for the expected fields for the returned mapping
+        """
+        return self._get_requester(requester_id=requester_id)
+
+ +
+ +

Return requester's fields by requester_id, raise EntryDoesNotExistException +if no id exists in requesters

+ +

See requester for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@FIND_REQUESTERS_LATENCY.time()
+ + def + find_requesters( + self, + requester_name: Union[str, NoneType] = None, + provider_type: Union[str, NoneType] = None +) -> List[mephisto.data_model.requester.Requester]: +
+ +
+ View Source +
    @FIND_REQUESTERS_LATENCY.time()
+    def find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """
+        Try to find any requester that matches the above. When called with no arguments,
+        return all requesters.
+        """
+        return self._find_requesters(
+            requester_name=requester_name, provider_type=provider_type
+        )
+
+ +
+ +

Try to find any requester that matches the above. When called with no arguments, +return all requesters.

+
+ + +
+
+
#   + +
@NEW_WORKER_LATENCY.time()
+ + def + new_worker(self, worker_name: str, provider_type: str) -> str: +
+ +
+ View Source +
    @NEW_WORKER_LATENCY.time()
+    def new_worker(self, worker_name: str, provider_type: str) -> str:
+        """
+        Create a new worker with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a worker with this name
+
+        worker_name should be the unique identifier by which the crowd provider
+        is using to keep track of this worker
+        """
+        return self._new_worker(worker_name=worker_name, provider_type=provider_type)
+
+ +
+ +

Create a new worker with the given name and provider type. +Raises EntryAlreadyExistsException +if there is already a worker with this name

+ +

worker_name should be the unique identifier by which the crowd provider +is using to keep track of this worker

+
+ + +
+
+
#   + +
@GET_WORKER_LATENCY.time()
+ + def + get_worker(self, worker_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_WORKER_LATENCY.time()
+    def get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """
+        Return worker's fields by worker_id, raise EntryDoesNotExistException
+        if no id exists in workers
+
+        See worker for the expected fields for the returned mapping
+        """
+        return self._get_worker(worker_id=worker_id)
+
+ +
+ +

Return worker's fields by worker_id, raise EntryDoesNotExistException +if no id exists in workers

+ +

See worker for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@FIND_WORKERS_LATENCY.time()
+ + def + find_workers( + self, + worker_name: Union[str, NoneType] = None, + provider_type: Union[str, NoneType] = None +) -> List[mephisto.data_model.worker.Worker]: +
+ +
+ View Source +
    @FIND_WORKERS_LATENCY.time()
+    def find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """
+        Try to find any worker that matches the above. When called with no arguments,
+        return all workers.
+        """
+        return self._find_workers(worker_name=worker_name, provider_type=provider_type)
+
+ +
+ +

Try to find any worker that matches the above. When called with no arguments, +return all workers.

+
+ + +
+
+
#   + +
@NEW_AGENT_LATENCY.time()
+ + def + new_agent( + self, + worker_id: str, + unit_id: str, + task_id: str, + task_run_id: str, + assignment_id: str, + task_type: str, + provider_type: str +) -> str: +
+ +
+ View Source +
    @NEW_AGENT_LATENCY.time()
+    def new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_agent(
+            worker_id=worker_id,
+            unit_id=unit_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+ +
+ +

Create a new agent for the given worker id to assign to the given unit +Raises EntryAlreadyExistsException

+ +

Should update the unit's status to ASSIGNED and the assigned agent to +this one.

+
+ + +
+
+
#   + +
@GET_AGENT_LATENCY.time()
+ + def + get_agent(self, agent_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_AGENT_LATENCY.time()
+    def get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """
+        Return agent's fields by agent_id, raise EntryDoesNotExistException
+        if no id exists in agents
+
+        See Agent for the expected fields for the returned mapping
+        """
+        return self._get_agent(agent_id=agent_id)
+
+ +
+ +

Return agent's fields by agent_id, raise EntryDoesNotExistException +if no id exists in agents

+ +

See Agent for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@UPDATE_AGENT_LATENCY.time()
+ + def + update_agent(self, agent_id: str, status: Union[str, NoneType] = None) -> None: +
+ +
+ View Source +
    @UPDATE_AGENT_LATENCY.time()
+    def update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        return self._update_agent(agent_id=agent_id, status=status)
+
+ +
+ +

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

+
+ + +
+
+
#   + +
@FIND_AGENTS_LATENCY.time()
+ + def + find_agents( + self, + status: Union[str, NoneType] = None, + unit_id: Union[str, NoneType] = None, + worker_id: Union[str, NoneType] = None, + task_id: Union[str, NoneType] = None, + task_run_id: Union[str, NoneType] = None, + assignment_id: Union[str, NoneType] = None, + task_type: Union[str, NoneType] = None, + provider_type: Union[str, NoneType] = None +) -> List[mephisto.data_model.agent.Agent]: +
+ +
+ View Source +
    @FIND_AGENTS_LATENCY.time()
+    def find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """
+        Try to find any agent that matches the above. When called with no arguments,
+        return all agents.
+        """
+        return self._find_agents(
+            status=status,
+            unit_id=unit_id,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            assignment_id=assignment_id,
+            task_type=task_type,
+            provider_type=provider_type,
+        )
+
+ +
+ +

Try to find any agent that matches the above. When called with no arguments, +return all agents.

+
+ + +
+
+
#   + +
@NEW_ONBOARDING_AGENT_LATENCY.time()
+ + def + new_onboarding_agent( + self, + worker_id: str, + task_id: str, + task_run_id: str, + task_type: str +) -> str: +
+ +
+ View Source +
    @NEW_ONBOARDING_AGENT_LATENCY.time()
+    def new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+
+        Should update the unit's status to ASSIGNED and the assigned agent to
+        this one.
+        """
+        return self._new_onboarding_agent(
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+ +
+ +

Create a new agent for the given worker id to assign to the given unit +Raises EntryAlreadyExistsException

+ +

Should update the unit's status to ASSIGNED and the assigned agent to +this one.

+
+ + +
+
+
#   + +
@GET_ONBOARDING_AGENT_LATENCY.time()
+ + def + get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_ONBOARDING_AGENT_LATENCY.time()
+    def get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """
+        Return onboarding agent's fields by onboarding_agent_id, raise
+        EntryDoesNotExistException if no id exists in onboarding_agents
+
+        See OnboardingAgent for the expected fields for the returned mapping
+        """
+        return self._get_onboarding_agent(onboarding_agent_id=onboarding_agent_id)
+
+ +
+ +

Return onboarding agent's fields by onboarding_agent_id, raise +EntryDoesNotExistException if no id exists in onboarding_agents

+ +

See OnboardingAgent for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@UPDATE_ONBOARDING_AGENT_LATENCY.time()
+ + def + update_onboarding_agent( + self, + onboarding_agent_id: str, + status: Union[str, NoneType] = None +) -> None: +
+ +
+ View Source +
    @UPDATE_ONBOARDING_AGENT_LATENCY.time()
+    def update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given onboarding agent with the given parameters if possible,
+        raise appropriate exception otherwise.
+        """
+        return self._update_onboarding_agent(
+            onboarding_agent_id=onboarding_agent_id, status=status
+        )
+
+ +
+ +

Update the given onboarding agent with the given parameters if possible, +raise appropriate exception otherwise.

+
+ + +
+
+
#   + +
@FIND_ONBOARDING_AGENTS_LATENCY.time()
+ + def + find_onboarding_agents( + self, + status: Union[str, NoneType] = None, + worker_id: Union[str, NoneType] = None, + task_id: Union[str, NoneType] = None, + task_run_id: Union[str, NoneType] = None, + task_type: Union[str, NoneType] = None +) -> List[mephisto.data_model.agent.OnboardingAgent]: +
+ +
+ View Source +
    @FIND_ONBOARDING_AGENTS_LATENCY.time()
+    def find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """
+        Try to find any onboarding agent that matches the above. When called with no arguments,
+        return all onboarding agents.
+        """
+        return self._find_onboarding_agents(
+            status=status,
+            worker_id=worker_id,
+            task_id=task_id,
+            task_run_id=task_run_id,
+            task_type=task_type,
+        )
+
+ +
+ +

Try to find any onboarding agent that matches the above. When called with no arguments, +return all onboarding agents.

+
+ + +
+
+
#   + +
@MAKE_QUALIFICATION_LATENCY.time()
+ + def + make_qualification(self, qualification_name: str) -> str: +
+ +
+ View Source +
    @MAKE_QUALIFICATION_LATENCY.time()
+    def make_qualification(self, qualification_name: str) -> str:
+        """
+        Make a new qualification, throws an error if a qualification by the given name
+        already exists. Return the id for the qualification.
+        """
+        return self._make_qualification(qualification_name=qualification_name)
+
+ +
+ +

Make a new qualification, throws an error if a qualification by the given name +already exists. Return the id for the qualification.

+
+ + +
+
+
#   + +
@FIND_QUALIFICATIONS_LATENCY.time()
+ + def + find_qualifications( + self, + qualification_name: Union[str, NoneType] = None +) -> List[mephisto.data_model.qualification.Qualification]: +
+ +
+ View Source +
    @FIND_QUALIFICATIONS_LATENCY.time()
+    def find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """
+        Find a qualification. If no name is supplied, returns all qualifications.
+        """
+        return self._find_qualifications(qualification_name=qualification_name)
+
+ +
+ +

Find a qualification. If no name is supplied, returns all qualifications.

+
+ + +
+
+
#   + +
@GET_QUALIFICATION_LATENCY.time()
+ + def + get_qualification(self, qualification_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_QUALIFICATION_LATENCY.time()
+    def get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """
+        Return qualification's fields by qualification_id, raise
+        EntryDoesNotExistException if no id exists in qualifications
+
+        See Qualification for the expected fields for the returned mapping
+        """
+        return self._get_qualification(qualification_id=qualification_id)
+
+ +
+ +

Return qualification's fields by qualification_id, raise +EntryDoesNotExistException if no id exists in qualifications

+ +

See Qualification for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@DELETE_QUALIFICATION_LATENCY.time()
+ + def + delete_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    @DELETE_QUALIFICATION_LATENCY.time()
+    def delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        self._delete_qualification(qualification_name)
+        for crowd_provider_name in get_valid_provider_types():
+            ProviderClass = get_crowd_provider_from_type(crowd_provider_name)
+            provider = ProviderClass(self)
+            provider.cleanup_qualification(qualification_name)
+
+ +
+ +

Remove this qualification from all workers that have it, then delete the qualification

+
+ + +
+
+
#   + +
@GRANT_QUALIFICATION_LATENCY.time()
+ + def + grant_qualification(self, qualification_id: str, worker_id: str, value: int = 1) -> None: +
+ +
+ View Source +
    @GRANT_QUALIFICATION_LATENCY.time()
+    def grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """
+        Grant a worker the given qualification. Update the qualification value if it
+        already exists
+        """
+        return self._grant_qualification(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+ +
+ +

Grant a worker the given qualification. Update the qualification value if it +already exists

+
+ + +
+
+
#   + +
@CHECK_GRANTED_QUALIFICATIONS_LATENCY.time()
+ + def + check_granted_qualifications( + self, + qualification_id: Union[str, NoneType] = None, + worker_id: Union[str, NoneType] = None, + value: Union[int, NoneType] = None +) -> List[mephisto.data_model.qualification.GrantedQualification]: +
+ +
+ View Source +
    @CHECK_GRANTED_QUALIFICATIONS_LATENCY.time()
+    def check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """
+        Find granted qualifications that match the given specifications
+        """
+        return self._check_granted_qualifications(
+            qualification_id=qualification_id, worker_id=worker_id, value=value
+        )
+
+ +
+ +

Find granted qualifications that match the given specifications

+
+ + +
+
+
#   + +
@GET_GRANTED_QUALIFICATION_LATENCY.time()
+ + def + get_granted_qualification(self, qualification_id: str, worker_id: str) -> Mapping[str, Any]: +
+ +
+ View Source +
    @GET_GRANTED_QUALIFICATION_LATENCY.time()
+    def get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Return the granted qualification in the database between the given
+        worker and qualification id
+
+        See GrantedQualification for the expected fields for the returned mapping
+        """
+        return self._get_granted_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+ +
+ +

Return the granted qualification in the database between the given +worker and qualification id

+ +

See GrantedQualification for the expected fields for the returned mapping

+
+ + +
+
+
#   + +
@REVOKE_QUALIFICATION_LATENCY.time()
+ + def + revoke_qualification(self, qualification_id: str, worker_id: str) -> None: +
+ +
+ View Source +
    @REVOKE_QUALIFICATION_LATENCY.time()
+    def revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """
+        Remove the given qualification from the given worker
+        """
+        return self._revoke_qualification(
+            qualification_id=qualification_id, worker_id=worker_id
+        )
+
+ +
+ +

Remove the given qualification from the given worker

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/databases.html b/docs/web/static/python_api/mephisto/abstractions/databases.html new file mode 100644 index 000000000..c888f607f --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/databases.html @@ -0,0 +1,280 @@ + + + + + + + + + mephisto.abstractions.databases API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.databases

+ +

MephistoDB implementations

+ +

This folder contains implementations of the MephistoDB abstraction. Databases can currently be configured using the mephisto.database._database_type flag.

+ +

LocalMephistoDB

+ +

Activated with mephisto.database._database_type=local. An implementation of the Mephisto Data Model outlined in MephistoDB. This database stores all of the information locally via SQLite. Some helper functions are included to make the implementation cleaner by abstracting away SQLite error parsing and string formatting, however it's pretty straightforward from the requirements of MephistoDB.

+ +

SingletonMephistoDB

+ +

This database is best used for high performance runs on a single machine, where direct access to the underlying database isn't necessary during the runtime. It makes no guarantees on the rate of writing state or status to disk, as much of it is stored locally and in caches to keep IO locks down. Using this, you'll likely be able to get up on max_num_concurrent_units to 150-300 on live tasks, and upwards from 500 on static tasks.

+ +

At the moment this DB acts as a wrapper around the LocalMephistoDB, and trades off Mephisto memory consumption for writing time. All of the data model accesses that occur are cached into a library of singletons, so large enough tasks may have memory risks. This allows us to make clearer assertions about the synced nature of the data model members, but obviously requires active memory to do so.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/databases/local_database.html b/docs/web/static/python_api/mephisto/abstractions/databases/local_database.html new file mode 100644 index 000000000..9f0730d7c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/databases/local_database.html @@ -0,0 +1,3296 @@ + + + + + + + + + mephisto.abstractions.databases.local_database API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.databases.local_database

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.database import (
+    MephistoDB,
+    MephistoDBException,
+    EntryAlreadyExistsException,
+    EntryDoesNotExistException,
+)
+from typing import Mapping, Optional, Any, List, Dict, Tuple, Union
+from mephisto.utils.dirs import get_data_dir
+from mephisto.operations.registry import get_valid_provider_types
+from mephisto.data_model.agent import Agent, AgentState, OnboardingAgent
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.assignment import Assignment, AssignmentState
+from mephisto.data_model.constants import NO_PROJECT_NAME
+from mephisto.data_model.project import Project
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.qualification import Qualification, GrantedQualification
+
+import sqlite3
+from sqlite3 import Connection, Cursor
+import threading
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+def nonesafe_int(in_string: Optional[str]) -> Optional[int]:
+    """Cast input to an int or None"""
+    if in_string is None:
+        return None
+    return int(in_string)
+
+
+def assert_valid_provider(provider_type: str) -> None:
+    """Throw an assertion error if the given provider type is not valid"""
+    valid_types = get_valid_provider_types()
+    if provider_type not in valid_types:
+        raise MephistoDBException(
+            f"Supplied provider {provider_type} is not in supported list of providers {valid_types}."
+        )
+
+
+def is_key_failure(e: sqlite3.IntegrityError) -> bool:
+    """
+    Return if the given error is representing a foreign key
+    failure, where an insertion was expecting something to
+    exist already in the DB but it didn't.
+    """
+    return str(e) == "FOREIGN KEY constraint failed"
+
+
+def is_unique_failure(e: sqlite3.IntegrityError) -> bool:
+    """
+    Return if the given error is representing a foreign key
+    failure, where an insertion was expecting something to
+    exist already in the DB but it didn't.
+    """
+    return str(e).startswith("UNIQUE constraint")
+
+
+CREATE_PROJECTS_TABLE = """CREATE TABLE IF NOT EXISTS projects (
+    project_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    project_name TEXT NOT NULL UNIQUE,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+CREATE_TASKS_TABLE = """CREATE TABLE IF NOT EXISTS tasks (
+    task_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    task_name TEXT NOT NULL UNIQUE,
+    task_type TEXT NOT NULL,
+    project_id INTEGER,
+    parent_task_id INTEGER,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (parent_task_id) REFERENCES tasks (task_id),
+    FOREIGN KEY (project_id) REFERENCES projects (project_id)
+);
+"""
+
+CREATE_REQUESTERS_TABLE = """CREATE TABLE IF NOT EXISTS requesters (
+    requester_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    requester_name TEXT NOT NULL UNIQUE,
+    provider_type TEXT NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+CREATE_TASK_RUNS_TABLE = """
+    CREATE TABLE IF NOT EXISTS task_runs (
+    task_run_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    task_id INTEGER NOT NULL,
+    requester_id INTEGER NOT NULL,
+    init_params TEXT NOT NULL,
+    is_completed BOOLEAN NOT NULL,
+    provider_type TEXT NOT NULL,
+    task_type TEXT NOT NULL,
+    sandbox BOOLEAN NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (task_id) REFERENCES tasks (task_id),
+    FOREIGN KEY (requester_id) REFERENCES requesters (requester_id)
+);
+"""
+
+CREATE_ASSIGNMENTS_TABLE = """CREATE TABLE IF NOT EXISTS assignments (
+    assignment_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    task_id INTEGER NOT NULL,
+    task_run_id INTEGER NOT NULL,
+    requester_id INTEGER NOT NULL,
+    task_type TEXT NOT NULL,
+    provider_type TEXT NOT NULL,
+    sandbox BOOLEAN NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (task_id) REFERENCES tasks (task_id),
+    FOREIGN KEY (task_run_id) REFERENCES task_runs (task_run_id),
+    FOREIGN KEY (requester_id) REFERENCES requesters (requester_id)
+);
+"""
+
+CREATE_UNITS_TABLE = """CREATE TABLE IF NOT EXISTS units (
+    unit_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    assignment_id INTEGER NOT NULL,
+    unit_index INTEGER NOT NULL,
+    pay_amount FLOAT NOT NULL,
+    provider_type TEXT NOT NULL,
+    status TEXT NOT NULL,
+    agent_id INTEGER,
+    worker_id INTEGER,
+    task_type TEXT NOT NULL,
+    task_id INTEGER NOT NULL,
+    task_run_id INTEGER NOT NULL,
+    sandbox BOOLEAN NOT NULL,
+    requester_id INTEGER NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (assignment_id) REFERENCES assignments (assignment_id),
+    FOREIGN KEY (agent_id) REFERENCES agents (agent_id),
+    FOREIGN KEY (task_run_id) REFERENCES task_runs (task_run_id),
+    FOREIGN KEY (task_id) REFERENCES tasks (task_id),
+    FOREIGN KEY (requester_id) REFERENCES requesters (requester_id),
+    FOREIGN KEY (worker_id) REFERENCES workers (worker_id),
+    UNIQUE (assignment_id, unit_index)
+);
+"""
+
+CREATE_WORKERS_TABLE = """CREATE TABLE IF NOT EXISTS workers (
+    worker_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    worker_name TEXT NOT NULL UNIQUE,
+    provider_type TEXT NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+CREATE_AGENTS_TABLE = """CREATE TABLE IF NOT EXISTS agents (
+    agent_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    worker_id INTEGER NOT NULL,
+    unit_id INTEGER NOT NULL,
+    task_id INTEGER NOT NULL,
+    task_run_id INTEGER NOT NULL,
+    assignment_id INTEGER NOT NULL,
+    task_type TEXT NOT NULL,
+    provider_type TEXT NOT NULL,
+    status TEXT NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (worker_id) REFERENCES workers (worker_id),
+    FOREIGN KEY (unit_id) REFERENCES units (unit_id)
+);
+"""
+
+CREATE_ONBOARDING_AGENTS_TABLE = """CREATE TABLE IF NOT EXISTS onboarding_agents (
+    onboarding_agent_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    worker_id INTEGER NOT NULL,
+    task_id INTEGER NOT NULL,
+    task_run_id INTEGER NOT NULL,
+    task_type TEXT NOT NULL,
+    status TEXT NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (worker_id) REFERENCES workers (worker_id),
+    FOREIGN KEY (task_run_id) REFERENCES task_runs (task_run_id)
+);
+"""
+
+CREATE_QUALIFICATIONS_TABLE = """CREATE TABLE IF NOT EXISTS qualifications (
+    qualification_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    qualification_name TEXT NOT NULL UNIQUE,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+CREATE_GRANTED_QUALIFICATIONS_TABLE = """
+CREATE TABLE IF NOT EXISTS granted_qualifications (
+    granted_qualification_id INTEGER PRIMARY KEY AUTOINCREMENT,
+    worker_id INTEGER NOT NULL,
+    qualification_id INTEGER NOT NULL,
+    value INTEGER NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    FOREIGN KEY (worker_id) REFERENCES workers (worker_id),
+    FOREIGN KEY (qualification_id) REFERENCES qualifications (qualification_id),
+    UNIQUE (worker_id, qualification_id)
+);
+"""
+
+# Indices that are used by system-specific calls across Mephisto during live tasks
+# that improve the runtime of the system as a whole
+CREATE_CORE_INDEXES = """
+CREATE INDEX IF NOT EXISTS requesters_by_provider_index ON requesters(provider_type);
+CREATE INDEX IF NOT EXISTS unit_by_status_index ON units(status);
+CREATE INDEX IF NOT EXISTS unit_by_assignment_id_index ON units(assignment_id);
+CREATE INDEX IF NOT EXISTS unit_by_task_run_index ON units(task_run_id);
+CREATE INDEX IF NOT EXISTS unit_by_task_run_by_worker_by_status_index ON units(task_run_id, worker_id, status);
+CREATE INDEX IF NOT EXISTS unit_by_task_by_worker_index ON units(task_id, worker_id);
+CREATE INDEX IF NOT EXISTS agent_by_worker_by_status_index ON agents(worker_id, status);
+CREATE INDEX IF NOT EXISTS agent_by_task_run_index ON agents(task_run_id);
+CREATE INDEX IF NOT EXISTS assignment_by_task_run_index ON assignments(task_run_id);
+CREATE INDEX IF NOT EXISTS task_run_by_requester_index ON task_runs(requester_id);
+CREATE INDEX IF NOT EXISTS task_run_by_task_index ON task_runs(task_id);
+"""
+
+
+class StringIDRow(sqlite3.Row):
+    def __getitem__(self, key: str) -> Any:
+        val = super().__getitem__(key)
+        if key.endswith("_id") and val is not None:
+            return str(val)
+        else:
+            return val
+
+
+class LocalMephistoDB(MephistoDB):
+    """
+    Local database for core Mephisto data storage, the LocalMephistoDatabase handles
+    grounding all of the python interactions with the Mephisto architecture to
+    local files and a database.
+    """
+
+    def __init__(self, database_path=None):
+        logger.debug(f"database path: {database_path}")
+        self.conn: Dict[int, Connection] = {}
+        self.table_access_condition = threading.Condition()
+        super().__init__(database_path)
+
+    def _get_connection(self) -> Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            try:
+                conn = sqlite3.connect(self.db_path)
+                conn.row_factory = StringIDRow
+                self.conn[curr_thread] = conn
+            except sqlite3.Error as e:
+                raise MephistoDBException(e)
+        return self.conn[curr_thread]
+
+    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_PROJECTS_TABLE)
+                c.execute(CREATE_TASKS_TABLE)
+                c.execute(CREATE_REQUESTERS_TABLE)
+                c.execute(CREATE_TASK_RUNS_TABLE)
+                c.execute(CREATE_ASSIGNMENTS_TABLE)
+                c.execute(CREATE_UNITS_TABLE)
+                c.execute(CREATE_WORKERS_TABLE)
+                c.execute(CREATE_AGENTS_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_GRANTED_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_ONBOARDING_AGENTS_TABLE)
+                c.executescript(CREATE_CORE_INDEXES)
+
+    def __get_one_by_id(
+        self, table_name: str, id_name: str, db_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Try to request the row for the given table and entry,
+        raise EntryDoesNotExistException if it isn't present
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                f"""
+                SELECT * FROM {table_name}
+                WHERE ({id_name} = ?)
+                """,
+                (int(db_id),),
+            )
+            results = c.fetchall()
+            if len(results) != 1:
+                raise EntryDoesNotExistException(
+                    f"Table {table_name} has no {id_name} {db_id}"
+                )
+            return results[0]
+
+    def __create_query_and_tuple(
+        self,
+        arg_list: List[str],
+        arg_vals: List[Optional[Union[str, int, bool]]],
+    ) -> Tuple[str, tuple]:
+        """
+        Given a list of the possible filtering args and valid values,
+        construct the WHERE part of a query with these and
+        a tuple containing the elements
+        """
+        fin_args = []
+        fin_vals = []
+        for arg, val in zip(arg_list, arg_vals):
+            if val is None:
+                continue
+            fin_args.append(arg)
+            fin_vals.append(val)
+        if len(fin_args) == 0:
+            return "", ()
+
+        query_lines = [
+            f"WHERE {arg_name} = ?{idx+1}\n"
+            if idx == 0
+            else f"AND {arg_name} = ?{idx+1}\n"
+            for idx, arg_name in enumerate(fin_args)
+        ]
+
+        return "".join(query_lines), tuple(fin_vals)
+
+    def _new_project(self, project_name: str) -> str:
+        """
+        Create a new project with the given project name. Raise EntryAlreadyExistsException if a project
+        with this name has already been created.
+        """
+        if project_name in [NO_PROJECT_NAME, ""]:
+            raise MephistoDBException(f'Invalid project name "{project_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO projects(project_name) VALUES (?);", (project_name,)
+                )
+                project_id = str(c.lastrowid)
+                return project_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException()
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(
+                        f"Project {project_name} already exists"
+                    )
+                raise MephistoDBException(e)
+
+    def _get_project(self, project_id: str) -> Mapping[str, Any]:
+        """
+        Return project's fields by the given project_id, raise EntryDoesNotExistException
+        if no id exists in projects
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("projects", "project_id", project_id)
+
+    def _find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """
+        Try to find any project that matches the above. When called with no arguments,
+        return all projects.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["project_name"], [project_name]
+            )
+            c.execute(
+                """
+                SELECT * from projects
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Project(self, str(r["project_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """
+        Create a new task with the given task name. Raise EntryAlreadyExistsException if a task
+        with this name has already been created.
+        """
+        if task_name in [""]:
+            raise MephistoDBException(f'Invalid task name "{task_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO tasks(
+                        task_name,
+                        task_type,
+                        project_id,
+                        parent_task_id
+                    ) VALUES (?, ?, ?, ?);""",
+                    (
+                        task_name,
+                        task_type,
+                        nonesafe_int(project_id),
+                        None,
+                    ),
+                )
+                task_id = str(c.lastrowid)
+                return task_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(e)
+                raise MephistoDBException(e)
+
+    def _get_task(self, task_id: str) -> Mapping[str, Any]:
+        """
+        Return task's fields by task_id, raise EntryDoesNotExistException if no id exists
+        in tasks
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("tasks", "task_id", task_id)
+
+    def _find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["task_name", "project_id", "parent_task_id"],
+                [task_name, nonesafe_int(project_id), None],
+            )
+            c.execute(
+                """
+                SELECT * from tasks
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Task(self, str(r["task_id"]), row=r, _used_new_call=True) for r in rows
+            ]
+
+    def _update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+
+        Tasks can only be updated if no runs exist for this task yet, otherwise there's too much state
+        and we shouldn't make changes.
+        """
+        if len(self.find_task_runs(task_id=task_id)) != 0:
+            raise MephistoDBException(
+                "Cannot edit a task that has already been run, for risk of data corruption."
+            )
+        if task_name in [""]:
+            raise MephistoDBException(f'Invalid task name "{task_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                if task_name is not None:
+                    c.execute(
+                        """
+                        UPDATE tasks
+                        SET task_name = ?
+                        WHERE task_id = ?;
+                        """,
+                        (task_name, int(task_id)),
+                    )
+                if project_id is not None:
+                    c.execute(
+                        """
+                        UPDATE tasks
+                        SET project_id = ?
+                        WHERE task_id = ?;
+                        """,
+                        (int(project_id), int(task_id)),
+                    )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(
+                        f"Task name {task_name} is already in use"
+                    )
+                raise MephistoDBException(e)
+
+    def _new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """Create a new task_run for the given task."""
+        with self.table_access_condition, self._get_connection() as conn:
+            # Ensure given ids are valid
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    INSERT INTO task_runs(
+                        task_id,
+                        requester_id,
+                        init_params,
+                        is_completed,
+                        provider_type,
+                        task_type,
+                        sandbox
+                    )
+                    VALUES (?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(task_id),
+                        int(requester_id),
+                        init_params,
+                        False,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                    ),
+                )
+                task_run_id = str(c.lastrowid)
+                return task_run_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """
+        Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists
+        in task_runs.
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("task_runs", "task_run_id", task_run_id)
+
+    def _find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """
+        Try to find any task_run that matches the above. When called with no arguments,
+        return all task_runs.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["task_id", "requester_id", "is_completed"],
+                [nonesafe_int(task_id), nonesafe_int(requester_id), is_completed],
+            )
+            c.execute(
+                """
+                SELECT * from task_runs
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                TaskRun(self, str(r["task_run_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _update_task_run(self, task_run_id: str, is_completed: bool):
+        """
+        Update a task run. At the moment, can only update completion status
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    UPDATE task_runs
+                    SET is_completed = ?
+                    WHERE task_run_id = ?;
+                    """,
+                    (is_completed, int(task_run_id)),
+                )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """Create a new assignment for the given task"""
+        # Ensure task run exists
+        self.get_task_run(task_run_id)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                INSERT INTO assignments(
+                    task_id,
+                    task_run_id,
+                    requester_id,
+                    task_type,
+                    provider_type,
+                    sandbox
+                ) VALUES (?, ?, ?, ?, ?, ?);""",
+                (
+                    int(task_id),
+                    int(task_run_id),
+                    int(requester_id),
+                    task_type,
+                    provider_type,
+                    sandbox,
+                ),
+            )
+            assignment_id = str(c.lastrowid)
+            return assignment_id
+
+    def _get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """
+        Return assignment's fields by assignment_id, raise EntryDoesNotExistException
+        if no id exists in tasks
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("assignments", "assignment_id", assignment_id)
+
+    def _find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "task_run_id",
+                    "task_id",
+                    "requester_id",
+                    "task_type",
+                    "provider_type",
+                    "sandbox",
+                ],
+                [
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(requester_id),
+                    task_type,
+                    provider_type,
+                    sandbox,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from assignments
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Assignment(self, str(r["assignment_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO units(
+                        task_id,
+                        task_run_id,
+                        requester_id,
+                        assignment_id,
+                        unit_index,
+                        pay_amount,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(task_id),
+                        int(task_run_id),
+                        int(requester_id),
+                        int(assignment_id),
+                        unit_index,
+                        pay_amount,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                        AssignmentState.CREATED,
+                    ),
+                )
+                unit_id = str(c.lastrowid)
+                return unit_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(e)
+                raise MephistoDBException(e)
+
+    def _get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """
+        Return unit's fields by unit_id, raise EntryDoesNotExistException
+        if no id exists in units
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("units", "unit_id", unit_id)
+
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Try to find any unit that matches the above. When called with no arguments,
+        return all units.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "task_id",
+                    "task_run_id",
+                    "requester_id",
+                    "assignment_id",
+                    "unit_index",
+                    "provider_type",
+                    "task_type",
+                    "agent_id",
+                    "worker_id",
+                    "sandbox",
+                    "status",
+                ],
+                [
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(requester_id),
+                    nonesafe_int(assignment_id),
+                    unit_index,
+                    provider_type,
+                    task_type,
+                    nonesafe_int(agent_id),
+                    nonesafe_int(worker_id),
+                    sandbox,
+                    status,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from units
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Unit(self, str(r["unit_id"]), row=r, _used_new_call=True) for r in rows
+            ]
+
+    def _clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """
+        Update the given unit by removing the agent that is assigned to it, thus updating
+        the status to assignable.
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    UPDATE units
+                    SET agent_id = ?, worker_id = ?, status = ?
+                    WHERE unit_id = ?;
+                    """,
+                    (None, None, AssignmentState.LAUNCHED, int(unit_id)),
+                )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(
+                        f"Given unit_id {unit_id} not found in the database"
+                    )
+                raise MephistoDBException(e)
+
+    def _update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        if status not in AssignmentState.valid_unit():
+            raise MephistoDBException(f"Invalid status {status} for a unit")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                if agent_id is not None:
+                    c.execute(
+                        """
+                        UPDATE units
+                        SET agent_id = ?
+                        WHERE unit_id = ?;
+                        """,
+                        (int(agent_id), int(unit_id)),
+                    )
+                if status is not None:
+                    c.execute(
+                        """
+                        UPDATE units
+                        SET status = ?
+                        WHERE unit_id = ?;
+                        """,
+                        (status, int(unit_id)),
+                    )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(
+                        f"Given unit_id {unit_id} not found in the database"
+                    )
+                raise MephistoDBException(e)
+
+    def _new_requester(self, requester_name: str, provider_type: str) -> str:
+        """
+        Create a new requester with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a requester with this name
+        """
+        if requester_name == "":
+            raise MephistoDBException("Empty string is not a valid requester name")
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO requesters(requester_name, provider_type) VALUES (?, ?);",
+                    (requester_name, provider_type),
+                )
+                requester_id = str(c.lastrowid)
+                return requester_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """
+        Return requester's fields by requester_id, raise EntryDoesNotExistException
+        if no id exists in requesters
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("requesters", "requester_id", requester_id)
+
+    def _find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """
+        Try to find any requester that matches the above. When called with no arguments,
+        return all requesters.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["requester_name", "provider_type"], [requester_name, provider_type]
+            )
+            c.execute(
+                """
+                SELECT * from requesters
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Requester(self, str(r["requester_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_worker(self, worker_name: str, provider_type: str) -> str:
+        """
+        Create a new worker with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a worker with this name
+
+        worker_name should be the unique identifier by which the crowd provider
+        is using to keep track of this worker
+        """
+        if worker_name == "":
+            raise MephistoDBException("Empty string is not a valid requester name")
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO workers(worker_name, provider_type) VALUES (?, ?);",
+                    (worker_name, provider_type),
+                )
+                worker_id = str(c.lastrowid)
+                return worker_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """
+        Return worker's fields by worker_id, raise EntryDoesNotExistException
+        if no id exists in workers
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("workers", "worker_id", worker_id)
+
+    def _find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """
+        Try to find any worker that matches the above. When called with no arguments,
+        return all workers.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["worker_name", "provider_type"], [worker_name, provider_type]
+            )
+            c.execute(
+                """
+                SELECT * from workers
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Worker(self, str(r["worker_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Create a new agent with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a agent with this name
+        """
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO agents(
+                        worker_id,
+                        unit_id,
+                        task_id,
+                        task_run_id,
+                        assignment_id,
+                        task_type,
+                        provider_type,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(worker_id),
+                        int(unit_id),
+                        int(task_id),
+                        int(task_run_id),
+                        int(assignment_id),
+                        task_type,
+                        provider_type,
+                        AgentState.STATUS_NONE,
+                    ),
+                )
+                agent_id = str(c.lastrowid)
+                c.execute(
+                    """
+                    UPDATE units
+                    SET status = ?, agent_id = ?, worker_id = ?
+                    WHERE unit_id = ?;
+                    """,
+                    (
+                        AssignmentState.ASSIGNED,
+                        int(agent_id),
+                        int(worker_id),
+                        int(unit_id),
+                    ),
+                )
+                return agent_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """
+        Return agent's fields by agent_id, raise EntryDoesNotExistException
+        if no id exists in agents
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("agents", "agent_id", agent_id)
+
+    def _update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        if status not in AgentState.valid():
+            raise MephistoDBException(f"Invalid status {status} for an agent")
+
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                UPDATE agents
+                SET status = ?
+                WHERE agent_id = ?;
+                """,
+                (status, int(agent_id)),
+            )
+
+    def _find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """
+        Try to find any agent that matches the above. When called with no arguments,
+        return all agents.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "status",
+                    "unit_id",
+                    "worker_id",
+                    "task_id",
+                    "task_run_id",
+                    "assignment_id",
+                    "task_type",
+                    "provider_type",
+                ],
+                [
+                    status,
+                    nonesafe_int(unit_id),
+                    nonesafe_int(worker_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(assignment_id),
+                    task_type,
+                    provider_type,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from agents
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Agent(self, str(r["agent_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _make_qualification(self, qualification_name: str) -> str:
+        """
+        Make a new qualification, throws an error if a qualification by the given name
+        already exists. Return the id for the qualification.
+        """
+        if qualification_name == "":
+            raise MephistoDBException("Empty string is not a valid qualification name")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO qualifications(qualification_name) VALUES (?);",
+                    (qualification_name,),
+                )
+                qualification_id = str(c.lastrowid)
+                return qualification_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """
+        Find a qualification. If no name is supplied, returns all qualifications.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["qualification_name"], [qualification_name]
+            )
+            c.execute(
+                """
+                SELECT * from qualifications
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Qualification(
+                    self, str(r["qualification_id"]), row=r, _used_new_call=True
+                )
+                for r in rows
+            ]
+
+    def _get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """
+        Return qualification's fields by qualification_id, raise
+        EntryDoesNotExistException if no id exists in qualifications
+
+        See Qualification for the expected fields for the returned mapping
+        """
+        return self.__get_one_by_id(
+            "qualifications", "qualification_id", qualification_id
+        )
+
+    def _delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        qualifications = self.find_qualifications(qualification_name=qualification_name)
+        if len(qualifications) == 0:
+            raise EntryDoesNotExistException(
+                f"No qualification found by name {qualification_name}"
+            )
+        qualification = qualifications[0]
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                "DELETE FROM granted_qualifications WHERE qualification_id = ?1;",
+                (int(qualification.db_id),),
+            )
+            c.execute(
+                "DELETE FROM qualifications WHERE qualification_name = ?1;",
+                (qualification_name,),
+            )
+
+    def _grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """
+        Grant a worker the given qualification. Update the qualification value if it
+        already exists
+        """
+        # Note that better syntax exists for python 3.8+, as described in PR #223
+        try:
+            # Update existing entry
+            qual_row = self.get_granted_qualification(qualification_id, worker_id)
+            with self.table_access_condition, self._get_connection() as conn:
+                if value != qual_row["value"]:
+                    c = conn.cursor()
+                    c.execute(
+                        """
+                        UPDATE granted_qualifications
+                        SET value = ?
+                        WHERE (qualification_id = ?)
+                        AND (worker_id = ?);
+                        """,
+                        (value, int(qualification_id), int(worker_id)),
+                    )
+                    conn.commit()
+                    return None
+        except EntryDoesNotExistException:
+            with self.table_access_condition, self._get_connection() as conn:
+                c = conn.cursor()
+                try:
+                    c.execute(
+                        """
+                        INSERT INTO granted_qualifications(
+                            qualification_id,
+                            worker_id,
+                            value
+                        ) VALUES (?, ?, ?);
+                        """,
+                        (int(qualification_id), int(worker_id), value),
+                    )
+                    qualification_id = str(c.lastrowid)
+                    conn.commit()
+                    return None
+                except sqlite3.IntegrityError as e:
+                    if is_unique_failure(e):
+                        raise EntryAlreadyExistsException()
+                    raise MephistoDBException(e)
+
+    def _check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """
+        Find granted qualifications that match the given specifications
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from granted_qualifications
+                WHERE (?1 IS NULL OR qualification_id = ?1)
+                AND (?2 IS NULL OR worker_id = ?2)
+                AND (?3 IS NULL OR value = ?3)
+                """,
+                (qualification_id, worker_id, value),
+            )
+            rows = c.fetchall()
+            return [
+                GrantedQualification(
+                    self, str(r["qualification_id"]), str(r["worker_id"])
+                )
+                for r in rows
+            ]
+
+    def _get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Return the granted qualification in the database between the given
+        worker and qualification id
+
+        See GrantedQualification for the expected fields for the returned mapping
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                f"""
+                SELECT * FROM granted_qualifications
+                WHERE (qualification_id = ?1)
+                AND (worker_id = ?2);
+                """,
+                (nonesafe_int(qualification_id), nonesafe_int(worker_id)),
+            )
+            results = c.fetchall()
+            if len(results) != 1:
+                raise EntryDoesNotExistException(
+                    f"No such granted qualification {qualification_id}, {worker_id}"
+                )
+            return results[0]
+
+    def _revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """
+        Remove the given qualification from the given worker
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """DELETE FROM granted_qualifications
+                WHERE (qualification_id = ?1)
+                AND (worker_id = ?2);
+                """,
+                (int(qualification_id), int(worker_id)),
+            )
+
+    def _new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO onboarding_agents(
+                        worker_id,
+                        task_id,
+                        task_run_id,
+                        task_type,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?);""",
+                    (
+                        int(worker_id),
+                        int(task_id),
+                        int(task_run_id),
+                        task_type,
+                        AgentState.STATUS_NONE,
+                    ),
+                )
+                return str(c.lastrowid)
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """
+        Return onboarding agent's fields by onboarding_agent_id, raise
+        EntryDoesNotExistException if no id exists in onboarding_agents
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id(
+            "onboarding_agents", "onboarding_agent_id", onboarding_agent_id
+        )
+
+    def _update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given onboarding agent with the given parameters if possible,
+        raise appropriate exception otherwise.
+        """
+        if status not in AgentState.valid():
+            raise MephistoDBException(f"Invalid status {status} for an agent")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            if status is not None:
+                c.execute(
+                    """
+                    UPDATE onboarding_agents
+                    SET status = ?
+                    WHERE onboarding_agent_id = ?;
+                    """,
+                    (status, int(onboarding_agent_id)),
+                )
+
+    def _find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """
+        Try to find any onboarding agent that matches the above. When called with no arguments,
+        return all onboarding agents.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "status",
+                    "worker_id",
+                    "task_id",
+                    "task_run_id",
+                    "task_type",
+                ],
+                [
+                    status,
+                    nonesafe_int(worker_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    task_type,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from onboarding_agents
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                OnboardingAgent(
+                    self, str(r["onboarding_agent_id"]), row=r, _used_new_call=True
+                )
+                for r in rows
+            ]
+
+ +
+ +
+
+
#   + + + def + nonesafe_int(in_string: Union[str, NoneType]) -> Union[int, NoneType]: +
+ +
+ View Source +
def nonesafe_int(in_string: Optional[str]) -> Optional[int]:
+    """Cast input to an int or None"""
+    if in_string is None:
+        return None
+    return int(in_string)
+
+ +
+ +

Cast input to an int or None

+
+ + +
+
+
#   + + + def + assert_valid_provider(provider_type: str) -> None: +
+ +
+ View Source +
def assert_valid_provider(provider_type: str) -> None:
+    """Throw an assertion error if the given provider type is not valid"""
+    valid_types = get_valid_provider_types()
+    if provider_type not in valid_types:
+        raise MephistoDBException(
+            f"Supplied provider {provider_type} is not in supported list of providers {valid_types}."
+        )
+
+ +
+ +

Throw an assertion error if the given provider type is not valid

+
+ + +
+
+
#   + + + def + is_key_failure(e: sqlite3.IntegrityError) -> bool: +
+ +
+ View Source +
def is_key_failure(e: sqlite3.IntegrityError) -> bool:
+    """
+    Return if the given error is representing a foreign key
+    failure, where an insertion was expecting something to
+    exist already in the DB but it didn't.
+    """
+    return str(e) == "FOREIGN KEY constraint failed"
+
+ +
+ +

Return if the given error is representing a foreign key +failure, where an insertion was expecting something to +exist already in the DB but it didn't.

+
+ + +
+
+
#   + + + def + is_unique_failure(e: sqlite3.IntegrityError) -> bool: +
+ +
+ View Source +
def is_unique_failure(e: sqlite3.IntegrityError) -> bool:
+    """
+    Return if the given error is representing a foreign key
+    failure, where an insertion was expecting something to
+    exist already in the DB but it didn't.
+    """
+    return str(e).startswith("UNIQUE constraint")
+
+ +
+ +

Return if the given error is representing a foreign key +failure, where an insertion was expecting something to +exist already in the DB but it didn't.

+
+ + +
+
+
+ #   + + + class + StringIDRow(sqlite3.Row): +
+ +
+ View Source +
class StringIDRow(sqlite3.Row):
+    def __getitem__(self, key: str) -> Any:
+        val = super().__getitem__(key)
+        if key.endswith("_id") and val is not None:
+            return str(val)
+        else:
+            return val
+
+ +
+ + + +
+
#   + + + StringIDRow() +
+ + + + +
+
+
Inherited Members
+
+
sqlite3.Row
+
keys
+ +
+
+
+
+
+
+ #   + + + class + LocalMephistoDB(mephisto.abstractions.database.MephistoDB): +
+ +
+ View Source +
class LocalMephistoDB(MephistoDB):
+    """
+    Local database for core Mephisto data storage, the LocalMephistoDatabase handles
+    grounding all of the python interactions with the Mephisto architecture to
+    local files and a database.
+    """
+
+    def __init__(self, database_path=None):
+        logger.debug(f"database path: {database_path}")
+        self.conn: Dict[int, Connection] = {}
+        self.table_access_condition = threading.Condition()
+        super().__init__(database_path)
+
+    def _get_connection(self) -> Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            try:
+                conn = sqlite3.connect(self.db_path)
+                conn.row_factory = StringIDRow
+                self.conn[curr_thread] = conn
+            except sqlite3.Error as e:
+                raise MephistoDBException(e)
+        return self.conn[curr_thread]
+
+    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_PROJECTS_TABLE)
+                c.execute(CREATE_TASKS_TABLE)
+                c.execute(CREATE_REQUESTERS_TABLE)
+                c.execute(CREATE_TASK_RUNS_TABLE)
+                c.execute(CREATE_ASSIGNMENTS_TABLE)
+                c.execute(CREATE_UNITS_TABLE)
+                c.execute(CREATE_WORKERS_TABLE)
+                c.execute(CREATE_AGENTS_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_GRANTED_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_ONBOARDING_AGENTS_TABLE)
+                c.executescript(CREATE_CORE_INDEXES)
+
+    def __get_one_by_id(
+        self, table_name: str, id_name: str, db_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Try to request the row for the given table and entry,
+        raise EntryDoesNotExistException if it isn't present
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                f"""
+                SELECT * FROM {table_name}
+                WHERE ({id_name} = ?)
+                """,
+                (int(db_id),),
+            )
+            results = c.fetchall()
+            if len(results) != 1:
+                raise EntryDoesNotExistException(
+                    f"Table {table_name} has no {id_name} {db_id}"
+                )
+            return results[0]
+
+    def __create_query_and_tuple(
+        self,
+        arg_list: List[str],
+        arg_vals: List[Optional[Union[str, int, bool]]],
+    ) -> Tuple[str, tuple]:
+        """
+        Given a list of the possible filtering args and valid values,
+        construct the WHERE part of a query with these and
+        a tuple containing the elements
+        """
+        fin_args = []
+        fin_vals = []
+        for arg, val in zip(arg_list, arg_vals):
+            if val is None:
+                continue
+            fin_args.append(arg)
+            fin_vals.append(val)
+        if len(fin_args) == 0:
+            return "", ()
+
+        query_lines = [
+            f"WHERE {arg_name} = ?{idx+1}\n"
+            if idx == 0
+            else f"AND {arg_name} = ?{idx+1}\n"
+            for idx, arg_name in enumerate(fin_args)
+        ]
+
+        return "".join(query_lines), tuple(fin_vals)
+
+    def _new_project(self, project_name: str) -> str:
+        """
+        Create a new project with the given project name. Raise EntryAlreadyExistsException if a project
+        with this name has already been created.
+        """
+        if project_name in [NO_PROJECT_NAME, ""]:
+            raise MephistoDBException(f'Invalid project name "{project_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO projects(project_name) VALUES (?);", (project_name,)
+                )
+                project_id = str(c.lastrowid)
+                return project_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException()
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(
+                        f"Project {project_name} already exists"
+                    )
+                raise MephistoDBException(e)
+
+    def _get_project(self, project_id: str) -> Mapping[str, Any]:
+        """
+        Return project's fields by the given project_id, raise EntryDoesNotExistException
+        if no id exists in projects
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("projects", "project_id", project_id)
+
+    def _find_projects(self, project_name: Optional[str] = None) -> List[Project]:
+        """
+        Try to find any project that matches the above. When called with no arguments,
+        return all projects.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["project_name"], [project_name]
+            )
+            c.execute(
+                """
+                SELECT * from projects
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Project(self, str(r["project_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_task(
+        self,
+        task_name: str,
+        task_type: str,
+        project_id: Optional[str] = None,
+    ) -> str:
+        """
+        Create a new task with the given task name. Raise EntryAlreadyExistsException if a task
+        with this name has already been created.
+        """
+        if task_name in [""]:
+            raise MephistoDBException(f'Invalid task name "{task_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO tasks(
+                        task_name,
+                        task_type,
+                        project_id,
+                        parent_task_id
+                    ) VALUES (?, ?, ?, ?);""",
+                    (
+                        task_name,
+                        task_type,
+                        nonesafe_int(project_id),
+                        None,
+                    ),
+                )
+                task_id = str(c.lastrowid)
+                return task_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(e)
+                raise MephistoDBException(e)
+
+    def _get_task(self, task_id: str) -> Mapping[str, Any]:
+        """
+        Return task's fields by task_id, raise EntryDoesNotExistException if no id exists
+        in tasks
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("tasks", "task_id", task_id)
+
+    def _find_tasks(
+        self,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> List[Task]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["task_name", "project_id", "parent_task_id"],
+                [task_name, nonesafe_int(project_id), None],
+            )
+            c.execute(
+                """
+                SELECT * from tasks
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Task(self, str(r["task_id"]), row=r, _used_new_call=True) for r in rows
+            ]
+
+    def _update_task(
+        self,
+        task_id: str,
+        task_name: Optional[str] = None,
+        project_id: Optional[str] = None,
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+
+        Tasks can only be updated if no runs exist for this task yet, otherwise there's too much state
+        and we shouldn't make changes.
+        """
+        if len(self.find_task_runs(task_id=task_id)) != 0:
+            raise MephistoDBException(
+                "Cannot edit a task that has already been run, for risk of data corruption."
+            )
+        if task_name in [""]:
+            raise MephistoDBException(f'Invalid task name "{task_name}')
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                if task_name is not None:
+                    c.execute(
+                        """
+                        UPDATE tasks
+                        SET task_name = ?
+                        WHERE task_id = ?;
+                        """,
+                        (task_name, int(task_id)),
+                    )
+                if project_id is not None:
+                    c.execute(
+                        """
+                        UPDATE tasks
+                        SET project_id = ?
+                        WHERE task_id = ?;
+                        """,
+                        (int(project_id), int(task_id)),
+                    )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(
+                        f"Task name {task_name} is already in use"
+                    )
+                raise MephistoDBException(e)
+
+    def _new_task_run(
+        self,
+        task_id: str,
+        requester_id: str,
+        init_params: str,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """Create a new task_run for the given task."""
+        with self.table_access_condition, self._get_connection() as conn:
+            # Ensure given ids are valid
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    INSERT INTO task_runs(
+                        task_id,
+                        requester_id,
+                        init_params,
+                        is_completed,
+                        provider_type,
+                        task_type,
+                        sandbox
+                    )
+                    VALUES (?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(task_id),
+                        int(requester_id),
+                        init_params,
+                        False,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                    ),
+                )
+                task_run_id = str(c.lastrowid)
+                return task_run_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_task_run(self, task_run_id: str) -> Mapping[str, Any]:
+        """
+        Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists
+        in task_runs.
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("task_runs", "task_run_id", task_run_id)
+
+    def _find_task_runs(
+        self,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        is_completed: Optional[bool] = None,
+    ) -> List[TaskRun]:
+        """
+        Try to find any task_run that matches the above. When called with no arguments,
+        return all task_runs.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["task_id", "requester_id", "is_completed"],
+                [nonesafe_int(task_id), nonesafe_int(requester_id), is_completed],
+            )
+            c.execute(
+                """
+                SELECT * from task_runs
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                TaskRun(self, str(r["task_run_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _update_task_run(self, task_run_id: str, is_completed: bool):
+        """
+        Update a task run. At the moment, can only update completion status
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    UPDATE task_runs
+                    SET is_completed = ?
+                    WHERE task_run_id = ?;
+                    """,
+                    (is_completed, int(task_run_id)),
+                )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _new_assignment(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        task_type: str,
+        provider_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """Create a new assignment for the given task"""
+        # Ensure task run exists
+        self.get_task_run(task_run_id)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                INSERT INTO assignments(
+                    task_id,
+                    task_run_id,
+                    requester_id,
+                    task_type,
+                    provider_type,
+                    sandbox
+                ) VALUES (?, ?, ?, ?, ?, ?);""",
+                (
+                    int(task_id),
+                    int(task_run_id),
+                    int(requester_id),
+                    task_type,
+                    provider_type,
+                    sandbox,
+                ),
+            )
+            assignment_id = str(c.lastrowid)
+            return assignment_id
+
+    def _get_assignment(self, assignment_id: str) -> Mapping[str, Any]:
+        """
+        Return assignment's fields by assignment_id, raise EntryDoesNotExistException
+        if no id exists in tasks
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("assignments", "assignment_id", assignment_id)
+
+    def _find_assignments(
+        self,
+        task_run_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+    ) -> List[Assignment]:
+        """
+        Try to find any task that matches the above. When called with no arguments,
+        return all tasks.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "task_run_id",
+                    "task_id",
+                    "requester_id",
+                    "task_type",
+                    "provider_type",
+                    "sandbox",
+                ],
+                [
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(requester_id),
+                    task_type,
+                    provider_type,
+                    sandbox,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from assignments
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Assignment(self, str(r["assignment_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO units(
+                        task_id,
+                        task_run_id,
+                        requester_id,
+                        assignment_id,
+                        unit_index,
+                        pay_amount,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(task_id),
+                        int(task_run_id),
+                        int(requester_id),
+                        int(assignment_id),
+                        unit_index,
+                        pay_amount,
+                        provider_type,
+                        task_type,
+                        sandbox,
+                        AssignmentState.CREATED,
+                    ),
+                )
+                unit_id = str(c.lastrowid)
+                return unit_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                elif is_unique_failure(e):
+                    raise EntryAlreadyExistsException(e)
+                raise MephistoDBException(e)
+
+    def _get_unit(self, unit_id: str) -> Mapping[str, Any]:
+        """
+        Return unit's fields by unit_id, raise EntryDoesNotExistException
+        if no id exists in units
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("units", "unit_id", unit_id)
+
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Try to find any unit that matches the above. When called with no arguments,
+        return all units.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "task_id",
+                    "task_run_id",
+                    "requester_id",
+                    "assignment_id",
+                    "unit_index",
+                    "provider_type",
+                    "task_type",
+                    "agent_id",
+                    "worker_id",
+                    "sandbox",
+                    "status",
+                ],
+                [
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(requester_id),
+                    nonesafe_int(assignment_id),
+                    unit_index,
+                    provider_type,
+                    task_type,
+                    nonesafe_int(agent_id),
+                    nonesafe_int(worker_id),
+                    sandbox,
+                    status,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from units
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Unit(self, str(r["unit_id"]), row=r, _used_new_call=True) for r in rows
+            ]
+
+    def _clear_unit_agent_assignment(self, unit_id: str) -> None:
+        """
+        Update the given unit by removing the agent that is assigned to it, thus updating
+        the status to assignable.
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """
+                    UPDATE units
+                    SET agent_id = ?, worker_id = ?, status = ?
+                    WHERE unit_id = ?;
+                    """,
+                    (None, None, AssignmentState.LAUNCHED, int(unit_id)),
+                )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(
+                        f"Given unit_id {unit_id} not found in the database"
+                    )
+                raise MephistoDBException(e)
+
+    def _update_unit(
+        self, unit_id: str, agent_id: Optional[str] = None, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        if status not in AssignmentState.valid_unit():
+            raise MephistoDBException(f"Invalid status {status} for a unit")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                if agent_id is not None:
+                    c.execute(
+                        """
+                        UPDATE units
+                        SET agent_id = ?
+                        WHERE unit_id = ?;
+                        """,
+                        (int(agent_id), int(unit_id)),
+                    )
+                if status is not None:
+                    c.execute(
+                        """
+                        UPDATE units
+                        SET status = ?
+                        WHERE unit_id = ?;
+                        """,
+                        (status, int(unit_id)),
+                    )
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(
+                        f"Given unit_id {unit_id} not found in the database"
+                    )
+                raise MephistoDBException(e)
+
+    def _new_requester(self, requester_name: str, provider_type: str) -> str:
+        """
+        Create a new requester with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a requester with this name
+        """
+        if requester_name == "":
+            raise MephistoDBException("Empty string is not a valid requester name")
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO requesters(requester_name, provider_type) VALUES (?, ?);",
+                    (requester_name, provider_type),
+                )
+                requester_id = str(c.lastrowid)
+                return requester_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _get_requester(self, requester_id: str) -> Mapping[str, Any]:
+        """
+        Return requester's fields by requester_id, raise EntryDoesNotExistException
+        if no id exists in requesters
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("requesters", "requester_id", requester_id)
+
+    def _find_requesters(
+        self, requester_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Requester]:
+        """
+        Try to find any requester that matches the above. When called with no arguments,
+        return all requesters.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["requester_name", "provider_type"], [requester_name, provider_type]
+            )
+            c.execute(
+                """
+                SELECT * from requesters
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Requester(self, str(r["requester_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_worker(self, worker_name: str, provider_type: str) -> str:
+        """
+        Create a new worker with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a worker with this name
+
+        worker_name should be the unique identifier by which the crowd provider
+        is using to keep track of this worker
+        """
+        if worker_name == "":
+            raise MephistoDBException("Empty string is not a valid requester name")
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO workers(worker_name, provider_type) VALUES (?, ?);",
+                    (worker_name, provider_type),
+                )
+                worker_id = str(c.lastrowid)
+                return worker_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _get_worker(self, worker_id: str) -> Mapping[str, Any]:
+        """
+        Return worker's fields by worker_id, raise EntryDoesNotExistException
+        if no id exists in workers
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("workers", "worker_id", worker_id)
+
+    def _find_workers(
+        self, worker_name: Optional[str] = None, provider_type: Optional[str] = None
+    ) -> List[Worker]:
+        """
+        Try to find any worker that matches the above. When called with no arguments,
+        return all workers.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["worker_name", "provider_type"], [worker_name, provider_type]
+            )
+            c.execute(
+                """
+                SELECT * from workers
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Worker(self, str(r["worker_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Create a new agent with the given name and provider type.
+        Raises EntryAlreadyExistsException
+        if there is already a agent with this name
+        """
+        assert_valid_provider(provider_type)
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO agents(
+                        worker_id,
+                        unit_id,
+                        task_id,
+                        task_run_id,
+                        assignment_id,
+                        task_type,
+                        provider_type,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?);""",
+                    (
+                        int(worker_id),
+                        int(unit_id),
+                        int(task_id),
+                        int(task_run_id),
+                        int(assignment_id),
+                        task_type,
+                        provider_type,
+                        AgentState.STATUS_NONE,
+                    ),
+                )
+                agent_id = str(c.lastrowid)
+                c.execute(
+                    """
+                    UPDATE units
+                    SET status = ?, agent_id = ?, worker_id = ?
+                    WHERE unit_id = ?;
+                    """,
+                    (
+                        AssignmentState.ASSIGNED,
+                        int(agent_id),
+                        int(worker_id),
+                        int(unit_id),
+                    ),
+                )
+                return agent_id
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_agent(self, agent_id: str) -> Mapping[str, Any]:
+        """
+        Return agent's fields by agent_id, raise EntryDoesNotExistException
+        if no id exists in agents
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id("agents", "agent_id", agent_id)
+
+    def _update_agent(self, agent_id: str, status: Optional[str] = None) -> None:
+        """
+        Update the given task with the given parameters if possible, raise appropriate exception otherwise.
+        """
+        if status not in AgentState.valid():
+            raise MephistoDBException(f"Invalid status {status} for an agent")
+
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                UPDATE agents
+                SET status = ?
+                WHERE agent_id = ?;
+                """,
+                (status, int(agent_id)),
+            )
+
+    def _find_agents(
+        self,
+        status: Optional[str] = None,
+        unit_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+        provider_type: Optional[str] = None,
+    ) -> List[Agent]:
+        """
+        Try to find any agent that matches the above. When called with no arguments,
+        return all agents.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "status",
+                    "unit_id",
+                    "worker_id",
+                    "task_id",
+                    "task_run_id",
+                    "assignment_id",
+                    "task_type",
+                    "provider_type",
+                ],
+                [
+                    status,
+                    nonesafe_int(unit_id),
+                    nonesafe_int(worker_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    nonesafe_int(assignment_id),
+                    task_type,
+                    provider_type,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from agents
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Agent(self, str(r["agent_id"]), row=r, _used_new_call=True)
+                for r in rows
+            ]
+
+    def _make_qualification(self, qualification_name: str) -> str:
+        """
+        Make a new qualification, throws an error if a qualification by the given name
+        already exists. Return the id for the qualification.
+        """
+        if qualification_name == "":
+            raise MephistoDBException("Empty string is not a valid qualification name")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    "INSERT INTO qualifications(qualification_name) VALUES (?);",
+                    (qualification_name,),
+                )
+                qualification_id = str(c.lastrowid)
+                return qualification_id
+            except sqlite3.IntegrityError as e:
+                if is_unique_failure(e):
+                    raise EntryAlreadyExistsException()
+                raise MephistoDBException(e)
+
+    def _find_qualifications(
+        self, qualification_name: Optional[str] = None
+    ) -> List[Qualification]:
+        """
+        Find a qualification. If no name is supplied, returns all qualifications.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                ["qualification_name"], [qualification_name]
+            )
+            c.execute(
+                """
+                SELECT * from qualifications
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                Qualification(
+                    self, str(r["qualification_id"]), row=r, _used_new_call=True
+                )
+                for r in rows
+            ]
+
+    def _get_qualification(self, qualification_id: str) -> Mapping[str, Any]:
+        """
+        Return qualification's fields by qualification_id, raise
+        EntryDoesNotExistException if no id exists in qualifications
+
+        See Qualification for the expected fields for the returned mapping
+        """
+        return self.__get_one_by_id(
+            "qualifications", "qualification_id", qualification_id
+        )
+
+    def _delete_qualification(self, qualification_name: str) -> None:
+        """
+        Remove this qualification from all workers that have it, then delete the qualification
+        """
+        qualifications = self.find_qualifications(qualification_name=qualification_name)
+        if len(qualifications) == 0:
+            raise EntryDoesNotExistException(
+                f"No qualification found by name {qualification_name}"
+            )
+        qualification = qualifications[0]
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                "DELETE FROM granted_qualifications WHERE qualification_id = ?1;",
+                (int(qualification.db_id),),
+            )
+            c.execute(
+                "DELETE FROM qualifications WHERE qualification_name = ?1;",
+                (qualification_name,),
+            )
+
+    def _grant_qualification(
+        self, qualification_id: str, worker_id: str, value: int = 1
+    ) -> None:
+        """
+        Grant a worker the given qualification. Update the qualification value if it
+        already exists
+        """
+        # Note that better syntax exists for python 3.8+, as described in PR #223
+        try:
+            # Update existing entry
+            qual_row = self.get_granted_qualification(qualification_id, worker_id)
+            with self.table_access_condition, self._get_connection() as conn:
+                if value != qual_row["value"]:
+                    c = conn.cursor()
+                    c.execute(
+                        """
+                        UPDATE granted_qualifications
+                        SET value = ?
+                        WHERE (qualification_id = ?)
+                        AND (worker_id = ?);
+                        """,
+                        (value, int(qualification_id), int(worker_id)),
+                    )
+                    conn.commit()
+                    return None
+        except EntryDoesNotExistException:
+            with self.table_access_condition, self._get_connection() as conn:
+                c = conn.cursor()
+                try:
+                    c.execute(
+                        """
+                        INSERT INTO granted_qualifications(
+                            qualification_id,
+                            worker_id,
+                            value
+                        ) VALUES (?, ?, ?);
+                        """,
+                        (int(qualification_id), int(worker_id), value),
+                    )
+                    qualification_id = str(c.lastrowid)
+                    conn.commit()
+                    return None
+                except sqlite3.IntegrityError as e:
+                    if is_unique_failure(e):
+                        raise EntryAlreadyExistsException()
+                    raise MephistoDBException(e)
+
+    def _check_granted_qualifications(
+        self,
+        qualification_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        value: Optional[int] = None,
+    ) -> List[GrantedQualification]:
+        """
+        Find granted qualifications that match the given specifications
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from granted_qualifications
+                WHERE (?1 IS NULL OR qualification_id = ?1)
+                AND (?2 IS NULL OR worker_id = ?2)
+                AND (?3 IS NULL OR value = ?3)
+                """,
+                (qualification_id, worker_id, value),
+            )
+            rows = c.fetchall()
+            return [
+                GrantedQualification(
+                    self, str(r["qualification_id"]), str(r["worker_id"])
+                )
+                for r in rows
+            ]
+
+    def _get_granted_qualification(
+        self, qualification_id: str, worker_id: str
+    ) -> Mapping[str, Any]:
+        """
+        Return the granted qualification in the database between the given
+        worker and qualification id
+
+        See GrantedQualification for the expected fields for the returned mapping
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                f"""
+                SELECT * FROM granted_qualifications
+                WHERE (qualification_id = ?1)
+                AND (worker_id = ?2);
+                """,
+                (nonesafe_int(qualification_id), nonesafe_int(worker_id)),
+            )
+            results = c.fetchall()
+            if len(results) != 1:
+                raise EntryDoesNotExistException(
+                    f"No such granted qualification {qualification_id}, {worker_id}"
+                )
+            return results[0]
+
+    def _revoke_qualification(self, qualification_id: str, worker_id: str) -> None:
+        """
+        Remove the given qualification from the given worker
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """DELETE FROM granted_qualifications
+                WHERE (qualification_id = ?1)
+                AND (worker_id = ?2);
+                """,
+                (int(qualification_id), int(worker_id)),
+            )
+
+    def _new_onboarding_agent(
+        self, worker_id: str, task_id: str, task_run_id: str, task_type: str
+    ) -> str:
+        """
+        Create a new agent for the given worker id to assign to the given unit
+        Raises EntryAlreadyExistsException
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            try:
+                c.execute(
+                    """INSERT INTO onboarding_agents(
+                        worker_id,
+                        task_id,
+                        task_run_id,
+                        task_type,
+                        status
+                    ) VALUES (?, ?, ?, ?, ?);""",
+                    (
+                        int(worker_id),
+                        int(task_id),
+                        int(task_run_id),
+                        task_type,
+                        AgentState.STATUS_NONE,
+                    ),
+                )
+                return str(c.lastrowid)
+            except sqlite3.IntegrityError as e:
+                if is_key_failure(e):
+                    raise EntryDoesNotExistException(e)
+                raise MephistoDBException(e)
+
+    def _get_onboarding_agent(self, onboarding_agent_id: str) -> Mapping[str, Any]:
+        """
+        Return onboarding agent's fields by onboarding_agent_id, raise
+        EntryDoesNotExistException if no id exists in onboarding_agents
+
+        Returns a SQLite Row object with the expected fields
+        """
+        return self.__get_one_by_id(
+            "onboarding_agents", "onboarding_agent_id", onboarding_agent_id
+        )
+
+    def _update_onboarding_agent(
+        self, onboarding_agent_id: str, status: Optional[str] = None
+    ) -> None:
+        """
+        Update the given onboarding agent with the given parameters if possible,
+        raise appropriate exception otherwise.
+        """
+        if status not in AgentState.valid():
+            raise MephistoDBException(f"Invalid status {status} for an agent")
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            if status is not None:
+                c.execute(
+                    """
+                    UPDATE onboarding_agents
+                    SET status = ?
+                    WHERE onboarding_agent_id = ?;
+                    """,
+                    (status, int(onboarding_agent_id)),
+                )
+
+    def _find_onboarding_agents(
+        self,
+        status: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        task_type: Optional[str] = None,
+    ) -> List[OnboardingAgent]:
+        """
+        Try to find any onboarding agent that matches the above. When called with no arguments,
+        return all onboarding agents.
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            additional_query, arg_tuple = self.__create_query_and_tuple(
+                [
+                    "status",
+                    "worker_id",
+                    "task_id",
+                    "task_run_id",
+                    "task_type",
+                ],
+                [
+                    status,
+                    nonesafe_int(worker_id),
+                    nonesafe_int(task_id),
+                    nonesafe_int(task_run_id),
+                    task_type,
+                ],
+            )
+            c.execute(
+                """
+                SELECT * from onboarding_agents
+                """
+                + additional_query,
+                arg_tuple,
+            )
+            rows = c.fetchall()
+            return [
+                OnboardingAgent(
+                    self, str(r["onboarding_agent_id"]), row=r, _used_new_call=True
+                )
+                for r in rows
+            ]
+
+ +
+ +

Local database for core Mephisto data storage, the LocalMephistoDatabase handles +grounding all of the python interactions with the Mephisto architecture to +local files and a database.

+
+ + +
+
#   + + + LocalMephistoDB(database_path=None) +
+ +
+ View Source +
    def __init__(self, database_path=None):
+        logger.debug(f"database path: {database_path}")
+        self.conn: Dict[int, Connection] = {}
+        self.table_access_condition = threading.Condition()
+        super().__init__(database_path)
+
+ +
+ +

Ensure the database is set up and ready to handle data

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+ +
+ +

Close all open connections

+
+ + +
+
+
#   + + + def + init_tables(self) -> None: +
+ +
+ View Source +
    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_PROJECTS_TABLE)
+                c.execute(CREATE_TASKS_TABLE)
+                c.execute(CREATE_REQUESTERS_TABLE)
+                c.execute(CREATE_TASK_RUNS_TABLE)
+                c.execute(CREATE_ASSIGNMENTS_TABLE)
+                c.execute(CREATE_UNITS_TABLE)
+                c.execute(CREATE_WORKERS_TABLE)
+                c.execute(CREATE_AGENTS_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_GRANTED_QUALIFICATIONS_TABLE)
+                c.execute(CREATE_ONBOARDING_AGENTS_TABLE)
+                c.executescript(CREATE_CORE_INDEXES)
+
+ +
+ +

Run all the table creation SQL queries to ensure the expected tables exist

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/databases/local_singleton_database.html b/docs/web/static/python_api/mephisto/abstractions/databases/local_singleton_database.html new file mode 100644 index 000000000..0af52d6de --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/databases/local_singleton_database.html @@ -0,0 +1,923 @@ + + + + + + + + + mephisto.abstractions.databases.local_singleton_database API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.databases.local_singleton_database

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.database import (
+    MephistoDB,
+    MephistoDBException,
+    EntryAlreadyExistsException,
+    EntryDoesNotExistException,
+)
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from typing import Mapping, Optional, Any, List, Dict
+from mephisto.utils.dirs import get_data_dir
+from mephisto.operations.registry import get_valid_provider_types
+from mephisto.data_model.agent import Agent, AgentState, OnboardingAgent
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.assignment import Assignment, AssignmentState
+from mephisto.data_model.constants import NO_PROJECT_NAME
+from mephisto.data_model.project import Project
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.qualification import Qualification, GrantedQualification
+
+import sqlite3
+from sqlite3 import Connection, Cursor
+import threading
+
+# We should be using WeakValueDictionary rather than a full dict once
+# we're better able to trade-off between memory and space.
+# from weakref import WeakValueDictionary
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+# Note: This class could be a generic factory around any MephistoDB, converting
+# the system to a singleton implementation. It requires all of the data being
+# updated locally though, so binding to LocalMephistoDB makes sense for now.
+class MephistoSingletonDB(LocalMephistoDB):
+    """
+    Class that creates a singleton storage for all accessed data.
+
+    Tries to keep the data usage down with weak references, but it's
+    still subject to memory leaks.
+
+    This is a tradeoff to have more speed for not making db queries from disk
+    """
+
+    # All classes cached by this DB, in order of expected references
+    _cached_classes = [
+        Agent,
+        Unit,
+        Assignment,
+        Worker,
+        OnboardingAgent,
+        Qualification,
+        TaskRun,
+        Task,
+        Project,
+        Requester,
+    ]
+
+    def __init__(self, database_path=None):
+        super().__init__(database_path=database_path)
+
+        # Create singleton dictionaries for entries
+        self._singleton_cache = {k: dict() for k in self._cached_classes}
+        self._assignment_to_unit_mapping: Dict[str, List[Unit]] = {}
+
+    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                return self._singleton_cache[stored_class].get(db_id)
+        return None
+
+    def cache_result(self, target_cls, value) -> None:
+        """Store the result of a load for caching reasons"""
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                self._singleton_cache[stored_class][value.db_id] = value
+                break
+        return None
+
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Wrapper around the new_agent call that finds and updates the unit locally
+        too, as this isn't guaranteed otherwise but is an important part of the singleton
+        """
+        agent_id = super()._new_agent(
+            worker_id,
+            unit_id,
+            task_id,
+            task_run_id,
+            assignment_id,
+            task_type,
+            provider_type,
+        )
+        agent = Agent.get(self, agent_id)
+        unit = agent.get_unit()
+        unit.agent_id = agent_id
+        unit.db_status = AssignmentState.ASSIGNED
+        unit.worker_id = agent.worker_id
+        return agent_id
+
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Uses caching to offset the cost of the most common queries. Defers
+        to the underlying DB for anything outside of those cases.
+        """
+
+        # Finding units is the most common small DB call to be optimized, as
+        # every assignment has multiple units. Thus, we try to break up the
+        # units to be queried by assignment, ensuring the most commonly
+        # queried edge is improved.
+        if assignment_id is not None:
+            if all(
+                v is None
+                for v in [
+                    task_id,
+                    task_run_id,
+                    requester_id,
+                    unit_index,
+                    provider_type,
+                    task_type,
+                    agent_id,
+                    worker_id,
+                    sandbox,
+                    status,
+                ]
+            ):
+                units = self._assignment_to_unit_mapping.get(assignment_id)
+                if units is None:
+                    units = super()._find_units(assignment_id=assignment_id)
+                    self._assignment_to_unit_mapping[assignment_id] = units
+                return units
+
+        # Any other cases are less common and more complicated, and so we don't cache
+        return super()._find_units(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            provider_type=provider_type,
+            task_type=task_type,
+            agent_id=agent_id,
+            worker_id=worker_id,
+            sandbox=sandbox,
+            status=status,
+        )
+
+    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        if assignment_id in self._assignment_to_unit_mapping:
+            del self._assignment_to_unit_mapping[assignment_id]
+        return super()._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +
+
+ + +
+ View Source +
class MephistoSingletonDB(LocalMephistoDB):
+    """
+    Class that creates a singleton storage for all accessed data.
+
+    Tries to keep the data usage down with weak references, but it's
+    still subject to memory leaks.
+
+    This is a tradeoff to have more speed for not making db queries from disk
+    """
+
+    # All classes cached by this DB, in order of expected references
+    _cached_classes = [
+        Agent,
+        Unit,
+        Assignment,
+        Worker,
+        OnboardingAgent,
+        Qualification,
+        TaskRun,
+        Task,
+        Project,
+        Requester,
+    ]
+
+    def __init__(self, database_path=None):
+        super().__init__(database_path=database_path)
+
+        # Create singleton dictionaries for entries
+        self._singleton_cache = {k: dict() for k in self._cached_classes}
+        self._assignment_to_unit_mapping: Dict[str, List[Unit]] = {}
+
+    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                return self._singleton_cache[stored_class].get(db_id)
+        return None
+
+    def cache_result(self, target_cls, value) -> None:
+        """Store the result of a load for caching reasons"""
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                self._singleton_cache[stored_class][value.db_id] = value
+                break
+        return None
+
+    def _new_agent(
+        self,
+        worker_id: str,
+        unit_id: str,
+        task_id: str,
+        task_run_id: str,
+        assignment_id: str,
+        task_type: str,
+        provider_type: str,
+    ) -> str:
+        """
+        Wrapper around the new_agent call that finds and updates the unit locally
+        too, as this isn't guaranteed otherwise but is an important part of the singleton
+        """
+        agent_id = super()._new_agent(
+            worker_id,
+            unit_id,
+            task_id,
+            task_run_id,
+            assignment_id,
+            task_type,
+            provider_type,
+        )
+        agent = Agent.get(self, agent_id)
+        unit = agent.get_unit()
+        unit.agent_id = agent_id
+        unit.db_status = AssignmentState.ASSIGNED
+        unit.worker_id = agent.worker_id
+        return agent_id
+
+    def _find_units(
+        self,
+        task_id: Optional[str] = None,
+        task_run_id: Optional[str] = None,
+        requester_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+        unit_index: Optional[int] = None,
+        provider_type: Optional[str] = None,
+        task_type: Optional[str] = None,
+        agent_id: Optional[str] = None,
+        worker_id: Optional[str] = None,
+        sandbox: Optional[bool] = None,
+        status: Optional[str] = None,
+    ) -> List[Unit]:
+        """
+        Uses caching to offset the cost of the most common queries. Defers
+        to the underlying DB for anything outside of those cases.
+        """
+
+        # Finding units is the most common small DB call to be optimized, as
+        # every assignment has multiple units. Thus, we try to break up the
+        # units to be queried by assignment, ensuring the most commonly
+        # queried edge is improved.
+        if assignment_id is not None:
+            if all(
+                v is None
+                for v in [
+                    task_id,
+                    task_run_id,
+                    requester_id,
+                    unit_index,
+                    provider_type,
+                    task_type,
+                    agent_id,
+                    worker_id,
+                    sandbox,
+                    status,
+                ]
+            ):
+                units = self._assignment_to_unit_mapping.get(assignment_id)
+                if units is None:
+                    units = super()._find_units(assignment_id=assignment_id)
+                    self._assignment_to_unit_mapping[assignment_id] = units
+                return units
+
+        # Any other cases are less common and more complicated, and so we don't cache
+        return super()._find_units(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            provider_type=provider_type,
+            task_type=task_type,
+            agent_id=agent_id,
+            worker_id=worker_id,
+            sandbox=sandbox,
+            status=status,
+        )
+
+    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        if assignment_id in self._assignment_to_unit_mapping:
+            del self._assignment_to_unit_mapping[assignment_id]
+        return super()._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Class that creates a singleton storage for all accessed data.

+ +

Tries to keep the data usage down with weak references, but it's +still subject to memory leaks.

+ +

This is a tradeoff to have more speed for not making db queries from disk

+
+ + +
+
#   + + + MephistoSingletonDB(database_path=None) +
+ +
+ View Source +
    def __init__(self, database_path=None):
+        super().__init__(database_path=database_path)
+
+        # Create singleton dictionaries for entries
+        self._singleton_cache = {k: dict() for k in self._cached_classes}
+        self._assignment_to_unit_mapping: Dict[str, List[Unit]] = {}
+
+ +
+ +

Ensure the database is set up and ready to handle data

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Close all open connections"""
+        with self.table_access_condition:
+            curr_thread = threading.get_ident()
+            self.conn[curr_thread].close()
+            del self.conn[curr_thread]
+
+ +
+ +

Close all open connections

+
+ + +
+
+
#   + + + def + optimized_load( + self, + target_cls, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None +): +
+ +
+ View Source +
    def optimized_load(
+        self,
+        target_cls,
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Load the given class in an optimized fashion, if this DB has a more
+        efficient way of storing and managing the data
+        """
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                return self._singleton_cache[stored_class].get(db_id)
+        return None
+
+ +
+ +

Load the given class in an optimized fashion, if this DB has a more +efficient way of storing and managing the data

+
+ + +
+
+
#   + + + def + cache_result(self, target_cls, value) -> None: +
+ +
+ View Source +
    def cache_result(self, target_cls, value) -> None:
+        """Store the result of a load for caching reasons"""
+        for stored_class in self._cached_classes:
+            if issubclass(target_cls, stored_class):
+                self._singleton_cache[stored_class][value.db_id] = value
+                break
+        return None
+
+ +
+ +

Store the result of a load for caching reasons

+
+ + +
+
+
#   + + + def + new_unit( + self, + task_id: str, + task_run_id: str, + requester_id: str, + assignment_id: str, + unit_index: int, + pay_amount: float, + provider_type: str, + task_type: str, + sandbox: bool = True +) -> str: +
+ +
+ View Source +
    def new_unit(
+        self,
+        task_id: str,
+        task_run_id: str,
+        requester_id: str,
+        assignment_id: str,
+        unit_index: int,
+        pay_amount: float,
+        provider_type: str,
+        task_type: str,
+        sandbox: bool = True,
+    ) -> str:
+        """
+        Create a new unit with the given index. Raises EntryAlreadyExistsException
+        if there is already a unit for the given assignment with the given index.
+        """
+        if assignment_id in self._assignment_to_unit_mapping:
+            del self._assignment_to_unit_mapping[assignment_id]
+        return super()._new_unit(
+            task_id=task_id,
+            task_run_id=task_run_id,
+            requester_id=requester_id,
+            assignment_id=assignment_id,
+            unit_index=unit_index,
+            pay_amount=pay_amount,
+            provider_type=provider_type,
+            task_type=task_type,
+            sandbox=sandbox,
+        )
+
+ +
+ +

Create a new unit with the given index. Raises EntryAlreadyExistsException +if there is already a unit for the given assignment with the given index.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers.html b/docs/web/static/python_api/mephisto/abstractions/providers.html new file mode 100644 index 000000000..cf5922191 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers.html @@ -0,0 +1,389 @@ + + + + + + + + + mephisto.abstractions.providers API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers

+ +

CrowdProviders

+ +

The providers directory is home to the existing providers for Mephisto. This file describes high level what crowd providers do, important details on existing providers, and how to create a new CrowdProvider for an existing crowdsourcing service.

+ +

Implementation Details

+ +

CrowdProviders in short exist to be an abstraction layer between Mephisto and wherever we're sourcing the crowdwork from. Using CrowdProviders lets Mephisto launch the same tasks all over the place using the same code. The primary abstractions that need a little bit of wrapping are the Worker, Agent, Unit, and Requester. These requirements and high level abstraction reasoning are included below, while explicit implementation requirements are provided in the "How to make a new CrowdProvider" section.

+ +

Worker

+ +

The Worker is responsible for keeping long-term track of a worker's individual identity as displayed by a crowd provider. Keeping the worker lets us report statistics about individual workers, as well as set up qualifications that might be more relevant than a provider could have preset. From the CrowdProvider perspective, different crowd providers may have different methods for identifying their workers. They may also have different methods for blocking, unblocking, qualifying, and bonusing workers. In order for Mephisto to be able to handle these actions, the <Crowd>Worker must abstract these.

+ +

If the crowd provider is capable of assigning qualifications to a worker to prevent them from working on tasks they are not eligible for, you can implement grant_crowd_qualification and revoke_crowd_qualification to sync qualifications between the crowd provider and Mephisto. You'll also need to implement the delete_qualification method in the base <Crowd>Provider class if you want to be able to cleanup qualifications you've removed from Mephisto. Depending on the provider, setup_resources_for_task_run or <Crowd>Unit are the correct locations to actually register required qualifications for a task.

+ +

Agent

+ +

The Agent is responsible for keeping track of a Worker's work on a specific Unit. As such, it's used for approving, rejecting, and keeping track of status. Furthermore, it may be required that Mephisto tells a CrowdProvider that a worker has completed the task, so this must be captured as well. <Crowd>Agent handles all of these abstractions.

+ +

Unit

+ +

The Unit is responsible for keeping track of portions of an Assignment that need to be assigned, through the entire process of them being assigned and worked on. From a high level, they are the Assignment-side point of entry into finding work. For the purpose of abstraction, the Unit needs to be able to keep track of it's remote counterpart (whatever thing we assign the worker from the crowd provider's perspective). It also needs to be able to actually _deploy_ the task to be made available through the crowd provider, and potentially expire it when it should be taken offline. <Crowd>Unit handles these abstractions.

+ +

Requester

+ +

The Requester is responsible for providing the account access to be able to launch tasks. As such, any credential creation and management needs to be hidden behind the <Crowd>Requester so that Mephisto doesn't need to know the implementation details.

+ +

Existing Providers

+ +

The providers we currently support are listed below:

+ +

MTurkProvider

+ +

Provides an interface for launching tasks on MTurk and keeping track of workers and work there.

+ +

SandboxMTurkProvider

+ +

A specific interface for launching tasks on the MTurk sandbox

+ +

(TODO) Can we bundle this into the MTurkProvider and make it so that providers have a TEST/SANDBOX mode bundled in? This would clarify how the testing utilities work, without needing to publish real tasks.

+ +

LocalProvider (TODO)

+ +

An interface that allows for launching tasks on your local machine, allowing for ip-address based workers to submit work.

+ +

MockProvider

+ +

An implementation of a provider that allows for robust testing by exposing all of the underlying state to a user.

+ +

How to make a new CrowdProvider

+ +

Both the MockProvider and MTurkProvider are strong examples of implementing a provider. Important implementation details are captured below.

+ +

<Crowd>Provider

+ +

The CrowdProvider implementation is mostly a place to centralize all of the components for this provider, and as such it should set UnitClass, RequesterClass, WorkerClass, and AgentClass. Beyond this it should implement the following:

+ +
    +
  • initialize_provider_datastore: This method should return a connection to any of the data required to keep tabs on the crowd provider. Ideally it should store important information to disk somehow (such as in a SQL database).
  • +
  • setup_resources_for_task_run: This method is called prior to launching a task run, and should setup any kind of details with the provider that are required. For instance, this might register the task before requesting instances, find and register required qualifications, or do any other required prep work such as setting up listeners.
  • +
+ +

<Crowd>Worker

+ +

The <Crowd>Worker implementation needs to handle worker interactions, generally from the perspective of a requester:

+ +
    +
  • bonus_worker: Provide the worker a bonus for the given reason, optionally attached to a unit. Return a tuple of False with an error reason if the operation can't be performed, and (True, "") otherwise.
  • +
  • block_worker: Block the given worker, optionally based on their work on a unit, and from a specific requester. Return a tuple of False with an error reason if the operation can't be performed, and (True, "") otherwise.
  • +
  • unblock_worker: Unblock the worker from a specific requester. Return a tuple of False with an error reason if the operation can't be performed, and (True, "") otherwise.
  • +
  • is_blocked: Provide whether or not this worker is blocked by the given Requester.
  • +
  • is_eligible: Determine if the worker is eligible to work on the given TaskRun.
  • +
+ +

<Crowd>Agent

+ +

The <Crowd>Agent implementation needs to be able to handle the following interactions:

+ +
    +
  • new_from_provider_data: As different providers may give different information upon the creation of an agent (which occurs when a worker accepts a unit), this information is sent through from the server via whatever is packaged in wrap_crowd_source.js. You can then store this into the provider datastore and return an Agent.
  • +
  • approve_work: Tell the crowd provider that this work is accepted. (If allowed)
  • +
  • reject_work: Tell the crowd provider that this work is rejected (if allowed), with the provided feedback reason.
  • +
  • get_status: Return the current agent's status according to the crowd provider (if this state is automatically tracked by the crowd provider, and can be queried). Defaults to whatever status updates the WorkerPool can provide.
  • +
  • mark_done: Tell the crowd provider that the task this agent is working on is now complete (if required). Otherwise just mark it as so in the local database.
  • +
+ +

<Crowd>Unit

+ +

The <Crowd>Unit implementation needs to be able to handle the following interactions:

+ +
    +
  • get_status: Return the status for this unit, as known by the provider.
  • +
  • launch: Given the url of the server to point people to for this task, launch the task and make it available for crowd workers to claim.
  • +
  • expire: Submit a request to expire the HIT, and return the time that will need to be waited in order for that request to be fulfilled (in case it is not immediate).
  • +
+ +

<Crowd>Requester

+ +

The <Crowd>Requester mostly just needs to abstract the registration process, but the full list of functions are below:

+ +
    +
  • register: Given arguments, register this requester
  • +
  • get_register_args: Return the arguments required to register one of these requesters.
  • +
  • is_registered: Determine if the current credentials for a Requester are valid.
  • +
  • get_available_budget (Optional): return the available budget for this requester.
  • +
+ +

(TODO) maybe refactor budget? As not all requesters have budgets? Or perhaps have a few kinds of metadata?

+ +

wrap_crowd_source.js

+ +

A few frontend functions are required to be sure that the backend is able to interface with frontend interactions:

+ +
    +
  • getWorkerName(): Return the worker name, as will be provided to as the identifier for mephisto to know who is attempting the task
  • +
  • getAssignmentId(): Return an identifier for the specific task as represented by the provider.
  • +
  • getAgentRegistration(): Return the data that is going to be passed to the <Crowd>Agent's new_from_provider method. Currently the worker_name field is required to also set up the <Crowd>Worker.
  • +
  • handleSubmitToProvider(): Tell the provider that the task is done from the frontend. Often amounts to hitting some kind of submit button after populating form data.
  • +
+ +

This file may also contain additional logic for handling things like error handling in a crowd provider-specific manner.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock.html new file mode 100644 index 000000000..5f11ac15a --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock.html @@ -0,0 +1,256 @@ + + + + + + + + + mephisto.abstractions.providers.mock API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_agent.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_agent.html new file mode 100644 index 000000000..bcf6d46c0 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_agent.html @@ -0,0 +1,862 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_agent API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_agent

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.agent import Agent
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.abstractions.providers.mock.provider_type import PROVIDER_TYPE
+
+from typing import List, Optional, Tuple, Dict, Mapping, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.packet import Packet
+    from mephisto.abstractions.providers.mock.mock_datastore import MockDatastore
+
+
+class MockAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+        if db_id not in self.datastore.agent_data:
+            self.datastore.agent_data[db_id] = {
+                "observed": [],
+                "pending_acts": [],
+                "acts": [],
+                "pending_submit": None,
+            }
+
+    def observe(self, live_update: Dict[str, Any]) -> None:
+        """Put observations into this mock agent's observation list"""
+        self.datastore.agent_data[self.db_id]["observed"].append(live_update)
+        super().observe(live_update)
+
+    def enqueue_mock_live_update(self, data: Dict[str, Any]) -> None:
+        """Add a fake observation to pull off on the next act call"""
+        self.datastore.agent_data[self.db_id]["pending_acts"] = data
+
+    def enqueue_mock_submit_event(self, data: Dict[str, Any]) -> None:
+        """
+        Add a final submit event to put in the queue for this agent
+        to be called on completion
+        """
+        self.datastore.agent_data[self.db_id]["pending_submit"] = data
+
+    def get_live_update(self, timeout=None) -> Optional[Dict[str, Any]]:
+        """
+        Either take an act from this mock agent's act queue (for use
+        by tests and other mock purposes) or request a regular act
+        (for use in manual testing).
+        """
+        if len(self.datastore.agent_data[self.db_id]["pending_acts"]) > 0:
+            act = self.datastore.agent_data[self.db_id]["pending_acts"].pop(0)
+        else:
+            act = super().get_live_update(timeout=timeout)
+
+        if act is not None:
+            self.datastore.agent_data[self.db_id]["acts"].append(act)
+        return act
+
+    def approve_work(self) -> None:
+        """
+        Approve the work done on this specific Unit
+
+        Mock Units
+        """
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """
+        Reject the work done on this specific Unit
+        """
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self):
+        """No need to tell mock crowd provider about doneness"""
+        pass
+
+    def mark_disconnected(self) -> None:
+        """Mark this mock agent as having disconnected"""
+        self.update_status(AgentState.STATUS_DISCONNECT)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """
+        Check the submission status of this agent, first popping off
+        and triggering a local submit if there is one on a timeout submit
+        """
+        if self.did_submit.is_set():
+            return True
+        if timeout is not None:
+            local_submit = self.datastore.agent_data[self.db_id]["pending_submit"]
+            if local_submit is not None:
+                self.handle_submit(local_submit)
+        return super().await_submit(timeout)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MockAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MockAgent(mephisto.data_model.agent.Agent): +
+ +
+ View Source +
class MockAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+        if db_id not in self.datastore.agent_data:
+            self.datastore.agent_data[db_id] = {
+                "observed": [],
+                "pending_acts": [],
+                "acts": [],
+                "pending_submit": None,
+            }
+
+    def observe(self, live_update: Dict[str, Any]) -> None:
+        """Put observations into this mock agent's observation list"""
+        self.datastore.agent_data[self.db_id]["observed"].append(live_update)
+        super().observe(live_update)
+
+    def enqueue_mock_live_update(self, data: Dict[str, Any]) -> None:
+        """Add a fake observation to pull off on the next act call"""
+        self.datastore.agent_data[self.db_id]["pending_acts"] = data
+
+    def enqueue_mock_submit_event(self, data: Dict[str, Any]) -> None:
+        """
+        Add a final submit event to put in the queue for this agent
+        to be called on completion
+        """
+        self.datastore.agent_data[self.db_id]["pending_submit"] = data
+
+    def get_live_update(self, timeout=None) -> Optional[Dict[str, Any]]:
+        """
+        Either take an act from this mock agent's act queue (for use
+        by tests and other mock purposes) or request a regular act
+        (for use in manual testing).
+        """
+        if len(self.datastore.agent_data[self.db_id]["pending_acts"]) > 0:
+            act = self.datastore.agent_data[self.db_id]["pending_acts"].pop(0)
+        else:
+            act = super().get_live_update(timeout=timeout)
+
+        if act is not None:
+            self.datastore.agent_data[self.db_id]["acts"].append(act)
+        return act
+
+    def approve_work(self) -> None:
+        """
+        Approve the work done on this specific Unit
+
+        Mock Units
+        """
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """
+        Reject the work done on this specific Unit
+        """
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self):
+        """No need to tell mock crowd provider about doneness"""
+        pass
+
+    def mark_disconnected(self) -> None:
+        """Mark this mock agent as having disconnected"""
+        self.update_status(AgentState.STATUS_DISCONNECT)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """
+        Check the submission status of this agent, first popping off
+        and triggering a local submit if there is one on a timeout submit
+        """
+        if self.did_submit.is_set():
+            return True
+        if timeout is not None:
+            local_submit = self.datastore.agent_data[self.db_id]["pending_submit"]
+            if local_submit is not None:
+                self.handle_submit(local_submit)
+        return super().await_submit(timeout)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MockAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + +
+
#   + + + MockAgent( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Agent class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Agent +as you will instead be returned the correct Agent class according to +the crowdprovider associated with this Agent.

+
+ + +
+
+
#   + + + def + observe(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def observe(self, live_update: Dict[str, Any]) -> None:
+        """Put observations into this mock agent's observation list"""
+        self.datastore.agent_data[self.db_id]["observed"].append(live_update)
+        super().observe(live_update)
+
+ +
+ +

Put observations into this mock agent's observation list

+
+ + +
+
+
#   + + + def + enqueue_mock_live_update(self, data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def enqueue_mock_live_update(self, data: Dict[str, Any]) -> None:
+        """Add a fake observation to pull off on the next act call"""
+        self.datastore.agent_data[self.db_id]["pending_acts"] = data
+
+ +
+ +

Add a fake observation to pull off on the next act call

+
+ + +
+
+
#   + + + def + enqueue_mock_submit_event(self, data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def enqueue_mock_submit_event(self, data: Dict[str, Any]) -> None:
+        """
+        Add a final submit event to put in the queue for this agent
+        to be called on completion
+        """
+        self.datastore.agent_data[self.db_id]["pending_submit"] = data
+
+ +
+ +

Add a final submit event to put in the queue for this agent +to be called on completion

+
+ + +
+
+
#   + + + def + get_live_update(self, timeout=None) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_live_update(self, timeout=None) -> Optional[Dict[str, Any]]:
+        """
+        Either take an act from this mock agent's act queue (for use
+        by tests and other mock purposes) or request a regular act
+        (for use in manual testing).
+        """
+        if len(self.datastore.agent_data[self.db_id]["pending_acts"]) > 0:
+            act = self.datastore.agent_data[self.db_id]["pending_acts"].pop(0)
+        else:
+            act = super().get_live_update(timeout=timeout)
+
+        if act is not None:
+            self.datastore.agent_data[self.db_id]["acts"].append(act)
+        return act
+
+ +
+ +

Either take an act from this mock agent's act queue (for use +by tests and other mock purposes) or request a regular act +(for use in manual testing).

+
+ + +
+
+
#   + + + def + approve_work(self) -> None: +
+ +
+ View Source +
    def approve_work(self) -> None:
+        """
+        Approve the work done on this specific Unit
+
+        Mock Units
+        """
+        self.update_status(AgentState.STATUS_APPROVED)
+
+ +
+ +

Approve the work done on this specific Unit

+ +

Mock Units

+
+ + +
+
+
#   + + + def + reject_work(self, reason) -> None: +
+ +
+ View Source +
    def reject_work(self, reason) -> None:
+        """
+        Reject the work done on this specific Unit
+        """
+        self.update_status(AgentState.STATUS_REJECTED)
+
+ +
+ +

Reject the work done on this specific Unit

+
+ + +
+
+
#   + + + def + mark_done(self): +
+ +
+ View Source +
    def mark_done(self):
+        """No need to tell mock crowd provider about doneness"""
+        pass
+
+ +
+ +

No need to tell mock crowd provider about doneness

+
+ + +
+
+
#   + + + def + mark_disconnected(self) -> None: +
+ +
+ View Source +
    def mark_disconnected(self) -> None:
+        """Mark this mock agent as having disconnected"""
+        self.update_status(AgentState.STATUS_DISCONNECT)
+
+ +
+ +

Mark this mock agent as having disconnected

+
+ + +
+
+
#   + + + def + await_submit(self, timeout: Union[int, NoneType] = None) -> bool: +
+ +
+ View Source +
    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """
+        Check the submission status of this agent, first popping off
+        and triggering a local submit if there is one on a timeout submit
+        """
+        if self.did_submit.is_set():
+            return True
+        if timeout is not None:
+            local_submit = self.datastore.agent_data[self.db_id]["pending_submit"]
+            if local_submit is not None:
+                self.handle_submit(local_submit)
+        return super().await_submit(timeout)
+
+ +
+ +

Check the submission status of this agent, first popping off +and triggering a local submit if there is one on a timeout submit

+
+ + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MockAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

Create an agent for this worker to be used for work on the given Unit.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_datastore.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_datastore.html new file mode 100644 index 000000000..a489c1002 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_datastore.html @@ -0,0 +1,1058 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_datastore API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_datastore

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import sqlite3
+import os
+import threading
+
+from datetime import datetime
+
+from typing import Dict, Any, Optional
+
+MTURK_REGION_NAME = "us-east-1"
+
+CREATE_REQUESTERS_TABLE = """CREATE TABLE IF NOT EXISTS requesters (
+    requester_id TEXT PRIMARY KEY UNIQUE,
+    is_registered BOOLEAN
+);
+"""
+
+CREATE_UNITS_TABLE = """CREATE TABLE IF NOT EXISTS units (
+    unit_id TEXT PRIMARY KEY UNIQUE,
+    is_expired BOOLEAN
+);
+"""
+
+CREATE_WORKERS_TABLE = """CREATE TABLE IF NOT EXISTS workers (
+    worker_id TEXT PRIMARY KEY UNIQUE,
+    is_blocked BOOLEAN
+);
+"""
+
+
+class MockDatastore:
+    """
+    Handles storing mock results and statuses across processes for use
+    in unit testing and manual experimentation.
+    """
+
+    def __init__(self, datastore_root: str):
+        """Initialize local storage of active agents, connect to the database"""
+        self.agent_data: Dict[str, Dict[str, Any]] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mock.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+
+    def _get_connection(self) -> sqlite3.Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            conn = sqlite3.connect(self.db_path)
+            conn.row_factory = sqlite3.Row
+            self.conn[curr_thread] = conn
+        return self.conn[curr_thread]
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            c = conn.cursor()
+            c.execute(CREATE_REQUESTERS_TABLE)
+            c.execute(CREATE_UNITS_TABLE)
+            c.execute(CREATE_WORKERS_TABLE)
+            conn.commit()
+
+    def ensure_requester_exists(self, requester_id: str) -> None:
+        """Create a record of this requester if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO requesters(
+                    requester_id,
+                    is_registered
+                ) VALUES (?, ?);""",
+                (requester_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_requester_registered(self, requester_id: str, val: bool) -> None:
+        """Set the requester registration status for the given id"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE requesters
+                SET is_registered = ?
+                WHERE requester_id = ?
+                """,
+                (val, requester_id),
+            )
+            conn.commit()
+            return None
+
+    def get_requester_registered(self, requester_id: str) -> bool:
+        """Get the registration status of a requester"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_registered from requesters
+                WHERE requester_id = ?
+                """,
+                (requester_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_registered"])
+
+    def ensure_worker_exists(self, worker_id: str) -> None:
+        """Create a record of this worker if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO workers(
+                    worker_id,
+                    is_blocked
+                ) VALUES (?, ?);""",
+                (worker_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_worker_blocked(self, worker_id: str, val: bool) -> None:
+        """Set the worker registration status for the given id"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE workers
+                SET is_blocked = ?
+                WHERE worker_id = ?
+                """,
+                (val, worker_id),
+            )
+            conn.commit()
+            return None
+
+    def get_worker_blocked(self, worker_id: str) -> bool:
+        """Get the registration status of a worker"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_blocked from workers
+                WHERE worker_id = ?
+                """,
+                (worker_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_blocked"])
+
+    def ensure_unit_exists(self, unit_id: str) -> None:
+        """Create a record of this unit if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO units(
+                    unit_id,
+                    is_expired
+                ) VALUES (?, ?);""",
+                (unit_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_unit_expired(self, unit_id: str, val: bool) -> None:
+        """Set the unit registration status for the given id"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE units
+                SET is_expired = ?
+                WHERE unit_id = ?
+                """,
+                (val, unit_id),
+            )
+            conn.commit()
+            return None
+
+    def get_unit_expired(self, unit_id: str) -> bool:
+        """Get the registration status of a unit"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_expired from units
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_expired"])
+
+ +
+ +
+
+
+ #   + + + class + MockDatastore: +
+ +
+ View Source +
class MockDatastore:
+    """
+    Handles storing mock results and statuses across processes for use
+    in unit testing and manual experimentation.
+    """
+
+    def __init__(self, datastore_root: str):
+        """Initialize local storage of active agents, connect to the database"""
+        self.agent_data: Dict[str, Dict[str, Any]] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mock.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+
+    def _get_connection(self) -> sqlite3.Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            conn = sqlite3.connect(self.db_path)
+            conn.row_factory = sqlite3.Row
+            self.conn[curr_thread] = conn
+        return self.conn[curr_thread]
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            c = conn.cursor()
+            c.execute(CREATE_REQUESTERS_TABLE)
+            c.execute(CREATE_UNITS_TABLE)
+            c.execute(CREATE_WORKERS_TABLE)
+            conn.commit()
+
+    def ensure_requester_exists(self, requester_id: str) -> None:
+        """Create a record of this requester if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO requesters(
+                    requester_id,
+                    is_registered
+                ) VALUES (?, ?);""",
+                (requester_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_requester_registered(self, requester_id: str, val: bool) -> None:
+        """Set the requester registration status for the given id"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE requesters
+                SET is_registered = ?
+                WHERE requester_id = ?
+                """,
+                (val, requester_id),
+            )
+            conn.commit()
+            return None
+
+    def get_requester_registered(self, requester_id: str) -> bool:
+        """Get the registration status of a requester"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_registered from requesters
+                WHERE requester_id = ?
+                """,
+                (requester_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_registered"])
+
+    def ensure_worker_exists(self, worker_id: str) -> None:
+        """Create a record of this worker if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO workers(
+                    worker_id,
+                    is_blocked
+                ) VALUES (?, ?);""",
+                (worker_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_worker_blocked(self, worker_id: str, val: bool) -> None:
+        """Set the worker registration status for the given id"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE workers
+                SET is_blocked = ?
+                WHERE worker_id = ?
+                """,
+                (val, worker_id),
+            )
+            conn.commit()
+            return None
+
+    def get_worker_blocked(self, worker_id: str) -> bool:
+        """Get the registration status of a worker"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_blocked from workers
+                WHERE worker_id = ?
+                """,
+                (worker_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_blocked"])
+
+    def ensure_unit_exists(self, unit_id: str) -> None:
+        """Create a record of this unit if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO units(
+                    unit_id,
+                    is_expired
+                ) VALUES (?, ?);""",
+                (unit_id, False),
+            )
+            conn.commit()
+            return None
+
+    def set_unit_expired(self, unit_id: str, val: bool) -> None:
+        """Set the unit registration status for the given id"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE units
+                SET is_expired = ?
+                WHERE unit_id = ?
+                """,
+                (val, unit_id),
+            )
+            conn.commit()
+            return None
+
+    def get_unit_expired(self, unit_id: str) -> bool:
+        """Get the registration status of a unit"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_expired from units
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_expired"])
+
+ +
+ +

Handles storing mock results and statuses across processes for use +in unit testing and manual experimentation.

+
+ + +
+
#   + + + MockDatastore(datastore_root: str) +
+ +
+ View Source +
    def __init__(self, datastore_root: str):
+        """Initialize local storage of active agents, connect to the database"""
+        self.agent_data: Dict[str, Dict[str, Any]] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mock.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+
+ +
+ +

Initialize local storage of active agents, connect to the database

+
+ + +
+
+
#   + + + def + init_tables(self) -> None: +
+ +
+ View Source +
    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            c = conn.cursor()
+            c.execute(CREATE_REQUESTERS_TABLE)
+            c.execute(CREATE_UNITS_TABLE)
+            c.execute(CREATE_WORKERS_TABLE)
+            conn.commit()
+
+ +
+ +

Run all the table creation SQL queries to ensure the expected tables exist

+
+ + +
+
+
#   + + + def + ensure_requester_exists(self, requester_id: str) -> None: +
+ +
+ View Source +
    def ensure_requester_exists(self, requester_id: str) -> None:
+        """Create a record of this requester if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO requesters(
+                    requester_id,
+                    is_registered
+                ) VALUES (?, ?);""",
+                (requester_id, False),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Create a record of this requester if it doesn't exist

+
+ + +
+
+
#   + + + def + set_requester_registered(self, requester_id: str, val: bool) -> None: +
+ +
+ View Source +
    def set_requester_registered(self, requester_id: str, val: bool) -> None:
+        """Set the requester registration status for the given id"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE requesters
+                SET is_registered = ?
+                WHERE requester_id = ?
+                """,
+                (val, requester_id),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Set the requester registration status for the given id

+
+ + +
+
+
#   + + + def + get_requester_registered(self, requester_id: str) -> bool: +
+ +
+ View Source +
    def get_requester_registered(self, requester_id: str) -> bool:
+        """Get the registration status of a requester"""
+        self.ensure_requester_exists(requester_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_registered from requesters
+                WHERE requester_id = ?
+                """,
+                (requester_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_registered"])
+
+ +
+ +

Get the registration status of a requester

+
+ + +
+
+
#   + + + def + ensure_worker_exists(self, worker_id: str) -> None: +
+ +
+ View Source +
    def ensure_worker_exists(self, worker_id: str) -> None:
+        """Create a record of this worker if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO workers(
+                    worker_id,
+                    is_blocked
+                ) VALUES (?, ?);""",
+                (worker_id, False),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Create a record of this worker if it doesn't exist

+
+ + +
+
+
#   + + + def + set_worker_blocked(self, worker_id: str, val: bool) -> None: +
+ +
+ View Source +
    def set_worker_blocked(self, worker_id: str, val: bool) -> None:
+        """Set the worker registration status for the given id"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE workers
+                SET is_blocked = ?
+                WHERE worker_id = ?
+                """,
+                (val, worker_id),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Set the worker registration status for the given id

+
+ + +
+
+
#   + + + def + get_worker_blocked(self, worker_id: str) -> bool: +
+ +
+ View Source +
    def get_worker_blocked(self, worker_id: str) -> bool:
+        """Get the registration status of a worker"""
+        self.ensure_worker_exists(worker_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_blocked from workers
+                WHERE worker_id = ?
+                """,
+                (worker_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_blocked"])
+
+ +
+ +

Get the registration status of a worker

+
+ + +
+
+
#   + + + def + ensure_unit_exists(self, unit_id: str) -> None: +
+ +
+ View Source +
    def ensure_unit_exists(self, unit_id: str) -> None:
+        """Create a record of this unit if it doesn't exist"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """INSERT OR IGNORE INTO units(
+                    unit_id,
+                    is_expired
+                ) VALUES (?, ?);""",
+                (unit_id, False),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Create a record of this unit if it doesn't exist

+
+ + +
+
+
#   + + + def + set_unit_expired(self, unit_id: str, val: bool) -> None: +
+ +
+ View Source +
    def set_unit_expired(self, unit_id: str, val: bool) -> None:
+        """Set the unit registration status for the given id"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """UPDATE units
+                SET is_expired = ?
+                WHERE unit_id = ?
+                """,
+                (val, unit_id),
+            )
+            conn.commit()
+            return None
+
+ +
+ +

Set the unit registration status for the given id

+
+ + +
+
+
#   + + + def + get_unit_expired(self, unit_id: str) -> bool: +
+ +
+ View Source +
    def get_unit_expired(self, unit_id: str) -> bool:
+        """Get the registration status of a unit"""
+        self.ensure_unit_exists(unit_id)
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT is_expired from units
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return bool(results[0]["is_expired"])
+
+ +
+ +

Get the registration status of a unit

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_provider.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_provider.html new file mode 100644 index 000000000..c990ad8c8 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_provider.html @@ -0,0 +1,1127 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_provider API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_provider

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.crowd_provider import CrowdProvider, ProviderArgs
+from mephisto.abstractions.providers.mock.mock_agent import MockAgent
+from mephisto.abstractions.providers.mock.mock_requester import MockRequester
+from mephisto.abstractions.providers.mock.mock_unit import MockUnit
+from mephisto.abstractions.providers.mock.mock_worker import MockWorker
+from mephisto.abstractions.providers.mock.mock_datastore import MockDatastore
+from mephisto.abstractions.providers.mock.provider_type import PROVIDER_TYPE
+from mephisto.data_model.requester import RequesterArgs
+from mephisto.operations.registry import register_mephisto_abstraction
+from dataclasses import dataclass, field
+
+from typing import ClassVar, Dict, Any, Optional, Type, List, TYPE_CHECKING
+
+import os
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.requester import Requester
+    from mephisto.data_model.agent import Agent
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from omegaconf import DictConfig
+
+
+@dataclass
+class MockProviderArgs(ProviderArgs):
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+
+@register_mephisto_abstraction()
+class MockProvider(CrowdProvider):
+    """
+    Mock implementation of a CrowdProvider that stores everything
+    in a local state in the class for use in tests.
+    """
+
+    UnitClass: ClassVar[Type["Unit"]] = MockUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = MockRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = MockWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = MockAgent
+
+    ArgsClass = MockProviderArgs
+
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    curr_db_location: ClassVar[str]
+
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """Mocks don't need any initialization"""
+        return MockDatastore(datastore_root=storage_path)
+
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+ +
+ +
+
+
+ #   + + + class + MockProviderArgs(mephisto.abstractions.crowd_provider.ProviderArgs): +
+ +
+ View Source +
class MockProviderArgs(ProviderArgs):
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Base class for arguments to configure Crowd Providers

+
+ + +
+
#   + + + MockProviderArgs(_provider_type: str = 'mock', requester_name: str = '???') +
+ + + + +
+ +
+
+ + +
+ View Source +
class MockProvider(CrowdProvider):
+    """
+    Mock implementation of a CrowdProvider that stores everything
+    in a local state in the class for use in tests.
+    """
+
+    UnitClass: ClassVar[Type["Unit"]] = MockUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = MockRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = MockWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = MockAgent
+
+    ArgsClass = MockProviderArgs
+
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    curr_db_location: ClassVar[str]
+
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """Mocks don't need any initialization"""
+        return MockDatastore(datastore_root=storage_path)
+
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+ +
+ +

Mock implementation of a CrowdProvider that stores everything +in a local state in the class for use in tests.

+
+ + +
+
#   + + PROVIDER_TYPE = 'mock' +
+ + + + +
+
+
#   + + + def + initialize_provider_datastore(self, storage_path: str) -> Any: +
+ +
+ View Source +
    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """Mocks don't need any initialization"""
+        return MockDatastore(datastore_root=storage_path)
+
+ +
+ +

Mocks don't need any initialization

+
+ + +
+
+
#   + + + def + setup_resources_for_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + server_url: str +) -> None: +
+ +
+ View Source +
    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+ +
+ +

Mocks don't do any initialization

+
+ + +
+
+
#   + + + def + cleanup_resources_from_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + server_url: str +) -> None: +
+ +
+ View Source +
    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """Mocks don't do any initialization"""
+        return None
+
+ +
+ +

Mocks don't do any initialization

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_wrapper_js_path(cls): +
+ +
+ View Source +
    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+ +
+ +

Return the path to the wrap_crowd_source.js file for this +provider to be deployed to the server

+
+ + +
+ +
+
+
+ #   + + + class + MockProvider.UnitClass(mephisto.data_model.unit.Unit): +
+ +
+ View Source +
class MockUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def launch(self, task_url: str) -> None:
+        """Mock launches do nothing right now beyond updating state"""
+        self.set_db_status(status=AssignmentState.LAUNCHED)
+
+        # TODO(OWN) get this link to the frontend
+        port = task_url.split(":")[1].split("/")[0]
+        print(task_url)
+        print(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id}"
+        )
+        logger.info(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id} for assignment {self.assignment_id}"
+        )
+
+        return None
+
+    def expire(self) -> float:
+        """Expiration is immediate on Mocks"""
+        if self.get_status() not in [
+            AssignmentState.EXPIRED,
+            AssignmentState.COMPLETED,
+        ]:
+            self.set_db_status(AssignmentState.EXPIRED)
+        self.datastore.set_unit_expired(self.db_id, True)
+        return 0.0
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        return self.datastore.get_unit_expired(self.db_id)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MockUnit._register_unit(db, assignment, index, pay_amount, PROVIDER_TYPE)
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+ +

It should be extended for usage with a specific crowd provider

+
+ + + +
+
+
+ #   + + + class + MockProvider.RequesterClass(mephisto.data_model.requester.Requester): +
+ +
+ View Source +
class MockRequester(Requester):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass = MockRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def register(self, args: Optional["DictConfig"] = None) -> None:
+        """Mock requesters don't actually register credentials"""
+        if args is not None:
+            if args.get("force_fail") is True:
+                raise Exception("Forced failure test exception was set")
+        else:
+            self.datastore.set_requester_registered(self.db_id, True)
+
+    def is_registered(self) -> bool:
+        """Return the registration status"""
+        return self.datastore.get_requester_registered(self.db_id)
+
+    def get_available_budget(self) -> float:
+        """MockRequesters have $100000 to spend"""
+        return MOCK_BUDGET
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """MockRequesters are for testing only, and are thus treated as sandbox"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MockRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

High level class representing a requester on some kind of crowd provider. Sets some default +initializations, but mostly should be extended by the specific requesters for crowd providers +with whatever implementation details are required to get those to work.

+
+ + + +
+
+
+ #   + + + class + MockProvider.WorkerClass(mephisto.data_model.worker.Worker): +
+ +
+ View Source +
class MockWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        self.datastore.set_worker_blocked(self.db_id, True)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        self.datastore.set_worker_blocked(self.db_id, False)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        return self.datastore.get_worker_blocked(self.db_id)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MockWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + + +
+
+
+ #   + + + class + MockProvider.AgentClass(mephisto.data_model.agent.Agent): +
+ +
+ View Source +
class MockAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+        if db_id not in self.datastore.agent_data:
+            self.datastore.agent_data[db_id] = {
+                "observed": [],
+                "pending_acts": [],
+                "acts": [],
+                "pending_submit": None,
+            }
+
+    def observe(self, live_update: Dict[str, Any]) -> None:
+        """Put observations into this mock agent's observation list"""
+        self.datastore.agent_data[self.db_id]["observed"].append(live_update)
+        super().observe(live_update)
+
+    def enqueue_mock_live_update(self, data: Dict[str, Any]) -> None:
+        """Add a fake observation to pull off on the next act call"""
+        self.datastore.agent_data[self.db_id]["pending_acts"] = data
+
+    def enqueue_mock_submit_event(self, data: Dict[str, Any]) -> None:
+        """
+        Add a final submit event to put in the queue for this agent
+        to be called on completion
+        """
+        self.datastore.agent_data[self.db_id]["pending_submit"] = data
+
+    def get_live_update(self, timeout=None) -> Optional[Dict[str, Any]]:
+        """
+        Either take an act from this mock agent's act queue (for use
+        by tests and other mock purposes) or request a regular act
+        (for use in manual testing).
+        """
+        if len(self.datastore.agent_data[self.db_id]["pending_acts"]) > 0:
+            act = self.datastore.agent_data[self.db_id]["pending_acts"].pop(0)
+        else:
+            act = super().get_live_update(timeout=timeout)
+
+        if act is not None:
+            self.datastore.agent_data[self.db_id]["acts"].append(act)
+        return act
+
+    def approve_work(self) -> None:
+        """
+        Approve the work done on this specific Unit
+
+        Mock Units
+        """
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """
+        Reject the work done on this specific Unit
+        """
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self):
+        """No need to tell mock crowd provider about doneness"""
+        pass
+
+    def mark_disconnected(self) -> None:
+        """Mark this mock agent as having disconnected"""
+        self.update_status(AgentState.STATUS_DISCONNECT)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """
+        Check the submission status of this agent, first popping off
+        and triggering a local submit if there is one on a timeout submit
+        """
+        if self.did_submit.is_set():
+            return True
+        if timeout is not None:
+            local_submit = self.datastore.agent_data[self.db_id]["pending_submit"]
+            if local_submit is not None:
+                self.handle_submit(local_submit)
+        return super().await_submit(timeout)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MockAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + + +
+
+
+ #   + + + class + MockProvider.ArgsClass(mephisto.abstractions.crowd_provider.ProviderArgs): +
+ +
+ View Source +
class MockProviderArgs(ProviderArgs):
+    """Base class for arguments to configure Crowd Providers"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Base class for arguments to configure Crowd Providers

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_requester.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_requester.html new file mode 100644 index 000000000..6dd47e905 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_requester.html @@ -0,0 +1,734 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_requester API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_requester

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from dataclasses import dataclass, field
+from mephisto.data_model.requester import Requester, RequesterArgs
+from mephisto.abstractions.providers.mock.provider_type import PROVIDER_TYPE
+
+from typing import Optional, Dict, List, Mapping, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.providers.mock.mock_datastore import MockDatastore
+    from argparse import _ArgumentGroup as ArgumentGroup
+    from omegaconf import DictConfig
+
+MOCK_BUDGET = 100000.0
+
+
+@dataclass
+class MockRequesterArgs(RequesterArgs):
+    name: str = field(
+        default="MOCK_REQUESTER",
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+    force_fail: bool = field(
+        default=False, metadata={"help": "Trigger a failed registration"}
+    )
+
+
+class MockRequester(Requester):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass = MockRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def register(self, args: Optional["DictConfig"] = None) -> None:
+        """Mock requesters don't actually register credentials"""
+        if args is not None:
+            if args.get("force_fail") is True:
+                raise Exception("Forced failure test exception was set")
+        else:
+            self.datastore.set_requester_registered(self.db_id, True)
+
+    def is_registered(self) -> bool:
+        """Return the registration status"""
+        return self.datastore.get_requester_registered(self.db_id)
+
+    def get_available_budget(self) -> float:
+        """MockRequesters have $100000 to spend"""
+        return MOCK_BUDGET
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """MockRequesters are for testing only, and are thus treated as sandbox"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MockRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MockRequesterArgs(mephisto.data_model.requester.RequesterArgs): +
+ +
+ View Source +
class MockRequesterArgs(RequesterArgs):
+    name: str = field(
+        default="MOCK_REQUESTER",
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+    force_fail: bool = field(
+        default=False, metadata={"help": "Trigger a failed registration"}
+    )
+
+ +
+ +

MockRequesterArgs(name: str = 'MOCK_REQUESTER', force_fail: bool = False)

+
+ + +
+
#   + + + MockRequesterArgs(name: str = 'MOCK_REQUESTER', force_fail: bool = False) +
+ + + + +
+
+
#   + + name: str = 'MOCK_REQUESTER' +
+ + + + +
+
+
#   + + force_fail: bool = False +
+ + + + +
+
+
+
+ #   + + + class + MockRequester(mephisto.data_model.requester.Requester): +
+ +
+ View Source +
class MockRequester(Requester):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass = MockRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def register(self, args: Optional["DictConfig"] = None) -> None:
+        """Mock requesters don't actually register credentials"""
+        if args is not None:
+            if args.get("force_fail") is True:
+                raise Exception("Forced failure test exception was set")
+        else:
+            self.datastore.set_requester_registered(self.db_id, True)
+
+    def is_registered(self) -> bool:
+        """Return the registration status"""
+        return self.datastore.get_requester_registered(self.db_id)
+
+    def get_available_budget(self) -> float:
+        """MockRequesters have $100000 to spend"""
+        return MOCK_BUDGET
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """MockRequesters are for testing only, and are thus treated as sandbox"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MockRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

High level class representing a requester on some kind of crowd provider. Sets some default +initializations, but mostly should be extended by the specific requesters for crowd providers +with whatever implementation details are required to get those to work.

+
+ + +
+
#   + + + MockRequester( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Requester class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Requester +as you will instead be returned the correct Requester class according to +the crowdprovider associated with this Requester.

+
+ + +
+
+
#   + + + def + register( + self, + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> None: +
+ +
+ View Source +
    def register(self, args: Optional["DictConfig"] = None) -> None:
+        """Mock requesters don't actually register credentials"""
+        if args is not None:
+            if args.get("force_fail") is True:
+                raise Exception("Forced failure test exception was set")
+        else:
+            self.datastore.set_requester_registered(self.db_id, True)
+
+ +
+ +

Mock requesters don't actually register credentials

+
+ + +
+
+
#   + + + def + is_registered(self) -> bool: +
+ +
+ View Source +
    def is_registered(self) -> bool:
+        """Return the registration status"""
+        return self.datastore.get_requester_registered(self.db_id)
+
+ +
+ +

Return the registration status

+
+ + +
+
+
#   + + + def + get_available_budget(self) -> float: +
+ +
+ View Source +
    def get_available_budget(self) -> float:
+        """MockRequesters have $100000 to spend"""
+        return MOCK_BUDGET
+
+ +
+ +

MockRequesters have $100000 to spend

+
+ + +
+
+
#   + +
@classmethod
+ + def + is_sandbox(self) -> bool: +
+ +
+ View Source +
    @classmethod
+    def is_sandbox(self) -> bool:
+        """MockRequesters are for testing only, and are thus treated as sandbox"""
+        return True
+
+ +
+ +

MockRequesters are for testing only, and are thus treated as sandbox

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + requester_name: str +) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MockRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

Try to create a new requester by this name, raise an exception if +the name already exists.

+ +

Implementation should call _register_requester(db, requester_id) when sure the requester +can be successfully created to have it put into the db and return the result.

+
+ + +
+ +
+
+
+ #   + + + class + MockRequester.ArgsClass(mephisto.data_model.requester.RequesterArgs): +
+ +
+ View Source +
class MockRequesterArgs(RequesterArgs):
+    name: str = field(
+        default="MOCK_REQUESTER",
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+    force_fail: bool = field(
+        default=False, metadata={"help": "Trigger a failed registration"}
+    )
+
+ +
+ +

MockRequesterArgs(name: str = 'MOCK_REQUESTER', force_fail: bool = False)

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_unit.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_unit.html new file mode 100644 index 000000000..a38cfeeda --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_unit.html @@ -0,0 +1,627 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_unit API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_unit

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.abstractions.blueprint import AgentState
+
+from mephisto.abstractions.providers.mock.provider_type import PROVIDER_TYPE
+from typing import List, Optional, Tuple, Dict, Mapping, Any, Type, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.abstractions.providers.mock.mock_datastore import MockDatastore
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+class MockUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def launch(self, task_url: str) -> None:
+        """Mock launches do nothing right now beyond updating state"""
+        self.set_db_status(status=AssignmentState.LAUNCHED)
+
+        # TODO(OWN) get this link to the frontend
+        port = task_url.split(":")[1].split("/")[0]
+        print(task_url)
+        print(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id}"
+        )
+        logger.info(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id} for assignment {self.assignment_id}"
+        )
+
+        return None
+
+    def expire(self) -> float:
+        """Expiration is immediate on Mocks"""
+        if self.get_status() not in [
+            AssignmentState.EXPIRED,
+            AssignmentState.COMPLETED,
+        ]:
+            self.set_db_status(AssignmentState.EXPIRED)
+        self.datastore.set_unit_expired(self.db_id, True)
+        return 0.0
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        return self.datastore.get_unit_expired(self.db_id)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MockUnit._register_unit(db, assignment, index, pay_amount, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MockUnit(mephisto.data_model.unit.Unit): +
+ +
+ View Source +
class MockUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def launch(self, task_url: str) -> None:
+        """Mock launches do nothing right now beyond updating state"""
+        self.set_db_status(status=AssignmentState.LAUNCHED)
+
+        # TODO(OWN) get this link to the frontend
+        port = task_url.split(":")[1].split("/")[0]
+        print(task_url)
+        print(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id}"
+        )
+        logger.info(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id} for assignment {self.assignment_id}"
+        )
+
+        return None
+
+    def expire(self) -> float:
+        """Expiration is immediate on Mocks"""
+        if self.get_status() not in [
+            AssignmentState.EXPIRED,
+            AssignmentState.COMPLETED,
+        ]:
+            self.set_db_status(AssignmentState.EXPIRED)
+        self.datastore.set_unit_expired(self.db_id, True)
+        return 0.0
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        return self.datastore.get_unit_expired(self.db_id)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MockUnit._register_unit(db, assignment, index, pay_amount, PROVIDER_TYPE)
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+ +

It should be extended for usage with a specific crowd provider

+
+ + +
+
#   + + + MockUnit( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Unit class without needing to specifically find it +for a given db_id. As such it is impossible to create a Unit +as you will instead be returned the correct Unit class according to +the crowdprovider associated with this Unit.

+
+ + +
+
+
#   + + + def + launch(self, task_url: str) -> None: +
+ +
+ View Source +
    def launch(self, task_url: str) -> None:
+        """Mock launches do nothing right now beyond updating state"""
+        self.set_db_status(status=AssignmentState.LAUNCHED)
+
+        # TODO(OWN) get this link to the frontend
+        port = task_url.split(":")[1].split("/")[0]
+        print(task_url)
+        print(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id}"
+        )
+        logger.info(
+            f"Mock task launched: localhost:{port} for preview, "
+            f"localhost:{port}/?worker_id=x&assignment_id={self.db_id} for assignment {self.assignment_id}"
+        )
+
+        return None
+
+ +
+ +

Mock launches do nothing right now beyond updating state

+
+ + +
+
+
#   + + + def + expire(self) -> float: +
+ +
+ View Source +
    def expire(self) -> float:
+        """Expiration is immediate on Mocks"""
+        if self.get_status() not in [
+            AssignmentState.EXPIRED,
+            AssignmentState.COMPLETED,
+        ]:
+            self.set_db_status(AssignmentState.EXPIRED)
+        self.datastore.set_unit_expired(self.db_id, True)
+        return 0.0
+
+ +
+ +

Expiration is immediate on Mocks

+
+ + +
+
+
#   + + + def + is_expired(self) -> bool: +
+ +
+ View Source +
    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        return self.datastore.get_unit_expired(self.db_id)
+
+ +
+ +

Determine if this unit is expired as according to the vendor.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + assignment: mephisto.data_model.assignment.Assignment, + index: int, + pay_amount: float +) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MockUnit._register_unit(db, assignment, index, pay_amount, PROVIDER_TYPE)
+
+ +
+ +

Create a Unit for the given assignment

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_worker.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_worker.html new file mode 100644 index 000000000..da2739a3e --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/mock_worker.html @@ -0,0 +1,647 @@ + + + + + + + + + mephisto.abstractions.providers.mock.mock_worker API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.mock_worker

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.worker import Worker
+from mephisto.abstractions.providers.mock.provider_type import PROVIDER_TYPE
+from typing import List, Optional, Tuple, Dict, Mapping, Type, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.requester import Requester
+    from mephisto.abstractions.providers.mock.mock_datastore import MockDatastore
+
+
+class MockWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        self.datastore.set_worker_blocked(self.db_id, True)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        self.datastore.set_worker_blocked(self.db_id, False)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        return self.datastore.get_worker_blocked(self.db_id)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MockWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MockWorker(mephisto.data_model.worker.Worker): +
+ +
+ View Source +
class MockWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MockDatastore" = db.get_datastore_for_provider(PROVIDER_TYPE)
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        self.datastore.set_worker_blocked(self.db_id, True)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        self.datastore.set_worker_blocked(self.db_id, False)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        return self.datastore.get_worker_blocked(self.db_id)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MockWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + +
+
#   + + + MockWorker( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Worker class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Worker +as you will instead be returned the correct Worker class according to +the crowdprovider associated with this Worker.

+
+ + +
+
+
#   + + + def + bonus_worker( + self, + amount: float, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        return True, ""
+
+ +
+ +

Bonus this worker for work any reason. Return success of bonus

+
+ + +
+
+
#   + + + def + block_worker( + self, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None, + requester: Union[mephisto.data_model.requester.Requester, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        self.datastore.set_worker_blocked(self.db_id, True)
+        return True, ""
+
+ +
+ +

Block this worker for a specified reason. Return success of block

+
+ + +
+
+
#   + + + def + unblock_worker( + self, + reason: str, + requester: mephisto.data_model.requester.Requester +) -> bool: +
+ +
+ View Source +
    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        self.datastore.set_worker_blocked(self.db_id, False)
+        return True
+
+ +
+ +

unblock a blocked worker for the specified reason. Return success of unblock

+
+ + +
+
+
#   + + + def + is_blocked(self, requester: mephisto.data_model.requester.Requester) -> bool: +
+ +
+ View Source +
    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        return self.datastore.get_worker_blocked(self.db_id)
+
+ +
+ +

Determine if a worker is blocked

+
+ + +
+
+
#   + + + def + is_eligible(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool: +
+ +
+ View Source +
    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        return True
+
+ +
+ +

Determine if this worker is eligible for the given task run

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + worker_id: str +) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MockWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

Create a new worker attached to the given identifier, assuming it doesn't already +exist in the database.

+ +

Implementation should return the result of _register_worker when sure the worker +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mock/provider_type.html b/docs/web/static/python_api/mephisto/abstractions/providers/mock/provider_type.html new file mode 100644 index 000000000..f7f1fd37f --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mock/provider_type.html @@ -0,0 +1,248 @@ + + + + + + + + + mephisto.abstractions.providers.mock.provider_type API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mock.provider_type

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+PROVIDER_TYPE = "mock"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk.html new file mode 100644 index 000000000..2488ad4ac --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk.html @@ -0,0 +1,258 @@ + + + + + + + + + mephisto.abstractions.providers.mturk API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_agent.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_agent.html new file mode 100644 index 000000000..a0a28939a --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_agent.html @@ -0,0 +1,846 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_agent API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_agent

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.agent import Agent
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.abstractions.providers.mturk.provider_type import PROVIDER_TYPE
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    approve_work,
+    reject_work,
+    get_assignment,
+    get_assignments_for_hit,
+)
+
+import xmltodict  # type: ignore
+import json
+
+from typing import List, Optional, Tuple, Dict, Mapping, Any, cast, TYPE_CHECKING
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+    from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+    from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+
+
+class MTurkAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        unit: "MTurkUnit" = cast("MTurkUnit", self.get_unit())
+        self.mturk_assignment_id = unit.get_mturk_assignment_id()
+
+    def _get_mturk_assignment_id(self):
+        if self.mturk_assignment_id is None:
+            self.mturk_assignment_id = self.get_unit().get_mturk_assignment_id()
+        return self.mturk_assignment_id
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "MTurkRequester" = cast("MTurkRequester", unit.get_requester())
+        return self.datastore.get_client_for_requester(requester._requester_name)
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: "Worker",
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+
+        assert isinstance(
+            unit, MTurkUnit
+        ), "Can only register mturk agents to mturk units"
+        unit.register_from_provider_data(
+            provider_data["hit_id"], provider_data["assignment_id"]
+        )
+        return super().new_from_provider_data(db, worker, unit, provider_data)
+
+    def attempt_to_reconcile_submitted_data(self, mturk_hit_id: str):
+        """
+        Hacky attempt to load the data directly from MTurk to handle
+        data submitted that we missed somehow. Chance of failure is
+        certainly non-zero.
+        """
+        client = self._get_client()
+        assignment = get_assignments_for_hit(client, mturk_hit_id)[0]
+        xml_data = xmltodict.parse(assignment["Answer"])
+        paired_data = json.loads(json.dumps(xml_data["QuestionFormAnswers"]["Answer"]))
+        parsed_data = {
+            entry["QuestionIdentifier"]: entry["FreeText"] for entry in paired_data
+        }
+        parsed_data["MEPHISTO_MTURK_RECONCILED"] = True
+        self.handle_submit(parsed_data)
+
+    # Required functions for Agent Interface
+
+    def approve_work(self) -> None:
+        """Approve the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.info(f"Approving already approved agent {self}, skipping")
+            return
+        client = self._get_client()
+        approve_work(client, self._get_mturk_assignment_id(), override_rejection=True)
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.warning(f"Cannot reject {self}, it is already approved")
+            return
+        client = self._get_client()
+        reject_work(client, self._get_mturk_assignment_id(), reason)
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self) -> None:
+        """
+        MTurk agents are marked as done on the side of MTurk, so if this agent
+        is marked as done there's nothing else we need to do as the task has been
+        submitted.
+        """
+        if self.get_status() != AgentState.STATUS_DISCONNECT:
+            self.db.update_agent(
+                agent_id=self.db_id, status=AgentState.STATUS_COMPLETED
+            )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MTurkAgent(mephisto.data_model.agent.Agent): +
+ +
+ View Source +
class MTurkAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        unit: "MTurkUnit" = cast("MTurkUnit", self.get_unit())
+        self.mturk_assignment_id = unit.get_mturk_assignment_id()
+
+    def _get_mturk_assignment_id(self):
+        if self.mturk_assignment_id is None:
+            self.mturk_assignment_id = self.get_unit().get_mturk_assignment_id()
+        return self.mturk_assignment_id
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "MTurkRequester" = cast("MTurkRequester", unit.get_requester())
+        return self.datastore.get_client_for_requester(requester._requester_name)
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: "Worker",
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+
+        assert isinstance(
+            unit, MTurkUnit
+        ), "Can only register mturk agents to mturk units"
+        unit.register_from_provider_data(
+            provider_data["hit_id"], provider_data["assignment_id"]
+        )
+        return super().new_from_provider_data(db, worker, unit, provider_data)
+
+    def attempt_to_reconcile_submitted_data(self, mturk_hit_id: str):
+        """
+        Hacky attempt to load the data directly from MTurk to handle
+        data submitted that we missed somehow. Chance of failure is
+        certainly non-zero.
+        """
+        client = self._get_client()
+        assignment = get_assignments_for_hit(client, mturk_hit_id)[0]
+        xml_data = xmltodict.parse(assignment["Answer"])
+        paired_data = json.loads(json.dumps(xml_data["QuestionFormAnswers"]["Answer"]))
+        parsed_data = {
+            entry["QuestionIdentifier"]: entry["FreeText"] for entry in paired_data
+        }
+        parsed_data["MEPHISTO_MTURK_RECONCILED"] = True
+        self.handle_submit(parsed_data)
+
+    # Required functions for Agent Interface
+
+    def approve_work(self) -> None:
+        """Approve the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.info(f"Approving already approved agent {self}, skipping")
+            return
+        client = self._get_client()
+        approve_work(client, self._get_mturk_assignment_id(), override_rejection=True)
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.warning(f"Cannot reject {self}, it is already approved")
+            return
+        client = self._get_client()
+        reject_work(client, self._get_mturk_assignment_id(), reason)
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self) -> None:
+        """
+        MTurk agents are marked as done on the side of MTurk, so if this agent
+        is marked as done there's nothing else we need to do as the task has been
+        submitted.
+        """
+        if self.get_status() != AgentState.STATUS_DISCONNECT:
+            self.db.update_agent(
+                agent_id=self.db_id, status=AgentState.STATUS_COMPLETED
+            )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + +
+
#   + + + MTurkAgent( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Agent class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Agent +as you will instead be returned the correct Agent class according to +the crowdprovider associated with this Agent.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + new_from_provider_data( + cls, + db: mephisto.abstractions.database.MephistoDB, + worker: mephisto.data_model.worker.Worker, + unit: mephisto.data_model.unit.Unit, + provider_data: Dict[str, Any] +) -> mephisto.data_model.agent.Agent: +
+ +
+ View Source +
    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: "Worker",
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+
+        assert isinstance(
+            unit, MTurkUnit
+        ), "Can only register mturk agents to mturk units"
+        unit.register_from_provider_data(
+            provider_data["hit_id"], provider_data["assignment_id"]
+        )
+        return super().new_from_provider_data(db, worker, unit, provider_data)
+
+ +
+ +

Wrapper around the new method that allows registering additional +bookkeeping information from a crowd provider for this agent

+
+ + +
+
+
#   + + + def + attempt_to_reconcile_submitted_data(self, mturk_hit_id: str): +
+ +
+ View Source +
    def attempt_to_reconcile_submitted_data(self, mturk_hit_id: str):
+        """
+        Hacky attempt to load the data directly from MTurk to handle
+        data submitted that we missed somehow. Chance of failure is
+        certainly non-zero.
+        """
+        client = self._get_client()
+        assignment = get_assignments_for_hit(client, mturk_hit_id)[0]
+        xml_data = xmltodict.parse(assignment["Answer"])
+        paired_data = json.loads(json.dumps(xml_data["QuestionFormAnswers"]["Answer"]))
+        parsed_data = {
+            entry["QuestionIdentifier"]: entry["FreeText"] for entry in paired_data
+        }
+        parsed_data["MEPHISTO_MTURK_RECONCILED"] = True
+        self.handle_submit(parsed_data)
+
+ +
+ +

Hacky attempt to load the data directly from MTurk to handle +data submitted that we missed somehow. Chance of failure is +certainly non-zero.

+
+ + +
+
+
#   + + + def + approve_work(self) -> None: +
+ +
+ View Source +
    def approve_work(self) -> None:
+        """Approve the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.info(f"Approving already approved agent {self}, skipping")
+            return
+        client = self._get_client()
+        approve_work(client, self._get_mturk_assignment_id(), override_rejection=True)
+        self.update_status(AgentState.STATUS_APPROVED)
+
+ +
+ +

Approve the work done on this specific Unit

+
+ + +
+
+
#   + + + def + reject_work(self, reason) -> None: +
+ +
+ View Source +
    def reject_work(self, reason) -> None:
+        """Reject the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.warning(f"Cannot reject {self}, it is already approved")
+            return
+        client = self._get_client()
+        reject_work(client, self._get_mturk_assignment_id(), reason)
+        self.update_status(AgentState.STATUS_REJECTED)
+
+ +
+ +

Reject the work done on this specific Unit

+
+ + +
+
+
#   + + + def + mark_done(self) -> None: +
+ +
+ View Source +
    def mark_done(self) -> None:
+        """
+        MTurk agents are marked as done on the side of MTurk, so if this agent
+        is marked as done there's nothing else we need to do as the task has been
+        submitted.
+        """
+        if self.get_status() != AgentState.STATUS_DISCONNECT:
+            self.db.update_agent(
+                agent_id=self.db_id, status=AgentState.STATUS_COMPLETED
+            )
+
+ +
+ +

MTurk agents are marked as done on the side of MTurk, so if this agent +is marked as done there's nothing else we need to do as the task has been +submitted.

+
+ + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

Create an agent for this worker to be used for work on the given Unit.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_datastore.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_datastore.html new file mode 100644 index 000000000..5f941cfa4 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_datastore.html @@ -0,0 +1,1679 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_datastore API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_datastore

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import boto3  # type: ignore
+import sqlite3
+import os
+import threading
+import time
+
+from datetime import datetime
+from collections import defaultdict
+
+
+from botocore.exceptions import ClientError  # type: ignore
+from botocore.exceptions import ProfileNotFound  # type: ignore
+from mephisto.abstractions.databases.local_database import is_unique_failure
+
+from typing import Dict, Any, Optional
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+MTURK_REGION_NAME = "us-east-1"
+
+CREATE_HITS_TABLE = """CREATE TABLE IF NOT EXISTS hits (
+    hit_id TEXT PRIMARY KEY UNIQUE,
+    unit_id TEXT,
+    assignment_id TEXT,
+    link TEXT,
+    assignment_time_in_seconds INTEGER NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+CREATE_RUN_MAP_TABLE = """CREATE TABLE IF NOT EXISTS run_mappings (
+    hit_id TEXT,
+    run_id TEXT
+);
+"""
+
+CREATE_RUNS_TABLE = """CREATE TABLE IF NOT EXISTS runs (
+    run_id TEXT PRIMARY KEY UNIQUE,
+    arn_id TEXT,
+    hit_type_id TEXT NOT NULL,
+    hit_config_path TEXT NOT NULL,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP,
+    frame_height INTEGER NOT NULL DEFAULT 650
+);
+"""
+
+UPDATE_RUNS_TABLE_1 = """ALTER TABLE runs
+    ADD COLUMN frame_height INTEGER NOT NULL DEFAULT 650;
+"""
+
+CREATE_QUALIFICATIONS_TABLE = """CREATE TABLE IF NOT EXISTS qualifications (
+    qualification_name TEXT PRIMARY KEY UNIQUE,
+    requester_id TEXT,
+    mturk_qualification_name TEXT,
+    mturk_qualification_id TEXT,
+    creation_date DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+"""
+
+
+class MTurkDatastore:
+    """
+    Handles storing multiple sessions for different requesters
+    across a single mephisto thread (locked to a MephistoDB).
+    Also creates a relevant tables for mapping between MTurk
+    and mephisto.
+    """
+
+    def __init__(self, datastore_root: str):
+        """Initialize the session storage to empty, initialize tables if needed"""
+        self.session_storage: Dict[str, boto3.Session] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mturk.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+        self._last_hit_mapping_update_times: Dict[str, float] = defaultdict(
+            lambda: time.monotonic()
+        )
+
+    def _get_connection(self) -> sqlite3.Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            conn = sqlite3.connect(self.db_path)
+            conn.row_factory = sqlite3.Row
+            self.conn[curr_thread] = conn
+        return self.conn[curr_thread]
+
+    def _mark_hit_mapping_update(self, unit_id: str) -> None:
+        """
+        Update the last hit mapping time to mark a change to the hit
+        mappings table and allow dependents to invalidate caches
+        """
+        self._last_hit_mapping_update_times[unit_id] = time.monotonic()
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_HITS_TABLE)
+                c.execute(CREATE_RUNS_TABLE)
+                c.execute(CREATE_RUN_MAP_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+            with conn:
+                try:
+                    c = conn.cursor()
+                    c.execute(UPDATE_RUNS_TABLE_1)
+                except Exception as _e:
+                    pass  # extra column already exists
+
+    def is_hit_mapping_in_sync(self, unit_id: str, compare_time: float):
+        """
+        Determine if a cached value from the given compare time is still valid
+        """
+        return compare_time > self._last_hit_mapping_update_times[unit_id]
+
+    def new_hit(self, hit_id: str, hit_link: str, duration: int, run_id: str) -> None:
+        """Register a new HIT mapping in the table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO hits(
+                    hit_id,
+                    link,
+                    assignment_time_in_seconds
+                ) VALUES (?, ?, ?);""",
+                (hit_id, hit_link, duration),
+            )
+            c.execute(
+                """INSERT INTO run_mappings(
+                    hit_id,
+                    run_id
+                ) VALUES (?, ?);""",
+                (hit_id, run_id),
+            )
+
+    def get_unassigned_hit_ids(self, run_id: str):
+        """
+        Return a list of all HIT ids that haven't been assigned
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT
+                    hit_id,
+                    unit_id,
+                    run_id
+                FROM
+                    hits
+                INNER JOIN run_mappings
+                    USING  (hit_id)
+                WHERE unit_id IS NULL
+                AND run_id = ?;
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return [r["hit_id"] for r in results]
+
+    def register_assignment_to_hit(
+        self,
+        hit_id: str,
+        unit_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+    ) -> None:
+        """
+        Register a specific assignment and hit to the given unit,
+        or clear the assignment after a return
+        """
+        logger.debug(
+            f"Attempting to assign HIT {hit_id}, Unit {unit_id}, Assignment {assignment_id}."
+        )
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE hit_id = ?
+                """,
+                (hit_id,),
+            )
+            results = c.fetchall()
+            if len(results) > 0 and results[0]["unit_id"] is not None:
+                old_unit_id = results[0]["unit_id"]
+                self._mark_hit_mapping_update(old_unit_id)
+                logger.debug(
+                    f"Cleared HIT mapping cache for previous unit, {old_unit_id}"
+                )
+
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (assignment_id, unit_id, hit_id),
+            )
+            if unit_id is not None:
+                self._mark_hit_mapping_update(unit_id)
+
+    def clear_hit_from_unit(self, unit_id: str) -> None:
+        """
+        Clear the hit mapping that maps the given unit,
+        if such a unit-hit map exists
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return
+            if len(results) > 1:
+                print(
+                    "WARNING - UNIT HAD MORE THAN ONE HIT MAPPED TO IT!",
+                    unit_id,
+                    [dict(r) for r in results],
+                )
+            result_hit_id = results[0]["hit_id"]
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (None, None, result_hit_id),
+            )
+            self._mark_hit_mapping_update(unit_id)
+
+    def get_hit_mapping(self, unit_id: str) -> sqlite3.Row:
+        """Get the mapping between Mephisto IDs and MTurk ids"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+    def register_run(
+        self,
+        run_id: str,
+        hit_type_id: str,
+        hit_config_path: str,
+        frame_height: int = 0,
+    ) -> None:
+        """Register a new task run in the mturk table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO runs(
+                    run_id,
+                    arn_id,
+                    hit_type_id,
+                    hit_config_path,
+                    frame_height
+                ) VALUES (?, ?, ?, ?, ?);""",
+                (run_id, "unused", hit_type_id, hit_config_path, frame_height),
+            )
+
+    def get_run(self, run_id: str) -> sqlite3.Row:
+        """Get the details for a run by task_run_id"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from runs
+                WHERE run_id = ?
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+    def create_qualification_mapping(
+        self,
+        qualification_name: str,
+        requester_id: str,
+        mturk_qualification_name: str,
+        mturk_qualification_id: str,
+    ) -> None:
+        """
+        Create a mapping between mephisto qualification name and mturk
+        qualification details in the local datastore.
+
+        Repeat entries with the same `qualification_name` will be idempotent
+        """
+        try:
+            with self.table_access_condition, self._get_connection() as conn:
+                c = conn.cursor()
+                c.execute(
+                    """INSERT INTO qualifications(
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id
+                    ) VALUES (?, ?, ?, ?);""",
+                    (
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id,
+                    ),
+                )
+                return None
+        except sqlite3.IntegrityError as e:
+            if is_unique_failure(e):
+                # Ignore attempt to add another mapping for an existing key
+                qual = self.get_qualification_mapping(qualification_name)
+                logger.debug(
+                    f"Multiple mturk mapping creations for qualification {qualification_name}. "
+                    f"Found existing one: {qual}. "
+                )
+                assert (
+                    qual is not None
+                ), "Cannot be none given is_unique_failure on insert"
+                cur_requester_id = qual["requester_id"]
+                cur_mturk_qualification_name = qual["mturk_qualification_name"]
+                cur_mturk_qualification_id = qual["mturk_qualification_id"]
+                if cur_requester_id != requester_id:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} under requester "
+                        f"{requester_id}, already exists under {cur_requester_id}."
+                    )
+                if cur_mturk_qualification_name != mturk_qualification_name:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} with mturk name "
+                        f"{mturk_qualification_name}, already exists under {cur_mturk_qualification_name}."
+                    )
+                return None
+            else:
+                raise e
+
+    def get_qualification_mapping(
+        self, qualification_name: str
+    ) -> Optional[sqlite3.Row]:
+        """Get the mapping between Mephisto qualifications and MTurk qualifications"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from qualifications
+                WHERE qualification_name = ?
+                """,
+                (qualification_name,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return None
+            return results[0]
+
+    def get_session_for_requester(self, requester_name: str) -> boto3.Session:
+        """
+        Either create a new session for the given requester or return
+        the existing one if it has already been created
+        """
+        if requester_name not in self.session_storage:
+            session = boto3.Session(
+                profile_name=requester_name, region_name=MTURK_REGION_NAME
+            )
+            self.session_storage[requester_name] = session
+
+        return self.session_storage[requester_name]
+
+    def get_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client("mturk")
+
+    def get_sandbox_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client(
+            service_name="mturk",
+            region_name="us-east-1",
+            endpoint_url="https://mturk-requester-sandbox.us-east-1.amazonaws.com",
+        )
+
+ +
+ +
+
+
+ #   + + + class + MTurkDatastore: +
+ +
+ View Source +
class MTurkDatastore:
+    """
+    Handles storing multiple sessions for different requesters
+    across a single mephisto thread (locked to a MephistoDB).
+    Also creates a relevant tables for mapping between MTurk
+    and mephisto.
+    """
+
+    def __init__(self, datastore_root: str):
+        """Initialize the session storage to empty, initialize tables if needed"""
+        self.session_storage: Dict[str, boto3.Session] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mturk.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+        self._last_hit_mapping_update_times: Dict[str, float] = defaultdict(
+            lambda: time.monotonic()
+        )
+
+    def _get_connection(self) -> sqlite3.Connection:
+        """Returns a singular database connection to be shared amongst all
+        calls for a given thread.
+        """
+        curr_thread = threading.get_ident()
+        if curr_thread not in self.conn or self.conn[curr_thread] is None:
+            conn = sqlite3.connect(self.db_path)
+            conn.row_factory = sqlite3.Row
+            self.conn[curr_thread] = conn
+        return self.conn[curr_thread]
+
+    def _mark_hit_mapping_update(self, unit_id: str) -> None:
+        """
+        Update the last hit mapping time to mark a change to the hit
+        mappings table and allow dependents to invalidate caches
+        """
+        self._last_hit_mapping_update_times[unit_id] = time.monotonic()
+
+    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_HITS_TABLE)
+                c.execute(CREATE_RUNS_TABLE)
+                c.execute(CREATE_RUN_MAP_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+            with conn:
+                try:
+                    c = conn.cursor()
+                    c.execute(UPDATE_RUNS_TABLE_1)
+                except Exception as _e:
+                    pass  # extra column already exists
+
+    def is_hit_mapping_in_sync(self, unit_id: str, compare_time: float):
+        """
+        Determine if a cached value from the given compare time is still valid
+        """
+        return compare_time > self._last_hit_mapping_update_times[unit_id]
+
+    def new_hit(self, hit_id: str, hit_link: str, duration: int, run_id: str) -> None:
+        """Register a new HIT mapping in the table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO hits(
+                    hit_id,
+                    link,
+                    assignment_time_in_seconds
+                ) VALUES (?, ?, ?);""",
+                (hit_id, hit_link, duration),
+            )
+            c.execute(
+                """INSERT INTO run_mappings(
+                    hit_id,
+                    run_id
+                ) VALUES (?, ?);""",
+                (hit_id, run_id),
+            )
+
+    def get_unassigned_hit_ids(self, run_id: str):
+        """
+        Return a list of all HIT ids that haven't been assigned
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT
+                    hit_id,
+                    unit_id,
+                    run_id
+                FROM
+                    hits
+                INNER JOIN run_mappings
+                    USING  (hit_id)
+                WHERE unit_id IS NULL
+                AND run_id = ?;
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return [r["hit_id"] for r in results]
+
+    def register_assignment_to_hit(
+        self,
+        hit_id: str,
+        unit_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+    ) -> None:
+        """
+        Register a specific assignment and hit to the given unit,
+        or clear the assignment after a return
+        """
+        logger.debug(
+            f"Attempting to assign HIT {hit_id}, Unit {unit_id}, Assignment {assignment_id}."
+        )
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE hit_id = ?
+                """,
+                (hit_id,),
+            )
+            results = c.fetchall()
+            if len(results) > 0 and results[0]["unit_id"] is not None:
+                old_unit_id = results[0]["unit_id"]
+                self._mark_hit_mapping_update(old_unit_id)
+                logger.debug(
+                    f"Cleared HIT mapping cache for previous unit, {old_unit_id}"
+                )
+
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (assignment_id, unit_id, hit_id),
+            )
+            if unit_id is not None:
+                self._mark_hit_mapping_update(unit_id)
+
+    def clear_hit_from_unit(self, unit_id: str) -> None:
+        """
+        Clear the hit mapping that maps the given unit,
+        if such a unit-hit map exists
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return
+            if len(results) > 1:
+                print(
+                    "WARNING - UNIT HAD MORE THAN ONE HIT MAPPED TO IT!",
+                    unit_id,
+                    [dict(r) for r in results],
+                )
+            result_hit_id = results[0]["hit_id"]
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (None, None, result_hit_id),
+            )
+            self._mark_hit_mapping_update(unit_id)
+
+    def get_hit_mapping(self, unit_id: str) -> sqlite3.Row:
+        """Get the mapping between Mephisto IDs and MTurk ids"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+    def register_run(
+        self,
+        run_id: str,
+        hit_type_id: str,
+        hit_config_path: str,
+        frame_height: int = 0,
+    ) -> None:
+        """Register a new task run in the mturk table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO runs(
+                    run_id,
+                    arn_id,
+                    hit_type_id,
+                    hit_config_path,
+                    frame_height
+                ) VALUES (?, ?, ?, ?, ?);""",
+                (run_id, "unused", hit_type_id, hit_config_path, frame_height),
+            )
+
+    def get_run(self, run_id: str) -> sqlite3.Row:
+        """Get the details for a run by task_run_id"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from runs
+                WHERE run_id = ?
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+    def create_qualification_mapping(
+        self,
+        qualification_name: str,
+        requester_id: str,
+        mturk_qualification_name: str,
+        mturk_qualification_id: str,
+    ) -> None:
+        """
+        Create a mapping between mephisto qualification name and mturk
+        qualification details in the local datastore.
+
+        Repeat entries with the same `qualification_name` will be idempotent
+        """
+        try:
+            with self.table_access_condition, self._get_connection() as conn:
+                c = conn.cursor()
+                c.execute(
+                    """INSERT INTO qualifications(
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id
+                    ) VALUES (?, ?, ?, ?);""",
+                    (
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id,
+                    ),
+                )
+                return None
+        except sqlite3.IntegrityError as e:
+            if is_unique_failure(e):
+                # Ignore attempt to add another mapping for an existing key
+                qual = self.get_qualification_mapping(qualification_name)
+                logger.debug(
+                    f"Multiple mturk mapping creations for qualification {qualification_name}. "
+                    f"Found existing one: {qual}. "
+                )
+                assert (
+                    qual is not None
+                ), "Cannot be none given is_unique_failure on insert"
+                cur_requester_id = qual["requester_id"]
+                cur_mturk_qualification_name = qual["mturk_qualification_name"]
+                cur_mturk_qualification_id = qual["mturk_qualification_id"]
+                if cur_requester_id != requester_id:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} under requester "
+                        f"{requester_id}, already exists under {cur_requester_id}."
+                    )
+                if cur_mturk_qualification_name != mturk_qualification_name:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} with mturk name "
+                        f"{mturk_qualification_name}, already exists under {cur_mturk_qualification_name}."
+                    )
+                return None
+            else:
+                raise e
+
+    def get_qualification_mapping(
+        self, qualification_name: str
+    ) -> Optional[sqlite3.Row]:
+        """Get the mapping between Mephisto qualifications and MTurk qualifications"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from qualifications
+                WHERE qualification_name = ?
+                """,
+                (qualification_name,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return None
+            return results[0]
+
+    def get_session_for_requester(self, requester_name: str) -> boto3.Session:
+        """
+        Either create a new session for the given requester or return
+        the existing one if it has already been created
+        """
+        if requester_name not in self.session_storage:
+            session = boto3.Session(
+                profile_name=requester_name, region_name=MTURK_REGION_NAME
+            )
+            self.session_storage[requester_name] = session
+
+        return self.session_storage[requester_name]
+
+    def get_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client("mturk")
+
+    def get_sandbox_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client(
+            service_name="mturk",
+            region_name="us-east-1",
+            endpoint_url="https://mturk-requester-sandbox.us-east-1.amazonaws.com",
+        )
+
+ +
+ +

Handles storing multiple sessions for different requesters +across a single mephisto thread (locked to a MephistoDB). +Also creates a relevant tables for mapping between MTurk +and mephisto.

+
+ + +
+
#   + + + MTurkDatastore(datastore_root: str) +
+ +
+ View Source +
    def __init__(self, datastore_root: str):
+        """Initialize the session storage to empty, initialize tables if needed"""
+        self.session_storage: Dict[str, boto3.Session] = {}
+        self.table_access_condition = threading.Condition()
+        self.conn: Dict[int, sqlite3.Connection] = {}
+        self.db_path = os.path.join(datastore_root, "mturk.db")
+        self.init_tables()
+        self.datastore_root = datastore_root
+        self._last_hit_mapping_update_times: Dict[str, float] = defaultdict(
+            lambda: time.monotonic()
+        )
+
+ +
+ +

Initialize the session storage to empty, initialize tables if needed

+
+ + +
+
+
#   + + + def + init_tables(self) -> None: +
+ +
+ View Source +
    def init_tables(self) -> None:
+        """
+        Run all the table creation SQL queries to ensure the expected tables exist
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            conn.execute("PRAGMA foreign_keys = 1")
+            with conn:
+                c = conn.cursor()
+                c.execute(CREATE_HITS_TABLE)
+                c.execute(CREATE_RUNS_TABLE)
+                c.execute(CREATE_RUN_MAP_TABLE)
+                c.execute(CREATE_QUALIFICATIONS_TABLE)
+            with conn:
+                try:
+                    c = conn.cursor()
+                    c.execute(UPDATE_RUNS_TABLE_1)
+                except Exception as _e:
+                    pass  # extra column already exists
+
+ +
+ +

Run all the table creation SQL queries to ensure the expected tables exist

+
+ + +
+
+
#   + + + def + is_hit_mapping_in_sync(self, unit_id: str, compare_time: float): +
+ +
+ View Source +
    def is_hit_mapping_in_sync(self, unit_id: str, compare_time: float):
+        """
+        Determine if a cached value from the given compare time is still valid
+        """
+        return compare_time > self._last_hit_mapping_update_times[unit_id]
+
+ +
+ +

Determine if a cached value from the given compare time is still valid

+
+ + +
+
+
#   + + + def + new_hit(self, hit_id: str, hit_link: str, duration: int, run_id: str) -> None: +
+ +
+ View Source +
    def new_hit(self, hit_id: str, hit_link: str, duration: int, run_id: str) -> None:
+        """Register a new HIT mapping in the table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO hits(
+                    hit_id,
+                    link,
+                    assignment_time_in_seconds
+                ) VALUES (?, ?, ?);""",
+                (hit_id, hit_link, duration),
+            )
+            c.execute(
+                """INSERT INTO run_mappings(
+                    hit_id,
+                    run_id
+                ) VALUES (?, ?);""",
+                (hit_id, run_id),
+            )
+
+ +
+ +

Register a new HIT mapping in the table

+
+ + +
+
+
#   + + + def + get_unassigned_hit_ids(self, run_id: str): +
+ +
+ View Source +
    def get_unassigned_hit_ids(self, run_id: str):
+        """
+        Return a list of all HIT ids that haven't been assigned
+        """
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT
+                    hit_id,
+                    unit_id,
+                    run_id
+                FROM
+                    hits
+                INNER JOIN run_mappings
+                    USING  (hit_id)
+                WHERE unit_id IS NULL
+                AND run_id = ?;
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return [r["hit_id"] for r in results]
+
+ +
+ +

Return a list of all HIT ids that haven't been assigned

+
+ + +
+
+
#   + + + def + register_assignment_to_hit( + self, + hit_id: str, + unit_id: Union[str, NoneType] = None, + assignment_id: Union[str, NoneType] = None +) -> None: +
+ +
+ View Source +
    def register_assignment_to_hit(
+        self,
+        hit_id: str,
+        unit_id: Optional[str] = None,
+        assignment_id: Optional[str] = None,
+    ) -> None:
+        """
+        Register a specific assignment and hit to the given unit,
+        or clear the assignment after a return
+        """
+        logger.debug(
+            f"Attempting to assign HIT {hit_id}, Unit {unit_id}, Assignment {assignment_id}."
+        )
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE hit_id = ?
+                """,
+                (hit_id,),
+            )
+            results = c.fetchall()
+            if len(results) > 0 and results[0]["unit_id"] is not None:
+                old_unit_id = results[0]["unit_id"]
+                self._mark_hit_mapping_update(old_unit_id)
+                logger.debug(
+                    f"Cleared HIT mapping cache for previous unit, {old_unit_id}"
+                )
+
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (assignment_id, unit_id, hit_id),
+            )
+            if unit_id is not None:
+                self._mark_hit_mapping_update(unit_id)
+
+ +
+ +

Register a specific assignment and hit to the given unit, +or clear the assignment after a return

+
+ + +
+
+
#   + + + def + clear_hit_from_unit(self, unit_id: str) -> None: +
+ +
+ View Source +
    def clear_hit_from_unit(self, unit_id: str) -> None:
+        """
+        Clear the hit mapping that maps the given unit,
+        if such a unit-hit map exists
+        """
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return
+            if len(results) > 1:
+                print(
+                    "WARNING - UNIT HAD MORE THAN ONE HIT MAPPED TO IT!",
+                    unit_id,
+                    [dict(r) for r in results],
+                )
+            result_hit_id = results[0]["hit_id"]
+            c.execute(
+                """UPDATE hits
+                SET assignment_id = ?, unit_id = ?
+                WHERE hit_id = ?
+                """,
+                (None, None, result_hit_id),
+            )
+            self._mark_hit_mapping_update(unit_id)
+
+ +
+ +

Clear the hit mapping that maps the given unit, +if such a unit-hit map exists

+
+ + +
+
+
#   + + + def + get_hit_mapping(self, unit_id: str) -> sqlite3.Row: +
+ +
+ View Source +
    def get_hit_mapping(self, unit_id: str) -> sqlite3.Row:
+        """Get the mapping between Mephisto IDs and MTurk ids"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from hits
+                WHERE unit_id = ?
+                """,
+                (unit_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+ +
+ +

Get the mapping between Mephisto IDs and MTurk ids

+
+ + +
+
+
#   + + + def + register_run( + self, + run_id: str, + hit_type_id: str, + hit_config_path: str, + frame_height: int = 0 +) -> None: +
+ +
+ View Source +
    def register_run(
+        self,
+        run_id: str,
+        hit_type_id: str,
+        hit_config_path: str,
+        frame_height: int = 0,
+    ) -> None:
+        """Register a new task run in the mturk table"""
+        with self.table_access_condition, self._get_connection() as conn:
+            c = conn.cursor()
+            c.execute(
+                """INSERT INTO runs(
+                    run_id,
+                    arn_id,
+                    hit_type_id,
+                    hit_config_path,
+                    frame_height
+                ) VALUES (?, ?, ?, ?, ?);""",
+                (run_id, "unused", hit_type_id, hit_config_path, frame_height),
+            )
+
+ +
+ +

Register a new task run in the mturk table

+
+ + +
+
+
#   + + + def + get_run(self, run_id: str) -> sqlite3.Row: +
+ +
+ View Source +
    def get_run(self, run_id: str) -> sqlite3.Row:
+        """Get the details for a run by task_run_id"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from runs
+                WHERE run_id = ?
+                """,
+                (run_id,),
+            )
+            results = c.fetchall()
+            return results[0]
+
+ +
+ +

Get the details for a run by task_run_id

+
+ + +
+
+
#   + + + def + create_qualification_mapping( + self, + qualification_name: str, + requester_id: str, + mturk_qualification_name: str, + mturk_qualification_id: str +) -> None: +
+ +
+ View Source +
    def create_qualification_mapping(
+        self,
+        qualification_name: str,
+        requester_id: str,
+        mturk_qualification_name: str,
+        mturk_qualification_id: str,
+    ) -> None:
+        """
+        Create a mapping between mephisto qualification name and mturk
+        qualification details in the local datastore.
+
+        Repeat entries with the same `qualification_name` will be idempotent
+        """
+        try:
+            with self.table_access_condition, self._get_connection() as conn:
+                c = conn.cursor()
+                c.execute(
+                    """INSERT INTO qualifications(
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id
+                    ) VALUES (?, ?, ?, ?);""",
+                    (
+                        qualification_name,
+                        requester_id,
+                        mturk_qualification_name,
+                        mturk_qualification_id,
+                    ),
+                )
+                return None
+        except sqlite3.IntegrityError as e:
+            if is_unique_failure(e):
+                # Ignore attempt to add another mapping for an existing key
+                qual = self.get_qualification_mapping(qualification_name)
+                logger.debug(
+                    f"Multiple mturk mapping creations for qualification {qualification_name}. "
+                    f"Found existing one: {qual}. "
+                )
+                assert (
+                    qual is not None
+                ), "Cannot be none given is_unique_failure on insert"
+                cur_requester_id = qual["requester_id"]
+                cur_mturk_qualification_name = qual["mturk_qualification_name"]
+                cur_mturk_qualification_id = qual["mturk_qualification_id"]
+                if cur_requester_id != requester_id:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} under requester "
+                        f"{requester_id}, already exists under {cur_requester_id}."
+                    )
+                if cur_mturk_qualification_name != mturk_qualification_name:
+                    logger.warning(
+                        f"MTurk Qualification mapping create for {qualification_name} with mturk name "
+                        f"{mturk_qualification_name}, already exists under {cur_mturk_qualification_name}."
+                    )
+                return None
+            else:
+                raise e
+
+ +
+ +

Create a mapping between mephisto qualification name and mturk +qualification details in the local datastore.

+ +

Repeat entries with the same qualification_name will be idempotent

+
+ + +
+
+
#   + + + def + get_qualification_mapping(self, qualification_name: str) -> Union[sqlite3.Row, NoneType]: +
+ +
+ View Source +
    def get_qualification_mapping(
+        self, qualification_name: str
+    ) -> Optional[sqlite3.Row]:
+        """Get the mapping between Mephisto qualifications and MTurk qualifications"""
+        with self.table_access_condition:
+            conn = self._get_connection()
+            c = conn.cursor()
+            c.execute(
+                """
+                SELECT * from qualifications
+                WHERE qualification_name = ?
+                """,
+                (qualification_name,),
+            )
+            results = c.fetchall()
+            if len(results) == 0:
+                return None
+            return results[0]
+
+ +
+ +

Get the mapping between Mephisto qualifications and MTurk qualifications

+
+ + +
+
+
#   + + + def + get_session_for_requester(self, requester_name: str) -> boto3.session.Session: +
+ +
+ View Source +
    def get_session_for_requester(self, requester_name: str) -> boto3.Session:
+        """
+        Either create a new session for the given requester or return
+        the existing one if it has already been created
+        """
+        if requester_name not in self.session_storage:
+            session = boto3.Session(
+                profile_name=requester_name, region_name=MTURK_REGION_NAME
+            )
+            self.session_storage[requester_name] = session
+
+        return self.session_storage[requester_name]
+
+ +
+ +

Either create a new session for the given requester or return +the existing one if it has already been created

+
+ + +
+
+
#   + + + def + get_client_for_requester(self, requester_name: str) -> Any: +
+ +
+ View Source +
    def get_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client("mturk")
+
+ +
+ +

Return the client for the given requester, which should allow +direct calls to the mturk surface

+
+ + +
+
+
#   + + + def + get_sandbox_client_for_requester(self, requester_name: str) -> Any: +
+ +
+ View Source +
    def get_sandbox_client_for_requester(self, requester_name: str) -> Any:
+        """
+        Return the client for the given requester, which should allow
+        direct calls to the mturk surface
+        """
+        return self.get_session_for_requester(requester_name).client(
+            service_name="mturk",
+            region_name="us-east-1",
+            endpoint_url="https://mturk-requester-sandbox.us-east-1.amazonaws.com",
+        )
+
+ +
+ +

Return the client for the given requester, which should allow +direct calls to the mturk surface

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_provider.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_provider.html new file mode 100644 index 000000000..d900c147b --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_provider.html @@ -0,0 +1,1776 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_provider API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_provider

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+from mephisto.abstractions.providers.mturk.provider_type import PROVIDER_TYPE
+from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+from mephisto.abstractions.crowd_provider import CrowdProvider, ProviderArgs
+from mephisto.data_model.requester import RequesterArgs
+from mephisto.abstractions.providers.mturk.mturk_agent import MTurkAgent
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+from mephisto.abstractions.providers.mturk.mturk_worker import MTurkWorker
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    create_hit_type,
+    create_hit_config,
+    delete_qualification,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+from dataclasses import dataclass, field
+
+from typing import ClassVar, Dict, Any, Optional, Type, List, cast, TYPE_CHECKING
+
+from mephisto.data_model.requester import Requester
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprint import SharedTaskState
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.agent import Agent
+    from omegaconf import DictConfig
+
+
+@dataclass
+class MTurkProviderArgs(ProviderArgs):
+    """Provider args for an MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+
+@register_mephisto_abstraction()
+class MTurkProvider(CrowdProvider):
+    """
+    Implementation of a crowdprovider that interfaces with MTurk
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    UnitClass: ClassVar[Type["Unit"]] = MTurkUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = MTurkRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = MTurkWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = MTurkAgent
+
+    ArgsClass = MTurkProviderArgs
+
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        MTurk itself is the source of truth for most data required to run
+        tasks on MTurk. The datastore holds sessions to connect with
+        MTurk as well as mappings between MTurk ids and Mephisto ids
+        """
+        return MTurkDatastore(datastore_root=storage_path)
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Produce the HIT type for this task run."""
+        requester = cast("MTurkRequester", task_run.get_requester())
+        session = self.datastore.get_session_for_requester(requester._requester_name)
+        task_run_id = task_run.db_id
+
+        # Set up HIT config
+        config_dir = os.path.join(self.datastore.datastore_root, task_run_id)
+        task_args = args.task
+
+        # Find or create relevant qualifications
+        qualifications = []
+        for qualification in shared_state.qualifications:
+            applicable_providers = qualification["applicable_providers"]
+            if (
+                applicable_providers is None
+                or self.PROVIDER_TYPE in applicable_providers
+            ):
+                qualifications.append(qualification)
+        for qualification in qualifications:
+            qualification_name = qualification["qualification_name"]
+            if requester.PROVIDER_TYPE == "mturk_sandbox":
+                qualification_name += "_sandbox"
+            if self.datastore.get_qualification_mapping(qualification_name) is None:
+                qualification[
+                    "QualificationTypeId"
+                ] = requester._create_new_mturk_qualification(qualification_name)
+
+        if hasattr(shared_state, "mturk_specific_qualifications"):
+            # TODO(OWN) standardize provider-specific qualifications
+            qualifications += shared_state.mturk_specific_qualifications  # type: ignore
+
+        # Set up HIT type
+        client = self._get_client(requester._requester_name)
+        hit_type_id = create_hit_type(client, task_args, qualifications)
+        frame_height = (
+            task_run.get_blueprint().get_frontend_args().get("frame_height", 0)
+        )
+        self.datastore.register_run(task_run_id, hit_type_id, config_dir, frame_height)
+
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """No cleanup necessary for task type"""
+        pass
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server, if it exists"""
+        mapping = self.datastore.get_qualification_mapping(qualification_name)
+        if mapping is None:
+            return None
+
+        requester_id = mapping["requester_id"]
+        requester = Requester.get(self.db, requester_id)
+        assert isinstance(requester, MTurkRequester), "Must be an mturk requester"
+        client = requester._get_client(requester._requester_name)
+        delete_qualification(client, mapping["mturk_qualification_id"])
+
+ +
+ +
+
+
+ #   + + + class + MTurkProviderArgs(mephisto.abstractions.crowd_provider.ProviderArgs): +
+ +
+ View Source +
class MTurkProviderArgs(ProviderArgs):
+    """Provider args for an MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Provider args for an MTurk provider

+
+ + +
+
#   + + + MTurkProviderArgs(_provider_type: str = 'mturk', requester_name: str = '???') +
+ + + + +
+ +
+
+
+ #   + + + class + MTurkProvider(mephisto.abstractions.crowd_provider.CrowdProvider): +
+ +
+ View Source +
class MTurkProvider(CrowdProvider):
+    """
+    Implementation of a crowdprovider that interfaces with MTurk
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    UnitClass: ClassVar[Type["Unit"]] = MTurkUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = MTurkRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = MTurkWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = MTurkAgent
+
+    ArgsClass = MTurkProviderArgs
+
+    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        MTurk itself is the source of truth for most data required to run
+        tasks on MTurk. The datastore holds sessions to connect with
+        MTurk as well as mappings between MTurk ids and Mephisto ids
+        """
+        return MTurkDatastore(datastore_root=storage_path)
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Produce the HIT type for this task run."""
+        requester = cast("MTurkRequester", task_run.get_requester())
+        session = self.datastore.get_session_for_requester(requester._requester_name)
+        task_run_id = task_run.db_id
+
+        # Set up HIT config
+        config_dir = os.path.join(self.datastore.datastore_root, task_run_id)
+        task_args = args.task
+
+        # Find or create relevant qualifications
+        qualifications = []
+        for qualification in shared_state.qualifications:
+            applicable_providers = qualification["applicable_providers"]
+            if (
+                applicable_providers is None
+                or self.PROVIDER_TYPE in applicable_providers
+            ):
+                qualifications.append(qualification)
+        for qualification in qualifications:
+            qualification_name = qualification["qualification_name"]
+            if requester.PROVIDER_TYPE == "mturk_sandbox":
+                qualification_name += "_sandbox"
+            if self.datastore.get_qualification_mapping(qualification_name) is None:
+                qualification[
+                    "QualificationTypeId"
+                ] = requester._create_new_mturk_qualification(qualification_name)
+
+        if hasattr(shared_state, "mturk_specific_qualifications"):
+            # TODO(OWN) standardize provider-specific qualifications
+            qualifications += shared_state.mturk_specific_qualifications  # type: ignore
+
+        # Set up HIT type
+        client = self._get_client(requester._requester_name)
+        hit_type_id = create_hit_type(client, task_args, qualifications)
+        frame_height = (
+            task_run.get_blueprint().get_frontend_args().get("frame_height", 0)
+        )
+        self.datastore.register_run(task_run_id, hit_type_id, config_dir, frame_height)
+
+    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """No cleanup necessary for task type"""
+        pass
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server, if it exists"""
+        mapping = self.datastore.get_qualification_mapping(qualification_name)
+        if mapping is None:
+            return None
+
+        requester_id = mapping["requester_id"]
+        requester = Requester.get(self.db, requester_id)
+        assert isinstance(requester, MTurkRequester), "Must be an mturk requester"
+        client = requester._get_client(requester._requester_name)
+        delete_qualification(client, mapping["mturk_qualification_id"])
+
+ +
+ +

Implementation of a crowdprovider that interfaces with MTurk

+
+ + +
+
#   + + PROVIDER_TYPE = 'mturk' +
+ + + + +
+
+
#   + + + def + initialize_provider_datastore(self, storage_path: str) -> Any: +
+ +
+ View Source +
    def initialize_provider_datastore(self, storage_path: str) -> Any:
+        """
+        MTurk itself is the source of truth for most data required to run
+        tasks on MTurk. The datastore holds sessions to connect with
+        MTurk as well as mappings between MTurk ids and Mephisto ids
+        """
+        return MTurkDatastore(datastore_root=storage_path)
+
+ +
+ +

MTurk itself is the source of truth for most data required to run +tasks on MTurk. The datastore holds sessions to connect with +MTurk as well as mappings between MTurk ids and Mephisto ids

+
+ + +
+
+
#   + + + def + setup_resources_for_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + args: omegaconf.dictconfig.DictConfig, + shared_state: mephisto.abstractions.blueprint.SharedTaskState, + server_url: str +) -> None: +
+ +
+ View Source +
    def setup_resources_for_task_run(
+        self,
+        task_run: "TaskRun",
+        args: "DictConfig",
+        shared_state: "SharedTaskState",
+        server_url: str,
+    ) -> None:
+        """Produce the HIT type for this task run."""
+        requester = cast("MTurkRequester", task_run.get_requester())
+        session = self.datastore.get_session_for_requester(requester._requester_name)
+        task_run_id = task_run.db_id
+
+        # Set up HIT config
+        config_dir = os.path.join(self.datastore.datastore_root, task_run_id)
+        task_args = args.task
+
+        # Find or create relevant qualifications
+        qualifications = []
+        for qualification in shared_state.qualifications:
+            applicable_providers = qualification["applicable_providers"]
+            if (
+                applicable_providers is None
+                or self.PROVIDER_TYPE in applicable_providers
+            ):
+                qualifications.append(qualification)
+        for qualification in qualifications:
+            qualification_name = qualification["qualification_name"]
+            if requester.PROVIDER_TYPE == "mturk_sandbox":
+                qualification_name += "_sandbox"
+            if self.datastore.get_qualification_mapping(qualification_name) is None:
+                qualification[
+                    "QualificationTypeId"
+                ] = requester._create_new_mturk_qualification(qualification_name)
+
+        if hasattr(shared_state, "mturk_specific_qualifications"):
+            # TODO(OWN) standardize provider-specific qualifications
+            qualifications += shared_state.mturk_specific_qualifications  # type: ignore
+
+        # Set up HIT type
+        client = self._get_client(requester._requester_name)
+        hit_type_id = create_hit_type(client, task_args, qualifications)
+        frame_height = (
+            task_run.get_blueprint().get_frontend_args().get("frame_height", 0)
+        )
+        self.datastore.register_run(task_run_id, hit_type_id, config_dir, frame_height)
+
+ +
+ +

Produce the HIT type for this task run.

+
+ + +
+
+
#   + + + def + cleanup_resources_from_task_run( + self, + task_run: mephisto.data_model.task_run.TaskRun, + server_url: str +) -> None: +
+ +
+ View Source +
    def cleanup_resources_from_task_run(
+        self, task_run: "TaskRun", server_url: str
+    ) -> None:
+        """No cleanup necessary for task type"""
+        pass
+
+ +
+ +

No cleanup necessary for task type

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_wrapper_js_path(cls): +
+ +
+ View Source +
    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+ +
+ +

Return the path to the wrap_crowd_source.js file for this +provider to be deployed to the server

+
+ + +
+
+
#   + + + def + cleanup_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server, if it exists"""
+        mapping = self.datastore.get_qualification_mapping(qualification_name)
+        if mapping is None:
+            return None
+
+        requester_id = mapping["requester_id"]
+        requester = Requester.get(self.db, requester_id)
+        assert isinstance(requester, MTurkRequester), "Must be an mturk requester"
+        client = requester._get_client(requester._requester_name)
+        delete_qualification(client, mapping["mturk_qualification_id"])
+
+ +
+ +

Remove the qualification from the sandbox server, if it exists

+
+ + +
+ +
+
+
+ #   + + + class + MTurkProvider.UnitClass(mephisto.data_model.unit.Unit): +
+ +
+ View Source +
class MTurkUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self.hit_id: Optional[str] = None
+        self._last_sync_time = 0.0
+        self._sync_hit_mapping()
+        self.__requester: Optional["MTurkRequester"] = None
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def _sync_hit_mapping(self) -> None:
+        """Sync with the datastore to see if any mappings have updated"""
+        if self.datastore.is_hit_mapping_in_sync(self.db_id, self._last_sync_time):
+            return
+        try:
+            mapping = dict(self.datastore.get_hit_mapping(self.db_id))
+            self.hit_id = mapping["hit_id"]
+            self.mturk_assignment_id = mapping.get("assignment_id")
+            self.assignment_time_in_seconds = mapping.get("assignment_time_in_seconds")
+        except IndexError:
+            # HIT does not appear to exist
+            self.hit_id = None
+            self.mturk_assignment_id = None
+            self.assignment_time_in_seconds = -1
+        # We update to a time slightly earlier than now, in order
+        # to reduce the risk of a race condition caching an old
+        # value the moment it's registered
+        self._last_sync_time = time.monotonic() - 1
+
+    def register_from_provider_data(
+        self, hit_id: str, mturk_assignment_id: str
+    ) -> None:
+        """Update the datastore and local information from this registration"""
+        self.datastore.register_assignment_to_hit(
+            hit_id, self.db_id, mturk_assignment_id
+        )
+        self._sync_hit_mapping()
+
+    def get_mturk_assignment_id(self) -> Optional[str]:
+        """
+        Return the MTurk assignment id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.mturk_assignment_id
+
+    def get_mturk_hit_id(self) -> Optional[str]:
+        """
+        Return the MTurk hit id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.hit_id
+
+    def get_requester(self) -> "MTurkRequester":
+        """Wrapper around regular Requester as this will be MTurkRequesters"""
+        if self.__requester is None:
+            self.__requester = cast("MTurkRequester", super().get_requester())
+        return self.__requester
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        super().set_db_status(status)
+        if status == AssignmentState.COMPLETED:
+            agent = cast("MTurkAgent", self.get_assigned_agent())
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_IN_TASK:
+                    # Oh no, MTurk has completed the unit, but we don't have
+                    # the data. We need to reconcile
+                    logger.warning(
+                        f"Unit {self} moved to completed, but the agent didn't... "
+                        f"Attempting to reconcile with MTurk directly"
+                    )
+                    try:
+                        hit_id = self.get_mturk_hit_id()
+                        assert (
+                            hit_id is not None
+                        ), f"This unit does not have an ID! {self}"
+
+                        agent.attempt_to_reconcile_submitted_data(hit_id)
+                    except Exception as e:
+                        logger.warning(
+                            f"Was not able to reconcile due to an error, {e}. "
+                            f"You may need to reconcile this specific Agent manually "
+                            f"after the task is completed. See here for details: "
+                            f"https://github.com/facebookresearch/Mephisto/pull/442"
+                        )
+                elif agent_status == AgentState.STATUS_TIMEOUT:
+                    # Oh no, this is also bad. we shouldn't be completing for a timed out agent.
+                    logger.warning(
+                        "Found a timeout that's trying to be pushed to completed with a timed out agent"
+                    )
+                    pass
+            else:
+                logger.warning(f"No agent found for completed unit {self}...")
+
+    def clear_assigned_agent(self) -> None:
+        """
+        Additionally to clearing the agent, we also need to dissociate the
+        hit_id from this unit in the MTurkDatastore
+        """
+        if self.db_status == AssignmentState.COMPLETED:
+            logger.warning(
+                f"Clearing an agent when COMPLETED, it's likely a submit happened "
+                f"but could not be received by the Mephisto backend. This "
+                f"assignment clear is thus being ignored, but this message "
+                f"is indicative of some data loss. "
+            )
+            # TODO(OWN) how can we reconcile missing data here? Marking this agent as
+            # COMPLETED will pollute the data, but not marking it means that
+            # it will have to be the auto-approve deadline.
+            return
+        super().clear_assigned_agent()
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is not None:
+            self.datastore.clear_hit_from_unit(self.db_id)
+            self._sync_hit_mapping()
+
+        if self.db_status == AssignmentState.ASSIGNED:
+            self.set_db_status(AssignmentState.LAUNCHED)
+
+    # Required Unit functions
+
+    def get_status(self) -> str:
+        """Get status for this unit directly from MTurk, fall back on local info"""
+        if self.db_status == AssignmentState.CREATED:
+            return super().get_status()
+        elif self.db_status in [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]:
+            # These statuses don't change with a get_status call
+            return self.db_status
+
+        if self.db_status in [AssignmentState.COMPLETED, AssignmentState.REJECTED]:
+            # These statuses only change on agent dependent changes
+            agent = self.get_assigned_agent()
+            found_status = self.db_status
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_APPROVED:
+                    found_status = AssignmentState.ACCEPTED
+                elif agent_status == AgentState.STATUS_REJECTED:
+                    found_status = AssignmentState.REJECTED
+                elif agent_status == AgentState.STATUS_SOFT_REJECTED:
+                    found_status = AssignmentState.SOFT_REJECTED
+            else:
+                logger.warning(f"Agent for unit {self} is None")
+            if found_status != self.db_status:
+                self.set_db_status(found_status)
+            return self.db_status
+
+        # Remaining statuses are tracking a live HIT
+
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is None:
+            # If the hit_id is None and there's an agent still assigned,
+            # then that agent has timed out and we should expire
+            agent = self.get_assigned_agent()
+            if agent is not None:
+                if agent.get_status() != AgentState.STATUS_EXPIRED:
+                    agent.update_status(AgentState.STATUS_EXPIRED)
+
+            # Can't determine anything else if there is no HIT on this unit
+            return self.db_status
+
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        hit = get_hit(client, mturk_hit_id)
+        if hit is None:
+            return AssignmentState.EXPIRED
+        hit_data = hit["HIT"]
+
+        local_status = self.db_status
+        external_status = self.db_status
+
+        if hit_data["HITStatus"] == "Assignable":
+            external_status = AssignmentState.LAUNCHED
+        elif hit_data["HITStatus"] == "Unassignable":
+            external_status = AssignmentState.ASSIGNED
+        elif hit_data["HITStatus"] in ["Reviewable", "Reviewing"]:
+            external_status = AssignmentState.COMPLETED
+            if hit_data["NumberOfAssignmentsAvailable"] != 0:
+                external_status = AssignmentState.EXPIRED
+        elif hit_data["HITStatus"] == "Disposed":
+            # The HIT was deleted, must rely on what we have
+            external_status = local_status
+        else:
+            raise Exception(f"Unexpected HIT status {hit_data['HITStatus']}")
+
+        if external_status != local_status:
+            if local_status == AssignmentState.ASSIGNED and external_status in [
+                AssignmentState.LAUNCHED,
+                AssignmentState.EXPIRED,
+            ]:
+                # Treat this as a return event, this hit may be doable by someone else
+                agent = self.get_assigned_agent()
+                if agent is not None and agent.get_status() in [
+                    AgentState.STATUS_IN_TASK,
+                    AgentState.STATUS_ONBOARDING,
+                    AgentState.STATUS_WAITING,
+                    AgentState.STATUS_PARTNER_DISCONNECT,
+                ]:
+                    # mark the in-task agent as having returned the HIT, to
+                    # free any running tasks and have Blueprint decide on cleanup.
+                    agent.update_status(AgentState.STATUS_RETURNED)
+                if external_status == AssignmentState.EXPIRED:
+                    # If we're expired, then it won't be doable, and we should update
+                    self.set_db_status(external_status)
+            else:
+                self.set_db_status(external_status)
+
+        return self.db_status
+
+    def launch(self, task_url: str) -> None:
+        """Create this HIT on MTurk (making it availalbe) and register the ids in the local db"""
+        task_run = self.get_assignment().get_task_run()
+        duration = task_run.get_task_args().assignment_duration_in_seconds
+        run_id = task_run.db_id
+        run_details = self.datastore.get_run(run_id)
+        hit_type_id = run_details["hit_type_id"]
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        frame_height = run_details["frame_height"]
+        hit_link, hit_id, response = create_hit_with_hit_type(
+            client, frame_height, task_url, hit_type_id
+        )
+        # TODO(OWN) get this link to the mephisto frontend
+        print(hit_link)
+
+        # We create a hit for this unit, but note that this unit may not
+        # necessarily match with the same HIT that was launched for it.
+        self.datastore.new_hit(hit_id, hit_link, duration, run_id)
+        self.set_db_status(AssignmentState.LAUNCHED)
+        return None
+
+    def expire(self) -> float:
+        """
+        Send a request to expire the HIT, and if it's not assigned return,
+        otherwise just return the maximum assignment duration
+        """
+        delay = 0
+        status = self.get_status()
+        if status in [AssignmentState.EXPIRED, AssignmentState.COMPLETED]:
+            return delay
+        if status == AssignmentState.ASSIGNED:
+            # The assignment is currently being worked on,
+            # so we will set the wait time to be the
+            # amount of time we granted for working on this assignment
+            if self.assignment_time_in_seconds is not None:
+                delay = self.assignment_time_in_seconds
+            logger.debug(f"Expiring a unit that is ASSIGNED after delay {delay}")
+        mturk_hit_id = self.get_mturk_hit_id()
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        if mturk_hit_id is not None:
+            expire_hit(client, mturk_hit_id)
+            return delay
+        else:
+            unassigned_hit_ids = self.datastore.get_unassigned_hit_ids(self.task_run_id)
+
+            if len(unassigned_hit_ids) == 0:
+                self.set_db_status(AssignmentState.EXPIRED)
+                return delay
+            hit_id = unassigned_hit_ids[0]
+            expire_hit(client, hit_id)
+            self.datastore.register_assignment_to_hit(hit_id, self.db_id)
+            self.set_db_status(AssignmentState.EXPIRED)
+            return delay
+
+    def is_expired(self) -> bool:
+        """
+        Determine if this unit is expired as according to the vendor.
+
+        In this case, we keep track of the expiration locally by refreshing
+        the hit's status and seeing if we've expired.
+        """
+        return self.get_status() == AssignmentState.EXPIRED
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.get_mturk_hit_id()}, {self.db_status})"
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+
+ + + +
+
+
+ #   + + + class + MTurkProvider.RequesterClass(mephisto.data_model.requester.Requester): +
+ +
+ View Source +
class MTurkRequester(Requester):
+    """
+    Wrapper for requester behavior as provided by MTurk. Makes
+    all requests directly to MTurk through boto3.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+    ArgsClass = MTurkRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        self._requester_name = self.requester_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    # Required functions for a Requester implementation
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+        """
+        for req_field in ["access_key_id", "secret_access_key"]:
+            if args is not None and req_field not in args:
+                raise Exception(
+                    f'Missing IAM "{req_field}" in requester registration args'
+                )
+        setup_aws_credentials(self._requester_name, args)
+
+    def is_registered(self) -> bool:
+        """Return whether or not this requester has registered yet"""
+        return check_aws_credentials(self._requester_name)
+
+    def get_available_budget(self) -> float:
+        """Get the available budget from MTurk"""
+        client = self._get_client(self._requester_name)
+        return get_requester_balance(client)
+
+    def _create_new_mturk_qualification(self, qualification_name: str) -> str:
+        """
+        Create a new qualification on MTurk owned by the requester provided
+        """
+        client = self._get_client(self._requester_name)
+        qualification_desc = f"Equivalent qualification for {qualification_name}."
+        use_qualification_name = qualification_name
+        qualification_id = find_or_create_mturk_qualification(
+            client, qualification_name, qualification_desc, must_be_owned=True
+        )
+        if qualification_id is None:
+            # Try to append time to make the qualification unique
+            use_qualification_name = f"{qualification_name}_{time.time()}"
+            qualification_id = find_or_create_mturk_qualification(
+                client, use_qualification_name, qualification_desc, must_be_owned=True
+            )
+            attempts = 0
+            while qualification_id is None:
+                # Append something somewhat random
+                use_qualification_name = f"{qualification_name}_{str(uuid4())}"
+                qualification_id = find_or_create_mturk_qualification(
+                    client,
+                    use_qualification_name,
+                    qualification_desc,
+                    must_be_owned=True,
+                )
+                attempts += 1
+                if attempts > MAX_QUALIFICATION_ATTEMPTS:
+                    raise Exception(
+                        "Something has gone extremely wrong with creating qualification "
+                        f"{qualification_name} for requester {self.requester_name}"
+                    )
+        # Store the new qualification in the datastore
+        self.datastore.create_qualification_mapping(
+            qualification_name, self.db_id, use_qualification_name, qualification_id
+        )
+        return qualification_id
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MTurkRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

Wrapper for requester behavior as provided by MTurk. Makes +all requests directly to MTurk through boto3.

+
+ + + +
+
+
+ #   + + + class + MTurkProvider.WorkerClass(mephisto.data_model.worker.Worker): +
+ +
+ View Source +
class MTurkWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self._worker_name = self.worker_name  # sandbox workers use a different name
+
+    @classmethod
+    def get_from_mturk_worker_id(
+        cls, db: "MephistoDB", mturk_worker_id: str
+    ) -> Optional["MTurkWorker"]:
+        """Get the MTurkWorker from the given worker_id"""
+        if cls.PROVIDER_TYPE != PROVIDER_TYPE:
+            mturk_worker_id += "_sandbox"
+        workers = db.find_workers(
+            worker_name=mturk_worker_id, provider_type=cls.PROVIDER_TYPE
+        )
+        if len(workers) == 0:
+            logger.warning(
+                f"Could not find a Mephisto Worker for mturk_id {mturk_worker_id}"
+            )
+            return None
+        return cast("MTurkWorker", workers[0])
+
+    def get_mturk_worker_id(self):
+        return self._worker_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+
+        In creating a new qualification, Mephisto resolves the ambiguity over which
+        requester to associate that qualification with by using the FIRST requester
+        of the given account type (either `mturk` or `mturk_sandbox`)
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is not None:
+            requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+            qualification_id = mturk_qual_details["mturk_qualification_id"]
+        else:
+            target_type = (
+                "mturk_sandbox" if qualification_name.endswith("sandbox") else "mturk"
+            )
+            requester = self.db.find_requesters(provider_type=target_type)[-1]
+            assert isinstance(
+                requester, MTurkRequester
+            ), "find_requesters must return mturk requester for given provider types"
+            qualification_id = requester._create_new_mturk_qualification(
+                qualification_name
+            )
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester for MTurk quals"
+        client = self._get_client(requester._requester_name)
+        give_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id, value
+        )
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is None:
+            logger.error(
+                f"No locally stored MTurk qualification to revoke for name {qualification_name}"
+            )
+            return None
+
+        requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester from MTurk quals"
+        client = self._get_client(requester._requester_name)
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+        remove_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id
+        )
+        return None
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return tuple of success and failure message"""
+        if unit is None:
+            # TODO(#652) implement. The content in scripts/mturk/launch_makeup_hits.py
+            # may prove useful for this.
+            return False, "bonusing via compensation tasks not yet available"
+
+        unit = cast("MTurkUnit", unit)
+        requester = cast(
+            "MTurkRequester", unit.get_assignment().get_task_run().get_requester()
+        )
+        client = self._get_client(requester._requester_name)
+        mturk_assignment_id = unit.get_mturk_assignment_id()
+        assert mturk_assignment_id is not None, "Cannot bonus for a unit with no agent"
+        pay_bonus(
+            client, self._worker_name, amount, mturk_assignment_id, reason, str(uuid4())
+        )
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        if unit is None and requester is None:
+            # TODO(WISH) soft block from all requesters? Maybe have the main
+            # requester soft block?
+            return (
+                False,
+                "Blocking without a unit or requester not yet supported for MTurkWorkers",
+            )
+        elif unit is not None and requester is None:
+            requester = unit.get_assignment().get_task_run().get_requester()
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        block_worker(client, self._worker_name, reason)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        unblock_worker(client, self._worker_name, reason)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        return is_worker_blocked(client, self._worker_name)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """
+        Qualifications are handled primarily by MTurk, so if a worker is able to get
+        through to be able to access the task, they should be eligible
+        """
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id, PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + + +
+
+
+ #   + + + class + MTurkProvider.AgentClass(mephisto.data_model.agent.Agent): +
+ +
+ View Source +
class MTurkAgent(Agent):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        unit: "MTurkUnit" = cast("MTurkUnit", self.get_unit())
+        self.mturk_assignment_id = unit.get_mturk_assignment_id()
+
+    def _get_mturk_assignment_id(self):
+        if self.mturk_assignment_id is None:
+            self.mturk_assignment_id = self.get_unit().get_mturk_assignment_id()
+        return self.mturk_assignment_id
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "MTurkRequester" = cast("MTurkRequester", unit.get_requester())
+        return self.datastore.get_client_for_requester(requester._requester_name)
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: "Worker",
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+
+        assert isinstance(
+            unit, MTurkUnit
+        ), "Can only register mturk agents to mturk units"
+        unit.register_from_provider_data(
+            provider_data["hit_id"], provider_data["assignment_id"]
+        )
+        return super().new_from_provider_data(db, worker, unit, provider_data)
+
+    def attempt_to_reconcile_submitted_data(self, mturk_hit_id: str):
+        """
+        Hacky attempt to load the data directly from MTurk to handle
+        data submitted that we missed somehow. Chance of failure is
+        certainly non-zero.
+        """
+        client = self._get_client()
+        assignment = get_assignments_for_hit(client, mturk_hit_id)[0]
+        xml_data = xmltodict.parse(assignment["Answer"])
+        paired_data = json.loads(json.dumps(xml_data["QuestionFormAnswers"]["Answer"]))
+        parsed_data = {
+            entry["QuestionIdentifier"]: entry["FreeText"] for entry in paired_data
+        }
+        parsed_data["MEPHISTO_MTURK_RECONCILED"] = True
+        self.handle_submit(parsed_data)
+
+    # Required functions for Agent Interface
+
+    def approve_work(self) -> None:
+        """Approve the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.info(f"Approving already approved agent {self}, skipping")
+            return
+        client = self._get_client()
+        approve_work(client, self._get_mturk_assignment_id(), override_rejection=True)
+        self.update_status(AgentState.STATUS_APPROVED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this specific Unit"""
+        if self.get_status() == AgentState.STATUS_APPROVED:
+            logger.warning(f"Cannot reject {self}, it is already approved")
+            return
+        client = self._get_client()
+        reject_work(client, self._get_mturk_assignment_id(), reason)
+        self.update_status(AgentState.STATUS_REJECTED)
+
+    def mark_done(self) -> None:
+        """
+        MTurk agents are marked as done on the side of MTurk, so if this agent
+        is marked as done there's nothing else we need to do as the task has been
+        submitted.
+        """
+        if self.get_status() != AgentState.STATUS_DISCONNECT:
+            self.db.update_agent(
+                agent_id=self.db_id, status=AgentState.STATUS_COMPLETED
+            )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return MTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + + +
+
+
+ #   + + + class + MTurkProvider.ArgsClass(mephisto.abstractions.crowd_provider.ProviderArgs): +
+ +
+ View Source +
class MTurkProviderArgs(ProviderArgs):
+    """Provider args for an MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Provider args for an MTurk provider

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_requester.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_requester.html new file mode 100644 index 000000000..38605167c --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_requester.html @@ -0,0 +1,896 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_requester API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_requester

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from uuid import uuid4
+import time
+import random
+
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+from mephisto.data_model.requester import Requester, RequesterArgs
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    setup_aws_credentials,
+    get_requester_balance,
+    check_aws_credentials,
+    find_or_create_qualification as find_or_create_mturk_qualification,
+)
+from mephisto.abstractions.providers.mturk.provider_type import PROVIDER_TYPE
+
+from typing import List, Optional, Mapping, Dict, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+MAX_QUALIFICATION_ATTEMPTS = 300
+
+
+@dataclass
+class MTurkRequesterArgs(RequesterArgs):
+    _group: str = field(
+        default="MTurkRequester",
+        metadata={
+            "help": (
+                "AWS is required to create a new Requester. "
+                "Please create an IAM user with programmatic access and "
+                "AmazonMechanicalTurkFullAccess policy at "
+                'https://console.aws.amazon.com/iam/ (On the "Set permissions" '
+                'page, choose "Attach existing policies directly" and then select '
+                '"AmazonMechanicalTurkFullAccess" policy). After creating '
+                "the IAM user, you should get an Access Key ID "
+                "and Secret Access Key. "
+            )
+        },
+    )
+    access_key_id: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Access Key ID"}
+    )
+    secret_access_key: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Secret Access Key"}
+    )
+
+
+class MTurkRequester(Requester):
+    """
+    Wrapper for requester behavior as provided by MTurk. Makes
+    all requests directly to MTurk through boto3.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+    ArgsClass = MTurkRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        self._requester_name = self.requester_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    # Required functions for a Requester implementation
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+        """
+        for req_field in ["access_key_id", "secret_access_key"]:
+            if args is not None and req_field not in args:
+                raise Exception(
+                    f'Missing IAM "{req_field}" in requester registration args'
+                )
+        setup_aws_credentials(self._requester_name, args)
+
+    def is_registered(self) -> bool:
+        """Return whether or not this requester has registered yet"""
+        return check_aws_credentials(self._requester_name)
+
+    def get_available_budget(self) -> float:
+        """Get the available budget from MTurk"""
+        client = self._get_client(self._requester_name)
+        return get_requester_balance(client)
+
+    def _create_new_mturk_qualification(self, qualification_name: str) -> str:
+        """
+        Create a new qualification on MTurk owned by the requester provided
+        """
+        client = self._get_client(self._requester_name)
+        qualification_desc = f"Equivalent qualification for {qualification_name}."
+        use_qualification_name = qualification_name
+        qualification_id = find_or_create_mturk_qualification(
+            client, qualification_name, qualification_desc, must_be_owned=True
+        )
+        if qualification_id is None:
+            # Try to append time to make the qualification unique
+            use_qualification_name = f"{qualification_name}_{time.time()}"
+            qualification_id = find_or_create_mturk_qualification(
+                client, use_qualification_name, qualification_desc, must_be_owned=True
+            )
+            attempts = 0
+            while qualification_id is None:
+                # Append something somewhat random
+                use_qualification_name = f"{qualification_name}_{str(uuid4())}"
+                qualification_id = find_or_create_mturk_qualification(
+                    client,
+                    use_qualification_name,
+                    qualification_desc,
+                    must_be_owned=True,
+                )
+                attempts += 1
+                if attempts > MAX_QUALIFICATION_ATTEMPTS:
+                    raise Exception(
+                        "Something has gone extremely wrong with creating qualification "
+                        f"{qualification_name} for requester {self.requester_name}"
+                    )
+        # Store the new qualification in the datastore
+        self.datastore.create_qualification_mapping(
+            qualification_name, self.db_id, use_qualification_name, qualification_id
+        )
+        return qualification_id
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MTurkRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MTurkRequesterArgs(mephisto.data_model.requester.RequesterArgs): +
+ +
+ View Source +
class MTurkRequesterArgs(RequesterArgs):
+    _group: str = field(
+        default="MTurkRequester",
+        metadata={
+            "help": (
+                "AWS is required to create a new Requester. "
+                "Please create an IAM user with programmatic access and "
+                "AmazonMechanicalTurkFullAccess policy at "
+                'https://console.aws.amazon.com/iam/ (On the "Set permissions" '
+                'page, choose "Attach existing policies directly" and then select '
+                '"AmazonMechanicalTurkFullAccess" policy). After creating '
+                "the IAM user, you should get an Access Key ID "
+                "and Secret Access Key. "
+            )
+        },
+    )
+    access_key_id: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Access Key ID"}
+    )
+    secret_access_key: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Secret Access Key"}
+    )
+
+ +
+ +

MTurkRequesterArgs(name: str = '???', _group: str = 'MTurkRequester', access_key_id: str = '???', secret_access_key: str = '???')

+
+ + +
+
#   + + + MTurkRequesterArgs( + name: str = '???', + _group: str = 'MTurkRequester', + access_key_id: str = '???', + secret_access_key: str = '???' +) +
+ + + + +
+
+
#   + + access_key_id: str = '???' +
+ + + + +
+
+
#   + + secret_access_key: str = '???' +
+ + + + +
+
+
Inherited Members
+
+ +
+
+
+
+
+ #   + + + class + MTurkRequester(mephisto.data_model.requester.Requester): +
+ +
+ View Source +
class MTurkRequester(Requester):
+    """
+    Wrapper for requester behavior as provided by MTurk. Makes
+    all requests directly to MTurk through boto3.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+    ArgsClass = MTurkRequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        self._requester_name = self.requester_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    # Required functions for a Requester implementation
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+        """
+        for req_field in ["access_key_id", "secret_access_key"]:
+            if args is not None and req_field not in args:
+                raise Exception(
+                    f'Missing IAM "{req_field}" in requester registration args'
+                )
+        setup_aws_credentials(self._requester_name, args)
+
+    def is_registered(self) -> bool:
+        """Return whether or not this requester has registered yet"""
+        return check_aws_credentials(self._requester_name)
+
+    def get_available_budget(self) -> float:
+        """Get the available budget from MTurk"""
+        client = self._get_client(self._requester_name)
+        return get_requester_balance(client)
+
+    def _create_new_mturk_qualification(self, qualification_name: str) -> str:
+        """
+        Create a new qualification on MTurk owned by the requester provided
+        """
+        client = self._get_client(self._requester_name)
+        qualification_desc = f"Equivalent qualification for {qualification_name}."
+        use_qualification_name = qualification_name
+        qualification_id = find_or_create_mturk_qualification(
+            client, qualification_name, qualification_desc, must_be_owned=True
+        )
+        if qualification_id is None:
+            # Try to append time to make the qualification unique
+            use_qualification_name = f"{qualification_name}_{time.time()}"
+            qualification_id = find_or_create_mturk_qualification(
+                client, use_qualification_name, qualification_desc, must_be_owned=True
+            )
+            attempts = 0
+            while qualification_id is None:
+                # Append something somewhat random
+                use_qualification_name = f"{qualification_name}_{str(uuid4())}"
+                qualification_id = find_or_create_mturk_qualification(
+                    client,
+                    use_qualification_name,
+                    qualification_desc,
+                    must_be_owned=True,
+                )
+                attempts += 1
+                if attempts > MAX_QUALIFICATION_ATTEMPTS:
+                    raise Exception(
+                        "Something has gone extremely wrong with creating qualification "
+                        f"{qualification_name} for requester {self.requester_name}"
+                    )
+        # Store the new qualification in the datastore
+        self.datastore.create_qualification_mapping(
+            qualification_name, self.db_id, use_qualification_name, qualification_id
+        )
+        return qualification_id
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MTurkRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

Wrapper for requester behavior as provided by MTurk. Makes +all requests directly to MTurk through boto3.

+
+ + +
+
#   + + + MTurkRequester( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Requester class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Requester +as you will instead be returned the correct Requester class according to +the crowdprovider associated with this Requester.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk' +
+ + + + +
+
+
#   + + + def + register( + self, + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> None: +
+ +
+ View Source +
    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+        """
+        for req_field in ["access_key_id", "secret_access_key"]:
+            if args is not None and req_field not in args:
+                raise Exception(
+                    f'Missing IAM "{req_field}" in requester registration args'
+                )
+        setup_aws_credentials(self._requester_name, args)
+
+ +
+ +

Register this requester with the crowd provider by providing any required credentials +or such. If no args are provided, assume the registration is already made and try +to assert it as such.

+
+ + +
+
+
#   + + + def + is_registered(self) -> bool: +
+ +
+ View Source +
    def is_registered(self) -> bool:
+        """Return whether or not this requester has registered yet"""
+        return check_aws_credentials(self._requester_name)
+
+ +
+ +

Return whether or not this requester has registered yet

+
+ + +
+
+
#   + + + def + get_available_budget(self) -> float: +
+ +
+ View Source +
    def get_available_budget(self) -> float:
+        """Get the available budget from MTurk"""
+        client = self._get_client(self._requester_name)
+        return get_requester_balance(client)
+
+ +
+ +

Get the available budget from MTurk

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + requester_name: str +) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        return MTurkRequester._register_requester(db, requester_name, PROVIDER_TYPE)
+
+ +
+ +

Try to create a new requester by this name, raise an exception if +the name already exists.

+ +

Implementation should call _register_requester(db, requester_id) when sure the requester +can be successfully created to have it put into the db and return the result.

+
+ + +
+ +
+
+
+ #   + + + class + MTurkRequester.ArgsClass(mephisto.data_model.requester.RequesterArgs): +
+ +
+ View Source +
class MTurkRequesterArgs(RequesterArgs):
+    _group: str = field(
+        default="MTurkRequester",
+        metadata={
+            "help": (
+                "AWS is required to create a new Requester. "
+                "Please create an IAM user with programmatic access and "
+                "AmazonMechanicalTurkFullAccess policy at "
+                'https://console.aws.amazon.com/iam/ (On the "Set permissions" '
+                'page, choose "Attach existing policies directly" and then select '
+                '"AmazonMechanicalTurkFullAccess" policy). After creating '
+                "the IAM user, you should get an Access Key ID "
+                "and Secret Access Key. "
+            )
+        },
+    )
+    access_key_id: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Access Key ID"}
+    )
+    secret_access_key: str = field(
+        default=MISSING, metadata={"required": True, "help": "IAM Secret Access Key"}
+    )
+
+ +
+ +

MTurkRequesterArgs(name: str = '???', _group: str = 'MTurkRequester', access_key_id: str = '???', secret_access_key: str = '???')

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_unit.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_unit.html new file mode 100644 index 000000000..6bc2bbe38 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_unit.html @@ -0,0 +1,1532 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_unit API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_unit

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from datetime import datetime
+
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    expire_hit,
+    get_hit,
+    create_hit_with_hit_type,
+    get_assignments_for_hit,
+)
+from mephisto.abstractions.providers.mturk.provider_type import PROVIDER_TYPE
+import time
+from typing import List, Optional, Tuple, Mapping, Dict, Any, Type, cast, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.abstractions.providers.mturk.mturk_agent import MTurkAgent
+    from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+class MTurkUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self.hit_id: Optional[str] = None
+        self._last_sync_time = 0.0
+        self._sync_hit_mapping()
+        self.__requester: Optional["MTurkRequester"] = None
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def _sync_hit_mapping(self) -> None:
+        """Sync with the datastore to see if any mappings have updated"""
+        if self.datastore.is_hit_mapping_in_sync(self.db_id, self._last_sync_time):
+            return
+        try:
+            mapping = dict(self.datastore.get_hit_mapping(self.db_id))
+            self.hit_id = mapping["hit_id"]
+            self.mturk_assignment_id = mapping.get("assignment_id")
+            self.assignment_time_in_seconds = mapping.get("assignment_time_in_seconds")
+        except IndexError:
+            # HIT does not appear to exist
+            self.hit_id = None
+            self.mturk_assignment_id = None
+            self.assignment_time_in_seconds = -1
+        # We update to a time slightly earlier than now, in order
+        # to reduce the risk of a race condition caching an old
+        # value the moment it's registered
+        self._last_sync_time = time.monotonic() - 1
+
+    def register_from_provider_data(
+        self, hit_id: str, mturk_assignment_id: str
+    ) -> None:
+        """Update the datastore and local information from this registration"""
+        self.datastore.register_assignment_to_hit(
+            hit_id, self.db_id, mturk_assignment_id
+        )
+        self._sync_hit_mapping()
+
+    def get_mturk_assignment_id(self) -> Optional[str]:
+        """
+        Return the MTurk assignment id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.mturk_assignment_id
+
+    def get_mturk_hit_id(self) -> Optional[str]:
+        """
+        Return the MTurk hit id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.hit_id
+
+    def get_requester(self) -> "MTurkRequester":
+        """Wrapper around regular Requester as this will be MTurkRequesters"""
+        if self.__requester is None:
+            self.__requester = cast("MTurkRequester", super().get_requester())
+        return self.__requester
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        super().set_db_status(status)
+        if status == AssignmentState.COMPLETED:
+            agent = cast("MTurkAgent", self.get_assigned_agent())
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_IN_TASK:
+                    # Oh no, MTurk has completed the unit, but we don't have
+                    # the data. We need to reconcile
+                    logger.warning(
+                        f"Unit {self} moved to completed, but the agent didn't... "
+                        f"Attempting to reconcile with MTurk directly"
+                    )
+                    try:
+                        hit_id = self.get_mturk_hit_id()
+                        assert (
+                            hit_id is not None
+                        ), f"This unit does not have an ID! {self}"
+
+                        agent.attempt_to_reconcile_submitted_data(hit_id)
+                    except Exception as e:
+                        logger.warning(
+                            f"Was not able to reconcile due to an error, {e}. "
+                            f"You may need to reconcile this specific Agent manually "
+                            f"after the task is completed. See here for details: "
+                            f"https://github.com/facebookresearch/Mephisto/pull/442"
+                        )
+                elif agent_status == AgentState.STATUS_TIMEOUT:
+                    # Oh no, this is also bad. we shouldn't be completing for a timed out agent.
+                    logger.warning(
+                        "Found a timeout that's trying to be pushed to completed with a timed out agent"
+                    )
+                    pass
+            else:
+                logger.warning(f"No agent found for completed unit {self}...")
+
+    def clear_assigned_agent(self) -> None:
+        """
+        Additionally to clearing the agent, we also need to dissociate the
+        hit_id from this unit in the MTurkDatastore
+        """
+        if self.db_status == AssignmentState.COMPLETED:
+            logger.warning(
+                f"Clearing an agent when COMPLETED, it's likely a submit happened "
+                f"but could not be received by the Mephisto backend. This "
+                f"assignment clear is thus being ignored, but this message "
+                f"is indicative of some data loss. "
+            )
+            # TODO(OWN) how can we reconcile missing data here? Marking this agent as
+            # COMPLETED will pollute the data, but not marking it means that
+            # it will have to be the auto-approve deadline.
+            return
+        super().clear_assigned_agent()
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is not None:
+            self.datastore.clear_hit_from_unit(self.db_id)
+            self._sync_hit_mapping()
+
+        if self.db_status == AssignmentState.ASSIGNED:
+            self.set_db_status(AssignmentState.LAUNCHED)
+
+    # Required Unit functions
+
+    def get_status(self) -> str:
+        """Get status for this unit directly from MTurk, fall back on local info"""
+        if self.db_status == AssignmentState.CREATED:
+            return super().get_status()
+        elif self.db_status in [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]:
+            # These statuses don't change with a get_status call
+            return self.db_status
+
+        if self.db_status in [AssignmentState.COMPLETED, AssignmentState.REJECTED]:
+            # These statuses only change on agent dependent changes
+            agent = self.get_assigned_agent()
+            found_status = self.db_status
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_APPROVED:
+                    found_status = AssignmentState.ACCEPTED
+                elif agent_status == AgentState.STATUS_REJECTED:
+                    found_status = AssignmentState.REJECTED
+                elif agent_status == AgentState.STATUS_SOFT_REJECTED:
+                    found_status = AssignmentState.SOFT_REJECTED
+            else:
+                logger.warning(f"Agent for unit {self} is None")
+            if found_status != self.db_status:
+                self.set_db_status(found_status)
+            return self.db_status
+
+        # Remaining statuses are tracking a live HIT
+
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is None:
+            # If the hit_id is None and there's an agent still assigned,
+            # then that agent has timed out and we should expire
+            agent = self.get_assigned_agent()
+            if agent is not None:
+                if agent.get_status() != AgentState.STATUS_EXPIRED:
+                    agent.update_status(AgentState.STATUS_EXPIRED)
+
+            # Can't determine anything else if there is no HIT on this unit
+            return self.db_status
+
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        hit = get_hit(client, mturk_hit_id)
+        if hit is None:
+            return AssignmentState.EXPIRED
+        hit_data = hit["HIT"]
+
+        local_status = self.db_status
+        external_status = self.db_status
+
+        if hit_data["HITStatus"] == "Assignable":
+            external_status = AssignmentState.LAUNCHED
+        elif hit_data["HITStatus"] == "Unassignable":
+            external_status = AssignmentState.ASSIGNED
+        elif hit_data["HITStatus"] in ["Reviewable", "Reviewing"]:
+            external_status = AssignmentState.COMPLETED
+            if hit_data["NumberOfAssignmentsAvailable"] != 0:
+                external_status = AssignmentState.EXPIRED
+        elif hit_data["HITStatus"] == "Disposed":
+            # The HIT was deleted, must rely on what we have
+            external_status = local_status
+        else:
+            raise Exception(f"Unexpected HIT status {hit_data['HITStatus']}")
+
+        if external_status != local_status:
+            if local_status == AssignmentState.ASSIGNED and external_status in [
+                AssignmentState.LAUNCHED,
+                AssignmentState.EXPIRED,
+            ]:
+                # Treat this as a return event, this hit may be doable by someone else
+                agent = self.get_assigned_agent()
+                if agent is not None and agent.get_status() in [
+                    AgentState.STATUS_IN_TASK,
+                    AgentState.STATUS_ONBOARDING,
+                    AgentState.STATUS_WAITING,
+                    AgentState.STATUS_PARTNER_DISCONNECT,
+                ]:
+                    # mark the in-task agent as having returned the HIT, to
+                    # free any running tasks and have Blueprint decide on cleanup.
+                    agent.update_status(AgentState.STATUS_RETURNED)
+                if external_status == AssignmentState.EXPIRED:
+                    # If we're expired, then it won't be doable, and we should update
+                    self.set_db_status(external_status)
+            else:
+                self.set_db_status(external_status)
+
+        return self.db_status
+
+    def launch(self, task_url: str) -> None:
+        """Create this HIT on MTurk (making it availalbe) and register the ids in the local db"""
+        task_run = self.get_assignment().get_task_run()
+        duration = task_run.get_task_args().assignment_duration_in_seconds
+        run_id = task_run.db_id
+        run_details = self.datastore.get_run(run_id)
+        hit_type_id = run_details["hit_type_id"]
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        frame_height = run_details["frame_height"]
+        hit_link, hit_id, response = create_hit_with_hit_type(
+            client, frame_height, task_url, hit_type_id
+        )
+        # TODO(OWN) get this link to the mephisto frontend
+        print(hit_link)
+
+        # We create a hit for this unit, but note that this unit may not
+        # necessarily match with the same HIT that was launched for it.
+        self.datastore.new_hit(hit_id, hit_link, duration, run_id)
+        self.set_db_status(AssignmentState.LAUNCHED)
+        return None
+
+    def expire(self) -> float:
+        """
+        Send a request to expire the HIT, and if it's not assigned return,
+        otherwise just return the maximum assignment duration
+        """
+        delay = 0
+        status = self.get_status()
+        if status in [AssignmentState.EXPIRED, AssignmentState.COMPLETED]:
+            return delay
+        if status == AssignmentState.ASSIGNED:
+            # The assignment is currently being worked on,
+            # so we will set the wait time to be the
+            # amount of time we granted for working on this assignment
+            if self.assignment_time_in_seconds is not None:
+                delay = self.assignment_time_in_seconds
+            logger.debug(f"Expiring a unit that is ASSIGNED after delay {delay}")
+        mturk_hit_id = self.get_mturk_hit_id()
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        if mturk_hit_id is not None:
+            expire_hit(client, mturk_hit_id)
+            return delay
+        else:
+            unassigned_hit_ids = self.datastore.get_unassigned_hit_ids(self.task_run_id)
+
+            if len(unassigned_hit_ids) == 0:
+                self.set_db_status(AssignmentState.EXPIRED)
+                return delay
+            hit_id = unassigned_hit_ids[0]
+            expire_hit(client, hit_id)
+            self.datastore.register_assignment_to_hit(hit_id, self.db_id)
+            self.set_db_status(AssignmentState.EXPIRED)
+            return delay
+
+    def is_expired(self) -> bool:
+        """
+        Determine if this unit is expired as according to the vendor.
+
+        In this case, we keep track of the expiration locally by refreshing
+        the hit's status and seeing if we've expired.
+        """
+        return self.get_status() == AssignmentState.EXPIRED
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.get_mturk_hit_id()}, {self.db_status})"
+
+ +
+ +
+
+
+ #   + + + class + MTurkUnit(mephisto.data_model.unit.Unit): +
+ +
+ View Source +
class MTurkUnit(Unit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self.hit_id: Optional[str] = None
+        self._last_sync_time = 0.0
+        self._sync_hit_mapping()
+        self.__requester: Optional["MTurkRequester"] = None
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def _sync_hit_mapping(self) -> None:
+        """Sync with the datastore to see if any mappings have updated"""
+        if self.datastore.is_hit_mapping_in_sync(self.db_id, self._last_sync_time):
+            return
+        try:
+            mapping = dict(self.datastore.get_hit_mapping(self.db_id))
+            self.hit_id = mapping["hit_id"]
+            self.mturk_assignment_id = mapping.get("assignment_id")
+            self.assignment_time_in_seconds = mapping.get("assignment_time_in_seconds")
+        except IndexError:
+            # HIT does not appear to exist
+            self.hit_id = None
+            self.mturk_assignment_id = None
+            self.assignment_time_in_seconds = -1
+        # We update to a time slightly earlier than now, in order
+        # to reduce the risk of a race condition caching an old
+        # value the moment it's registered
+        self._last_sync_time = time.monotonic() - 1
+
+    def register_from_provider_data(
+        self, hit_id: str, mturk_assignment_id: str
+    ) -> None:
+        """Update the datastore and local information from this registration"""
+        self.datastore.register_assignment_to_hit(
+            hit_id, self.db_id, mturk_assignment_id
+        )
+        self._sync_hit_mapping()
+
+    def get_mturk_assignment_id(self) -> Optional[str]:
+        """
+        Return the MTurk assignment id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.mturk_assignment_id
+
+    def get_mturk_hit_id(self) -> Optional[str]:
+        """
+        Return the MTurk hit id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.hit_id
+
+    def get_requester(self) -> "MTurkRequester":
+        """Wrapper around regular Requester as this will be MTurkRequesters"""
+        if self.__requester is None:
+            self.__requester = cast("MTurkRequester", super().get_requester())
+        return self.__requester
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        super().set_db_status(status)
+        if status == AssignmentState.COMPLETED:
+            agent = cast("MTurkAgent", self.get_assigned_agent())
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_IN_TASK:
+                    # Oh no, MTurk has completed the unit, but we don't have
+                    # the data. We need to reconcile
+                    logger.warning(
+                        f"Unit {self} moved to completed, but the agent didn't... "
+                        f"Attempting to reconcile with MTurk directly"
+                    )
+                    try:
+                        hit_id = self.get_mturk_hit_id()
+                        assert (
+                            hit_id is not None
+                        ), f"This unit does not have an ID! {self}"
+
+                        agent.attempt_to_reconcile_submitted_data(hit_id)
+                    except Exception as e:
+                        logger.warning(
+                            f"Was not able to reconcile due to an error, {e}. "
+                            f"You may need to reconcile this specific Agent manually "
+                            f"after the task is completed. See here for details: "
+                            f"https://github.com/facebookresearch/Mephisto/pull/442"
+                        )
+                elif agent_status == AgentState.STATUS_TIMEOUT:
+                    # Oh no, this is also bad. we shouldn't be completing for a timed out agent.
+                    logger.warning(
+                        "Found a timeout that's trying to be pushed to completed with a timed out agent"
+                    )
+                    pass
+            else:
+                logger.warning(f"No agent found for completed unit {self}...")
+
+    def clear_assigned_agent(self) -> None:
+        """
+        Additionally to clearing the agent, we also need to dissociate the
+        hit_id from this unit in the MTurkDatastore
+        """
+        if self.db_status == AssignmentState.COMPLETED:
+            logger.warning(
+                f"Clearing an agent when COMPLETED, it's likely a submit happened "
+                f"but could not be received by the Mephisto backend. This "
+                f"assignment clear is thus being ignored, but this message "
+                f"is indicative of some data loss. "
+            )
+            # TODO(OWN) how can we reconcile missing data here? Marking this agent as
+            # COMPLETED will pollute the data, but not marking it means that
+            # it will have to be the auto-approve deadline.
+            return
+        super().clear_assigned_agent()
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is not None:
+            self.datastore.clear_hit_from_unit(self.db_id)
+            self._sync_hit_mapping()
+
+        if self.db_status == AssignmentState.ASSIGNED:
+            self.set_db_status(AssignmentState.LAUNCHED)
+
+    # Required Unit functions
+
+    def get_status(self) -> str:
+        """Get status for this unit directly from MTurk, fall back on local info"""
+        if self.db_status == AssignmentState.CREATED:
+            return super().get_status()
+        elif self.db_status in [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]:
+            # These statuses don't change with a get_status call
+            return self.db_status
+
+        if self.db_status in [AssignmentState.COMPLETED, AssignmentState.REJECTED]:
+            # These statuses only change on agent dependent changes
+            agent = self.get_assigned_agent()
+            found_status = self.db_status
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_APPROVED:
+                    found_status = AssignmentState.ACCEPTED
+                elif agent_status == AgentState.STATUS_REJECTED:
+                    found_status = AssignmentState.REJECTED
+                elif agent_status == AgentState.STATUS_SOFT_REJECTED:
+                    found_status = AssignmentState.SOFT_REJECTED
+            else:
+                logger.warning(f"Agent for unit {self} is None")
+            if found_status != self.db_status:
+                self.set_db_status(found_status)
+            return self.db_status
+
+        # Remaining statuses are tracking a live HIT
+
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is None:
+            # If the hit_id is None and there's an agent still assigned,
+            # then that agent has timed out and we should expire
+            agent = self.get_assigned_agent()
+            if agent is not None:
+                if agent.get_status() != AgentState.STATUS_EXPIRED:
+                    agent.update_status(AgentState.STATUS_EXPIRED)
+
+            # Can't determine anything else if there is no HIT on this unit
+            return self.db_status
+
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        hit = get_hit(client, mturk_hit_id)
+        if hit is None:
+            return AssignmentState.EXPIRED
+        hit_data = hit["HIT"]
+
+        local_status = self.db_status
+        external_status = self.db_status
+
+        if hit_data["HITStatus"] == "Assignable":
+            external_status = AssignmentState.LAUNCHED
+        elif hit_data["HITStatus"] == "Unassignable":
+            external_status = AssignmentState.ASSIGNED
+        elif hit_data["HITStatus"] in ["Reviewable", "Reviewing"]:
+            external_status = AssignmentState.COMPLETED
+            if hit_data["NumberOfAssignmentsAvailable"] != 0:
+                external_status = AssignmentState.EXPIRED
+        elif hit_data["HITStatus"] == "Disposed":
+            # The HIT was deleted, must rely on what we have
+            external_status = local_status
+        else:
+            raise Exception(f"Unexpected HIT status {hit_data['HITStatus']}")
+
+        if external_status != local_status:
+            if local_status == AssignmentState.ASSIGNED and external_status in [
+                AssignmentState.LAUNCHED,
+                AssignmentState.EXPIRED,
+            ]:
+                # Treat this as a return event, this hit may be doable by someone else
+                agent = self.get_assigned_agent()
+                if agent is not None and agent.get_status() in [
+                    AgentState.STATUS_IN_TASK,
+                    AgentState.STATUS_ONBOARDING,
+                    AgentState.STATUS_WAITING,
+                    AgentState.STATUS_PARTNER_DISCONNECT,
+                ]:
+                    # mark the in-task agent as having returned the HIT, to
+                    # free any running tasks and have Blueprint decide on cleanup.
+                    agent.update_status(AgentState.STATUS_RETURNED)
+                if external_status == AssignmentState.EXPIRED:
+                    # If we're expired, then it won't be doable, and we should update
+                    self.set_db_status(external_status)
+            else:
+                self.set_db_status(external_status)
+
+        return self.db_status
+
+    def launch(self, task_url: str) -> None:
+        """Create this HIT on MTurk (making it availalbe) and register the ids in the local db"""
+        task_run = self.get_assignment().get_task_run()
+        duration = task_run.get_task_args().assignment_duration_in_seconds
+        run_id = task_run.db_id
+        run_details = self.datastore.get_run(run_id)
+        hit_type_id = run_details["hit_type_id"]
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        frame_height = run_details["frame_height"]
+        hit_link, hit_id, response = create_hit_with_hit_type(
+            client, frame_height, task_url, hit_type_id
+        )
+        # TODO(OWN) get this link to the mephisto frontend
+        print(hit_link)
+
+        # We create a hit for this unit, but note that this unit may not
+        # necessarily match with the same HIT that was launched for it.
+        self.datastore.new_hit(hit_id, hit_link, duration, run_id)
+        self.set_db_status(AssignmentState.LAUNCHED)
+        return None
+
+    def expire(self) -> float:
+        """
+        Send a request to expire the HIT, and if it's not assigned return,
+        otherwise just return the maximum assignment duration
+        """
+        delay = 0
+        status = self.get_status()
+        if status in [AssignmentState.EXPIRED, AssignmentState.COMPLETED]:
+            return delay
+        if status == AssignmentState.ASSIGNED:
+            # The assignment is currently being worked on,
+            # so we will set the wait time to be the
+            # amount of time we granted for working on this assignment
+            if self.assignment_time_in_seconds is not None:
+                delay = self.assignment_time_in_seconds
+            logger.debug(f"Expiring a unit that is ASSIGNED after delay {delay}")
+        mturk_hit_id = self.get_mturk_hit_id()
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        if mturk_hit_id is not None:
+            expire_hit(client, mturk_hit_id)
+            return delay
+        else:
+            unassigned_hit_ids = self.datastore.get_unassigned_hit_ids(self.task_run_id)
+
+            if len(unassigned_hit_ids) == 0:
+                self.set_db_status(AssignmentState.EXPIRED)
+                return delay
+            hit_id = unassigned_hit_ids[0]
+            expire_hit(client, hit_id)
+            self.datastore.register_assignment_to_hit(hit_id, self.db_id)
+            self.set_db_status(AssignmentState.EXPIRED)
+            return delay
+
+    def is_expired(self) -> bool:
+        """
+        Determine if this unit is expired as according to the vendor.
+
+        In this case, we keep track of the expiration locally by refreshing
+        the hit's status and seeing if we've expired.
+        """
+        return self.get_status() == AssignmentState.EXPIRED
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.get_mturk_hit_id()}, {self.db_status})"
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+
+ + +
+
#   + + + MTurkUnit( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Unit class without needing to specifically find it +for a given db_id. As such it is impossible to create a Unit +as you will instead be returned the correct Unit class according to +the crowdprovider associated with this Unit.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk' +
+ + + + +
+
+
#   + + + def + register_from_provider_data(self, hit_id: str, mturk_assignment_id: str) -> None: +
+ +
+ View Source +
    def register_from_provider_data(
+        self, hit_id: str, mturk_assignment_id: str
+    ) -> None:
+        """Update the datastore and local information from this registration"""
+        self.datastore.register_assignment_to_hit(
+            hit_id, self.db_id, mturk_assignment_id
+        )
+        self._sync_hit_mapping()
+
+ +
+ +

Update the datastore and local information from this registration

+
+ + +
+
+
#   + + + def + get_mturk_assignment_id(self) -> Union[str, NoneType]: +
+ +
+ View Source +
    def get_mturk_assignment_id(self) -> Optional[str]:
+        """
+        Return the MTurk assignment id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.mturk_assignment_id
+
+ +
+ +

Return the MTurk assignment id associated with this unit

+
+ + +
+
+
#   + + + def + get_mturk_hit_id(self) -> Union[str, NoneType]: +
+ +
+ View Source +
    def get_mturk_hit_id(self) -> Optional[str]:
+        """
+        Return the MTurk hit id associated with this unit
+        """
+        self._sync_hit_mapping()
+        return self.hit_id
+
+ +
+ +

Return the MTurk hit id associated with this unit

+
+ + +
+
+ + +
+ View Source +
    def get_requester(self) -> "MTurkRequester":
+        """Wrapper around regular Requester as this will be MTurkRequesters"""
+        if self.__requester is None:
+            self.__requester = cast("MTurkRequester", super().get_requester())
+        return self.__requester
+
+ +
+ +

Wrapper around regular Requester as this will be MTurkRequesters

+
+ + +
+
+
#   + + + def + set_db_status(self, status: str) -> None: +
+ +
+ View Source +
    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        super().set_db_status(status)
+        if status == AssignmentState.COMPLETED:
+            agent = cast("MTurkAgent", self.get_assigned_agent())
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_IN_TASK:
+                    # Oh no, MTurk has completed the unit, but we don't have
+                    # the data. We need to reconcile
+                    logger.warning(
+                        f"Unit {self} moved to completed, but the agent didn't... "
+                        f"Attempting to reconcile with MTurk directly"
+                    )
+                    try:
+                        hit_id = self.get_mturk_hit_id()
+                        assert (
+                            hit_id is not None
+                        ), f"This unit does not have an ID! {self}"
+
+                        agent.attempt_to_reconcile_submitted_data(hit_id)
+                    except Exception as e:
+                        logger.warning(
+                            f"Was not able to reconcile due to an error, {e}. "
+                            f"You may need to reconcile this specific Agent manually "
+                            f"after the task is completed. See here for details: "
+                            f"https://github.com/facebookresearch/Mephisto/pull/442"
+                        )
+                elif agent_status == AgentState.STATUS_TIMEOUT:
+                    # Oh no, this is also bad. we shouldn't be completing for a timed out agent.
+                    logger.warning(
+                        "Found a timeout that's trying to be pushed to completed with a timed out agent"
+                    )
+                    pass
+            else:
+                logger.warning(f"No agent found for completed unit {self}...")
+
+ +
+ +

Set the status reflected in the database for this Unit

+
+ + +
+
+
#   + + + def + clear_assigned_agent(self) -> None: +
+ +
+ View Source +
    def clear_assigned_agent(self) -> None:
+        """
+        Additionally to clearing the agent, we also need to dissociate the
+        hit_id from this unit in the MTurkDatastore
+        """
+        if self.db_status == AssignmentState.COMPLETED:
+            logger.warning(
+                f"Clearing an agent when COMPLETED, it's likely a submit happened "
+                f"but could not be received by the Mephisto backend. This "
+                f"assignment clear is thus being ignored, but this message "
+                f"is indicative of some data loss. "
+            )
+            # TODO(OWN) how can we reconcile missing data here? Marking this agent as
+            # COMPLETED will pollute the data, but not marking it means that
+            # it will have to be the auto-approve deadline.
+            return
+        super().clear_assigned_agent()
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is not None:
+            self.datastore.clear_hit_from_unit(self.db_id)
+            self._sync_hit_mapping()
+
+        if self.db_status == AssignmentState.ASSIGNED:
+            self.set_db_status(AssignmentState.LAUNCHED)
+
+ +
+ +

Additionally to clearing the agent, we also need to dissociate the +hit_id from this unit in the MTurkDatastore

+
+ + +
+
+
#   + + + def + get_status(self) -> str: +
+ +
+ View Source +
    def get_status(self) -> str:
+        """Get status for this unit directly from MTurk, fall back on local info"""
+        if self.db_status == AssignmentState.CREATED:
+            return super().get_status()
+        elif self.db_status in [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]:
+            # These statuses don't change with a get_status call
+            return self.db_status
+
+        if self.db_status in [AssignmentState.COMPLETED, AssignmentState.REJECTED]:
+            # These statuses only change on agent dependent changes
+            agent = self.get_assigned_agent()
+            found_status = self.db_status
+            if agent is not None:
+                agent_status = agent.get_status()
+                if agent_status == AgentState.STATUS_APPROVED:
+                    found_status = AssignmentState.ACCEPTED
+                elif agent_status == AgentState.STATUS_REJECTED:
+                    found_status = AssignmentState.REJECTED
+                elif agent_status == AgentState.STATUS_SOFT_REJECTED:
+                    found_status = AssignmentState.SOFT_REJECTED
+            else:
+                logger.warning(f"Agent for unit {self} is None")
+            if found_status != self.db_status:
+                self.set_db_status(found_status)
+            return self.db_status
+
+        # Remaining statuses are tracking a live HIT
+
+        mturk_hit_id = self.get_mturk_hit_id()
+        if mturk_hit_id is None:
+            # If the hit_id is None and there's an agent still assigned,
+            # then that agent has timed out and we should expire
+            agent = self.get_assigned_agent()
+            if agent is not None:
+                if agent.get_status() != AgentState.STATUS_EXPIRED:
+                    agent.update_status(AgentState.STATUS_EXPIRED)
+
+            # Can't determine anything else if there is no HIT on this unit
+            return self.db_status
+
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        hit = get_hit(client, mturk_hit_id)
+        if hit is None:
+            return AssignmentState.EXPIRED
+        hit_data = hit["HIT"]
+
+        local_status = self.db_status
+        external_status = self.db_status
+
+        if hit_data["HITStatus"] == "Assignable":
+            external_status = AssignmentState.LAUNCHED
+        elif hit_data["HITStatus"] == "Unassignable":
+            external_status = AssignmentState.ASSIGNED
+        elif hit_data["HITStatus"] in ["Reviewable", "Reviewing"]:
+            external_status = AssignmentState.COMPLETED
+            if hit_data["NumberOfAssignmentsAvailable"] != 0:
+                external_status = AssignmentState.EXPIRED
+        elif hit_data["HITStatus"] == "Disposed":
+            # The HIT was deleted, must rely on what we have
+            external_status = local_status
+        else:
+            raise Exception(f"Unexpected HIT status {hit_data['HITStatus']}")
+
+        if external_status != local_status:
+            if local_status == AssignmentState.ASSIGNED and external_status in [
+                AssignmentState.LAUNCHED,
+                AssignmentState.EXPIRED,
+            ]:
+                # Treat this as a return event, this hit may be doable by someone else
+                agent = self.get_assigned_agent()
+                if agent is not None and agent.get_status() in [
+                    AgentState.STATUS_IN_TASK,
+                    AgentState.STATUS_ONBOARDING,
+                    AgentState.STATUS_WAITING,
+                    AgentState.STATUS_PARTNER_DISCONNECT,
+                ]:
+                    # mark the in-task agent as having returned the HIT, to
+                    # free any running tasks and have Blueprint decide on cleanup.
+                    agent.update_status(AgentState.STATUS_RETURNED)
+                if external_status == AssignmentState.EXPIRED:
+                    # If we're expired, then it won't be doable, and we should update
+                    self.set_db_status(external_status)
+            else:
+                self.set_db_status(external_status)
+
+        return self.db_status
+
+ +
+ +

Get status for this unit directly from MTurk, fall back on local info

+
+ + +
+
+
#   + + + def + launch(self, task_url: str) -> None: +
+ +
+ View Source +
    def launch(self, task_url: str) -> None:
+        """Create this HIT on MTurk (making it availalbe) and register the ids in the local db"""
+        task_run = self.get_assignment().get_task_run()
+        duration = task_run.get_task_args().assignment_duration_in_seconds
+        run_id = task_run.db_id
+        run_details = self.datastore.get_run(run_id)
+        hit_type_id = run_details["hit_type_id"]
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        frame_height = run_details["frame_height"]
+        hit_link, hit_id, response = create_hit_with_hit_type(
+            client, frame_height, task_url, hit_type_id
+        )
+        # TODO(OWN) get this link to the mephisto frontend
+        print(hit_link)
+
+        # We create a hit for this unit, but note that this unit may not
+        # necessarily match with the same HIT that was launched for it.
+        self.datastore.new_hit(hit_id, hit_link, duration, run_id)
+        self.set_db_status(AssignmentState.LAUNCHED)
+        return None
+
+ +
+ +

Create this HIT on MTurk (making it availalbe) and register the ids in the local db

+
+ + +
+
+
#   + + + def + expire(self) -> float: +
+ +
+ View Source +
    def expire(self) -> float:
+        """
+        Send a request to expire the HIT, and if it's not assigned return,
+        otherwise just return the maximum assignment duration
+        """
+        delay = 0
+        status = self.get_status()
+        if status in [AssignmentState.EXPIRED, AssignmentState.COMPLETED]:
+            return delay
+        if status == AssignmentState.ASSIGNED:
+            # The assignment is currently being worked on,
+            # so we will set the wait time to be the
+            # amount of time we granted for working on this assignment
+            if self.assignment_time_in_seconds is not None:
+                delay = self.assignment_time_in_seconds
+            logger.debug(f"Expiring a unit that is ASSIGNED after delay {delay}")
+        mturk_hit_id = self.get_mturk_hit_id()
+        requester = self.get_requester()
+        client = self._get_client(requester._requester_name)
+        if mturk_hit_id is not None:
+            expire_hit(client, mturk_hit_id)
+            return delay
+        else:
+            unassigned_hit_ids = self.datastore.get_unassigned_hit_ids(self.task_run_id)
+
+            if len(unassigned_hit_ids) == 0:
+                self.set_db_status(AssignmentState.EXPIRED)
+                return delay
+            hit_id = unassigned_hit_ids[0]
+            expire_hit(client, hit_id)
+            self.datastore.register_assignment_to_hit(hit_id, self.db_id)
+            self.set_db_status(AssignmentState.EXPIRED)
+            return delay
+
+ +
+ +

Send a request to expire the HIT, and if it's not assigned return, +otherwise just return the maximum assignment duration

+
+ + +
+
+
#   + + + def + is_expired(self) -> bool: +
+ +
+ View Source +
    def is_expired(self) -> bool:
+        """
+        Determine if this unit is expired as according to the vendor.
+
+        In this case, we keep track of the expiration locally by refreshing
+        the hit's status and seeing if we've expired.
+        """
+        return self.get_status() == AssignmentState.EXPIRED
+
+ +
+ +

Determine if this unit is expired as according to the vendor.

+ +

In this case, we keep track of the expiration locally by refreshing +the hit's status and seeing if we've expired.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + assignment: mephisto.data_model.assignment.Assignment, + index: int, + pay_amount: float +) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return MTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+ +
+ +

Create a Unit for the given assignment

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_utils.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_utils.html new file mode 100644 index 000000000..bd04d2174 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_utils.html @@ -0,0 +1,2369 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_utils API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_utils

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import boto3  # type: ignore
+import os
+import json
+import re
+from tqdm import tqdm  # type: ignore
+from typing import Dict, Optional, Tuple, List, Any
+from datetime import datetime
+
+from botocore import client  # type: ignore
+from botocore.exceptions import ClientError, ProfileNotFound  # type: ignore
+from botocore.config import Config  # type: ignore
+from omegaconf import DictConfig
+
+from mephisto.data_model.qualification import QUAL_EXISTS, QUAL_NOT_EXIST
+from mephisto.utils.logger_core import get_logger, format_loud
+from mephisto.operations.config_handler import get_config_arg
+
+logger = get_logger(name=__name__)
+
+MTURK_TASK_FEE = 0.2
+MTURK_BONUS_FEE = 0.2
+SANDBOX_ENDPOINT = "https://mturk-requester-sandbox.us-east-1.amazonaws.com"
+
+MTurkClient = Any
+
+MTURK_LOCALE_REQUIREMENT = "00000000000000000071"
+
+botoconfig = Config(retries=dict(max_attempts=10))
+
+QUALIFICATION_TYPE_EXISTS_MESSAGE = (
+    "You have already created a QualificationType with this name."
+)
+
+
+def client_is_sandbox(client: MTurkClient) -> bool:
+    """
+    Determine if the given client is communicating with
+    the live server or a sandbox
+    """
+    return client.meta.endpoint_url == SANDBOX_ENDPOINT
+
+
+def check_aws_credentials(profile_name: str) -> bool:
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        return True
+    except ProfileNotFound:
+        return False
+
+
+def setup_aws_credentials(
+    profile_name: str, register_args: Optional[DictConfig] = None
+) -> bool:
+    if not os.path.exists(os.path.expanduser("~/.aws/")):
+        os.makedirs(os.path.expanduser("~/.aws/"))
+    aws_credentials_file_path = "~/.aws/credentials"
+    expanded_aws_file_path = os.path.expanduser(aws_credentials_file_path)
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        if register_args is not None:
+            # Eventually we could manually re-parse the file and see
+            # if the credentials line up or not, then fix ourselves
+            aws_credentials_file_string = ""
+            with open(expanded_aws_file_path, "r") as aws_credentials_file:
+                aws_credentials_file_string = aws_credentials_file.read()
+            # accessing the aws_credentials_file
+            aws_credentials = aws_credentials_file_string.split("\n")
+            # iterating to get the profile
+
+            for credentialIndex in range(0, len(aws_credentials)):
+                if str(aws_credentials[credentialIndex]).startswith(
+                    "[{}]".format(profile_name)
+                ):
+                    aws_credentials[
+                        credentialIndex + 1
+                    ] = "aws_access_key_id={}\n".format(register_args.access_key_id)
+                    aws_credentials[
+                        credentialIndex + 2
+                    ] = "aws_access_key_id={}\n".format(register_args.access_key_id)
+                    break
+
+            with open(expanded_aws_file_path, "w") as aws_credentials_file:
+                # overWrite login details
+                aws_credentials_file.write("\n".join(aws_credentials))
+                logger.warning(
+                    f"We found an existing entry for {profile_name}. As new credentials have been provided, "
+                    f"we're updating the credentials, overwriting ones that already existed for the profile "
+                )
+        return True
+
+    except ProfileNotFound:
+        # Setup new credentials
+        if register_args is not None:
+            aws_access_key_id = register_args.access_key_id
+            aws_secret_access_key = register_args.secret_access_key
+        else:
+            print(
+                f"AWS credentials for {profile_name} not found. Please create "
+                "an IAM user with "
+                "programmatic access and AdministratorAccess policy at "
+                'https://console.aws.amazon.com/iam/ (On the "Set permissions" '
+                'page, choose "Attach existing policies directly" and then select '
+                '"AdministratorAccess" policy). After creating the IAM user, '
+                "please enter the user's Access Key ID and Secret Access "
+                "Key below:"
+            )
+            aws_access_key_id = input("Access Key ID: ")
+            aws_secret_access_key = input("Secret Access Key: ")
+        aws_credentials_file_string = ""
+        if os.path.exists(expanded_aws_file_path):
+            with open(expanded_aws_file_path, "r") as aws_credentials_file:
+                aws_credentials_file_string = aws_credentials_file.read()
+        with open(expanded_aws_file_path, "a+") as aws_credentials_file:
+            # Clean up file
+            if aws_credentials_file_string:
+                if aws_credentials_file_string.endswith("\n\n"):
+                    pass
+                elif aws_credentials_file_string.endswith("\n"):
+                    aws_credentials_file.write("\n")
+                else:
+                    aws_credentials_file.write("\n\n")
+            # Write login details
+            aws_credentials_file.write("[{}]\n".format(profile_name))
+            aws_credentials_file.write(
+                "aws_access_key_id={}\n".format(aws_access_key_id)
+            )
+            aws_credentials_file.write(
+                "aws_secret_access_key={}\n".format(aws_secret_access_key)
+            )
+        print(
+            "AWS credentials successfully saved in {} file.\n".format(
+                aws_credentials_file_path
+            )
+        )
+        return True
+
+
+def calculate_mturk_task_fee(task_amount: float) -> float:
+    """
+    MTurk Pricing: https://requester.mturk.com/pricing
+    20% fee on the reward and bonus amount (if any) you pay Workers.
+    """
+    return MTURK_TASK_FEE * task_amount
+
+
+def calculate_mturk_bonus_fee(bonus_amount: float) -> float:
+    """
+    MTurk Pricing: https://requester.mturk.com/pricing
+    20% fee on the reward and bonus amount (if any) you pay Workers.
+    """
+    return MTURK_BONUS_FEE * bonus_amount
+
+
+def get_requester_balance(client: MTurkClient) -> float:
+    """Get the balance for the requester associated with this client"""
+    return float(client.get_account_balance()["AvailableBalance"])
+
+
+def check_mturk_balance(client: MTurkClient, balance_needed: float):
+    """Checks to see if there is at least balance_needed amount in the
+    requester account, returns True if the balance is greater than
+    balance_needed
+    """
+    # Test that you can connect to the API by checking your account balance
+    # In Sandbox this always returns $10,000
+    try:
+        user_balance = float(client.get_account_balance()["AvailableBalance"])
+    except ClientError as e:
+        if e.response["Error"]["Code"] == "RequestError":
+            print(
+                "ERROR: To use the MTurk API, you will need an Amazon Web "
+                "Services (AWS) Account. Your AWS account must be linked to "
+                "your Amazon Mechanical Turk Account. Visit "
+                "https://requestersandbox.mturk.com/developer to get started. "
+                "(Note: if you have recently linked your account, please wait "
+                "for a couple minutes before trying again.)\n"
+            )
+            quit()
+        else:
+            raise
+
+    if user_balance < balance_needed:
+        print(
+            "You might not have enough money in your MTurk account. Please go "
+            "to https://requester.mturk.com/account and increase your balance "
+            "to at least ${}, and then try again.".format(balance_needed)
+        )
+        return False
+    else:
+        return True
+
+
+def create_hit_config(
+    opt: Dict[str, Any], task_description: str, unique_worker: bool, is_sandbox: bool
+) -> None:
+    """Writes a HIT config to file"""
+    mturk_submit_url = "https://workersandbox.mturk.com/mturk/externalSubmit"
+    if not is_sandbox:
+        mturk_submit_url = "https://www.mturk.com/mturk/externalSubmit"
+    hit_config = {
+        "task_description": task_description,
+        "is_sandbox": is_sandbox,
+        "mturk_submit_url": mturk_submit_url,
+        "unique_worker": unique_worker,
+        "frame_height": opt.get("frame_height", 0),
+        "allow_reviews": opt.get("allow_reviews", False),
+        "block_mobile": opt.get("block_mobile", True),
+        # Populate the chat pane title from chat_title, defaulting to the
+        # hit_title if the task provides no chat_title
+        "chat_title": opt.get("chat_title", opt.get("hit_title", "Live Chat")),
+        "template_type": opt.get("frontend_template_type", "default"),
+    }
+    hit_config_file_path = os.path.join(opt["tmp_dir"], "hit_config.json")
+    if os.path.exists(hit_config_file_path):
+        os.remove(hit_config_file_path)
+    with open(hit_config_file_path, "w") as hit_config_file:
+        hit_config_file.write(json.dumps(hit_config))
+
+
+def delete_qualification(client: MTurkClient, qualification_id: str) -> None:
+    """Deletes a qualification by id"""
+    client.delete_qualification_type(QualificationTypeId=qualification_id)
+
+
+def find_qualification(
+    client: MTurkClient, qualification_name: str, must_be_owned: bool = True
+) -> Tuple[bool, Optional[str]]:
+    """Query amazon to find the existing qualification name, return the Id,
+    otherwise return none.
+    If must_be_owned is true, it only returns qualifications owned by the user.
+    Will return False if it finds another's qualification
+
+    The return format is (meets_owner_constraint, qual_id)
+    """
+    # Search for the qualification owned by the current user
+    response = client.list_qualification_types(
+        Query=qualification_name, MustBeRequestable=True, MustBeOwnedByCaller=True
+    )
+    for qualification in response["QualificationTypes"]:
+        if qualification["Name"] == qualification_name:
+            return (True, qualification["QualificationTypeId"])
+
+    # Qualification was not found to exist, check to see if someone else has it
+    response = client.list_qualification_types(
+        Query=qualification_name, MustBeRequestable=True, MustBeOwnedByCaller=False
+    )
+
+    for qualification in response["QualificationTypes"]:
+        if qualification["Name"] == qualification_name:
+            if must_be_owned:
+                return (False, qualification["QualificationTypeId"])
+            return (True, qualification["QualificationTypeId"])
+    return (True, None)
+
+
+def find_or_create_qualification(
+    client: MTurkClient,
+    qualification_name: str,
+    description: str,
+    must_be_owned: bool = True,
+) -> Optional[str]:
+    """Query amazon to find the existing qualification name, return the Id. If
+    it exists and must_be_owned is true but we don't own it, this returns none.
+    If it doesn't exist, the qualification is created
+    """
+
+    def _try_finding_qual_id():
+        qual_usable, qual_id = find_qualification(
+            client, qualification_name, must_be_owned=must_be_owned
+        )
+        if qual_id is None:
+            return False, None
+        elif qual_usable is False:
+            return True, None
+        else:
+            return True, qual_id
+
+    found_qual, qual_id = _try_finding_qual_id()
+    if found_qual:
+        return qual_id
+
+    # Create the qualification, as it doesn't exist yet
+    try:
+        response = client.create_qualification_type(
+            Name=qualification_name,
+            Description=description,
+            QualificationTypeStatus="Active",
+        )
+    except ClientError as e:
+        msg = e.response.get("Error", {}).get("Message")
+        if msg is not None and msg.startswith(QUALIFICATION_TYPE_EXISTS_MESSAGE):
+            # Created this qualification somewhere else - find instead
+            found_qual, qual_id = _try_finding_qual_id()
+            assert found_qual, "Qualification exists, but could not be found?"
+            return qual_id
+        else:
+            raise e
+
+    return response["QualificationType"]["QualificationTypeId"]
+
+
+def give_worker_qualification(
+    client: MTurkClient,
+    worker_id: str,
+    qualification_id: str,
+    value: Optional[int] = None,
+) -> None:
+    """Give a qualification to the given worker"""
+    if value is not None:
+        client.associate_qualification_with_worker(
+            QualificationTypeId=qualification_id,
+            WorkerId=worker_id,
+            IntegerValue=value,
+            SendNotification=False,
+        )
+    else:
+        client.associate_qualification_with_worker(
+            QualificationTypeId=qualification_id,
+            WorkerId=worker_id,
+            IntegerValue=1,
+            SendNotification=False,
+        )
+
+
+def remove_worker_qualification(
+    client: MTurkClient, worker_id: str, qualification_id: str, reason: str = ""
+) -> None:
+    """Give a qualification to the given worker"""
+    client.disassociate_qualification_from_worker(
+        QualificationTypeId=qualification_id, WorkerId=worker_id, Reason=reason
+    )
+
+
+def convert_mephisto_qualifications(
+    client: MTurkClient, qualifications: List[Dict[str, Any]]
+):
+    """Convert qualifications from mephisto's format to MTurk's"""
+    converted_qualifications = []
+    for qualification in qualifications:
+        converted = {}
+        mturk_keys = [
+            "QualificationTypeId",
+            "Comparator",
+            "IntegerValue",
+            "IntegerValues",
+            "LocaleValues",
+            "ActionsGuarded",
+        ]
+        for key in mturk_keys:
+            converted[key] = qualification.get(key)
+
+        if converted["QualificationTypeId"] is None:
+            qualification_name = qualification["qualification_name"]
+            if client_is_sandbox(client):
+                qualification_name += "_sandbox"
+            qual_id = find_or_create_qualification(
+                client,
+                qualification_name,
+                "Qualification required for Mephisto-launched tasks",
+                False,
+            )
+            if qual_id is None:
+                logger.warning(
+                    f"Qualification name {qualification_name} can not be found or created on MTurk. "
+                    f"{format_loud('SKIPPING THIS QUALIFICATION')} and continuing conversion."
+                )
+            converted["QualificationTypeId"] = qual_id
+
+        if converted["Comparator"] is None:
+            converted["Comparator"] = qualification["comparator"]
+
+        # if no Mturk Values are set, pull from the qualification's value
+        if (
+            converted["IntegerValue"] is None
+            and converted["IntegerValues"] is None
+            and converted["LocaleValues"] is None
+            and converted["Comparator"] not in [QUAL_EXISTS, QUAL_NOT_EXIST]
+        ):
+            value = qualification["value"]
+            if isinstance(value, list):
+                converted["IntegerValues"] = value
+            elif isinstance(value, int):
+                converted["IntegerValue"] = value
+
+        # IntegerValue is deprecated, and needs conversion to IntegerValues
+        if converted["IntegerValue"] is not None:
+            converted["IntegerValues"] = [converted["IntegerValue"]]
+        del converted["IntegerValue"]
+
+        if converted["IntegerValues"] is None:
+            del converted["IntegerValues"]
+
+        if converted["LocaleValues"] is None:
+            del converted["LocaleValues"]
+
+        if converted["ActionsGuarded"] is None:
+            converted["ActionsGuarded"] = "DiscoverPreviewAndAccept"
+
+        converted_qualifications.append(converted)
+    return converted_qualifications
+
+
+def create_hit_type(
+    client: MTurkClient,
+    task_args: "DictConfig",  # MephistoConfig.task
+    qualifications: List[Dict[str, Any]],
+    auto_approve_delay: Optional[int] = 7 * 24 * 3600,  # default 1 week
+    skip_locale_qual=False,
+) -> str:
+    """Create a HIT type to be used to generate HITs of the requested params"""
+    hit_title = task_args.task_title
+    hit_description = task_args.task_description
+    hit_keywords = ",".join(task_args.task_tags)
+    hit_reward = task_args.task_reward
+    assignment_duration_in_seconds = task_args.assignment_duration_in_seconds
+    existing_qualifications = convert_mephisto_qualifications(client, qualifications)
+
+    # If the user hasn't specified a location qualification, we assume to
+    # restrict the HIT to some english-speaking countries.
+    locale_requirements: List[Any] = []
+    has_locale_qual = skip_locale_qual
+    if existing_qualifications is not None:
+        for q in existing_qualifications:
+            if q["QualificationTypeId"] == MTURK_LOCALE_REQUIREMENT:
+                has_locale_qual = True
+        locale_requirements += existing_qualifications
+
+    if not has_locale_qual and not client_is_sandbox(client):
+        allowed_locales = get_config_arg("mturk", "allowed_locales")
+        if allowed_locales is None:
+            allowed_locales = [
+                {"Country": "US"},
+                {"Country": "CA"},
+                {"Country": "GB"},
+                {"Country": "AU"},
+                {"Country": "NZ"},
+            ]
+        locale_requirements.append(
+            {
+                "QualificationTypeId": MTURK_LOCALE_REQUIREMENT,
+                "Comparator": "In",
+                "LocaleValues": allowed_locales,
+                "ActionsGuarded": "DiscoverPreviewAndAccept",
+            }
+        )
+
+    # Create the HIT type
+    response = client.create_hit_type(
+        AutoApprovalDelayInSeconds=auto_approve_delay,
+        AssignmentDurationInSeconds=assignment_duration_in_seconds,
+        Reward=str(hit_reward),
+        Title=hit_title,
+        Keywords=hit_keywords,
+        Description=hit_description,
+        QualificationRequirements=locale_requirements,
+    )
+    hit_type_id = response["HITTypeId"]
+    return hit_type_id
+
+
+def create_compensation_hit_with_hit_type(
+    client: MTurkClient,
+    reason: str,
+    hit_type_id: str,
+    num_assignments: int = 1,
+) -> Tuple[str, str, Dict[str, Any]]:
+    """Creates a simple compensation HIT to direct workers to submit"""
+    amazon_ext_url = (
+        "http://mechanicalturk.amazonaws.com/"
+        "AWSMechanicalTurkDataSchemas/2017-11-06/QuestionForm.xsd"
+    )
+    question_data_structure = (
+        f'<QuestionForm xmlns="{amazon_ext_url}">'
+        "<Question>"
+        "<QuestionIdentifier>workerid</QuestionIdentifier>"
+        "<DisplayName>Confirm Worker ID</DisplayName>"
+        "<IsRequired>true</IsRequired>"
+        "<QuestionContent>"
+        f"<Text>This compensation task was launched for the following reason: {reason}... Enter Worker ID to submit</Text>"
+        "</QuestionContent>"
+        "<AnswerSpecification>"
+        "<FreeTextAnswer>"
+        "<Constraints>"
+        '<Length minLength="2" />'
+        '<AnswerFormatRegex regex="\S" errorText="The content cannot be blank."/>'
+        "</Constraints>"
+        "</FreeTextAnswer>"
+        "</AnswerSpecification>"
+        "</Question>"
+        "</QuestionForm>"
+    )
+
+    is_sandbox = client_is_sandbox(client)
+
+    # Create the HIT
+    response = client.create_hit_with_hit_type(
+        HITTypeId=hit_type_id,
+        MaxAssignments=num_assignments,
+        LifetimeInSeconds=60 * 60 * 24 * 31,
+        Question=question_data_structure,
+    )
+
+    # The response included several fields that will be helpful later
+    hit_type_id = response["HIT"]["HITTypeId"]
+    hit_id = response["HIT"]["HITId"]
+
+    # Construct the hit URL
+    url_target = "workersandbox"
+    if not is_sandbox:
+        url_target = "www"
+    hit_link = "https://{}.mturk.com/mturk/preview?groupId={}".format(
+        url_target, hit_type_id
+    )
+    return hit_link, hit_id, response
+
+
+def create_hit_with_hit_type(
+    client: MTurkClient,
+    frame_height: int,
+    page_url: str,
+    hit_type_id: str,
+    num_assignments: int = 1,
+) -> Tuple[str, str, Dict[str, Any]]:
+    """Creates the actual HIT given the type and page to direct clients to"""
+    page_url = page_url.replace("&", "&amp;")
+    amazon_ext_url = (
+        "http://mechanicalturk.amazonaws.com/"
+        "AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"
+    )
+    question_data_structure = (
+        '<ExternalQuestion xmlns="{}">'
+        "<ExternalURL>{}</ExternalURL>"  # noqa: E131
+        "<FrameHeight>{}</FrameHeight>"
+        "</ExternalQuestion>"
+        "".format(amazon_ext_url, page_url, frame_height)
+    )
+
+    is_sandbox = client_is_sandbox(client)
+
+    # Create the HIT
+    response = client.create_hit_with_hit_type(
+        HITTypeId=hit_type_id,
+        MaxAssignments=num_assignments,
+        LifetimeInSeconds=60 * 60 * 24 * 31,
+        Question=question_data_structure,
+    )
+
+    # The response included several fields that will be helpful later
+    hit_type_id = response["HIT"]["HITTypeId"]
+    hit_id = response["HIT"]["HITId"]
+
+    # Construct the hit URL
+    url_target = "workersandbox"
+    if not is_sandbox:
+        url_target = "www"
+    hit_link = "https://{}.mturk.com/mturk/preview?groupId={}".format(
+        url_target, hit_type_id
+    )
+    return hit_link, hit_id, response
+
+
+def expire_hit(client: MTurkClient, hit_id: str):
+    # Update expiration to a time in the past, the HIT expires instantly
+    past_time = datetime(2015, 1, 1)
+    client.update_expiration_for_hit(HITId=hit_id, ExpireAt=past_time)
+
+
+def get_hit(client: MTurkClient, hit_id: str) -> Dict[str, Any]:
+    """Get hit from mturk by hit_id"""
+    hit = None
+    try:
+        return client.get_hit(HITId=hit_id)
+    except ClientError as er:
+        logger.warning(
+            f"Skipping HIT {hit_id}. Unable to retrieve due to ClientError: {er}."
+        )
+    return {}
+
+
+def get_assignment(client: MTurkClient, assignment_id: str) -> Dict[str, Any]:
+    """Gets assignment from mturk by assignment_id. Only works if the
+    assignment is in a completed state
+    """
+    return client.get_assignment(AssignmentId=assignment_id)
+
+
+def get_assignments_for_hit(client: MTurkClient, hit_id: str) -> List[Dict[str, Any]]:
+    """Get completed assignments for a hit"""
+    assignments_info = client.list_assignments_for_hit(HITId=hit_id)
+    return assignments_info.get("Assignments", [])
+
+
+def approve_work(
+    client: MTurkClient, assignment_id: str, override_rejection: bool = False
+) -> None:
+    """approve work for a given assignment through the mturk client"""
+    try:
+        client.approve_assignment(
+            AssignmentId=assignment_id, OverrideRejection=override_rejection
+        )
+    except Exception as e:
+        logger.exception(
+            f"Approving MTurk assignment failed, likely because it has auto-approved. Details: {e}",
+            exc_info=True,
+        )
+
+
+def reject_work(client: MTurkClient, assignment_id: str, reason: str) -> None:
+    """reject work for a given assignment through the mturk client"""
+    try:
+        client.reject_assignment(AssignmentId=assignment_id, RequesterFeedback=reason)
+    except Exception as e:
+        logger.exception(
+            f"Rejecting MTurk assignment failed, likely because it has auto-approved. Details:{e}",
+            exc_info=True,
+        )
+
+
+def approve_assignments_for_hit(
+    client: MTurkClient, hit_id: str, override_rejection: bool = False
+):
+    """Approve work for assignments associated with a given hit, through
+    mturk client
+    """
+    assignments = get_assignments_for_hit(client, hit_id)
+    for assignment in assignments:
+        assignment_id = assignment["AssignmentId"]
+        client.approve_assignment(
+            AssignmentId=assignment_id, OverrideRejection=override_rejection
+        )
+
+
+def block_worker(client: MTurkClient, worker_id: str, reason: str) -> None:
+    """Block a worker by id using the mturk client, passes reason along"""
+    res = client.create_worker_block(WorkerId=worker_id, Reason=reason)
+
+
+def unblock_worker(client: MTurkClient, worker_id: str, reason: str) -> None:
+    """Remove a block on the given worker"""
+    client.delete_worker_block(WorkerId=worker_id, Reason=reason)
+
+
+def is_worker_blocked(client: MTurkClient, worker_id: str) -> bool:
+    """Determine if the given worker is blocked by this client"""
+    blocks = client.list_worker_blocks(MaxResults=100)["WorkerBlocks"]
+    blocked_ids = [x["WorkerId"] for x in blocks]
+    return worker_id in blocked_ids
+
+
+def pay_bonus(
+    client: MTurkClient,
+    worker_id: str,
+    bonus_amount: float,
+    assignment_id: str,
+    reason: str,
+    unique_request_token: str,
+) -> bool:
+    """Handles paying bonus to a Turker, fails for insufficient funds.
+    Returns True on success and False on failure
+    """
+    total_cost = bonus_amount + calculate_mturk_bonus_fee(bonus_amount)
+    if not check_mturk_balance(client, balance_needed=total_cost):
+        print("Cannot pay bonus. Reason: Insufficient " "funds in your MTurk account.")
+        return False
+
+    client.send_bonus(
+        WorkerId=worker_id,
+        BonusAmount=str(bonus_amount),
+        AssignmentId=assignment_id,
+        Reason=reason,
+        UniqueRequestToken=unique_request_token,
+    )
+
+    return True
+
+
+def email_worker(
+    client: MTurkClient, worker_id: str, subject: str, message_text: str
+) -> Tuple[bool, str]:
+    """Send an email to a worker through the mturk client"""
+    response = client.notify_workers(
+        Subject=subject, MessageText=message_text, WorkerIds=[worker_id]
+    )
+    if len(response["NotifyWorkersFailureStatuses"]) > 0:
+        failure_message = response["NotifyWorkersFailureStatuses"][0]
+        return (False, failure_message["NotifyWorkersFailureMessage"])
+    else:
+        return (True, "")
+
+
+def get_outstanding_hits(client: MTurkClient) -> Dict[str, List[Dict[str, Any]]]:
+    """Return the HITs sorted by HITTypeId that are still on the MTurk Server"""
+    new_hits = client.list_hits(MaxResults=100)
+    all_hits = new_hits["HITs"]
+    while len(new_hits["HITs"]) > 0:
+        new_hits = client.list_hits(MaxResults=100, NextToken=new_hits["NextToken"])
+        all_hits += new_hits["HITs"]
+
+    hit_by_type: Dict[str, List[Dict[str, Any]]] = {}
+    for h in all_hits:
+        hit_type = h["HITTypeId"]
+        if hit_type not in hit_by_type:
+            hit_by_type[hit_type] = []
+        hit_by_type[hit_type].append(h)
+
+    return hit_by_type
+
+
+def expire_and_dispose_hits(
+    client: MTurkClient, hits: List[Dict[str, Any]], quiet: bool = False
+) -> List[Dict[str, Any]]:
+    """
+    Loops over attempting to expire and dispose any hits in the hits list that can be disposed
+    Returns any HITs that could not be disposed of
+    """
+    non_disposed_hits = []
+    for h in tqdm(hits, disable=quiet):
+        try:
+            client.delete_hit(HITId=h["HITId"])
+        except Exception as e:
+            client.update_expiration_for_hit(
+                HITId=h["HITId"], ExpireAt=datetime(2015, 1, 1)
+            )
+            h["dispose_exception"] = e
+            non_disposed_hits.append(h)
+    return non_disposed_hits
+
+ +
+ +
+
+
#   + + + def + client_is_sandbox(client: Any) -> bool: +
+ +
+ View Source +
def client_is_sandbox(client: MTurkClient) -> bool:
+    """
+    Determine if the given client is communicating with
+    the live server or a sandbox
+    """
+    return client.meta.endpoint_url == SANDBOX_ENDPOINT
+
+ +
+ +

Determine if the given client is communicating with +the live server or a sandbox

+
+ + +
+
+
#   + + + def + check_aws_credentials(profile_name: str) -> bool: +
+ +
+ View Source +
def check_aws_credentials(profile_name: str) -> bool:
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        return True
+    except ProfileNotFound:
+        return False
+
+ +
+ + + +
+
+
#   + + + def + setup_aws_credentials( + profile_name: str, + register_args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> bool: +
+ +
+ View Source +
def setup_aws_credentials(
+    profile_name: str, register_args: Optional[DictConfig] = None
+) -> bool:
+    if not os.path.exists(os.path.expanduser("~/.aws/")):
+        os.makedirs(os.path.expanduser("~/.aws/"))
+    aws_credentials_file_path = "~/.aws/credentials"
+    expanded_aws_file_path = os.path.expanduser(aws_credentials_file_path)
+    try:
+        # Check existing credentials
+        boto3.Session(profile_name=profile_name)
+        if register_args is not None:
+            # Eventually we could manually re-parse the file and see
+            # if the credentials line up or not, then fix ourselves
+            aws_credentials_file_string = ""
+            with open(expanded_aws_file_path, "r") as aws_credentials_file:
+                aws_credentials_file_string = aws_credentials_file.read()
+            # accessing the aws_credentials_file
+            aws_credentials = aws_credentials_file_string.split("\n")
+            # iterating to get the profile
+
+            for credentialIndex in range(0, len(aws_credentials)):
+                if str(aws_credentials[credentialIndex]).startswith(
+                    "[{}]".format(profile_name)
+                ):
+                    aws_credentials[
+                        credentialIndex + 1
+                    ] = "aws_access_key_id={}\n".format(register_args.access_key_id)
+                    aws_credentials[
+                        credentialIndex + 2
+                    ] = "aws_access_key_id={}\n".format(register_args.access_key_id)
+                    break
+
+            with open(expanded_aws_file_path, "w") as aws_credentials_file:
+                # overWrite login details
+                aws_credentials_file.write("\n".join(aws_credentials))
+                logger.warning(
+                    f"We found an existing entry for {profile_name}. As new credentials have been provided, "
+                    f"we're updating the credentials, overwriting ones that already existed for the profile "
+                )
+        return True
+
+    except ProfileNotFound:
+        # Setup new credentials
+        if register_args is not None:
+            aws_access_key_id = register_args.access_key_id
+            aws_secret_access_key = register_args.secret_access_key
+        else:
+            print(
+                f"AWS credentials for {profile_name} not found. Please create "
+                "an IAM user with "
+                "programmatic access and AdministratorAccess policy at "
+                'https://console.aws.amazon.com/iam/ (On the "Set permissions" '
+                'page, choose "Attach existing policies directly" and then select '
+                '"AdministratorAccess" policy). After creating the IAM user, '
+                "please enter the user's Access Key ID and Secret Access "
+                "Key below:"
+            )
+            aws_access_key_id = input("Access Key ID: ")
+            aws_secret_access_key = input("Secret Access Key: ")
+        aws_credentials_file_string = ""
+        if os.path.exists(expanded_aws_file_path):
+            with open(expanded_aws_file_path, "r") as aws_credentials_file:
+                aws_credentials_file_string = aws_credentials_file.read()
+        with open(expanded_aws_file_path, "a+") as aws_credentials_file:
+            # Clean up file
+            if aws_credentials_file_string:
+                if aws_credentials_file_string.endswith("\n\n"):
+                    pass
+                elif aws_credentials_file_string.endswith("\n"):
+                    aws_credentials_file.write("\n")
+                else:
+                    aws_credentials_file.write("\n\n")
+            # Write login details
+            aws_credentials_file.write("[{}]\n".format(profile_name))
+            aws_credentials_file.write(
+                "aws_access_key_id={}\n".format(aws_access_key_id)
+            )
+            aws_credentials_file.write(
+                "aws_secret_access_key={}\n".format(aws_secret_access_key)
+            )
+        print(
+            "AWS credentials successfully saved in {} file.\n".format(
+                aws_credentials_file_path
+            )
+        )
+        return True
+
+ +
+ + + +
+
+
#   + + + def + calculate_mturk_task_fee(task_amount: float) -> float: +
+ +
+ View Source +
def calculate_mturk_task_fee(task_amount: float) -> float:
+    """
+    MTurk Pricing: https://requester.mturk.com/pricing
+    20% fee on the reward and bonus amount (if any) you pay Workers.
+    """
+    return MTURK_TASK_FEE * task_amount
+
+ +
+ +

MTurk Pricing: https://requester.mturk.com/pricing +20% fee on the reward and bonus amount (if any) you pay Workers.

+
+ + +
+
+
#   + + + def + calculate_mturk_bonus_fee(bonus_amount: float) -> float: +
+ +
+ View Source +
def calculate_mturk_bonus_fee(bonus_amount: float) -> float:
+    """
+    MTurk Pricing: https://requester.mturk.com/pricing
+    20% fee on the reward and bonus amount (if any) you pay Workers.
+    """
+    return MTURK_BONUS_FEE * bonus_amount
+
+ +
+ +

MTurk Pricing: https://requester.mturk.com/pricing +20% fee on the reward and bonus amount (if any) you pay Workers.

+
+ + +
+
+
#   + + + def + get_requester_balance(client: Any) -> float: +
+ +
+ View Source +
def get_requester_balance(client: MTurkClient) -> float:
+    """Get the balance for the requester associated with this client"""
+    return float(client.get_account_balance()["AvailableBalance"])
+
+ +
+ +

Get the balance for the requester associated with this client

+
+ + +
+
+
#   + + + def + check_mturk_balance(client: Any, balance_needed: float): +
+ +
+ View Source +
def check_mturk_balance(client: MTurkClient, balance_needed: float):
+    """Checks to see if there is at least balance_needed amount in the
+    requester account, returns True if the balance is greater than
+    balance_needed
+    """
+    # Test that you can connect to the API by checking your account balance
+    # In Sandbox this always returns $10,000
+    try:
+        user_balance = float(client.get_account_balance()["AvailableBalance"])
+    except ClientError as e:
+        if e.response["Error"]["Code"] == "RequestError":
+            print(
+                "ERROR: To use the MTurk API, you will need an Amazon Web "
+                "Services (AWS) Account. Your AWS account must be linked to "
+                "your Amazon Mechanical Turk Account. Visit "
+                "https://requestersandbox.mturk.com/developer to get started. "
+                "(Note: if you have recently linked your account, please wait "
+                "for a couple minutes before trying again.)\n"
+            )
+            quit()
+        else:
+            raise
+
+    if user_balance < balance_needed:
+        print(
+            "You might not have enough money in your MTurk account. Please go "
+            "to https://requester.mturk.com/account and increase your balance "
+            "to at least ${}, and then try again.".format(balance_needed)
+        )
+        return False
+    else:
+        return True
+
+ +
+ +

Checks to see if there is at least balance_needed amount in the +requester account, returns True if the balance is greater than +balance_needed

+
+ + +
+
+
#   + + + def + create_hit_config( + opt: Dict[str, Any], + task_description: str, + unique_worker: bool, + is_sandbox: bool +) -> None: +
+ +
+ View Source +
def create_hit_config(
+    opt: Dict[str, Any], task_description: str, unique_worker: bool, is_sandbox: bool
+) -> None:
+    """Writes a HIT config to file"""
+    mturk_submit_url = "https://workersandbox.mturk.com/mturk/externalSubmit"
+    if not is_sandbox:
+        mturk_submit_url = "https://www.mturk.com/mturk/externalSubmit"
+    hit_config = {
+        "task_description": task_description,
+        "is_sandbox": is_sandbox,
+        "mturk_submit_url": mturk_submit_url,
+        "unique_worker": unique_worker,
+        "frame_height": opt.get("frame_height", 0),
+        "allow_reviews": opt.get("allow_reviews", False),
+        "block_mobile": opt.get("block_mobile", True),
+        # Populate the chat pane title from chat_title, defaulting to the
+        # hit_title if the task provides no chat_title
+        "chat_title": opt.get("chat_title", opt.get("hit_title", "Live Chat")),
+        "template_type": opt.get("frontend_template_type", "default"),
+    }
+    hit_config_file_path = os.path.join(opt["tmp_dir"], "hit_config.json")
+    if os.path.exists(hit_config_file_path):
+        os.remove(hit_config_file_path)
+    with open(hit_config_file_path, "w") as hit_config_file:
+        hit_config_file.write(json.dumps(hit_config))
+
+ +
+ +

Writes a HIT config to file

+
+ + +
+
+
#   + + + def + delete_qualification(client: Any, qualification_id: str) -> None: +
+ +
+ View Source +
def delete_qualification(client: MTurkClient, qualification_id: str) -> None:
+    """Deletes a qualification by id"""
+    client.delete_qualification_type(QualificationTypeId=qualification_id)
+
+ +
+ +

Deletes a qualification by id

+
+ + +
+
+
#   + + + def + find_qualification( + client: Any, + qualification_name: str, + must_be_owned: bool = True +) -> Tuple[bool, Union[str, NoneType]]: +
+ +
+ View Source +
def find_qualification(
+    client: MTurkClient, qualification_name: str, must_be_owned: bool = True
+) -> Tuple[bool, Optional[str]]:
+    """Query amazon to find the existing qualification name, return the Id,
+    otherwise return none.
+    If must_be_owned is true, it only returns qualifications owned by the user.
+    Will return False if it finds another's qualification
+
+    The return format is (meets_owner_constraint, qual_id)
+    """
+    # Search for the qualification owned by the current user
+    response = client.list_qualification_types(
+        Query=qualification_name, MustBeRequestable=True, MustBeOwnedByCaller=True
+    )
+    for qualification in response["QualificationTypes"]:
+        if qualification["Name"] == qualification_name:
+            return (True, qualification["QualificationTypeId"])
+
+    # Qualification was not found to exist, check to see if someone else has it
+    response = client.list_qualification_types(
+        Query=qualification_name, MustBeRequestable=True, MustBeOwnedByCaller=False
+    )
+
+    for qualification in response["QualificationTypes"]:
+        if qualification["Name"] == qualification_name:
+            if must_be_owned:
+                return (False, qualification["QualificationTypeId"])
+            return (True, qualification["QualificationTypeId"])
+    return (True, None)
+
+ +
+ +

Query amazon to find the existing qualification name, return the Id, +otherwise return none. +If must_be_owned is true, it only returns qualifications owned by the user. +Will return False if it finds another's qualification

+ +

The return format is (meets_owner_constraint, qual_id)

+
+ + +
+
+
#   + + + def + find_or_create_qualification( + client: Any, + qualification_name: str, + description: str, + must_be_owned: bool = True +) -> Union[str, NoneType]: +
+ +
+ View Source +
def find_or_create_qualification(
+    client: MTurkClient,
+    qualification_name: str,
+    description: str,
+    must_be_owned: bool = True,
+) -> Optional[str]:
+    """Query amazon to find the existing qualification name, return the Id. If
+    it exists and must_be_owned is true but we don't own it, this returns none.
+    If it doesn't exist, the qualification is created
+    """
+
+    def _try_finding_qual_id():
+        qual_usable, qual_id = find_qualification(
+            client, qualification_name, must_be_owned=must_be_owned
+        )
+        if qual_id is None:
+            return False, None
+        elif qual_usable is False:
+            return True, None
+        else:
+            return True, qual_id
+
+    found_qual, qual_id = _try_finding_qual_id()
+    if found_qual:
+        return qual_id
+
+    # Create the qualification, as it doesn't exist yet
+    try:
+        response = client.create_qualification_type(
+            Name=qualification_name,
+            Description=description,
+            QualificationTypeStatus="Active",
+        )
+    except ClientError as e:
+        msg = e.response.get("Error", {}).get("Message")
+        if msg is not None and msg.startswith(QUALIFICATION_TYPE_EXISTS_MESSAGE):
+            # Created this qualification somewhere else - find instead
+            found_qual, qual_id = _try_finding_qual_id()
+            assert found_qual, "Qualification exists, but could not be found?"
+            return qual_id
+        else:
+            raise e
+
+    return response["QualificationType"]["QualificationTypeId"]
+
+ +
+ +

Query amazon to find the existing qualification name, return the Id. If +it exists and must_be_owned is true but we don't own it, this returns none. +If it doesn't exist, the qualification is created

+
+ + +
+
+
#   + + + def + give_worker_qualification( + client: Any, + worker_id: str, + qualification_id: str, + value: Union[int, NoneType] = None +) -> None: +
+ +
+ View Source +
def give_worker_qualification(
+    client: MTurkClient,
+    worker_id: str,
+    qualification_id: str,
+    value: Optional[int] = None,
+) -> None:
+    """Give a qualification to the given worker"""
+    if value is not None:
+        client.associate_qualification_with_worker(
+            QualificationTypeId=qualification_id,
+            WorkerId=worker_id,
+            IntegerValue=value,
+            SendNotification=False,
+        )
+    else:
+        client.associate_qualification_with_worker(
+            QualificationTypeId=qualification_id,
+            WorkerId=worker_id,
+            IntegerValue=1,
+            SendNotification=False,
+        )
+
+ +
+ +

Give a qualification to the given worker

+
+ + +
+
+
#   + + + def + remove_worker_qualification( + client: Any, + worker_id: str, + qualification_id: str, + reason: str = '' +) -> None: +
+ +
+ View Source +
def remove_worker_qualification(
+    client: MTurkClient, worker_id: str, qualification_id: str, reason: str = ""
+) -> None:
+    """Give a qualification to the given worker"""
+    client.disassociate_qualification_from_worker(
+        QualificationTypeId=qualification_id, WorkerId=worker_id, Reason=reason
+    )
+
+ +
+ +

Give a qualification to the given worker

+
+ + +
+
+
#   + + + def + convert_mephisto_qualifications(client: Any, qualifications: List[Dict[str, Any]]): +
+ +
+ View Source +
def convert_mephisto_qualifications(
+    client: MTurkClient, qualifications: List[Dict[str, Any]]
+):
+    """Convert qualifications from mephisto's format to MTurk's"""
+    converted_qualifications = []
+    for qualification in qualifications:
+        converted = {}
+        mturk_keys = [
+            "QualificationTypeId",
+            "Comparator",
+            "IntegerValue",
+            "IntegerValues",
+            "LocaleValues",
+            "ActionsGuarded",
+        ]
+        for key in mturk_keys:
+            converted[key] = qualification.get(key)
+
+        if converted["QualificationTypeId"] is None:
+            qualification_name = qualification["qualification_name"]
+            if client_is_sandbox(client):
+                qualification_name += "_sandbox"
+            qual_id = find_or_create_qualification(
+                client,
+                qualification_name,
+                "Qualification required for Mephisto-launched tasks",
+                False,
+            )
+            if qual_id is None:
+                logger.warning(
+                    f"Qualification name {qualification_name} can not be found or created on MTurk. "
+                    f"{format_loud('SKIPPING THIS QUALIFICATION')} and continuing conversion."
+                )
+            converted["QualificationTypeId"] = qual_id
+
+        if converted["Comparator"] is None:
+            converted["Comparator"] = qualification["comparator"]
+
+        # if no Mturk Values are set, pull from the qualification's value
+        if (
+            converted["IntegerValue"] is None
+            and converted["IntegerValues"] is None
+            and converted["LocaleValues"] is None
+            and converted["Comparator"] not in [QUAL_EXISTS, QUAL_NOT_EXIST]
+        ):
+            value = qualification["value"]
+            if isinstance(value, list):
+                converted["IntegerValues"] = value
+            elif isinstance(value, int):
+                converted["IntegerValue"] = value
+
+        # IntegerValue is deprecated, and needs conversion to IntegerValues
+        if converted["IntegerValue"] is not None:
+            converted["IntegerValues"] = [converted["IntegerValue"]]
+        del converted["IntegerValue"]
+
+        if converted["IntegerValues"] is None:
+            del converted["IntegerValues"]
+
+        if converted["LocaleValues"] is None:
+            del converted["LocaleValues"]
+
+        if converted["ActionsGuarded"] is None:
+            converted["ActionsGuarded"] = "DiscoverPreviewAndAccept"
+
+        converted_qualifications.append(converted)
+    return converted_qualifications
+
+ +
+ +

Convert qualifications from mephisto's format to MTurk's

+
+ + +
+
+
#   + + + def + create_hit_type( + client: Any, + task_args: omegaconf.dictconfig.DictConfig, + qualifications: List[Dict[str, Any]], + auto_approve_delay: Union[int, NoneType] = 604800, + skip_locale_qual=False +) -> str: +
+ +
+ View Source +
def create_hit_type(
+    client: MTurkClient,
+    task_args: "DictConfig",  # MephistoConfig.task
+    qualifications: List[Dict[str, Any]],
+    auto_approve_delay: Optional[int] = 7 * 24 * 3600,  # default 1 week
+    skip_locale_qual=False,
+) -> str:
+    """Create a HIT type to be used to generate HITs of the requested params"""
+    hit_title = task_args.task_title
+    hit_description = task_args.task_description
+    hit_keywords = ",".join(task_args.task_tags)
+    hit_reward = task_args.task_reward
+    assignment_duration_in_seconds = task_args.assignment_duration_in_seconds
+    existing_qualifications = convert_mephisto_qualifications(client, qualifications)
+
+    # If the user hasn't specified a location qualification, we assume to
+    # restrict the HIT to some english-speaking countries.
+    locale_requirements: List[Any] = []
+    has_locale_qual = skip_locale_qual
+    if existing_qualifications is not None:
+        for q in existing_qualifications:
+            if q["QualificationTypeId"] == MTURK_LOCALE_REQUIREMENT:
+                has_locale_qual = True
+        locale_requirements += existing_qualifications
+
+    if not has_locale_qual and not client_is_sandbox(client):
+        allowed_locales = get_config_arg("mturk", "allowed_locales")
+        if allowed_locales is None:
+            allowed_locales = [
+                {"Country": "US"},
+                {"Country": "CA"},
+                {"Country": "GB"},
+                {"Country": "AU"},
+                {"Country": "NZ"},
+            ]
+        locale_requirements.append(
+            {
+                "QualificationTypeId": MTURK_LOCALE_REQUIREMENT,
+                "Comparator": "In",
+                "LocaleValues": allowed_locales,
+                "ActionsGuarded": "DiscoverPreviewAndAccept",
+            }
+        )
+
+    # Create the HIT type
+    response = client.create_hit_type(
+        AutoApprovalDelayInSeconds=auto_approve_delay,
+        AssignmentDurationInSeconds=assignment_duration_in_seconds,
+        Reward=str(hit_reward),
+        Title=hit_title,
+        Keywords=hit_keywords,
+        Description=hit_description,
+        QualificationRequirements=locale_requirements,
+    )
+    hit_type_id = response["HITTypeId"]
+    return hit_type_id
+
+ +
+ +

Create a HIT type to be used to generate HITs of the requested params

+
+ + +
+
+
#   + + + def + create_compensation_hit_with_hit_type( + client: Any, + reason: str, + hit_type_id: str, + num_assignments: int = 1 +) -> Tuple[str, str, Dict[str, Any]]: +
+ +
+ View Source +
def create_compensation_hit_with_hit_type(
+    client: MTurkClient,
+    reason: str,
+    hit_type_id: str,
+    num_assignments: int = 1,
+) -> Tuple[str, str, Dict[str, Any]]:
+    """Creates a simple compensation HIT to direct workers to submit"""
+    amazon_ext_url = (
+        "http://mechanicalturk.amazonaws.com/"
+        "AWSMechanicalTurkDataSchemas/2017-11-06/QuestionForm.xsd"
+    )
+    question_data_structure = (
+        f'<QuestionForm xmlns="{amazon_ext_url}">'
+        "<Question>"
+        "<QuestionIdentifier>workerid</QuestionIdentifier>"
+        "<DisplayName>Confirm Worker ID</DisplayName>"
+        "<IsRequired>true</IsRequired>"
+        "<QuestionContent>"
+        f"<Text>This compensation task was launched for the following reason: {reason}... Enter Worker ID to submit</Text>"
+        "</QuestionContent>"
+        "<AnswerSpecification>"
+        "<FreeTextAnswer>"
+        "<Constraints>"
+        '<Length minLength="2" />'
+        '<AnswerFormatRegex regex="\S" errorText="The content cannot be blank."/>'
+        "</Constraints>"
+        "</FreeTextAnswer>"
+        "</AnswerSpecification>"
+        "</Question>"
+        "</QuestionForm>"
+    )
+
+    is_sandbox = client_is_sandbox(client)
+
+    # Create the HIT
+    response = client.create_hit_with_hit_type(
+        HITTypeId=hit_type_id,
+        MaxAssignments=num_assignments,
+        LifetimeInSeconds=60 * 60 * 24 * 31,
+        Question=question_data_structure,
+    )
+
+    # The response included several fields that will be helpful later
+    hit_type_id = response["HIT"]["HITTypeId"]
+    hit_id = response["HIT"]["HITId"]
+
+    # Construct the hit URL
+    url_target = "workersandbox"
+    if not is_sandbox:
+        url_target = "www"
+    hit_link = "https://{}.mturk.com/mturk/preview?groupId={}".format(
+        url_target, hit_type_id
+    )
+    return hit_link, hit_id, response
+
+ +
+ +

Creates a simple compensation HIT to direct workers to submit

+
+ + +
+
+
#   + + + def + create_hit_with_hit_type( + client: Any, + frame_height: int, + page_url: str, + hit_type_id: str, + num_assignments: int = 1 +) -> Tuple[str, str, Dict[str, Any]]: +
+ +
+ View Source +
def create_hit_with_hit_type(
+    client: MTurkClient,
+    frame_height: int,
+    page_url: str,
+    hit_type_id: str,
+    num_assignments: int = 1,
+) -> Tuple[str, str, Dict[str, Any]]:
+    """Creates the actual HIT given the type and page to direct clients to"""
+    page_url = page_url.replace("&", "&amp;")
+    amazon_ext_url = (
+        "http://mechanicalturk.amazonaws.com/"
+        "AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"
+    )
+    question_data_structure = (
+        '<ExternalQuestion xmlns="{}">'
+        "<ExternalURL>{}</ExternalURL>"  # noqa: E131
+        "<FrameHeight>{}</FrameHeight>"
+        "</ExternalQuestion>"
+        "".format(amazon_ext_url, page_url, frame_height)
+    )
+
+    is_sandbox = client_is_sandbox(client)
+
+    # Create the HIT
+    response = client.create_hit_with_hit_type(
+        HITTypeId=hit_type_id,
+        MaxAssignments=num_assignments,
+        LifetimeInSeconds=60 * 60 * 24 * 31,
+        Question=question_data_structure,
+    )
+
+    # The response included several fields that will be helpful later
+    hit_type_id = response["HIT"]["HITTypeId"]
+    hit_id = response["HIT"]["HITId"]
+
+    # Construct the hit URL
+    url_target = "workersandbox"
+    if not is_sandbox:
+        url_target = "www"
+    hit_link = "https://{}.mturk.com/mturk/preview?groupId={}".format(
+        url_target, hit_type_id
+    )
+    return hit_link, hit_id, response
+
+ +
+ +

Creates the actual HIT given the type and page to direct clients to

+
+ + +
+
+
#   + + + def + expire_hit(client: Any, hit_id: str): +
+ +
+ View Source +
def expire_hit(client: MTurkClient, hit_id: str):
+    # Update expiration to a time in the past, the HIT expires instantly
+    past_time = datetime(2015, 1, 1)
+    client.update_expiration_for_hit(HITId=hit_id, ExpireAt=past_time)
+
+ +
+ + + +
+
+
#   + + + def + get_hit(client: Any, hit_id: str) -> Dict[str, Any]: +
+ +
+ View Source +
def get_hit(client: MTurkClient, hit_id: str) -> Dict[str, Any]:
+    """Get hit from mturk by hit_id"""
+    hit = None
+    try:
+        return client.get_hit(HITId=hit_id)
+    except ClientError as er:
+        logger.warning(
+            f"Skipping HIT {hit_id}. Unable to retrieve due to ClientError: {er}."
+        )
+    return {}
+
+ +
+ +

Get hit from mturk by hit_id

+
+ + +
+
+
#   + + + def + get_assignment(client: Any, assignment_id: str) -> Dict[str, Any]: +
+ +
+ View Source +
def get_assignment(client: MTurkClient, assignment_id: str) -> Dict[str, Any]:
+    """Gets assignment from mturk by assignment_id. Only works if the
+    assignment is in a completed state
+    """
+    return client.get_assignment(AssignmentId=assignment_id)
+
+ +
+ +

Gets assignment from mturk by assignment_id. Only works if the +assignment is in a completed state

+
+ + +
+
+
#   + + + def + get_assignments_for_hit(client: Any, hit_id: str) -> List[Dict[str, Any]]: +
+ +
+ View Source +
def get_assignments_for_hit(client: MTurkClient, hit_id: str) -> List[Dict[str, Any]]:
+    """Get completed assignments for a hit"""
+    assignments_info = client.list_assignments_for_hit(HITId=hit_id)
+    return assignments_info.get("Assignments", [])
+
+ +
+ +

Get completed assignments for a hit

+
+ + +
+
+
#   + + + def + approve_work( + client: Any, + assignment_id: str, + override_rejection: bool = False +) -> None: +
+ +
+ View Source +
def approve_work(
+    client: MTurkClient, assignment_id: str, override_rejection: bool = False
+) -> None:
+    """approve work for a given assignment through the mturk client"""
+    try:
+        client.approve_assignment(
+            AssignmentId=assignment_id, OverrideRejection=override_rejection
+        )
+    except Exception as e:
+        logger.exception(
+            f"Approving MTurk assignment failed, likely because it has auto-approved. Details: {e}",
+            exc_info=True,
+        )
+
+ +
+ +

approve work for a given assignment through the mturk client

+
+ + +
+
+
#   + + + def + reject_work(client: Any, assignment_id: str, reason: str) -> None: +
+ +
+ View Source +
def reject_work(client: MTurkClient, assignment_id: str, reason: str) -> None:
+    """reject work for a given assignment through the mturk client"""
+    try:
+        client.reject_assignment(AssignmentId=assignment_id, RequesterFeedback=reason)
+    except Exception as e:
+        logger.exception(
+            f"Rejecting MTurk assignment failed, likely because it has auto-approved. Details:{e}",
+            exc_info=True,
+        )
+
+ +
+ +

reject work for a given assignment through the mturk client

+
+ + +
+
+
#   + + + def + approve_assignments_for_hit(client: Any, hit_id: str, override_rejection: bool = False): +
+ +
+ View Source +
def approve_assignments_for_hit(
+    client: MTurkClient, hit_id: str, override_rejection: bool = False
+):
+    """Approve work for assignments associated with a given hit, through
+    mturk client
+    """
+    assignments = get_assignments_for_hit(client, hit_id)
+    for assignment in assignments:
+        assignment_id = assignment["AssignmentId"]
+        client.approve_assignment(
+            AssignmentId=assignment_id, OverrideRejection=override_rejection
+        )
+
+ +
+ +

Approve work for assignments associated with a given hit, through +mturk client

+
+ + +
+
+
#   + + + def + block_worker(client: Any, worker_id: str, reason: str) -> None: +
+ +
+ View Source +
def block_worker(client: MTurkClient, worker_id: str, reason: str) -> None:
+    """Block a worker by id using the mturk client, passes reason along"""
+    res = client.create_worker_block(WorkerId=worker_id, Reason=reason)
+
+ +
+ +

Block a worker by id using the mturk client, passes reason along

+
+ + +
+
+
#   + + + def + unblock_worker(client: Any, worker_id: str, reason: str) -> None: +
+ +
+ View Source +
def unblock_worker(client: MTurkClient, worker_id: str, reason: str) -> None:
+    """Remove a block on the given worker"""
+    client.delete_worker_block(WorkerId=worker_id, Reason=reason)
+
+ +
+ +

Remove a block on the given worker

+
+ + +
+
+
#   + + + def + is_worker_blocked(client: Any, worker_id: str) -> bool: +
+ +
+ View Source +
def is_worker_blocked(client: MTurkClient, worker_id: str) -> bool:
+    """Determine if the given worker is blocked by this client"""
+    blocks = client.list_worker_blocks(MaxResults=100)["WorkerBlocks"]
+    blocked_ids = [x["WorkerId"] for x in blocks]
+    return worker_id in blocked_ids
+
+ +
+ +

Determine if the given worker is blocked by this client

+
+ + +
+
+
#   + + + def + pay_bonus( + client: Any, + worker_id: str, + bonus_amount: float, + assignment_id: str, + reason: str, + unique_request_token: str +) -> bool: +
+ +
+ View Source +
def pay_bonus(
+    client: MTurkClient,
+    worker_id: str,
+    bonus_amount: float,
+    assignment_id: str,
+    reason: str,
+    unique_request_token: str,
+) -> bool:
+    """Handles paying bonus to a Turker, fails for insufficient funds.
+    Returns True on success and False on failure
+    """
+    total_cost = bonus_amount + calculate_mturk_bonus_fee(bonus_amount)
+    if not check_mturk_balance(client, balance_needed=total_cost):
+        print("Cannot pay bonus. Reason: Insufficient " "funds in your MTurk account.")
+        return False
+
+    client.send_bonus(
+        WorkerId=worker_id,
+        BonusAmount=str(bonus_amount),
+        AssignmentId=assignment_id,
+        Reason=reason,
+        UniqueRequestToken=unique_request_token,
+    )
+
+    return True
+
+ +
+ +

Handles paying bonus to a Turker, fails for insufficient funds. +Returns True on success and False on failure

+
+ + +
+
+
#   + + + def + email_worker( + client: Any, + worker_id: str, + subject: str, + message_text: str +) -> Tuple[bool, str]: +
+ +
+ View Source +
def email_worker(
+    client: MTurkClient, worker_id: str, subject: str, message_text: str
+) -> Tuple[bool, str]:
+    """Send an email to a worker through the mturk client"""
+    response = client.notify_workers(
+        Subject=subject, MessageText=message_text, WorkerIds=[worker_id]
+    )
+    if len(response["NotifyWorkersFailureStatuses"]) > 0:
+        failure_message = response["NotifyWorkersFailureStatuses"][0]
+        return (False, failure_message["NotifyWorkersFailureMessage"])
+    else:
+        return (True, "")
+
+ +
+ +

Send an email to a worker through the mturk client

+
+ + +
+
+
#   + + + def + get_outstanding_hits(client: Any) -> Dict[str, List[Dict[str, Any]]]: +
+ +
+ View Source +
def get_outstanding_hits(client: MTurkClient) -> Dict[str, List[Dict[str, Any]]]:
+    """Return the HITs sorted by HITTypeId that are still on the MTurk Server"""
+    new_hits = client.list_hits(MaxResults=100)
+    all_hits = new_hits["HITs"]
+    while len(new_hits["HITs"]) > 0:
+        new_hits = client.list_hits(MaxResults=100, NextToken=new_hits["NextToken"])
+        all_hits += new_hits["HITs"]
+
+    hit_by_type: Dict[str, List[Dict[str, Any]]] = {}
+    for h in all_hits:
+        hit_type = h["HITTypeId"]
+        if hit_type not in hit_by_type:
+            hit_by_type[hit_type] = []
+        hit_by_type[hit_type].append(h)
+
+    return hit_by_type
+
+ +
+ +

Return the HITs sorted by HITTypeId that are still on the MTurk Server

+
+ + +
+
+
#   + + + def + expire_and_dispose_hits( + client: Any, + hits: List[Dict[str, Any]], + quiet: bool = False +) -> List[Dict[str, Any]]: +
+ +
+ View Source +
def expire_and_dispose_hits(
+    client: MTurkClient, hits: List[Dict[str, Any]], quiet: bool = False
+) -> List[Dict[str, Any]]:
+    """
+    Loops over attempting to expire and dispose any hits in the hits list that can be disposed
+    Returns any HITs that could not be disposed of
+    """
+    non_disposed_hits = []
+    for h in tqdm(hits, disable=quiet):
+        try:
+            client.delete_hit(HITId=h["HITId"])
+        except Exception as e:
+            client.update_expiration_for_hit(
+                HITId=h["HITId"], ExpireAt=datetime(2015, 1, 1)
+            )
+            h["dispose_exception"] = e
+            non_disposed_hits.append(h)
+    return non_disposed_hits
+
+ +
+ +

Loops over attempting to expire and dispose any hits in the hits list that can be disposed +Returns any HITs that could not be disposed of

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_worker.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_worker.html new file mode 100644 index 000000000..c277a13b7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/mturk_worker.html @@ -0,0 +1,1146 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.mturk_worker API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.mturk_worker

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.requester import Requester
+from mephisto.abstractions.providers.mturk.provider_type import PROVIDER_TYPE
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    pay_bonus,
+    block_worker,
+    unblock_worker,
+    is_worker_blocked,
+    give_worker_qualification,
+    remove_worker_qualification,
+)
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+
+from uuid import uuid4
+
+from typing import List, Optional, Tuple, Dict, Mapping, Any, cast, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+    from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+class MTurkWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self._worker_name = self.worker_name  # sandbox workers use a different name
+
+    @classmethod
+    def get_from_mturk_worker_id(
+        cls, db: "MephistoDB", mturk_worker_id: str
+    ) -> Optional["MTurkWorker"]:
+        """Get the MTurkWorker from the given worker_id"""
+        if cls.PROVIDER_TYPE != PROVIDER_TYPE:
+            mturk_worker_id += "_sandbox"
+        workers = db.find_workers(
+            worker_name=mturk_worker_id, provider_type=cls.PROVIDER_TYPE
+        )
+        if len(workers) == 0:
+            logger.warning(
+                f"Could not find a Mephisto Worker for mturk_id {mturk_worker_id}"
+            )
+            return None
+        return cast("MTurkWorker", workers[0])
+
+    def get_mturk_worker_id(self):
+        return self._worker_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+
+        In creating a new qualification, Mephisto resolves the ambiguity over which
+        requester to associate that qualification with by using the FIRST requester
+        of the given account type (either `mturk` or `mturk_sandbox`)
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is not None:
+            requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+            qualification_id = mturk_qual_details["mturk_qualification_id"]
+        else:
+            target_type = (
+                "mturk_sandbox" if qualification_name.endswith("sandbox") else "mturk"
+            )
+            requester = self.db.find_requesters(provider_type=target_type)[-1]
+            assert isinstance(
+                requester, MTurkRequester
+            ), "find_requesters must return mturk requester for given provider types"
+            qualification_id = requester._create_new_mturk_qualification(
+                qualification_name
+            )
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester for MTurk quals"
+        client = self._get_client(requester._requester_name)
+        give_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id, value
+        )
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is None:
+            logger.error(
+                f"No locally stored MTurk qualification to revoke for name {qualification_name}"
+            )
+            return None
+
+        requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester from MTurk quals"
+        client = self._get_client(requester._requester_name)
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+        remove_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id
+        )
+        return None
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return tuple of success and failure message"""
+        if unit is None:
+            # TODO(#652) implement. The content in scripts/mturk/launch_makeup_hits.py
+            # may prove useful for this.
+            return False, "bonusing via compensation tasks not yet available"
+
+        unit = cast("MTurkUnit", unit)
+        requester = cast(
+            "MTurkRequester", unit.get_assignment().get_task_run().get_requester()
+        )
+        client = self._get_client(requester._requester_name)
+        mturk_assignment_id = unit.get_mturk_assignment_id()
+        assert mturk_assignment_id is not None, "Cannot bonus for a unit with no agent"
+        pay_bonus(
+            client, self._worker_name, amount, mturk_assignment_id, reason, str(uuid4())
+        )
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        if unit is None and requester is None:
+            # TODO(WISH) soft block from all requesters? Maybe have the main
+            # requester soft block?
+            return (
+                False,
+                "Blocking without a unit or requester not yet supported for MTurkWorkers",
+            )
+        elif unit is not None and requester is None:
+            requester = unit.get_assignment().get_task_run().get_requester()
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        block_worker(client, self._worker_name, reason)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        unblock_worker(client, self._worker_name, reason)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        return is_worker_blocked(client, self._worker_name)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """
+        Qualifications are handled primarily by MTurk, so if a worker is able to get
+        through to be able to access the task, they should be eligible
+        """
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id, PROVIDER_TYPE)
+
+ +
+ +
+
+
+ #   + + + class + MTurkWorker(mephisto.data_model.worker.Worker): +
+ +
+ View Source +
class MTurkWorker(Worker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        self._worker_name = self.worker_name  # sandbox workers use a different name
+
+    @classmethod
+    def get_from_mturk_worker_id(
+        cls, db: "MephistoDB", mturk_worker_id: str
+    ) -> Optional["MTurkWorker"]:
+        """Get the MTurkWorker from the given worker_id"""
+        if cls.PROVIDER_TYPE != PROVIDER_TYPE:
+            mturk_worker_id += "_sandbox"
+        workers = db.find_workers(
+            worker_name=mturk_worker_id, provider_type=cls.PROVIDER_TYPE
+        )
+        if len(workers) == 0:
+            logger.warning(
+                f"Could not find a Mephisto Worker for mturk_id {mturk_worker_id}"
+            )
+            return None
+        return cast("MTurkWorker", workers[0])
+
+    def get_mturk_worker_id(self):
+        return self._worker_name
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_client_for_requester(requester_name)
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+
+        In creating a new qualification, Mephisto resolves the ambiguity over which
+        requester to associate that qualification with by using the FIRST requester
+        of the given account type (either `mturk` or `mturk_sandbox`)
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is not None:
+            requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+            qualification_id = mturk_qual_details["mturk_qualification_id"]
+        else:
+            target_type = (
+                "mturk_sandbox" if qualification_name.endswith("sandbox") else "mturk"
+            )
+            requester = self.db.find_requesters(provider_type=target_type)[-1]
+            assert isinstance(
+                requester, MTurkRequester
+            ), "find_requesters must return mturk requester for given provider types"
+            qualification_id = requester._create_new_mturk_qualification(
+                qualification_name
+            )
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester for MTurk quals"
+        client = self._get_client(requester._requester_name)
+        give_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id, value
+        )
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is None:
+            logger.error(
+                f"No locally stored MTurk qualification to revoke for name {qualification_name}"
+            )
+            return None
+
+        requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester from MTurk quals"
+        client = self._get_client(requester._requester_name)
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+        remove_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id
+        )
+        return None
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return tuple of success and failure message"""
+        if unit is None:
+            # TODO(#652) implement. The content in scripts/mturk/launch_makeup_hits.py
+            # may prove useful for this.
+            return False, "bonusing via compensation tasks not yet available"
+
+        unit = cast("MTurkUnit", unit)
+        requester = cast(
+            "MTurkRequester", unit.get_assignment().get_task_run().get_requester()
+        )
+        client = self._get_client(requester._requester_name)
+        mturk_assignment_id = unit.get_mturk_assignment_id()
+        assert mturk_assignment_id is not None, "Cannot bonus for a unit with no agent"
+        pay_bonus(
+            client, self._worker_name, amount, mturk_assignment_id, reason, str(uuid4())
+        )
+        return True, ""
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        if unit is None and requester is None:
+            # TODO(WISH) soft block from all requesters? Maybe have the main
+            # requester soft block?
+            return (
+                False,
+                "Blocking without a unit or requester not yet supported for MTurkWorkers",
+            )
+        elif unit is not None and requester is None:
+            requester = unit.get_assignment().get_task_run().get_requester()
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        block_worker(client, self._worker_name, reason)
+        return True, ""
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        unblock_worker(client, self._worker_name, reason)
+        return True
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        return is_worker_blocked(client, self._worker_name)
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """
+        Qualifications are handled primarily by MTurk, so if a worker is able to get
+        through to be able to access the task, they should be eligible
+        """
+        return True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id, PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + +
+
#   + + + MTurkWorker( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Worker class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Worker +as you will instead be returned the correct Worker class according to +the crowdprovider associated with this Worker.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + get_from_mturk_worker_id( + cls, + db: mephisto.abstractions.database.MephistoDB, + mturk_worker_id: str +) -> Union[mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker, NoneType]: +
+ +
+ View Source +
    @classmethod
+    def get_from_mturk_worker_id(
+        cls, db: "MephistoDB", mturk_worker_id: str
+    ) -> Optional["MTurkWorker"]:
+        """Get the MTurkWorker from the given worker_id"""
+        if cls.PROVIDER_TYPE != PROVIDER_TYPE:
+            mturk_worker_id += "_sandbox"
+        workers = db.find_workers(
+            worker_name=mturk_worker_id, provider_type=cls.PROVIDER_TYPE
+        )
+        if len(workers) == 0:
+            logger.warning(
+                f"Could not find a Mephisto Worker for mturk_id {mturk_worker_id}"
+            )
+            return None
+        return cast("MTurkWorker", workers[0])
+
+ +
+ +

Get the MTurkWorker from the given worker_id

+
+ + +
+
+
#   + + + def + get_mturk_worker_id(self): +
+ +
+ View Source +
    def get_mturk_worker_id(self):
+        return self._worker_name
+
+ +
+ + + +
+
+
#   + + + def + grant_crowd_qualification(self, qualification_name: str, value: int = 1) -> None: +
+ +
+ View Source +
    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+
+        In creating a new qualification, Mephisto resolves the ambiguity over which
+        requester to associate that qualification with by using the FIRST requester
+        of the given account type (either `mturk` or `mturk_sandbox`)
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is not None:
+            requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+            qualification_id = mturk_qual_details["mturk_qualification_id"]
+        else:
+            target_type = (
+                "mturk_sandbox" if qualification_name.endswith("sandbox") else "mturk"
+            )
+            requester = self.db.find_requesters(provider_type=target_type)[-1]
+            assert isinstance(
+                requester, MTurkRequester
+            ), "find_requesters must return mturk requester for given provider types"
+            qualification_id = requester._create_new_mturk_qualification(
+                qualification_name
+            )
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester for MTurk quals"
+        client = self._get_client(requester._requester_name)
+        give_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id, value
+        )
+        return None
+
+ +
+ +

Grant a qualification by the given name to this worker. Check the local +MTurk db to find the matching MTurk qualification to grant, and pass +that. If no qualification exists, try to create one.

+ +

In creating a new qualification, Mephisto resolves the ambiguity over which +requester to associate that qualification with by using the FIRST requester +of the given account type (either mturk or mturk_sandbox)

+
+ + +
+
+
#   + + + def + revoke_crowd_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        mturk_qual_details = self.datastore.get_qualification_mapping(
+            qualification_name
+        )
+        if mturk_qual_details is None:
+            logger.error(
+                f"No locally stored MTurk qualification to revoke for name {qualification_name}"
+            )
+            return None
+
+        requester = Requester.get(self.db, mturk_qual_details["requester_id"])
+        assert isinstance(
+            requester, MTurkRequester
+        ), "Must be an MTurk requester from MTurk quals"
+        client = self._get_client(requester._requester_name)
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+        remove_worker_qualification(
+            client, self.get_mturk_worker_id(), qualification_id
+        )
+        return None
+
+ +
+ +

Revoke the qualification by the given name from this worker. Check the local +MTurk db to find the matching MTurk qualification to revoke, pass if +no such qualification exists.

+
+ + +
+
+
#   + + + def + bonus_worker( + self, + amount: float, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return tuple of success and failure message"""
+        if unit is None:
+            # TODO(#652) implement. The content in scripts/mturk/launch_makeup_hits.py
+            # may prove useful for this.
+            return False, "bonusing via compensation tasks not yet available"
+
+        unit = cast("MTurkUnit", unit)
+        requester = cast(
+            "MTurkRequester", unit.get_assignment().get_task_run().get_requester()
+        )
+        client = self._get_client(requester._requester_name)
+        mturk_assignment_id = unit.get_mturk_assignment_id()
+        assert mturk_assignment_id is not None, "Cannot bonus for a unit with no agent"
+        pay_bonus(
+            client, self._worker_name, amount, mturk_assignment_id, reason, str(uuid4())
+        )
+        return True, ""
+
+ +
+ +

Bonus this worker for work any reason. Return tuple of success and failure message

+
+ + +
+
+
#   + + + def + block_worker( + self, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None, + requester: Union[mephisto.data_model.requester.Requester, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        if unit is None and requester is None:
+            # TODO(WISH) soft block from all requesters? Maybe have the main
+            # requester soft block?
+            return (
+                False,
+                "Blocking without a unit or requester not yet supported for MTurkWorkers",
+            )
+        elif unit is not None and requester is None:
+            requester = unit.get_assignment().get_task_run().get_requester()
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        block_worker(client, self._worker_name, reason)
+        return True, ""
+
+ +
+ +

Block this worker for a specified reason. Return success of block

+
+ + +
+
+
#   + + + def + unblock_worker( + self, + reason: str, + requester: mephisto.data_model.requester.Requester +) -> bool: +
+ +
+ View Source +
    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason. Return success of unblock"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        unblock_worker(client, self._worker_name, reason)
+        return True
+
+ +
+ +

unblock a blocked worker for the specified reason. Return success of unblock

+
+ + +
+
+
#   + + + def + is_blocked(self, requester: mephisto.data_model.requester.Requester) -> bool: +
+ +
+ View Source +
    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        requester = cast("MTurkRequester", requester)
+        client = self._get_client(requester._requester_name)
+        return is_worker_blocked(client, self._worker_name)
+
+ +
+ +

Determine if a worker is blocked

+
+ + +
+
+
#   + + + def + is_eligible(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool: +
+ +
+ View Source +
    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """
+        Qualifications are handled primarily by MTurk, so if a worker is able to get
+        through to be able to access the task, they should be eligible
+        """
+        return True
+
+ +
+ +

Qualifications are handled primarily by MTurk, so if a worker is able to get +through to be able to access the task, they should be eligible

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + worker_id: str +) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id, PROVIDER_TYPE)
+
+ +
+ +

Create a new worker attached to the given identifier, assuming it doesn't already +exist in the database.

+ +

Implementation should return the result of _register_worker when sure the worker +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/provider_type.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/provider_type.html new file mode 100644 index 000000000..7171e4754 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/provider_type.html @@ -0,0 +1,248 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.provider_type API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.provider_type

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+PROVIDER_TYPE = "mturk"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils.html new file mode 100644 index 000000000..00d03118a --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.utils API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.utils

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils/script_utils.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils/script_utils.html new file mode 100644 index 000000000..1906ba050 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk/utils/script_utils.html @@ -0,0 +1,429 @@ + + + + + + + + + mephisto.abstractions.providers.mturk.utils.script_utils API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk.utils.script_utils

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, TYPE_CHECKING, Dict
+
+from mephisto.abstractions.providers.mturk.mturk_utils import give_worker_qualification
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.unit import Unit
+from tqdm import tqdm  # type: ignore
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+
+
+def direct_soft_block_mturk_workers(
+    db: "MephistoDB",
+    worker_list: List[str],
+    soft_block_qual_name: str,
+    requester_name: Optional[str] = None,
+):
+    """
+    Directly assign the soft blocking MTurk qualification that Mephisto
+    associates with soft_block_qual_name to all of the MTurk worker ids
+    in worker_list. If requester_name is not provided, it will use the
+    most recently registered mturk requester in the database.
+    """
+    reqs = db.find_requesters(requester_name=requester_name, provider_type="mturk")
+    requester = reqs[-1]
+
+    assert isinstance(
+        requester, MTurkRequester
+    ), "Can only direct soft block mturk workers from mturk requester"
+
+    mturk_qual_details = requester.datastore.get_qualification_mapping(
+        soft_block_qual_name
+    )
+    if mturk_qual_details is not None:
+        # Overrule the requester, as this qualification already exists
+        requester = Requester.get(db, mturk_qual_details["requester_id"])
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+    else:
+        qualification_id = requester._create_new_mturk_qualification(
+            soft_block_qual_name
+        )
+
+    assert isinstance(
+        requester, MTurkRequester
+    ), "Can only direct soft block mturk workers from mturk requester"
+    mturk_client = requester._get_client(requester._requester_name)
+    for worker_id in tqdm(worker_list):
+        try:
+            give_worker_qualification(
+                mturk_client, worker_id, qualification_id, value=1
+            )
+        except Exception as e:
+            print(
+                f'Failed to give worker with ID: "{worker_id}" qualification with error: {e}. Skipping.'
+            )
+
+
+def get_mturk_ids_from_unit_id(db, unit_id: str) -> Dict[str, Optional[str]]:
+    """
+    Find the relevant mturk ids from the given mephisto unit id
+    """
+    mturk_unit = Unit.get(db, unit_id)
+    assignment_id = mturk_unit.get_mturk_assignment_id()
+    hit_id = mturk_unit.get_mturk_hit_id()
+    agent = mturk_unit.get_assigned_agent()
+    worker_id = None
+    if agent is not None:
+        worker_id = agent.get_worker().get_mturk_worker_id()
+    return {"assignment_id": assignment_id, "hit_id": hit_id, "worker_id": worker_id}
+
+ +
+ +
+
+
#   + + + def + direct_soft_block_mturk_workers( + db: mephisto.abstractions.database.MephistoDB, + worker_list: List[str], + soft_block_qual_name: str, + requester_name: Union[str, NoneType] = None +): +
+ +
+ View Source +
def direct_soft_block_mturk_workers(
+    db: "MephistoDB",
+    worker_list: List[str],
+    soft_block_qual_name: str,
+    requester_name: Optional[str] = None,
+):
+    """
+    Directly assign the soft blocking MTurk qualification that Mephisto
+    associates with soft_block_qual_name to all of the MTurk worker ids
+    in worker_list. If requester_name is not provided, it will use the
+    most recently registered mturk requester in the database.
+    """
+    reqs = db.find_requesters(requester_name=requester_name, provider_type="mturk")
+    requester = reqs[-1]
+
+    assert isinstance(
+        requester, MTurkRequester
+    ), "Can only direct soft block mturk workers from mturk requester"
+
+    mturk_qual_details = requester.datastore.get_qualification_mapping(
+        soft_block_qual_name
+    )
+    if mturk_qual_details is not None:
+        # Overrule the requester, as this qualification already exists
+        requester = Requester.get(db, mturk_qual_details["requester_id"])
+        qualification_id = mturk_qual_details["mturk_qualification_id"]
+    else:
+        qualification_id = requester._create_new_mturk_qualification(
+            soft_block_qual_name
+        )
+
+    assert isinstance(
+        requester, MTurkRequester
+    ), "Can only direct soft block mturk workers from mturk requester"
+    mturk_client = requester._get_client(requester._requester_name)
+    for worker_id in tqdm(worker_list):
+        try:
+            give_worker_qualification(
+                mturk_client, worker_id, qualification_id, value=1
+            )
+        except Exception as e:
+            print(
+                f'Failed to give worker with ID: "{worker_id}" qualification with error: {e}. Skipping.'
+            )
+
+ +
+ +

Directly assign the soft blocking MTurk qualification that Mephisto +associates with soft_block_qual_name to all of the MTurk worker ids +in worker_list. If requester_name is not provided, it will use the +most recently registered mturk requester in the database.

+
+ + +
+
+
#   + + + def + get_mturk_ids_from_unit_id(db, unit_id: str) -> Dict[str, Union[str, NoneType]]: +
+ +
+ View Source +
def get_mturk_ids_from_unit_id(db, unit_id: str) -> Dict[str, Optional[str]]:
+    """
+    Find the relevant mturk ids from the given mephisto unit id
+    """
+    mturk_unit = Unit.get(db, unit_id)
+    assignment_id = mturk_unit.get_mturk_assignment_id()
+    hit_id = mturk_unit.get_mturk_hit_id()
+    agent = mturk_unit.get_assigned_agent()
+    worker_id = None
+    if agent is not None:
+        worker_id = agent.get_worker().get_mturk_worker_id()
+    return {"assignment_id": assignment_id, "hit_id": hit_id, "worker_id": worker_id}
+
+ +
+ +

Find the relevant mturk ids from the given mephisto unit id

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox.html new file mode 100644 index 000000000..f95bfbb40 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox.html @@ -0,0 +1,255 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/provider_type.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/provider_type.html new file mode 100644 index 000000000..82bf33d9d --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/provider_type.html @@ -0,0 +1,248 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.provider_type API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.provider_type

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+PROVIDER_TYPE = "mturk_sandbox"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_agent.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_agent.html new file mode 100644 index 000000000..e04dbaa03 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_agent.html @@ -0,0 +1,425 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.providers.mturk_sandbox.provider_type import PROVIDER_TYPE
+from mephisto.abstractions.providers.mturk.mturk_agent import MTurkAgent
+
+from typing import Any, cast, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester import (
+        SandboxMTurkRequester,
+    )
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.agent import Agent
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+
+
+class SandboxMTurkAgent(MTurkAgent):
+    """
+    Wrapper for a regular MTurk agent that will only communicate with sandbox
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "SandboxMTurkRequester" = cast(
+            "SandboxMTurkRequester", unit.get_requester()
+        )
+        return self.datastore.get_sandbox_client_for_requester(
+            requester._requester_name
+        )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return SandboxMTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +
+
+ + +
+ View Source +
class SandboxMTurkAgent(MTurkAgent):
+    """
+    Wrapper for a regular MTurk agent that will only communicate with sandbox
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "SandboxMTurkRequester" = cast(
+            "SandboxMTurkRequester", unit.get_requester()
+        )
+        return self.datastore.get_sandbox_client_for_requester(
+            requester._requester_name
+        )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return SandboxMTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

Wrapper for a regular MTurk agent that will only communicate with sandbox

+
+ + +
+
#   + + PROVIDER_TYPE = 'mturk_sandbox' +
+ + + + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return SandboxMTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

Create an agent for this worker to be used for work on the given Unit.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_provider.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_provider.html new file mode 100644 index 000000000..14eb79280 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_provider.html @@ -0,0 +1,963 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.providers.mturk_sandbox.provider_type import PROVIDER_TYPE
+from mephisto.abstractions.providers.mturk.mturk_provider import (
+    MTurkProvider,
+    MTurkProviderArgs,
+)
+from mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent import (
+    SandboxMTurkAgent,
+)
+from mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester import (
+    SandboxMTurkRequester,
+)
+from mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit import (
+    SandboxMTurkUnit,
+)
+from mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker import (
+    SandboxMTurkWorker,
+)
+from mephisto.operations.registry import register_mephisto_abstraction
+
+import os
+from dataclasses import dataclass
+
+from typing import Any, ClassVar, Type, List, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.requester import Requester
+    from mephisto.data_model.agent import Agent
+
+
+@dataclass
+class SandboxMTurkProviderArgs(MTurkProviderArgs):
+    """Provider args for a sandbox MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+
+@register_mephisto_abstraction()
+class SandboxMTurkProvider(MTurkProvider):
+    """
+    Mock implementation of a CrowdProvider that stores everything
+    in a local state in the class for use in tests.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    UnitClass: ClassVar[Type["Unit"]] = SandboxMTurkUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = SandboxMTurkRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = SandboxMTurkWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = SandboxMTurkAgent
+
+    ArgsClass = SandboxMTurkProviderArgs
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server"""
+        return super().cleanup_qualification(f"{qualification_name}_sandbox")
+
+ +
+ +
+
+ + +
+ View Source +
class SandboxMTurkProviderArgs(MTurkProviderArgs):
+    """Provider args for a sandbox MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Provider args for a sandbox MTurk provider

+
+ + +
+
#   + + + SandboxMTurkProviderArgs(_provider_type: str = 'mturk_sandbox', requester_name: str = '???') +
+ + + + +
+ +
+
+ + +
+ View Source +
class SandboxMTurkProvider(MTurkProvider):
+    """
+    Mock implementation of a CrowdProvider that stores everything
+    in a local state in the class for use in tests.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    UnitClass: ClassVar[Type["Unit"]] = SandboxMTurkUnit
+
+    RequesterClass: ClassVar[Type["Requester"]] = SandboxMTurkRequester
+
+    WorkerClass: ClassVar[Type["Worker"]] = SandboxMTurkWorker
+
+    AgentClass: ClassVar[Type["Agent"]] = SandboxMTurkAgent
+
+    ArgsClass = SandboxMTurkProviderArgs
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server"""
+        return super().cleanup_qualification(f"{qualification_name}_sandbox")
+
+ +
+ +

Mock implementation of a CrowdProvider that stores everything +in a local state in the class for use in tests.

+
+ + +
+
#   + + PROVIDER_TYPE = 'mturk_sandbox' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + get_wrapper_js_path(cls): +
+ +
+ View Source +
    @classmethod
+    def get_wrapper_js_path(cls):
+        """
+        Return the path to the `wrap_crowd_source.js` file for this
+        provider to be deployed to the server
+        """
+        return os.path.join(os.path.dirname(__file__), "wrap_crowd_source.js")
+
+ +
+ +

Return the path to the wrap_crowd_source.js file for this +provider to be deployed to the server

+
+ + +
+
+
#   + + + def + cleanup_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def cleanup_qualification(self, qualification_name: str) -> None:
+        """Remove the qualification from the sandbox server"""
+        return super().cleanup_qualification(f"{qualification_name}_sandbox")
+
+ +
+ +

Remove the qualification from the sandbox server

+
+ + +
+ +
+
+
+ #   + + + class + SandboxMTurkProvider.UnitClass(mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit): +
+ +
+ View Source +
class SandboxMTurkUnit(MTurkUnit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return SandboxMTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+
+ + + +
+
+
+ #   + + + class + SandboxMTurkProvider.RequesterClass(mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester): +
+ +
+ View Source +
class SandboxMTurkRequester(MTurkRequester):
+    """Wrapper around regular requester that handles removing the appended "sandbox" name"""
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        assert self.requester_name.endswith(
+            "_sandbox"
+        ), f"{self.requester_name} is not a sandbox requester"
+        self._requester_name = self.requester_name[:-8]
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @classmethod
+    def is_sandbox(cls) -> bool:
+        """
+        Determine if this is a requester on sandbox
+        """
+        return True
+
+    # Required functions for a Requester implementation
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        if not requester_name.endswith("_sandbox"):
+            requester_name += "_sandbox"
+        return SandboxMTurkRequester._register_requester(
+            db, requester_name, PROVIDER_TYPE
+        )
+
+ +
+ +

Wrapper around regular requester that handles removing the appended "sandbox" name

+
+ + + +
+
+
+ #   + + + class + SandboxMTurkProvider.WorkerClass(mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker): +
+ +
+ View Source +
class SandboxMTurkWorker(MTurkWorker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # sandbox workers use a different name
+        self._worker_name = self.worker_name[:-8]
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+        """
+        return super().grant_crowd_qualification(qualification_name + "_sandbox", value)
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        return super().revoke_crowd_qualification(qualification_name + "_sandbox")
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + + +
+
+
+ #   + + + class + SandboxMTurkProvider.AgentClass(mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent): +
+ +
+ View Source +
class SandboxMTurkAgent(MTurkAgent):
+    """
+    Wrapper for a regular MTurk agent that will only communicate with sandbox
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils for this agent
+        """
+        unit = self.get_unit()
+        requester: "SandboxMTurkRequester" = cast(
+            "SandboxMTurkRequester", unit.get_requester()
+        )
+        return self.datastore.get_sandbox_client_for_requester(
+            requester._requester_name
+        )
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: "Worker", unit: "Unit") -> "Agent":
+        """Create an agent for this worker to be used for work on the given Unit."""
+        return SandboxMTurkAgent._register_agent(db, worker, unit, PROVIDER_TYPE)
+
+ +
+ +

Wrapper for a regular MTurk agent that will only communicate with sandbox

+
+ + + +
+
+
+ #   + + + class + SandboxMTurkProvider.ArgsClass(mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs): +
+ +
+ View Source +
class SandboxMTurkProviderArgs(MTurkProviderArgs):
+    """Provider args for a sandbox MTurk provider"""
+
+    _provider_type: str = PROVIDER_TYPE
+
+ +
+ +

Provider args for a sandbox MTurk provider

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_requester.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_requester.html new file mode 100644 index 000000000..707fa9576 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_requester.html @@ -0,0 +1,541 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+from mephisto.abstractions.providers.mturk_sandbox.provider_type import PROVIDER_TYPE
+
+from typing import Any, Optional, Mapping, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.requester import Requester
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+
+
+class SandboxMTurkRequester(MTurkRequester):
+    """Wrapper around regular requester that handles removing the appended "sandbox" name"""
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        assert self.requester_name.endswith(
+            "_sandbox"
+        ), f"{self.requester_name} is not a sandbox requester"
+        self._requester_name = self.requester_name[:-8]
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @classmethod
+    def is_sandbox(cls) -> bool:
+        """
+        Determine if this is a requester on sandbox
+        """
+        return True
+
+    # Required functions for a Requester implementation
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        if not requester_name.endswith("_sandbox"):
+            requester_name += "_sandbox"
+        return SandboxMTurkRequester._register_requester(
+            db, requester_name, PROVIDER_TYPE
+        )
+
+ +
+ +
+
+ + +
+ View Source +
class SandboxMTurkRequester(MTurkRequester):
+    """Wrapper around regular requester that handles removing the appended "sandbox" name"""
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # Use _requester_name to preserve sandbox behavior which
+        # utilizes a different requester_name
+        assert self.requester_name.endswith(
+            "_sandbox"
+        ), f"{self.requester_name} is not a sandbox requester"
+        self._requester_name = self.requester_name[:-8]
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @classmethod
+    def is_sandbox(cls) -> bool:
+        """
+        Determine if this is a requester on sandbox
+        """
+        return True
+
+    # Required functions for a Requester implementation
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        if not requester_name.endswith("_sandbox"):
+            requester_name += "_sandbox"
+        return SandboxMTurkRequester._register_requester(
+            db, requester_name, PROVIDER_TYPE
+        )
+
+ +
+ +

Wrapper around regular requester that handles removing the appended "sandbox" name

+
+ + +
+
#   + + + SandboxMTurkRequester( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Requester class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Requester +as you will instead be returned the correct Requester class according to +the crowdprovider associated with this Requester.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk_sandbox' +
+ + + + +
+
+
#   + +
@classmethod
+ + def + is_sandbox(cls) -> bool: +
+ +
+ View Source +
    @classmethod
+    def is_sandbox(cls) -> bool:
+        """
+        Determine if this is a requester on sandbox
+        """
+        return True
+
+ +
+ +

Determine if this is a requester on sandbox

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + requester_name: str +) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        if not requester_name.endswith("_sandbox"):
+            requester_name += "_sandbox"
+        return SandboxMTurkRequester._register_requester(
+            db, requester_name, PROVIDER_TYPE
+        )
+
+ +
+ +

Try to create a new requester by this name, raise an exception if +the name already exists.

+ +

Implementation should call _register_requester(db, requester_id) when sure the requester +can be successfully created to have it put into the db and return the result.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_unit.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_unit.html new file mode 100644 index 000000000..65d28226a --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_unit.html @@ -0,0 +1,427 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from datetime import datetime
+
+from mephisto.abstractions.providers.mturk.mturk_unit import MTurkUnit
+from mephisto.abstractions.providers.mturk_sandbox.provider_type import PROVIDER_TYPE
+from typing import Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.assignment import Assignment
+
+
+class SandboxMTurkUnit(MTurkUnit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return SandboxMTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+ +
+ +
+
+ + +
+ View Source +
class SandboxMTurkUnit(MTurkUnit):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return SandboxMTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+
+ + +
+
#   + + PROVIDER_TYPE = 'mturk_sandbox' +
+ + + + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + assignment: mephisto.data_model.assignment.Assignment, + index: int, + pay_amount: float +) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """Create a Unit for the given assignment"""
+        return SandboxMTurkUnit._register_unit(
+            db, assignment, index, pay_amount, PROVIDER_TYPE
+        )
+
+ +
+ +

Create a Unit for the given assignment

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_worker.html b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_worker.html new file mode 100644 index 000000000..214fc7fa6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/abstractions/providers/mturk_sandbox/sandbox_mturk_worker.html @@ -0,0 +1,586 @@ + + + + + + + + + mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker API documentation + + + + + + + + + +
+
+

+mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.providers.mturk.mturk_worker import MTurkWorker
+from mephisto.abstractions.providers.mturk_sandbox.provider_type import PROVIDER_TYPE
+
+from typing import Any, Mapping, Optional, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+    from mephisto.data_model.worker import Worker
+    from mephisto.abstractions.database import MephistoDB
+
+
+class SandboxMTurkWorker(MTurkWorker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # sandbox workers use a different name
+        self._worker_name = self.worker_name[:-8]
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+        """
+        return super().grant_crowd_qualification(qualification_name + "_sandbox", value)
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        return super().revoke_crowd_qualification(qualification_name + "_sandbox")
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +
+
+ + +
+ View Source +
class SandboxMTurkWorker(MTurkWorker):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    # Ensure inherited methods use this level's provider type
+    PROVIDER_TYPE = PROVIDER_TYPE
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        super().__init__(db, db_id, row=row, _used_new_call=_used_new_call)
+        self.datastore: "MTurkDatastore" = self.db.get_datastore_for_provider(
+            self.PROVIDER_TYPE
+        )
+        # sandbox workers use a different name
+        self._worker_name = self.worker_name[:-8]
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+        """
+        return super().grant_crowd_qualification(qualification_name + "_sandbox", value)
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        return super().revoke_crowd_qualification(qualification_name + "_sandbox")
+
+    def _get_client(self, requester_name: str) -> Any:
+        """
+        Get an mturk client for usage with mturk_utils
+        """
+        return self.datastore.get_sandbox_client_for_requester(requester_name)
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + +
+
#   + + + SandboxMTurkWorker( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Worker class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Worker +as you will instead be returned the correct Worker class according to +the crowdprovider associated with this Worker.

+
+ + +
+
+
#   + + PROVIDER_TYPE = 'mturk_sandbox' +
+ + + + +
+
+
#   + + + def + grant_crowd_qualification(self, qualification_name: str, value: int = 1) -> None: +
+ +
+ View Source +
    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker. Check the local
+        MTurk db to find the matching MTurk qualification to grant, and pass
+        that. If no qualification exists, try to create one.
+        """
+        return super().grant_crowd_qualification(qualification_name + "_sandbox", value)
+
+ +
+ +

Grant a qualification by the given name to this worker. Check the local +MTurk db to find the matching MTurk qualification to grant, and pass +that. If no qualification exists, try to create one.

+
+ + +
+
+
#   + + + def + revoke_crowd_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker. Check the local
+        MTurk db to find the matching MTurk qualification to revoke, pass if
+        no such qualification exists.
+        """
+        return super().revoke_crowd_qualification(qualification_name + "_sandbox")
+
+ +
+ +

Revoke the qualification by the given name from this worker. Check the local +MTurk db to find the matching MTurk qualification to revoke, pass if +no such qualification exists.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + worker_id: str +) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker_id: str) -> "Worker":
+        return MTurkWorker._register_worker(db, worker_id + "_sandbox", PROVIDER_TYPE)
+
+ +
+ +

Create a new worker attached to the given identifier, assuming it doesn't already +exist in the database.

+ +

Implementation should return the result of _register_worker when sure the worker +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client.html b/docs/web/static/python_api/mephisto/client.html new file mode 100644 index 000000000..c98e381be --- /dev/null +++ b/docs/web/static/python_api/mephisto/client.html @@ -0,0 +1,521 @@ + + + + + + + + + mephisto.client API documentation + + + + + + + + + +
+
+

+mephisto.client

+ +

API specifications

+ +

All of the endpoints below are GET unless specified otherwise.

+ +

These specs are to be implemented in mephisto/client/api.py.

+ +

Key: 💚 - Data Complete / 💛 - Data Mocked / 💜 - Consumed by UI / 🖤 - Not consumed by UI

+ +

WIP Endpoints / Backlog

+ +
    +
  • Endpoints for actions to modify the review state of a Unit
  • +
  • Endpoint for getting the URL of a task and it's data to show
  • +
  • Make error reponse format more consistent across all endpoints / types of errors. Some stuff from the wild: +
      +
    • https://stripe.com/docs/api/errors
    • +
    • https://cloud.google.com/apis/design/errors#http_mapping
    • +
  • +
+ +
+ +

🕵️‍♀️ Requesters

+ +

/requesters

+ +

💚💜 Shows a list of all the requesters that are available on the local system

+ +

Sample response:

+ +
{
+  "requesters": [
+    {
+      "provider_type": "mturk",
+      "registered": false,
+      "requester_id": "1",
+      "requester_name": "Bob"
+    },
+    {
+      "provider_type": "mturk",
+      "registered": true,
+      "requester_id": "2",
+      "requester_name": "sally"
+    }
+  ]
+}
+
+ +

/requester/<type>

+ +

💚💜 Provides information on what params to provide if you'd like to set up a requester.

+ +

Sample response:

+ +
[
+  {
+    "args": {
+      "access_key_id": {
+        "choices": null,
+        "default": null,
+        "dest": "access_key_id",
+        "help": "IAM Access Key ID",
+        "option_string": "--access-key-id",
+        "type": "str"
+      },
+      // ...
+    },
+    "desc": "\n            MTurkRequester: AWS are required to create a new Requester.\n            Please create an IAM user with programmatic access and\n            AmazonMechanicalTurkFullAccess policy at\n            'https://console.aws.amazon.com/iam/ (On the \"Set permissions\"\n            page, choose \"Attach existing policies directly\" and then select\n            \"AmazonMechanicalTurkFullAccess\" policy). After creating\n            the IAM user, you should get an Access Key ID\n            and Secret Access Key.\n        "
+  }
+]
+
+ +

/<requester_name>/get_balance - TODO: Change to /requester/balance/<requester_name>

+ +

💚💜

+ +

[Discussion] Instead of balance should we make the endpoint a bit more generic, e.g. info or metadata instead? [Yes] This is because perhaps not every requester may have the concept of having a budget, although most might.

+ +

Sample response:

+ +
# Success:
+
+{ "balance": 3000 }
+
+# Error:
+
+{ message: "Could not find the requester" } # [501]
+
+ +

POST /requester/<type>/register

+ +

💛🖤

+ +

Sample response:

+ +
# Success:
+
+{
+  "success": true
+}
+
+# Error:
+
+{
+  "msg": "No name was specified for the requester.",
+  "success": false
+}
+
+ +
+ +

🚀 Launching

+ +

/launch/options

+ +

💛💜

+ +

Sample response:

+ +
{
+  "blueprints": [
+    { "name": "Test Blueprint", "rank": 1 },
+    { "name": "Simple Q+A", "rank": 2 }
+  ],
+  "architects": ["Local", "Heroku"]
+}
+
+ +

/blueprints/<blueprint_name>/arguments

+ +

💛💜

+ +

Sample response:

+ +
{
+  "args": [
+    {
+      "name": "Task name",
+      "defaultValue": "Default Task Name",
+      "helpText": "This is what your task will be named."
+    }
+  ]
+}
+
+ +

/architects/<architect_name>/arguments

+ +

💛💜

+ +

Sample response:

+ +
{
+  "args": [
+    {
+      "name": "Port number",
+      "defaultValue": 8888,
+      "helpText": "Your task will be run on this port."
+    }
+  ]
+}
+
+ +

POST /task_runs/launch

+ +

💛🖤

+ +

Sample request:

+ +
{
+  "blueprint_name": "Test Blueprint",
+  "blueprint_args": [ { ... } ],
+  "architect": "Test Architect",
+  "architect_args": [ { ... } ],
+  "requester": <requester_id>
+}
+
+ +

Sample response:

+ +
# Success:
+
+{
+  "success": true
+}
+
+# Error:
+
+{
+  "success": false,
+  # TODO: How should the server provide validation feedback?
+}
+
+ +
+ +

📥 Review

+ +

/task_runs/running

+ +

💛🖤

+ +

[Discussion] We need to confirm and communicate what exactly we mean by a "running" task. Based on prior discussions, my suspicion is that this categorization is a little difficult. Let's settle on a technical definition.

+ +

Sample response:

+ +
{
+  live_task_count: 1,
+  task_count: 1,
+  task_runs: TaskRun[]
+}
+
+# For full example payload, see `task_runs__running` in mephisto/webapp/src/mocks.ts
+
+ +

/task_runs/reviewable

+ +

💛🖤

+ +

Shows tasks with atleast 1 unit that is reviewable.

+ +

Sample response:

+ +
{
+  "total_reviewable": 8,
+  "task_runs": TaskRun[]
+}
+
+ +

/task_runs/<task_id>/units

+ +

💛🖤

+ +

Sample response:

+ +
{
+  "unit_id": <unit_id>,
+  "view_path": "https://google.com",
+  "data": {
+    "name": "me"
+  }
+}
+
+ +

POST /task_runs/<task_id>/units/<unit_id>/accept

+ +

💛🖤

+ +

[Discussion] Accept params here to allow giving a bonus?

+ +

POST /task_runs/<task_id>/units/<unit_id>/reject

+ +

💛🖤

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/api.html b/docs/web/static/python_api/mephisto/client/api.html new file mode 100644 index 000000000..a6d5c2723 --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/api.html @@ -0,0 +1,1426 @@ + + + + + + + + + mephisto.client.api API documentation + + + + + + + + + +
+
+

+mephisto.client.api

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from flask import Blueprint, jsonify, request  # type: ignore
+from flask import current_app as app  # type: ignore
+from mephisto.abstractions.database import EntryAlreadyExistsException
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.assignment import Assignment
+from mephisto.operations.hydra_config import parse_arg_dict, get_extra_argument_dicts
+from mephisto.operations.registry import (
+    get_blueprint_from_type,
+    get_crowd_provider_from_type,
+    get_architect_from_type,
+    get_valid_blueprint_types,
+    get_valid_provider_types,
+    get_valid_architect_types,
+)
+import sys
+import traceback
+import os
+
+api = Blueprint("api", __name__)
+
+
+@api.route("/requesters")
+def get_available_requesters():
+    db = app.extensions["db"]
+    requesters = db.find_requesters()
+    dict_requesters = [r.to_dict() for r in requesters]
+    return jsonify({"requesters": dict_requesters})
+
+
+@api.route("/task_runs/running")
+def get_running_task_runs():
+    """Find running tasks by querying for all task runs that aren't completed"""
+    db = app.extensions["db"]
+    task_runs = db.find_task_runs(is_completed=False)
+    dict_tasks = [t.to_dict() for t in task_runs if not t.get_is_completed()]
+    live_task_count = len([t for t in dict_tasks if not t["sandbox"]])
+    return jsonify(
+        {
+            "task_runs": dict_tasks,
+            "task_count": len(dict_tasks),
+            "live_task_count": live_task_count,
+        }
+    )
+
+
+@api.route("/task_runs/reviewable")
+def get_reviewable_task_runs():
+    """
+    Find reviewable task runs by querying for all reviewable tasks
+    and getting their runs
+    """
+    db = app.extensions["db"]
+    units = db.find_units(status=AssignmentState.COMPLETED)
+    reviewable_count = len(units)
+    task_run_ids = set([u.get_assignment().get_task_run().db_id for u in units])
+    task_runs = [TaskRun.get(db, db_id) for db_id in task_run_ids]
+    dict_tasks = [t.to_dict() for t in task_runs]
+    # TODO(OWN) maybe include warning for auto approve date once that's tracked
+    return jsonify({"task_runs": dict_tasks, "total_reviewable": reviewable_count})
+
+
+@api.route("/launch/options")
+def launch_options():
+    blueprint_types = get_valid_blueprint_types()
+    architect_types = get_valid_architect_types()
+    provider_types = get_valid_provider_types()
+    return jsonify(
+        {
+            "success": True,
+            "architect_types": architect_types,
+            "provider_types": provider_types,
+            "blueprint_types": [
+                {"name": bp, "rank": idx + 1}
+                for (idx, bp) in enumerate(blueprint_types)
+            ],
+        }
+    )
+
+
+@api.route("/task_runs/launch", methods=["POST"])
+def start_task_run():
+    # Blueprint, CrowdProvider, Architect (Local/Heroku), Dict of arguments
+
+    info = request.get_json(force=True)
+    input_arg_list = []
+    for arg_content in info.values():
+        input_arg_list.append(arg_content["option_string"])
+        input_arg_list.append(arg_content["value"])
+    try:
+        operator = app.extensions["operator"]
+        operator.parse_and_launch_run(input_arg_list)
+        # MOCK? What data would we want to return?
+        # perhaps a link to the task? Will look into soon!
+        return jsonify({"status": "success", "data": info})
+    except Exception as e:
+        traceback.print_exc(file=sys.stdout)
+        return jsonify({"success": False, "msg": f"error in launching job: {str(e)}"})
+
+
+@api.route("/task_runs/<int:task_id>/units")
+def view_unit(task_id):
+    # TODO
+
+    # MOCK
+    return jsonify(
+        {"id": task_id, "view_path": "https://google.com", "data": {"name": "me"}}
+    )
+
+
+@api.route("/task_runs/options")
+def get_basic_task_options():
+    params = get_extra_argument_dicts(TaskRun)
+    return jsonify({"success": True, "options": params})
+
+
+@api.route("/requester/<string:requester_type>/options")
+def requester_details(requester_type):
+    crowd_provider = get_crowd_provider_from_type(requester_type)
+    RequesterClass = crowd_provider.RequesterClass
+    params = get_extra_argument_dicts(RequesterClass)
+    return jsonify(params)
+
+
+@api.route("/requester/<string:requester_type>/register", methods=["POST"])
+def requester_register(requester_type):
+    options = request.get_json()
+    crowd_provider = get_crowd_provider_from_type(requester_type)
+    RequesterClass = crowd_provider.RequesterClass
+
+    try:
+        parsed_options = parse_arg_dict(RequesterClass, options)
+    except Exception as e:
+        traceback.print_exc(file=sys.stdout)
+        return jsonify(
+            {"success": False, "msg": f"error in parsing arguments: {str(e)}"}
+        )
+    if "name" not in parsed_options:
+        return jsonify(
+            {"success": False, "msg": "No name was specified for the requester."}
+        )
+
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=parsed_options["name"])
+    if len(requesters) == 0:
+        requester = RequesterClass.new(db, parsed_options["name"])
+    else:
+        requester = requesters[0]
+    try:
+        print(parsed_options)
+        requester.register(parsed_options)
+        return jsonify({"success": True})
+    except Exception as e:
+        return jsonify({"success": False, "msg": str(e)})
+
+
+@api.route("/data/submitted_data")
+def get_submitted_data():
+    try:
+        task_run_ids = request.args.getlist("task_run_id")
+        task_names = request.args.getlist("task_name")
+        assignment_ids = request.args.getlist("assignment_id")
+        unit_ids = request.args.getlist("unit_ids")
+        statuses = request.args.getlist("status")
+
+        db = app.extensions["db"]
+        units = []
+        assignments = []
+        assert len(task_names) == 0, "Searching via task names not yet supported"
+
+        task_runs = [TaskRun.get(db, task_run_id) for task_run_id in task_run_ids]
+        for task_run in task_runs:
+            assignments += task_run.get_assignments()
+
+        assignments += [
+            Assignment.get(db, assignment_id) for assignment_id in assignment_ids
+        ]
+
+        if len(statuses) == 0:
+            statuses = [
+                AssignmentState.COMPLETED,
+                AssignmentState.ACCEPTED,
+                AssignmentState.REJECTED,
+            ]
+
+        filtered_assignments = [a for a in assignments if a.get_status() in statuses]
+
+        for assignment in assignments:
+            units += assignment.get_units()
+
+        units += [Unit.get(db, unit_id) for unit_id in unit_ids]
+
+        all_unit_data = []
+        for unit in units:
+            unit_data = {
+                "assignment_id": unit.assignment_id,
+                "task_run_id": unit.task_run_id,
+                "status": unit.db_status,
+                "unit_id": unit.db_id,
+                "worker_id": unit.worker_id,
+                "data": None,
+            }
+            agent = unit.get_assigned_agent()
+            if agent is not None:
+                unit_data["data"] = agent.state.get_data()
+                unit_data["worker_id"] = agent.worker_id
+            all_unit_data.append(unit_data)
+
+        print(all_unit_data)
+        return jsonify({"success": True, "units": all_unit_data})
+    except Exception as e:
+        import traceback
+
+        traceback.print_exc()
+        return jsonify({"success": False, "msg": str(e)})
+
+
+@api.route("/<string:requester_name>/get_balance")
+def get_balance(requester_name):
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=requester_name)
+
+    if len(requesters) == 0:
+        return jsonify(
+            {
+                "success": False,
+                "msg": f"No requester available with name: {requester_name}",
+            }
+        )
+
+    requester = requesters[0]
+    return jsonify({"balance": requester.get_available_budget()})
+
+
+@api.route("/requester/<string:requester_name>/launch_options")
+def requester_launch_options(requester_type):
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=requester_name)
+
+    if len(requesters) == 0:
+        return jsonify(
+            {
+                "success": False,
+                "msg": f"No requester available with name: {requester_name}",
+            }
+        )
+    provider_type = requesters[0].provider_type
+    CrowdProviderClass = get_crowd_provider_from_type(requester_type)
+    params = get_extra_argument_dicts(CrowdProviderClass)
+    return jsonify({"success": True, "options": params})
+
+
+@api.route("/blueprints")
+def get_available_blueprints():
+    blueprint_types = get_valid_blueprint_types()
+    return jsonify({"success": True, "blueprint_types": blueprint_types})
+
+
+@api.route("/blueprint/<string:blueprint_type>/options")
+def get_blueprint_arguments(blueprint_type):
+    if blueprint_type == "none":
+        return jsonify({"success": True, "options": {}})
+    BlueprintClass = get_blueprint_from_type(blueprint_type)
+    params = get_extra_argument_dicts(BlueprintClass)
+    return jsonify({"success": True, "options": params})
+
+
+@api.route("/architects")
+def get_available_architects():
+    architect_types = get_valid_architect_types()
+    return jsonify({"success": True, "architect_types": architect_types})
+
+
+@api.route("/architect/<string:architect_type>/options")
+def get_architect_arguments(architect_type):
+    if architect_type == "none":
+        return jsonify({"success": True, "options": {}})
+    ArchitectClass = get_architect_from_type(architect_type)
+    params = get_extra_argument_dicts(ArchitectClass)
+    return jsonify({"success": True, "options": params})
+
+
+@api.route("/unit/<string:unit_id>/accept", methods=["POST"])
+def accept_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+
+@api.route("/unit/<string:unit_id>/reject", methods=["POST"])
+def reject_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+
+@api.route("/unit/<string:unit_id>/softBlock", methods=["POST"])
+def soft_block_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+
+@api.route("/unit/<string:unit_id>/hardBlock", methods=["POST"])
+def hard_block_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+
+@api.route("/error", defaults={"status_code": "501"})
+@api.route("/error/<string:status_code>")
+def intentional_error(status_code):
+    """
+    A helper endpoint to test out cases in the UI where an error occurs.
+    """
+    raise InvalidUsage("An error occured", status_code=int(status_code))
+
+
+class InvalidUsage(Exception):
+    status_code = 400
+
+    def __init__(self, message, status_code=None, payload=None):
+        Exception.__init__(self)
+        self.message = message
+        if status_code is not None:
+            self.status_code = status_code
+        self.payload = payload
+
+    def to_dict(self):
+        rv = dict(self.payload or ())
+        rv["message"] = self.message
+        return rv
+
+
+@api.errorhandler(InvalidUsage)
+def handle_invalid_usage(error):
+    response = jsonify(error.to_dict())
+    response.status_code = error.status_code
+    return response
+
+ +
+ +
+
+
#   + +
@api.route('/requesters')
+ + def + get_available_requesters(): +
+ +
+ View Source +
@api.route("/requesters")
+def get_available_requesters():
+    db = app.extensions["db"]
+    requesters = db.find_requesters()
+    dict_requesters = [r.to_dict() for r in requesters]
+    return jsonify({"requesters": dict_requesters})
+
+ +
+ + + +
+
+
#   + +
@api.route('/task_runs/running')
+ + def + get_running_task_runs(): +
+ +
+ View Source +
@api.route("/task_runs/running")
+def get_running_task_runs():
+    """Find running tasks by querying for all task runs that aren't completed"""
+    db = app.extensions["db"]
+    task_runs = db.find_task_runs(is_completed=False)
+    dict_tasks = [t.to_dict() for t in task_runs if not t.get_is_completed()]
+    live_task_count = len([t for t in dict_tasks if not t["sandbox"]])
+    return jsonify(
+        {
+            "task_runs": dict_tasks,
+            "task_count": len(dict_tasks),
+            "live_task_count": live_task_count,
+        }
+    )
+
+ +
+ +

Find running tasks by querying for all task runs that aren't completed

+
+ + +
+
+
#   + +
@api.route('/task_runs/reviewable')
+ + def + get_reviewable_task_runs(): +
+ +
+ View Source +
@api.route("/task_runs/reviewable")
+def get_reviewable_task_runs():
+    """
+    Find reviewable task runs by querying for all reviewable tasks
+    and getting their runs
+    """
+    db = app.extensions["db"]
+    units = db.find_units(status=AssignmentState.COMPLETED)
+    reviewable_count = len(units)
+    task_run_ids = set([u.get_assignment().get_task_run().db_id for u in units])
+    task_runs = [TaskRun.get(db, db_id) for db_id in task_run_ids]
+    dict_tasks = [t.to_dict() for t in task_runs]
+    # TODO(OWN) maybe include warning for auto approve date once that's tracked
+    return jsonify({"task_runs": dict_tasks, "total_reviewable": reviewable_count})
+
+ +
+ +

Find reviewable task runs by querying for all reviewable tasks +and getting their runs

+
+ + +
+
+
#   + +
@api.route('/launch/options')
+ + def + launch_options(): +
+ +
+ View Source +
@api.route("/launch/options")
+def launch_options():
+    blueprint_types = get_valid_blueprint_types()
+    architect_types = get_valid_architect_types()
+    provider_types = get_valid_provider_types()
+    return jsonify(
+        {
+            "success": True,
+            "architect_types": architect_types,
+            "provider_types": provider_types,
+            "blueprint_types": [
+                {"name": bp, "rank": idx + 1}
+                for (idx, bp) in enumerate(blueprint_types)
+            ],
+        }
+    )
+
+ +
+ + + +
+
+
#   + +
@api.route('/task_runs/launch', methods=['POST'])
+ + def + start_task_run(): +
+ +
+ View Source +
@api.route("/task_runs/launch", methods=["POST"])
+def start_task_run():
+    # Blueprint, CrowdProvider, Architect (Local/Heroku), Dict of arguments
+
+    info = request.get_json(force=True)
+    input_arg_list = []
+    for arg_content in info.values():
+        input_arg_list.append(arg_content["option_string"])
+        input_arg_list.append(arg_content["value"])
+    try:
+        operator = app.extensions["operator"]
+        operator.parse_and_launch_run(input_arg_list)
+        # MOCK? What data would we want to return?
+        # perhaps a link to the task? Will look into soon!
+        return jsonify({"status": "success", "data": info})
+    except Exception as e:
+        traceback.print_exc(file=sys.stdout)
+        return jsonify({"success": False, "msg": f"error in launching job: {str(e)}"})
+
+ +
+ + + +
+
+
#   + +
@api.route('/task_runs/<int:task_id>/units')
+ + def + view_unit(task_id): +
+ +
+ View Source +
@api.route("/task_runs/<int:task_id>/units")
+def view_unit(task_id):
+    # TODO
+
+    # MOCK
+    return jsonify(
+        {"id": task_id, "view_path": "https://google.com", "data": {"name": "me"}}
+    )
+
+ +
+ + + +
+
+
#   + +
@api.route('/task_runs/options')
+ + def + get_basic_task_options(): +
+ +
+ View Source +
@api.route("/task_runs/options")
+def get_basic_task_options():
+    params = get_extra_argument_dicts(TaskRun)
+    return jsonify({"success": True, "options": params})
+
+ +
+ + + +
+
+
#   + +
@api.route('/requester/<string:requester_type>/options')
+ + def + requester_details(requester_type): +
+ +
+ View Source +
@api.route("/requester/<string:requester_type>/options")
+def requester_details(requester_type):
+    crowd_provider = get_crowd_provider_from_type(requester_type)
+    RequesterClass = crowd_provider.RequesterClass
+    params = get_extra_argument_dicts(RequesterClass)
+    return jsonify(params)
+
+ +
+ + + +
+
+
#   + +
@api.route('/requester/<string:requester_type>/register', methods=['POST'])
+ + def + requester_register(requester_type): +
+ +
+ View Source +
@api.route("/requester/<string:requester_type>/register", methods=["POST"])
+def requester_register(requester_type):
+    options = request.get_json()
+    crowd_provider = get_crowd_provider_from_type(requester_type)
+    RequesterClass = crowd_provider.RequesterClass
+
+    try:
+        parsed_options = parse_arg_dict(RequesterClass, options)
+    except Exception as e:
+        traceback.print_exc(file=sys.stdout)
+        return jsonify(
+            {"success": False, "msg": f"error in parsing arguments: {str(e)}"}
+        )
+    if "name" not in parsed_options:
+        return jsonify(
+            {"success": False, "msg": "No name was specified for the requester."}
+        )
+
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=parsed_options["name"])
+    if len(requesters) == 0:
+        requester = RequesterClass.new(db, parsed_options["name"])
+    else:
+        requester = requesters[0]
+    try:
+        print(parsed_options)
+        requester.register(parsed_options)
+        return jsonify({"success": True})
+    except Exception as e:
+        return jsonify({"success": False, "msg": str(e)})
+
+ +
+ + + +
+
+
#   + +
@api.route('/data/submitted_data')
+ + def + get_submitted_data(): +
+ +
+ View Source +
@api.route("/data/submitted_data")
+def get_submitted_data():
+    try:
+        task_run_ids = request.args.getlist("task_run_id")
+        task_names = request.args.getlist("task_name")
+        assignment_ids = request.args.getlist("assignment_id")
+        unit_ids = request.args.getlist("unit_ids")
+        statuses = request.args.getlist("status")
+
+        db = app.extensions["db"]
+        units = []
+        assignments = []
+        assert len(task_names) == 0, "Searching via task names not yet supported"
+
+        task_runs = [TaskRun.get(db, task_run_id) for task_run_id in task_run_ids]
+        for task_run in task_runs:
+            assignments += task_run.get_assignments()
+
+        assignments += [
+            Assignment.get(db, assignment_id) for assignment_id in assignment_ids
+        ]
+
+        if len(statuses) == 0:
+            statuses = [
+                AssignmentState.COMPLETED,
+                AssignmentState.ACCEPTED,
+                AssignmentState.REJECTED,
+            ]
+
+        filtered_assignments = [a for a in assignments if a.get_status() in statuses]
+
+        for assignment in assignments:
+            units += assignment.get_units()
+
+        units += [Unit.get(db, unit_id) for unit_id in unit_ids]
+
+        all_unit_data = []
+        for unit in units:
+            unit_data = {
+                "assignment_id": unit.assignment_id,
+                "task_run_id": unit.task_run_id,
+                "status": unit.db_status,
+                "unit_id": unit.db_id,
+                "worker_id": unit.worker_id,
+                "data": None,
+            }
+            agent = unit.get_assigned_agent()
+            if agent is not None:
+                unit_data["data"] = agent.state.get_data()
+                unit_data["worker_id"] = agent.worker_id
+            all_unit_data.append(unit_data)
+
+        print(all_unit_data)
+        return jsonify({"success": True, "units": all_unit_data})
+    except Exception as e:
+        import traceback
+
+        traceback.print_exc()
+        return jsonify({"success": False, "msg": str(e)})
+
+ +
+ + + +
+
+
#   + +
@api.route('/<string:requester_name>/get_balance')
+ + def + get_balance(requester_name): +
+ +
+ View Source +
@api.route("/<string:requester_name>/get_balance")
+def get_balance(requester_name):
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=requester_name)
+
+    if len(requesters) == 0:
+        return jsonify(
+            {
+                "success": False,
+                "msg": f"No requester available with name: {requester_name}",
+            }
+        )
+
+    requester = requesters[0]
+    return jsonify({"balance": requester.get_available_budget()})
+
+ +
+ + + +
+
+
#   + +
@api.route('/requester/<string:requester_name>/launch_options')
+ + def + requester_launch_options(requester_type): +
+ +
+ View Source +
@api.route("/requester/<string:requester_name>/launch_options")
+def requester_launch_options(requester_type):
+    db = app.extensions["db"]
+    requesters = db.find_requesters(requester_name=requester_name)
+
+    if len(requesters) == 0:
+        return jsonify(
+            {
+                "success": False,
+                "msg": f"No requester available with name: {requester_name}",
+            }
+        )
+    provider_type = requesters[0].provider_type
+    CrowdProviderClass = get_crowd_provider_from_type(requester_type)
+    params = get_extra_argument_dicts(CrowdProviderClass)
+    return jsonify({"success": True, "options": params})
+
+ +
+ + + +
+
+
#   + +
@api.route('/blueprints')
+ + def + get_available_blueprints(): +
+ +
+ View Source +
@api.route("/blueprints")
+def get_available_blueprints():
+    blueprint_types = get_valid_blueprint_types()
+    return jsonify({"success": True, "blueprint_types": blueprint_types})
+
+ +
+ + + +
+
+
#   + +
@api.route('/blueprint/<string:blueprint_type>/options')
+ + def + get_blueprint_arguments(blueprint_type): +
+ +
+ View Source +
@api.route("/blueprint/<string:blueprint_type>/options")
+def get_blueprint_arguments(blueprint_type):
+    if blueprint_type == "none":
+        return jsonify({"success": True, "options": {}})
+    BlueprintClass = get_blueprint_from_type(blueprint_type)
+    params = get_extra_argument_dicts(BlueprintClass)
+    return jsonify({"success": True, "options": params})
+
+ +
+ + + +
+
+
#   + +
@api.route('/architects')
+ + def + get_available_architects(): +
+ +
+ View Source +
@api.route("/architects")
+def get_available_architects():
+    architect_types = get_valid_architect_types()
+    return jsonify({"success": True, "architect_types": architect_types})
+
+ +
+ + + +
+
+
#   + +
@api.route('/architect/<string:architect_type>/options')
+ + def + get_architect_arguments(architect_type): +
+ +
+ View Source +
@api.route("/architect/<string:architect_type>/options")
+def get_architect_arguments(architect_type):
+    if architect_type == "none":
+        return jsonify({"success": True, "options": {}})
+    ArchitectClass = get_architect_from_type(architect_type)
+    params = get_extra_argument_dicts(ArchitectClass)
+    return jsonify({"success": True, "options": params})
+
+ +
+ + + +
+
+
#   + +
@api.route('/unit/<string:unit_id>/accept', methods=['POST'])
+ + def + accept_unit(unit_id): +
+ +
+ View Source +
@api.route("/unit/<string:unit_id>/accept", methods=["POST"])
+def accept_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+ +
+ + + +
+
+
#   + +
@api.route('/unit/<string:unit_id>/reject', methods=['POST'])
+ + def + reject_unit(unit_id): +
+ +
+ View Source +
@api.route("/unit/<string:unit_id>/reject", methods=["POST"])
+def reject_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+ +
+ + + +
+
+
#   + +
@api.route('/unit/<string:unit_id>/softBlock', methods=['POST'])
+ + def + soft_block_unit(unit_id): +
+ +
+ View Source +
@api.route("/unit/<string:unit_id>/softBlock", methods=["POST"])
+def soft_block_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+ +
+ + + +
+
+
#   + +
@api.route('/unit/<string:unit_id>/hardBlock', methods=['POST'])
+ + def + hard_block_unit(unit_id): +
+ +
+ View Source +
@api.route("/unit/<string:unit_id>/hardBlock", methods=["POST"])
+def hard_block_unit(unit_id):
+    return jsonify({"success": True})
+    pass
+
+ +
+ + + +
+
+
#   + +
@api.route('/error', defaults={'status_code': '501'})
+
@api.route('/error/<string:status_code>')
+ + def + intentional_error(status_code): +
+ +
+ View Source +
@api.route("/error", defaults={"status_code": "501"})
+@api.route("/error/<string:status_code>")
+def intentional_error(status_code):
+    """
+    A helper endpoint to test out cases in the UI where an error occurs.
+    """
+    raise InvalidUsage("An error occured", status_code=int(status_code))
+
+ +
+ +

A helper endpoint to test out cases in the UI where an error occurs.

+
+ + +
+
+
+ #   + + + class + InvalidUsage(builtins.Exception): +
+ +
+ View Source +
class InvalidUsage(Exception):
+    status_code = 400
+
+    def __init__(self, message, status_code=None, payload=None):
+        Exception.__init__(self)
+        self.message = message
+        if status_code is not None:
+            self.status_code = status_code
+        self.payload = payload
+
+    def to_dict(self):
+        rv = dict(self.payload or ())
+        rv["message"] = self.message
+        return rv
+
+ +
+ +

Common base class for all non-exit exceptions.

+
+ + +
+
#   + + + InvalidUsage(message, status_code=None, payload=None) +
+ +
+ View Source +
    def __init__(self, message, status_code=None, payload=None):
+        Exception.__init__(self)
+        self.message = message
+        if status_code is not None:
+            self.status_code = status_code
+        self.payload = payload
+
+ +
+ + + +
+
+
#   + + status_code = 400 +
+ + + + +
+
+
#   + + + def + to_dict(self): +
+ +
+ View Source +
    def to_dict(self):
+        rv = dict(self.payload or ())
+        rv["message"] = self.message
+        return rv
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
#   + +
@api.errorhandler(InvalidUsage)
+ + def + handle_invalid_usage(error): +
+ +
+ View Source +
@api.errorhandler(InvalidUsage)
+def handle_invalid_usage(error):
+    response = jsonify(error.to_dict())
+    response.status_code = error.status_code
+    return response
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/cli.html b/docs/web/static/python_api/mephisto/client/cli.html new file mode 100644 index 000000000..7e4bf5279 --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/cli.html @@ -0,0 +1,608 @@ + + + + + + + + + mephisto.client.cli API documentation + + + + + + + + + +
+
+

+mephisto.client.cli

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import click  # type: ignore
+import os
+from click_default_group import DefaultGroup  # type: ignore
+
+from omegaconf import MISSING
+
+
+# @click.group(cls=DefaultGroup, default="web", default_if_no_args=True)
+@click.group(cls=DefaultGroup)
+def cli():
+    pass
+
+
+@cli.command("web")
+def web():
+    """Launch a local webserver with the Mephisto UI"""
+    from mephisto.client.full.server import app
+
+    app.run(debug=False)
+
+
+@cli.command("config")
+@click.argument("identifier", type=(str), default=None, required=False)
+@click.argument("value", type=(str), default=None, required=False)
+def config(identifier, value):
+    from mephisto.operations.config_handler import (
+        get_config_arg,
+        add_config_arg,
+        get_raw_config,
+        DEFAULT_CONFIG_FILE,
+    )
+
+    if identifier is None and value is None:
+        # If no args, show full config:
+        click.echo(f"{DEFAULT_CONFIG_FILE}:\n")
+        click.echo(get_raw_config())
+        return
+
+    if "." not in identifier:
+        raise click.BadParameter(
+            f"Identifier must be of format: <section>.<key>\nYou passed in: {identifier}"
+        )
+    [section, key] = identifier.split(".")
+
+    if value is None:
+        # Read mode:
+        click.echo(get_config_arg(section, key))
+    else:
+        # Write mode:
+        add_config_arg(section, key, value)
+        click.echo(f"{identifier} succesfully updated to: {value}")
+
+
+@cli.command("review")
+@click.argument(
+    "review_app_dir",
+    type=click.Path(exists=True),
+    default=os.path.join(os.path.dirname(__file__), "review/default-ui"),
+)
+@click.option("-p", "--port", type=(int), default=5000)
+@click.option("-o", "--output", type=(str), default="")
+@click.option("-a", "--assets", "assets_dir", type=(str), default=None)
+@click.option("--stdout", "output_method", flag_value="stdout")
+@click.option("--file", "output_method", flag_value="file", default=True)
+@click.option("--csv-headers/--no-csv-headers", default=False)
+@click.option("--json/--csv", default=False)
+@click.option("--db", "database_task_name", type=(str), default=None)
+@click.option("--all/--one-by-one", "all_data", default=False)
+@click.option("-d", "--debug", type=(bool), default=False)
+def review(
+    review_app_dir,
+    port,
+    output,
+    output_method,
+    csv_headers,
+    json,
+    database_task_name,
+    all_data,
+    debug,
+    assets_dir,
+):
+    """Launch a local review UI server. Reads in rows froms stdin and outputs to either a file or stdout."""
+    from mephisto.client.review.review_server import run
+
+    if output == "" and output_method == "file":
+        raise click.UsageError(
+            "You must specify an output file via --output=<filename>, unless the --stdout flag is set."
+        )
+    if database_task_name is not None:
+        from mephisto.abstractions.databases.local_database import LocalMephistoDB
+        from mephisto.tools.data_browser import DataBrowser as MephistoDataBrowser
+
+        db = LocalMephistoDB()
+        mephisto_data_browser = MephistoDataBrowser(db=db)
+        name_list = mephisto_data_browser.get_task_name_list()
+        if database_task_name not in name_list:
+            raise click.BadParameter(
+                f'The task name "{database_task_name}" did not exist in MephistoDB.\n\nPerhaps you meant one of these? {", ".join(name_list)}\n\nFlag usage: mephisto review --db [task_name]\n'
+            )
+
+    run(
+        review_app_dir,
+        port,
+        output,
+        csv_headers,
+        json,
+        database_task_name,
+        all_data,
+        debug,
+        assets_dir,
+    )
+
+
+@cli.command("check")
+def check():
+    """Checks that mephisto is setup correctly"""
+    from mephisto.abstractions.databases.local_database import LocalMephistoDB
+    from mephisto.utils.testing import get_mock_requester
+
+    try:
+        db = LocalMephistoDB()
+        get_mock_requester(db)
+    except Exception as e:
+        click.echo("Something went wrong.")
+        click.echo(e)
+        return
+    click.echo("Mephisto seems to be set up correctly.")
+
+
+@cli.command("requesters")
+def list_requesters():
+    """Lists all registered requesters"""
+    from mephisto.abstractions.databases.local_database import LocalMephistoDB
+    from tabulate import tabulate
+
+    db = LocalMephistoDB()
+    requesters = db.find_requesters()
+    dict_requesters = [r.to_dict() for r in requesters]
+    click.echo(tabulate(dict_requesters, headers="keys"))
+
+
+@cli.command("register", context_settings={"ignore_unknown_options": True})
+@click.argument("args", nargs=-1)
+def register_provider(args):
+    """Register a requester with a crowd provider"""
+    if len(args) == 0:
+        click.echo("Usage: mephisto register <provider_type> arg1=value arg2=value")
+        return
+
+    from mephisto.abstractions.databases.local_database import LocalMephistoDB
+    from mephisto.operations.registry import get_crowd_provider_from_type
+    from mephisto.operations.hydra_config import (
+        parse_arg_dict,
+        get_extra_argument_dicts,
+    )
+
+    provider_type, requester_args = args[0], args[1:]
+    args_dict = dict(arg.split("=", 1) for arg in requester_args)
+
+    crowd_provider = get_crowd_provider_from_type(provider_type)
+    RequesterClass = crowd_provider.RequesterClass
+
+    if len(requester_args) == 0:
+        from tabulate import tabulate
+
+        params = get_extra_argument_dicts(RequesterClass)
+        for param in params:
+            click.echo(param["desc"])
+            click.echo(tabulate(param["args"].values(), headers="keys"))
+        return
+
+    try:
+        parsed_options = parse_arg_dict(RequesterClass, args_dict)
+    except Exception as e:
+        click.echo(str(e))
+
+    if parsed_options.name is None:
+        click.echo("No name was specified for the requester.")
+
+    db = LocalMephistoDB()
+    requesters = db.find_requesters(requester_name=parsed_options.name)
+    if len(requesters) == 0:
+        requester = RequesterClass.new(db, parsed_options.name)
+    else:
+        requester = requesters[0]
+    try:
+        requester.register(parsed_options)
+        click.echo("Registered successfully.")
+    except Exception as e:
+        click.echo(str(e))
+
+
+@cli.command("wut", context_settings={"ignore_unknown_options": True})
+@click.argument("args", nargs=-1)
+def get_help_arguments(args):
+    if len(args) == 0:
+        click.echo(
+            "Usage: mephisto wut <abstraction>[=<type>] [...specific args to check]"
+        )
+        return
+
+    from mephisto.operations.registry import (
+        get_blueprint_from_type,
+        get_crowd_provider_from_type,
+        get_architect_from_type,
+        get_valid_blueprint_types,
+        get_valid_provider_types,
+        get_valid_architect_types,
+    )
+    from mephisto.operations.hydra_config import (
+        get_extra_argument_dicts,
+        get_task_state_dicts,
+    )
+    from textwrap import wrap
+
+    VALID_ABSTRACTIONS = ["blueprint", "architect", "requester", "provider", "task"]
+
+    abstraction_equal_split = args[0].split("=", 1)
+    abstraction = abstraction_equal_split[0]
+
+    if abstraction not in VALID_ABSTRACTIONS:
+        click.echo(
+            f"Given abstraction {abstraction} not in valid abstractions {VALID_ABSTRACTIONS}"
+        )
+        return
+
+    if abstraction == "task":
+        from mephisto.data_model.task_run import TaskRun
+
+        target_class = TaskRun
+    else:
+        if len(abstraction_equal_split) == 1:
+            # querying about the general abstraction
+            if abstraction == "blueprint":
+                click.echo(
+                    f"The blueprint determines the task content. Valid blueprints are {get_valid_blueprint_types()}"
+                )
+                return
+            elif abstraction == "architect":
+                click.echo(
+                    f"The architect determines the server where a task is hosted. Valid architects are {get_valid_architect_types()}"
+                )
+                return
+            elif abstraction == "requester":
+                click.echo(
+                    f"The requester is an account for a crowd provider. Valid requester types are {get_valid_provider_types()}. \n"
+                    "Use `mephisto requesters` to see registered requesters, and `mephisto register <requester type>` to register."
+                )
+                return
+            elif abstraction == "provider":
+                click.echo(
+                    f"The crowd provider determines the source of the crowd workers. Valid provider are {get_valid_provider_types()}"
+                )
+                return
+
+        # There's a specific abstraction to check
+        abstract_value = abstraction_equal_split[1]
+        target_class = None
+        valid = None
+        if abstraction == "blueprint":
+            try:
+                target_class = get_blueprint_from_type(abstract_value)
+            except:
+                valid = get_valid_blueprint_types()
+        elif abstraction == "architect":
+            try:
+                target_class = get_architect_from_type(abstract_value)
+            except:
+                valid = get_valid_architect_types()
+        elif abstraction == "provider":
+            try:
+                target_class = get_crowd_provider_from_type(abstract_value)
+            except:
+                valid = get_valid_provider_types()
+        elif abstraction == "requester":
+            try:
+                target_class = get_crowd_provider_from_type(
+                    abstract_value
+                ).RequesterClass
+            except:
+                valid = get_valid_provider_types()
+        if valid is not None:
+            click.echo(
+                f"The valid types for {abstraction} are {valid}. '{abstract_value}' not found."
+            )
+            return
+
+    from tabulate import tabulate
+
+    def wrap_fields(in_dict):
+        return {
+            out_key: {
+                in_key: "\n".join(wrap(str(in_val), width=40))
+                for in_key, in_val in out_val.items()
+            }
+            for out_key, out_val in in_dict.items()
+        }
+
+    arg_dict = get_extra_argument_dicts(target_class)[0]
+    click.echo(arg_dict["desc"])
+    checking_args = arg_dict["args"]
+    if len(args) > 1:
+        checking_args = {k: v for k, v in checking_args.items() if k in args[1:]}
+    click.echo(tabulate(wrap_fields(checking_args).values(), headers="keys"))
+    if abstraction == "blueprint":
+        click.echo(
+            f"Additional SharedTaskState args from {target_class.SharedStateClass.__name__}, which may be configured in your run script"
+        )
+        state_args = get_task_state_dicts(target_class)[0]["args"]
+        if len(args) > 1:
+            state_args = {k: v for k, v in state_args.items() if k in args[1:]}
+        click.echo(tabulate(wrap_fields(state_args).values(), headers="keys"))
+
+
+@cli.command("metrics", context_settings={"ignore_unknown_options": True})
+@click.argument("args", nargs=-1)
+def metrics_cli(args):
+    from mephisto.utils.metrics import (
+        launch_servers_and_wait,
+        metrics_are_installed,
+        run_install_script,
+        METRICS_DIR,
+        shutdown_prometheus_server,
+        shutdown_grafana_server,
+    )
+
+    if len(args) == 0 or args[0] not in ["install", "view", "cleanup"]:
+        click.echo(
+            "Usage: mephisto metrics <install|view|cleanup>\n"
+            f"install: Installs Prometheus and Grafana to {METRICS_DIR}\n"
+            f"view: Launches a Prometheus and Grafana server, and shuts down on exit\n"
+            f"cleanup: Shuts down Prometheus and Grafana resources that may have persisted"
+        )
+        return
+    command = args[0]
+    if command == "install":
+        if metrics_are_installed():
+            click.echo(f"Metrics are already installed! See {METRICS_DIR}")
+            return
+        run_install_script()
+    elif command == "view":
+        if not metrics_are_installed():
+            click.echo(
+                f"Metrics aren't installed! Use `mephisto metrics install` first."
+            )
+            return
+        click.echo(f"Servers launching - use ctrl-C to shutdown")
+        launch_servers_and_wait()
+    else:  # command == 'cleanup':
+        if not metrics_are_installed():
+            click.echo(
+                f"Metrics aren't installed! Use `mephisto metrics install` first."
+            )
+            return
+        click.echo(f"Cleaning up existing servers if they exist")
+        shutdown_prometheus_server()
+        shutdown_grafana_server()
+
+
+if __name__ == "__main__":
+    cli()
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/config.html b/docs/web/static/python_api/mephisto/client/config.html new file mode 100644 index 000000000..a7eca09f4 --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/config.html @@ -0,0 +1,307 @@ + + + + + + + + + mephisto.client.config API documentation + + + + + + + + + +
+
+

+mephisto.client.config

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+class Config:
+    ENV = "development"
+
+ +
+ +
+
+
+ #   + + + class + Config: +
+ +
+ View Source +
class Config:
+    ENV = "development"
+
+ +
+ + + +
+
#   + + + Config() +
+ + + + +
+
+
#   + + ENV = 'development' +
+ + + + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/full.html b/docs/web/static/python_api/mephisto/client/full.html new file mode 100644 index 000000000..fa0413d8d --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/full.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.client.full API documentation + + + + + + + + + +
+
+

+mephisto.client.full

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/full/server.html b/docs/web/static/python_api/mephisto/client/full/server.html new file mode 100644 index 000000000..48b15f3d1 --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/full/server.html @@ -0,0 +1,370 @@ + + + + + + + + + mephisto.client.full.server API documentation + + + + + + + + + +
+
+

+mephisto.client.full.server

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from flask import Flask, send_file, jsonify  # type: ignore
+from mephisto.client.config import Config
+from mephisto.client.api import api
+from mephisto.operations.operator import Operator
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+
+import os
+import atexit
+import signal
+
+
+def main():
+    app = Flask(
+        __name__, static_url_path="/static", static_folder="webapp/build/static"
+    )
+    app.config.from_object(Config)
+
+    app.register_blueprint(api, url_prefix="/api/v1")
+
+    # Register extensions
+    db = LocalMephistoDB()
+    operator = Operator(db)
+    if not hasattr(app, "extensions"):
+        app.extensions = {}
+    app.extensions["db"] = db
+    app.extensions["operator"] = operator
+
+    @app.route("/", defaults={"path": "index.html"})
+    @app.route("/<path:path>")
+    def index(path):
+        return send_file(os.path.join("webapp", "build", "index.html"))
+
+    @app.after_request
+    def after_request(response):
+        response.headers.add("Access-Control-Allow-Origin", "*")
+        response.headers.add(
+            "Access-Control-Allow-Headers", "Content-Type,Authorization"
+        )
+        response.headers.add(
+            "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"
+        )
+        response.headers.add("Cache-Control", "no-store")
+        return response
+
+    term_handler = signal.getsignal(signal.SIGINT)
+
+    def cleanup_resources(*args, **kwargs):
+        operator.shutdown()
+        db.shutdown()
+        term_handler(*args, **kwargs)
+
+    atexit.register(cleanup_resources)
+    signal.signal(signal.SIGINT, cleanup_resources)
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    app = Flask(
+        __name__, static_url_path="/static", static_folder="webapp/build/static"
+    )
+    app.config.from_object(Config)
+
+    app.register_blueprint(api, url_prefix="/api/v1")
+
+    # Register extensions
+    db = LocalMephistoDB()
+    operator = Operator(db)
+    if not hasattr(app, "extensions"):
+        app.extensions = {}
+    app.extensions["db"] = db
+    app.extensions["operator"] = operator
+
+    @app.route("/", defaults={"path": "index.html"})
+    @app.route("/<path:path>")
+    def index(path):
+        return send_file(os.path.join("webapp", "build", "index.html"))
+
+    @app.after_request
+    def after_request(response):
+        response.headers.add("Access-Control-Allow-Origin", "*")
+        response.headers.add(
+            "Access-Control-Allow-Headers", "Content-Type,Authorization"
+        )
+        response.headers.add(
+            "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"
+        )
+        response.headers.add("Cache-Control", "no-store")
+        return response
+
+    term_handler = signal.getsignal(signal.SIGINT)
+
+    def cleanup_resources(*args, **kwargs):
+        operator.shutdown()
+        db.shutdown()
+        term_handler(*args, **kwargs)
+
+    atexit.register(cleanup_resources)
+    signal.signal(signal.SIGINT, cleanup_resources)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/review.html b/docs/web/static/python_api/mephisto/client/review.html new file mode 100644 index 000000000..45f2a7343 --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/review.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.client.review API documentation + + + + + + + + + +
+
+

+mephisto.client.review

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/client/review/review_server.html b/docs/web/static/python_api/mephisto/client/review/review_server.html new file mode 100644 index 000000000..4f2ea09be --- /dev/null +++ b/docs/web/static/python_api/mephisto/client/review/review_server.html @@ -0,0 +1,1017 @@ + + + + + + + + + mephisto.client.review.review_server API documentation + + + + + + + + + +
+
+

+mephisto.client.review.review_server

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from flask import Flask, Blueprint, send_file, jsonify, request  # type: ignore
+from datetime import datetime
+import os
+import atexit
+import signal
+import csv
+import sys
+import time
+import threading
+import urllib.parse
+import collections
+import math
+
+
+def run(
+    build_dir,
+    port,
+    output,
+    csv_headers,
+    json=False,
+    database_task_name=None,
+    all_data=False,
+    debug=False,
+    assets_dir=None,
+):
+    global index_file, app
+    global ready_for_next, current_data, finished, index_file
+    global counter
+    global all_data_list, datalist_update_time
+
+    RESULTS_PER_PAGE_DEFAULT = 10
+    TIMEOUT_IN_SECONDS = 300
+    USE_TIMEOUT = True
+    MODE = "ALL" if all_data else "OBO"
+    RESULT_SUCCESS = "SUCCESS"
+    RESULT_ERROR = "ERROR"
+
+    DataQueryResult = collections.namedtuple(
+        "DataQueryResult", ["data_list", "total_pages"]
+    )
+
+    if not debug or output == "":
+        # disable noisy logging of flask, https://stackoverflow.com/a/18379764
+        import logging
+
+        flask_log = logging.getLogger("werkzeug")
+        flask_log.disabled = True
+        flask_cli = sys.modules["flask.cli"]
+        flask_cli.show_server_banner = lambda *x: None
+
+    app = Flask(
+        __name__,
+        root_path=os.getcwd(),
+        static_url_path="/static",
+        static_folder=build_dir + "/static",
+    )
+
+    if assets_dir:
+        assets_blueprint = Blueprint(
+            "additional_assets",
+            __name__,
+            static_url_path="/assets",
+            static_folder=assets_dir,
+        )
+        app.register_blueprint(assets_blueprint)
+
+    def json_reader(f):
+        import json
+
+        for jsonline in f:
+            yield json.loads(jsonline)
+
+    def mephistoDBReader():
+        from mephisto.abstractions.databases.local_database import LocalMephistoDB
+        from mephisto.tools.data_browser import DataBrowser as MephistoDataBrowser
+
+        db = LocalMephistoDB()
+        mephisto_data_browser = MephistoDataBrowser(db=db)
+
+        units = mephisto_data_browser.get_units_for_task_name(database_task_name)
+        for unit in units:
+            yield mephisto_data_browser.get_data_from_unit(unit)
+
+    def consume_data():
+        """For use in "one-by-one" or default mode. Runs on a seperate thread to consume mephisto review data line by line and update global variables to temporarily store this data"""
+        global ready_for_next, current_data, finished, counter
+
+        if database_task_name is not None:
+            data_source = mephistoDBReader()
+        elif json:
+            data_source = json_reader(iter(sys.stdin.readline, ""))
+        else:
+            data_source = csv.reader(iter(sys.stdin.readline, ""))
+            if csv_headers:
+                next(data_source)
+
+        finished = False
+        counter = 0
+        for row in data_source:
+            ready_for_next = threading.Event()
+            current_data = row
+            counter += 1
+            ready_for_next.wait()
+        finished = True
+
+    def consume_all_data(page, results_per_page=RESULTS_PER_PAGE_DEFAULT, filters=None):
+        """
+        For use in "all" mode.
+        Returns:
+            A DataQueryResult type namedtuple consisting of a filtered list of all data or a page of all data
+            as well as the total pages of data available.
+            The list of data is stored in DataQueryResult.data_list.
+            The total number of pages is stored in DataQueryResult.total_pages.
+        Params:
+            page: 1 indexed page number integer
+            results_per_page: maximum number of results per page
+            filters: keywords or sentences to filter data for. must be a list
+        """
+        global all_data_list, datalist_update_time
+        paginated = type(page) is int
+        if paginated:
+            assert page > 0, "Page number should be a positive 1 indexed integer."
+            assert (
+                type(results_per_page) is int and results_per_page > 0
+            ), "results_per_page should be a positive integer"
+
+        first_index = (page - 1) * results_per_page if paginated else 0
+
+        if database_task_name is not None:
+            # If differnce in time since the last update to the data list is over 5 minutes, update list again
+            # This can only be done for usage with mephistoDB as standard input is exhausted when originally creating the list
+            now = datetime.now()
+            if (
+                USE_TIMEOUT
+                and (now - datalist_update_time).total_seconds() > TIMEOUT_IN_SECONDS
+            ):
+                refresh_all_list_data()
+
+        filtered_data_list = all_data_list
+        if type(filters) is list:
+            filtered_data_list = [
+                item
+                for item in all_data_list
+                if all(word.lower() in str(item["data"]).lower() for word in filters)
+            ]
+        list_len = len(filtered_data_list)
+        total_pages = math.ceil(list_len / results_per_page) if paginated else 1
+
+        if paginated:
+            if first_index > list_len - 1:
+                filtered_data_list = []
+            else:
+                results_per_page = (
+                    min(first_index + results_per_page, list_len) - first_index
+                )
+                if results_per_page < 0:
+                    filtered_data_list = []
+                else:
+                    filtered_data_list = filtered_data_list[
+                        first_index : first_index + results_per_page
+                    ]
+
+        return DataQueryResult(filtered_data_list, total_pages)
+
+    def refresh_all_list_data():
+        """For use in "all" mode. Refreshes all data list when the data source is mephistoDB, allowing for new entries in the db to be included in the review"""
+        global all_data_list, datalist_update_time
+        data_source = mephistoDBReader()
+        all_data_list = []
+        count = 0
+        for row in data_source:
+            all_data_list.append({"data": row, "id": count})
+            count += 1
+        datalist_update_time = datetime.now()
+
+    @app.route("/data_for_current_task")
+    def data():
+        """
+        *** DEPRECATED ***
+        For use in "one-by-one" or default mode.
+        Based on global variables set by the consume_data method returns the piece of data currently being reviewed.
+        If there is no more data being reviewed the app is shut down.
+        """
+        global current_data, finished
+        if all_data:
+            return jsonify(
+                {
+                    "error": 'mephisto review is in all mode, please get data by sending a GET request to "/data/:id"'
+                }
+            )
+        if finished:
+            func = request.environ.get("werkzeug.server.shutdown")
+            if func is None:
+                raise RuntimeError("Not running with the Werkzeug Server")
+            func()
+
+        return jsonify(
+            {"finished": finished, "data": current_data if not finished else None}
+        )
+
+    @app.route("/submit_current_task", methods=["GET", "POST"])
+    def next_task():
+        """
+        *** DEPRECATED ***
+        For use in "one-by-one" or default mode.
+        This route allows users to submit reviews for tasks.
+        All review data must be contained within the body of the request.
+        The review data is written directly to the output file specified in mephisto review.
+        """
+        global current_data, ready_for_next, finished, counter
+        if all_data:
+            return jsonify(
+                {
+                    "error": 'mephisto review is in all mode, please submit reviews by sending a POST request to "/data/:id"'
+                }
+            )
+        result = (
+            request.get_json(force=True)
+            if request.method == "POST"
+            else request.args.get("result")
+        )
+
+        if output == "":
+            print("{}".format(result))
+            sys.stdout.flush()
+        else:
+            with open(output, "a+") as f:
+                f.write("{}\n".format(result))
+
+        ready_for_next.set()
+        time.sleep(0)
+        return jsonify({"finished": finished, "counter": counter})
+
+    @app.route("/data/<id>", methods=["GET", "POST"])
+    def task_data_by_id(id):
+        """
+        This route takes a parameter of the id of an item being reviewed.
+        This id represents the index (beginning at 0) of the item in the list of items being reviewed.
+        If this route receives a GET request the data of the item at that position in the list of review items is returned.
+        If this route receives a POST request a review is written for the item at the given index based on the body of JSON in the request.
+        Accordingly for POST requests all review data must be in the JSON body of the request.
+        The JSON for the review is written directly into the output file specified for mephisto review.
+        """
+        global finished, current_data, ready_for_next, counter, all_data_list
+        id = int(id) if type(id) is int or (type(id) is str and id.isdigit()) else None
+        if request.method == "GET":
+            if all_data:
+                list_len = len(all_data_list)
+                if id is None or id < 0 or id >= list_len:
+                    return jsonify(
+                        {"error": f"Data with ID: {id} does not exist", "mode": MODE}
+                    )
+                return jsonify({"data": all_data_list[id], "mode": MODE})
+            else:
+                if id is None or id != counter - 1:
+                    return jsonify(
+                        {
+                            "error": f"Please review the data point with ID: {counter - 1}",
+                            "mode": MODE,
+                        }
+                    )
+                data = {
+                    "data": current_data if not finished else None,
+                    "id": counter - 1,
+                }
+                if finished:
+                    func = request.environ.get("werkzeug.server.shutdown")
+                    if func is None:
+                        raise RuntimeError("Not running with the Werkzeug Server")
+                    func()
+                return jsonify(
+                    {
+                        "finished": finished,
+                        "data": data,
+                        "mode": MODE,
+                    }
+                )
+        else:
+            review = request.get_json(force=True)
+            if output == "":
+                print("ID: {}, REVIEW: {}".format(id, review))
+                sys.stdout.flush()
+            else:
+                with open(output, "a+") as f:
+                    f.write("ID: {}, REVIEW: {}\n".format(id, review))
+            if not all_data:
+                ready_for_next.set()
+                time.sleep(0)
+            return jsonify(
+                {"result": RESULT_SUCCESS, "finished": finished, "mode": MODE}
+            )
+
+    @app.route("/data")
+    def all_task_data():
+        """
+        This route returns the list of all data being reviewed if the app is in "all" mode.
+        Otherwise this route returns the id and data of the item currently being reviewed in "one-by-one" or standard mode.
+        The id in the response refers to the index (beginning at 0) of the item being reviewed in the list of all items being reviewed.
+        Params:
+            page: 1 indexed page number for results
+            results_per_page: number of results to show per page, must be positive integer
+            filters: string representing keywords or senteces results must contain.
+                Filters must be comma separated and spaced must be denoted by '%20'
+        """
+        global counter, current_data, all_data_list, finished
+        if all_data:
+            page = request.args.get("page", default=None, type=int)
+            results_per_page = request.args.get(
+                "results_per_page", default=RESULTS_PER_PAGE_DEFAULT, type=int
+            )
+            filters_str = request.args.get("filters", default=None, type=str)
+            filters = None
+            if type(filters_str) is str:
+                filters_str = urllib.parse.unquote(filters_str)
+                filters = filters_str.split(",")
+                filters = [filt.strip() for filt in filters]
+            try:
+                data = consume_all_data(page, results_per_page, filters)
+                return jsonify(
+                    {
+                        "data": data.data_list,
+                        "mode": MODE,
+                        "total_pages": data.total_pages,
+                    }
+                )
+            except AssertionError as ae:
+                print(f"Error: {ae.args[0]}")
+                sys.stdout.flush()
+                return jsonify({"error": ae.args[0], "mode": MODE})
+        else:
+            data = {"data": current_data if not finished else None, "id": counter - 1}
+            return jsonify({"data": data, "mode": MODE, "finished": finished})
+
+    @app.route("/", defaults={"id": None})
+    @app.route("/<id>")
+    def index(id):
+        global index_file
+        return send_file(build_dir + "/index.html")
+
+    @app.after_request
+    def after_request(response):
+        response.headers.add("Access-Control-Allow-Origin", "*")
+        response.headers.add(
+            "Access-Control-Allow-Headers", "Content-Type,Authorization"
+        )
+        response.headers.add(
+            "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"
+        )
+        response.headers.add("Cache-Control", "no-store")
+        return response
+
+    if all_data:
+        # if reading all data points, all data is loaded into memory before the app starts
+        if database_task_name is not None:
+            data_source = mephistoDBReader()
+        elif json:
+            data_source = json_reader(iter(sys.stdin.readline, ""))
+        else:
+            data_source = csv.reader(iter(sys.stdin.readline, ""))
+            if csv_headers:
+                next(data_source)
+
+        all_data_list = []
+        count = 0
+        for row in data_source:
+            all_data_list.append({"data": row, "id": count})
+            count += 1
+        datalist_update_time = datetime.now()
+        finished = False
+    else:
+        thread = threading.Thread(target=consume_data, name="review-server-thread")
+        thread.start()
+    print("Running on http://127.0.0.1:{}/ (Press CTRL+C to quit)".format(port))
+    sys.stdout.flush()
+    app.run(debug=False, port=port)
+
+ +
+ +
+
+
#   + + + def + run( + build_dir, + port, + output, + csv_headers, + json=False, + database_task_name=None, + all_data=False, + debug=False, + assets_dir=None +): +
+ +
+ View Source +
def run(
+    build_dir,
+    port,
+    output,
+    csv_headers,
+    json=False,
+    database_task_name=None,
+    all_data=False,
+    debug=False,
+    assets_dir=None,
+):
+    global index_file, app
+    global ready_for_next, current_data, finished, index_file
+    global counter
+    global all_data_list, datalist_update_time
+
+    RESULTS_PER_PAGE_DEFAULT = 10
+    TIMEOUT_IN_SECONDS = 300
+    USE_TIMEOUT = True
+    MODE = "ALL" if all_data else "OBO"
+    RESULT_SUCCESS = "SUCCESS"
+    RESULT_ERROR = "ERROR"
+
+    DataQueryResult = collections.namedtuple(
+        "DataQueryResult", ["data_list", "total_pages"]
+    )
+
+    if not debug or output == "":
+        # disable noisy logging of flask, https://stackoverflow.com/a/18379764
+        import logging
+
+        flask_log = logging.getLogger("werkzeug")
+        flask_log.disabled = True
+        flask_cli = sys.modules["flask.cli"]
+        flask_cli.show_server_banner = lambda *x: None
+
+    app = Flask(
+        __name__,
+        root_path=os.getcwd(),
+        static_url_path="/static",
+        static_folder=build_dir + "/static",
+    )
+
+    if assets_dir:
+        assets_blueprint = Blueprint(
+            "additional_assets",
+            __name__,
+            static_url_path="/assets",
+            static_folder=assets_dir,
+        )
+        app.register_blueprint(assets_blueprint)
+
+    def json_reader(f):
+        import json
+
+        for jsonline in f:
+            yield json.loads(jsonline)
+
+    def mephistoDBReader():
+        from mephisto.abstractions.databases.local_database import LocalMephistoDB
+        from mephisto.tools.data_browser import DataBrowser as MephistoDataBrowser
+
+        db = LocalMephistoDB()
+        mephisto_data_browser = MephistoDataBrowser(db=db)
+
+        units = mephisto_data_browser.get_units_for_task_name(database_task_name)
+        for unit in units:
+            yield mephisto_data_browser.get_data_from_unit(unit)
+
+    def consume_data():
+        """For use in "one-by-one" or default mode. Runs on a seperate thread to consume mephisto review data line by line and update global variables to temporarily store this data"""
+        global ready_for_next, current_data, finished, counter
+
+        if database_task_name is not None:
+            data_source = mephistoDBReader()
+        elif json:
+            data_source = json_reader(iter(sys.stdin.readline, ""))
+        else:
+            data_source = csv.reader(iter(sys.stdin.readline, ""))
+            if csv_headers:
+                next(data_source)
+
+        finished = False
+        counter = 0
+        for row in data_source:
+            ready_for_next = threading.Event()
+            current_data = row
+            counter += 1
+            ready_for_next.wait()
+        finished = True
+
+    def consume_all_data(page, results_per_page=RESULTS_PER_PAGE_DEFAULT, filters=None):
+        """
+        For use in "all" mode.
+        Returns:
+            A DataQueryResult type namedtuple consisting of a filtered list of all data or a page of all data
+            as well as the total pages of data available.
+            The list of data is stored in DataQueryResult.data_list.
+            The total number of pages is stored in DataQueryResult.total_pages.
+        Params:
+            page: 1 indexed page number integer
+            results_per_page: maximum number of results per page
+            filters: keywords or sentences to filter data for. must be a list
+        """
+        global all_data_list, datalist_update_time
+        paginated = type(page) is int
+        if paginated:
+            assert page > 0, "Page number should be a positive 1 indexed integer."
+            assert (
+                type(results_per_page) is int and results_per_page > 0
+            ), "results_per_page should be a positive integer"
+
+        first_index = (page - 1) * results_per_page if paginated else 0
+
+        if database_task_name is not None:
+            # If differnce in time since the last update to the data list is over 5 minutes, update list again
+            # This can only be done for usage with mephistoDB as standard input is exhausted when originally creating the list
+            now = datetime.now()
+            if (
+                USE_TIMEOUT
+                and (now - datalist_update_time).total_seconds() > TIMEOUT_IN_SECONDS
+            ):
+                refresh_all_list_data()
+
+        filtered_data_list = all_data_list
+        if type(filters) is list:
+            filtered_data_list = [
+                item
+                for item in all_data_list
+                if all(word.lower() in str(item["data"]).lower() for word in filters)
+            ]
+        list_len = len(filtered_data_list)
+        total_pages = math.ceil(list_len / results_per_page) if paginated else 1
+
+        if paginated:
+            if first_index > list_len - 1:
+                filtered_data_list = []
+            else:
+                results_per_page = (
+                    min(first_index + results_per_page, list_len) - first_index
+                )
+                if results_per_page < 0:
+                    filtered_data_list = []
+                else:
+                    filtered_data_list = filtered_data_list[
+                        first_index : first_index + results_per_page
+                    ]
+
+        return DataQueryResult(filtered_data_list, total_pages)
+
+    def refresh_all_list_data():
+        """For use in "all" mode. Refreshes all data list when the data source is mephistoDB, allowing for new entries in the db to be included in the review"""
+        global all_data_list, datalist_update_time
+        data_source = mephistoDBReader()
+        all_data_list = []
+        count = 0
+        for row in data_source:
+            all_data_list.append({"data": row, "id": count})
+            count += 1
+        datalist_update_time = datetime.now()
+
+    @app.route("/data_for_current_task")
+    def data():
+        """
+        *** DEPRECATED ***
+        For use in "one-by-one" or default mode.
+        Based on global variables set by the consume_data method returns the piece of data currently being reviewed.
+        If there is no more data being reviewed the app is shut down.
+        """
+        global current_data, finished
+        if all_data:
+            return jsonify(
+                {
+                    "error": 'mephisto review is in all mode, please get data by sending a GET request to "/data/:id"'
+                }
+            )
+        if finished:
+            func = request.environ.get("werkzeug.server.shutdown")
+            if func is None:
+                raise RuntimeError("Not running with the Werkzeug Server")
+            func()
+
+        return jsonify(
+            {"finished": finished, "data": current_data if not finished else None}
+        )
+
+    @app.route("/submit_current_task", methods=["GET", "POST"])
+    def next_task():
+        """
+        *** DEPRECATED ***
+        For use in "one-by-one" or default mode.
+        This route allows users to submit reviews for tasks.
+        All review data must be contained within the body of the request.
+        The review data is written directly to the output file specified in mephisto review.
+        """
+        global current_data, ready_for_next, finished, counter
+        if all_data:
+            return jsonify(
+                {
+                    "error": 'mephisto review is in all mode, please submit reviews by sending a POST request to "/data/:id"'
+                }
+            )
+        result = (
+            request.get_json(force=True)
+            if request.method == "POST"
+            else request.args.get("result")
+        )
+
+        if output == "":
+            print("{}".format(result))
+            sys.stdout.flush()
+        else:
+            with open(output, "a+") as f:
+                f.write("{}\n".format(result))
+
+        ready_for_next.set()
+        time.sleep(0)
+        return jsonify({"finished": finished, "counter": counter})
+
+    @app.route("/data/<id>", methods=["GET", "POST"])
+    def task_data_by_id(id):
+        """
+        This route takes a parameter of the id of an item being reviewed.
+        This id represents the index (beginning at 0) of the item in the list of items being reviewed.
+        If this route receives a GET request the data of the item at that position in the list of review items is returned.
+        If this route receives a POST request a review is written for the item at the given index based on the body of JSON in the request.
+        Accordingly for POST requests all review data must be in the JSON body of the request.
+        The JSON for the review is written directly into the output file specified for mephisto review.
+        """
+        global finished, current_data, ready_for_next, counter, all_data_list
+        id = int(id) if type(id) is int or (type(id) is str and id.isdigit()) else None
+        if request.method == "GET":
+            if all_data:
+                list_len = len(all_data_list)
+                if id is None or id < 0 or id >= list_len:
+                    return jsonify(
+                        {"error": f"Data with ID: {id} does not exist", "mode": MODE}
+                    )
+                return jsonify({"data": all_data_list[id], "mode": MODE})
+            else:
+                if id is None or id != counter - 1:
+                    return jsonify(
+                        {
+                            "error": f"Please review the data point with ID: {counter - 1}",
+                            "mode": MODE,
+                        }
+                    )
+                data = {
+                    "data": current_data if not finished else None,
+                    "id": counter - 1,
+                }
+                if finished:
+                    func = request.environ.get("werkzeug.server.shutdown")
+                    if func is None:
+                        raise RuntimeError("Not running with the Werkzeug Server")
+                    func()
+                return jsonify(
+                    {
+                        "finished": finished,
+                        "data": data,
+                        "mode": MODE,
+                    }
+                )
+        else:
+            review = request.get_json(force=True)
+            if output == "":
+                print("ID: {}, REVIEW: {}".format(id, review))
+                sys.stdout.flush()
+            else:
+                with open(output, "a+") as f:
+                    f.write("ID: {}, REVIEW: {}\n".format(id, review))
+            if not all_data:
+                ready_for_next.set()
+                time.sleep(0)
+            return jsonify(
+                {"result": RESULT_SUCCESS, "finished": finished, "mode": MODE}
+            )
+
+    @app.route("/data")
+    def all_task_data():
+        """
+        This route returns the list of all data being reviewed if the app is in "all" mode.
+        Otherwise this route returns the id and data of the item currently being reviewed in "one-by-one" or standard mode.
+        The id in the response refers to the index (beginning at 0) of the item being reviewed in the list of all items being reviewed.
+        Params:
+            page: 1 indexed page number for results
+            results_per_page: number of results to show per page, must be positive integer
+            filters: string representing keywords or senteces results must contain.
+                Filters must be comma separated and spaced must be denoted by '%20'
+        """
+        global counter, current_data, all_data_list, finished
+        if all_data:
+            page = request.args.get("page", default=None, type=int)
+            results_per_page = request.args.get(
+                "results_per_page", default=RESULTS_PER_PAGE_DEFAULT, type=int
+            )
+            filters_str = request.args.get("filters", default=None, type=str)
+            filters = None
+            if type(filters_str) is str:
+                filters_str = urllib.parse.unquote(filters_str)
+                filters = filters_str.split(",")
+                filters = [filt.strip() for filt in filters]
+            try:
+                data = consume_all_data(page, results_per_page, filters)
+                return jsonify(
+                    {
+                        "data": data.data_list,
+                        "mode": MODE,
+                        "total_pages": data.total_pages,
+                    }
+                )
+            except AssertionError as ae:
+                print(f"Error: {ae.args[0]}")
+                sys.stdout.flush()
+                return jsonify({"error": ae.args[0], "mode": MODE})
+        else:
+            data = {"data": current_data if not finished else None, "id": counter - 1}
+            return jsonify({"data": data, "mode": MODE, "finished": finished})
+
+    @app.route("/", defaults={"id": None})
+    @app.route("/<id>")
+    def index(id):
+        global index_file
+        return send_file(build_dir + "/index.html")
+
+    @app.after_request
+    def after_request(response):
+        response.headers.add("Access-Control-Allow-Origin", "*")
+        response.headers.add(
+            "Access-Control-Allow-Headers", "Content-Type,Authorization"
+        )
+        response.headers.add(
+            "Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"
+        )
+        response.headers.add("Cache-Control", "no-store")
+        return response
+
+    if all_data:
+        # if reading all data points, all data is loaded into memory before the app starts
+        if database_task_name is not None:
+            data_source = mephistoDBReader()
+        elif json:
+            data_source = json_reader(iter(sys.stdin.readline, ""))
+        else:
+            data_source = csv.reader(iter(sys.stdin.readline, ""))
+            if csv_headers:
+                next(data_source)
+
+        all_data_list = []
+        count = 0
+        for row in data_source:
+            all_data_list.append({"data": row, "id": count})
+            count += 1
+        datalist_update_time = datetime.now()
+        finished = False
+    else:
+        thread = threading.Thread(target=consume_data, name="review-server-thread")
+        thread.start()
+    print("Running on http://127.0.0.1:{}/ (Press CTRL+C to quit)".format(port))
+    sys.stdout.flush()
+    app.run(debug=False, port=port)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model.html b/docs/web/static/python_api/mephisto/data_model.html new file mode 100644 index 000000000..faa71e237 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model.html @@ -0,0 +1,351 @@ + + + + + + + + + mephisto.data_model API documentation + + + + + + + + + +
+
+

+mephisto.data_model

+ +

Data Model

+ +

This folder contains classes that generally represent the lowest levels of abstraction in Mephisto, lying as closely to the actual data as possible.

+ +

Philosophy

+ +

The mephisto data model consists of important classes to formalize some of the concepts that are required for interacting with tasks, crowdsourcing providers, workers, etc. These classes try to abstract away some of the underlying convenience of working with mephisto into a common location, and are designed both to be extended from (in the form of creating child classes for specialized cases, or for the purpose of testing) and behind (like eventually supporting a common database for organizational use). All of the classes are to be database-backed, in that creation of these objects should populate the database, and most content will be linked through there. In this way, the state is maintained by the database, and the objects are collections of convenience methods for interacting with the underlying data model.

+ +

Note: This abstraction is broken specifically in the case of Agents that are currently in a task, as their running task world relies on the specific Agent instance that is currently being tracked and updated by the WorkerPool.

+ +

Database-backed Base Classes

+ +

The following classes are the units of Mephisto, in that they keep track of what mephisto is doing, where things are stored, history of workers, etc. The rest of the system in general should only be utilizing these classes to make any operations, allowing them to be a strong abstraction layer.

+ +

Project

+ +

High level project that many crowdsourcing tasks may be related to. Useful for budgeting and grouping tasks for a review perspective. They are primarily a bookkeeping tool. At the moment they are fairly under-implemented, but can certainly be extended.

+ +

Task

+ +

The Task class is required to create a group of TaskRuns for the purpose of aggregation and bookkeeping. Much of what is present in the current Task implementation can be deprecated. Much of the functionality here for ensuring that a task has common arguments and correct components is now stored in the Blueprint concept.

+ +

Eventually the Task code can be deprecated and replaced with useful aggregation functionality across TaskRuns within.

+ +

TaskRun

+ +

This class keeps track of the configuration options and all assignments associated with an individual launch of a task. It also provides utility functions for ensuring workers can be assigned units (get_valid_units_for_worker, reserve_unit).

+ +

Generally has 3 states:

+ +
    +
  • Setup (not yet launched, _has_assignments=False, _is_completed=False): Before launch while the Mephisto architecture is still building the components required to launch this run.
  • +
  • In Flight (launched, _has_assignments=True, _is_completed=False): After launch, when tasks are still in flight and may still be updating statuses.
  • +
  • Completed (all tasks done/expired, _has_assignments=True, _is_completed=True): Once a task run is fully complete and no tasks will be launched anymore, it's ready for review.
  • +
+ +

Configuration parameters for launching a specific run are stored in the form of a json dump of the configuration file provided for the launch.

+ +

Assignment

+ +

This class represents a single unit of work, or a thing that needs to be done. This can be something like "annotate this specific image" or "Have a conversation between two specified characters." It can be seen as an individual instantiation of the more general Task described above. As it is mostly captured by the Blueprint running the task, the only remaining components are knowing where the data is stored (get_assignment_data), tracking the assignment status (get_status) and knowing which Workers and Units are associated with that progress.

+ +

Unit

+ +

This class represents the role that an individual fills in completing an assignment. An individual worker should only complete one Unit per assignment, which covers the idea of having multiple people in a conversation, or different annotators for a specific task. The Unit is the first abstract class that needs to be synced with a CrowdProvider, as in order to know the status of the work (generally if it's ongoing or disconnected or such), it may be necessary to talk to an external provider.

+ +

Worker

+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user. Workers can be blocked, unblocked, and bonused. You can also get all of the Agents associated with a worker. Ultimately, Workers are tightly coupled with a CrowdProvider, as the identity of a person is tied to where we get them from.

+ +

Agent

+ +

This class encompasses a worker as they are working on an individual assignment. It maintains details for the current task at hand such as start and end time, connection status, etc. Generally this is an abstraction the worker operating at a frontend and the backend interactions. The WorkerPool and ClientIOHandler classese are responsible for maintaining most of that abstraction, so this class mostly needs to implement ways to approve and reject work, as well as get a work's status or mark it as done when the final work is received.

+ +

Requester

+ +

This class encompasses your identity as it is known by a CrowdProvider you intend to launch tasks on. It keeps track of some metadata on your account (such as your budget) but also some Mephisto usage statistics (such as amount spent in total from that requester).

+ +

Qualification and GrantedQualification

+ +

These classes act as a method for assigning Mephisto-backed qualifications to workers in a manner such that the same qualifications can be used across multiple different crowd providers, or with crowd providers that don't normally provide a method for granting qualifications before a worker connects.

+ +

Non-Database backed abstractions

+ +

Some classes in the data model aren't backed by the data model because they are generally lightweight views of existing data or transient containers.

+ +

Packet

+ +

Encapsulates messages being sent from the ClientIOhandler to any Mephisto server.

+ +

Constants

+ +

Some Mephisto constants that are able to standardize values across multiple classes live in the data model within the contants folder.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/_db_backed_meta.html b/docs/web/static/python_api/mephisto/data_model/_db_backed_meta.html new file mode 100644 index 000000000..abd56aabb --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/_db_backed_meta.html @@ -0,0 +1,657 @@ + + + + + + + + + mephisto.data_model._db_backed_meta API documentation + + + + + + + + + +
+
+

+mephisto.data_model._db_backed_meta

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import asyncio
+from functools import partial
+from typing import List, Optional, Tuple, Mapping, Dict, Any, TYPE_CHECKING
+
+from abc import ABCMeta
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+
+
+def base_db_backed_call(my_super, cls, a, kw):
+    """
+    Metaclass __call__ method, pulled out so we can have separate
+    versions with and without ABCMeta.
+
+    Checks the database first for an optimized load, then loads
+    normally, then caches the result if desired
+    """
+    db = a[0]
+    db_id = a[1]
+    row = kw.get("row")
+    loaded_val = db.optimized_load(cls, db_id, row)
+    if loaded_val is None:
+        loaded_val = my_super.__call__(*a, **kw)
+        db.cache_result(cls, loaded_val)
+    return loaded_val
+
+
+class MephistoDBBackedABCMeta(ABCMeta):
+    """
+    Metaclass that overrides `call` to allow the current `MephistoDB` an
+    opportunity to do an optimized load if desired. Provides more control
+    over the creation of objects than normal.
+
+    Extends ABCMeta, so that we can use this for the abstract classes
+    """
+
+    def __call__(cls, *a, **kw):
+        return base_db_backed_call(super(), cls, a, kw)
+
+
+class MephistoDBBackedMeta(type):
+    """
+    Metaclass that overrides `call` to allow the current `MephistoDB` an
+    opportunity to do an optimized load if desired. Provides more control
+    over the creation of objects than normal.
+    """
+
+    def __call__(cls, *a, **kw):
+        return base_db_backed_call(super(), cls, a, kw)
+
+
+class MephistoDataModelComponentMixin:
+    """
+    Mixin that provides the `get` method for classes in the Mephisto data model
+    """
+
+    @classmethod
+    def get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        loaded_val = db.optimized_load(cls, db_id, row)
+        if loaded_val is None:
+            loaded_val = cls.__call__(db, db_id, row=row, _used_new_call=True)
+            db.cache_result(cls, loaded_val)
+        return loaded_val
+
+    @classmethod
+    async def async_get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Async wrapper for retrieving from the db. In the future, if a db implements
+        a different get method, will call that instead.
+        """
+        loop = asyncio.get_running_loop()
+        return await loop.run_in_executor(
+            None,
+            partial(
+                cls.get,
+                db,
+                db_id,
+                row=row,
+            ),
+        )
+
+ +
+ +
+
+
#   + + + def + base_db_backed_call(my_super, cls, a, kw): +
+ +
+ View Source +
def base_db_backed_call(my_super, cls, a, kw):
+    """
+    Metaclass __call__ method, pulled out so we can have separate
+    versions with and without ABCMeta.
+
+    Checks the database first for an optimized load, then loads
+    normally, then caches the result if desired
+    """
+    db = a[0]
+    db_id = a[1]
+    row = kw.get("row")
+    loaded_val = db.optimized_load(cls, db_id, row)
+    if loaded_val is None:
+        loaded_val = my_super.__call__(*a, **kw)
+        db.cache_result(cls, loaded_val)
+    return loaded_val
+
+ +
+ +

Metaclass __call__ method, pulled out so we can have separate +versions with and without ABCMeta.

+ +

Checks the database first for an optimized load, then loads +normally, then caches the result if desired

+
+ + +
+
+
+ #   + + + class + MephistoDBBackedABCMeta(abc.ABCMeta): +
+ +
+ View Source +
class MephistoDBBackedABCMeta(ABCMeta):
+    """
+    Metaclass that overrides `call` to allow the current `MephistoDB` an
+    opportunity to do an optimized load if desired. Provides more control
+    over the creation of objects than normal.
+
+    Extends ABCMeta, so that we can use this for the abstract classes
+    """
+
+    def __call__(cls, *a, **kw):
+        return base_db_backed_call(super(), cls, a, kw)
+
+ +
+ +

Metaclass that overrides call to allow the current MephistoDB an +opportunity to do an optimized load if desired. Provides more control +over the creation of objects than normal.

+ +

Extends ABCMeta, so that we can use this for the abstract classes

+
+ + +
+
Inherited Members
+
+
builtins.type
+
type
+
mro
+ +
+
abc.ABCMeta
+
register
+ +
+
+
+
+
+
+ #   + + + class + MephistoDBBackedMeta(builtins.type): +
+ +
+ View Source +
class MephistoDBBackedMeta(type):
+    """
+    Metaclass that overrides `call` to allow the current `MephistoDB` an
+    opportunity to do an optimized load if desired. Provides more control
+    over the creation of objects than normal.
+    """
+
+    def __call__(cls, *a, **kw):
+        return base_db_backed_call(super(), cls, a, kw)
+
+ +
+ +

Metaclass that overrides call to allow the current MephistoDB an +opportunity to do an optimized load if desired. Provides more control +over the creation of objects than normal.

+
+ + +
+
Inherited Members
+
+
builtins.type
+
type
+
mro
+ +
+
+
+
+
+
+ #   + + + class + MephistoDataModelComponentMixin: +
+ +
+ View Source +
class MephistoDataModelComponentMixin:
+    """
+    Mixin that provides the `get` method for classes in the Mephisto data model
+    """
+
+    @classmethod
+    def get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        loaded_val = db.optimized_load(cls, db_id, row)
+        if loaded_val is None:
+            loaded_val = cls.__call__(db, db_id, row=row, _used_new_call=True)
+            db.cache_result(cls, loaded_val)
+        return loaded_val
+
+    @classmethod
+    async def async_get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Async wrapper for retrieving from the db. In the future, if a db implements
+        a different get method, will call that instead.
+        """
+        loop = asyncio.get_running_loop()
+        return await loop.run_in_executor(
+            None,
+            partial(
+                cls.get,
+                db,
+                db_id,
+                row=row,
+            ),
+        )
+
+ +
+ +

Mixin that provides the get method for classes in the Mephisto data model

+
+ + +
+
#   + + + MephistoDataModelComponentMixin() +
+ + + + +
+
+
#   + +
@classmethod
+ + def + get( + cls, + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +): +
+ +
+ View Source +
    @classmethod
+    def get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        loaded_val = db.optimized_load(cls, db_id, row)
+        if loaded_val is None:
+            loaded_val = cls.__call__(db, db_id, row=row, _used_new_call=True)
+            db.cache_result(cls, loaded_val)
+        return loaded_val
+
+ +
+ + + +
+
+
#   + +
@classmethod
+ + async def + async_get( + cls, + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None +): +
+ +
+ View Source +
    @classmethod
+    async def async_get(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        """
+        Async wrapper for retrieving from the db. In the future, if a db implements
+        a different get method, will call that instead.
+        """
+        loop = asyncio.get_running_loop()
+        return await loop.run_in_executor(
+            None,
+            partial(
+                cls.get,
+                db,
+                db_id,
+                row=row,
+            ),
+        )
+
+ +
+ +

Async wrapper for retrieving from the db. In the future, if a db implements +a different get method, will call that instead.

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/agent.html b/docs/web/static/python_api/mephisto/data_model/agent.html new file mode 100644 index 000000000..6adb1b93a --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/agent.html @@ -0,0 +1,3306 @@ + + + + + + + + + mephisto.data_model.agent API documentation + + + + + + + + + +
+
+

+mephisto.data_model.agent

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from __future__ import annotations
+
+import os
+import threading
+from queue import Queue
+from uuid import uuid4
+from prometheus_client import Gauge  # type: ignore
+
+from abc import ABC, abstractmethod, abstractstaticmethod
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model.worker import Worker
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedABCMeta,
+    MephistoDataModelComponentMixin,
+)
+from mephisto.data_model.exceptions import (
+    AgentReturnedError,
+    AgentDisconnectedError,
+    AgentTimeoutError,
+    AgentShutdownError,
+)
+
+from typing import List, Optional, Tuple, Mapping, Dict, Any, cast, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.packet import Packet
+    from mephisto.data_model.task import Task
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.operations.datatypes import LiveTaskRun
+
+from mephisto.utils.logger_core import get_logger, warn_once
+
+logger = get_logger(name=__name__)
+
+
+ACTIVE_AGENT_STATUSES = Gauge(
+    "active_agent_statuses",
+    "Tracking of all units current statuses",
+    ["status", "agent_type"],
+)
+for status in AgentState.valid():
+    ACTIVE_AGENT_STATUSES.labels(status=status, agent_type="main")
+    ACTIVE_AGENT_STATUSES.labels(status=status, agent_type="onboarding")
+ACTIVE_WORKERS = Gauge(
+    "active_workers",
+    "Tracking of active workers and how many agents they have",
+    ["worker_id", "agent_type"],
+)
+
+
+# TODO(CLEAN) can probably refactor out some kind of AgentBase
+class Agent(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Agent and data model access via ...Agent(db, id) was "
+                "now deprecated in favor of calling Agent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.unit_id: str = row["unit_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.assignment_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._unit: Optional["Unit"] = None
+        self._assignment: Optional["Assignment"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization is deferred
+        self._state = None  # type: ignore
+
+    @property
+    def state(self) -> "AgentState":
+        if self._state is None:
+            self._state = AgentState(self)  # type: ignore
+        return cast("AgentState", self._state)
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+    def get_agent_id(self) -> str:
+        """Return this agent's id"""
+        return self.db_id
+
+    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+    def get_unit(self) -> "Unit":
+        """
+        Return the Unit that this agent is working on.
+        """
+        if self._unit is None:
+            from mephisto.data_model.unit import Unit
+
+            self._unit = Unit.get(self.db, self.unit_id)
+        return self._unit
+
+    def get_assignment(self) -> "Assignment":
+        """Return the assignment this agent is working on"""
+        if self._assignment is None:
+            if self._unit is not None:
+                self._assignment = self._unit.get_assignment()
+            else:
+                from mephisto.data_model.assignment import Assignment
+
+                self._assignment = Assignment.get(self.db, self.assignment_id)
+        return self._assignment
+
+    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            if self._unit is not None:
+                self._task_run = self._unit.get_task_run()
+            elif self._assignment is not None:
+                self._task_run = self._assignment.get_task_run()
+            else:
+                from mephisto.data_model.task_run import TaskRun
+
+                self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._unit is not None:
+                self._task = self._unit.get_task()
+            elif self._assignment is not None:
+                self._task = self._assignment.get_task()
+            elif self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        assignment_dir = self.get_assignment().get_data_dir()
+        return os.path.join(assignment_dir, self.db_id)
+
+    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.push_status_update(self)
+            )
+        if new_status in [
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+        ]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+            if old_status == AgentState.STATUS_WAITING:
+                # Waiting agents' unit can be reassigned, as no work
+                # has been done yet.
+                unit = self.get_unit()
+                logger.debug(f"Clearing {self} from {unit} for update to {new_status}")
+                unit.clear_assigned_agent()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="main").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="main").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(worker_id=self.worker_id, agent_type="main").dec()
+
+    @staticmethod
+    def _register_agent(
+        db: "MephistoDB", worker: Worker, unit: "Unit", provider_type: str
+    ) -> "Agent":
+        """
+        Create this agent in the mephisto db with the correct setup
+        """
+        unit._mark_agent_assignment()
+        db_id = db.new_agent(
+            worker.db_id,
+            unit.db_id,
+            unit.task_id,
+            unit.task_run_id,
+            unit.assignment_id,
+            unit.task_type,
+            provider_type,
+        )
+        a = Agent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="main"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="main").inc()
+        logger.debug(f"Registered new agent {a} for {unit}.")
+        a.update_status(AgentState.STATUS_ACCEPTED)
+        return a
+
+    # Specialized child cases may need to implement the following
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: Worker,
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        agent = cls.new(db, worker, unit)
+        unit.worker_id = worker.db_id
+        agent._unit = unit
+        return agent
+
+    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            # various disconnect cases
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if self._associated_live_run is not None:
+                    live_run = self.get_live_run()
+                    live_run.loop_wrap.execute_coro(
+                        live_run.worker_pool.push_status_update(self)
+                    )
+            self.db_status = row["status"]
+        return self.db_status
+
+    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes should implement the following methods
+
+    def approve_work(self) -> None:
+        """Approve the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def soft_reject_work(self) -> None:
+        """
+        Pay a worker for attempted work, but mark it as below the
+        quality bar for this assignment
+        """
+        # TODO(OWN) extend this method to assign a soft block
+        # qualification automatically if a threshold of
+        # soft rejects as a proportion of total accepts
+        # is exceeded
+        self.approve_work()
+        self.update_status(AgentState.STATUS_SOFT_REJECTED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def mark_done(self) -> None:
+        """
+        Take any required step with the crowd_provider to ensure that
+        the worker can submit their work and be marked as complete via
+        a call to get_status
+        """
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, unit: "Unit") -> "Agent":
+        """
+        Create an agent for this worker to be used for work on the given Unit.
+
+        Implementation should return the result of _register_agent when sure the agent
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+
+class OnboardingAgent(
+    MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta
+):
+    """
+    Onboarding agents are a special extension of agents used
+    in tasks that have a separate onboarding step. These agents
+    are designed to work without being linked to an explicit
+    unit, and instead are tied to the task run and task name.
+
+
+    Blueprints that require OnboardingAgents should implement an
+    OnboardingAgentState (to process the special task), and their
+    TaskRunners should have a run_onboarding and cleanup_onboarding
+    method.
+    """
+
+    DISPLAY_PREFIX = "onboarding_"
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct OnboardingAgent and data model access via OnboardingAgent(db, id) is "
+                "now deprecated in favor of calling OnboardingAgent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_onboarding_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["onboarding_agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.task_type: str = row["task_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization
+        self.state = AgentState(self)  # type: ignore
+
+    def get_agent_id(self) -> str:
+        """Return an id to use for onboarding agent requests"""
+        return f"{self.DISPLAY_PREFIX}{self.db_id}"
+
+    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+    @classmethod
+    def is_onboarding_id(cls, agent_id: str) -> bool:
+        """return if the given id is for an onboarding agent"""
+        return agent_id.startswith(cls.DISPLAY_PREFIX)
+
+    @classmethod
+    def get_db_id_from_agent_id(cls, agent_id: str) -> str:
+        """Extract the db_id for an onboarding_agent"""
+        assert agent_id.startswith(
+            cls.DISPLAY_PREFIX
+        ), f"Provided id {agent_id} is not an onboarding_id"
+        return agent_id[len(cls.DISPLAY_PREFIX) :]
+
+    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            from mephisto.data_model.task_run import TaskRun
+
+            self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        task_run_dir = self.get_task_run().get_run_dir()
+        return os.path.join(task_run_dir, "onboarding", self.get_agent_id())
+
+    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_onboarding_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            if new_status not in [
+                AgentState.STATUS_APPROVED,
+                AgentState.STATUS_REJECTED,
+            ]:
+                live_run = self.get_live_run()
+                live_run.loop_wrap.execute_coro(
+                    live_run.worker_pool.push_status_update(self)
+                )
+        if new_status in [AgentState.STATUS_RETURNED, AgentState.STATUS_DISCONNECT]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="onboarding").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="onboarding").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(
+                worker_id=self.worker_id, agent_type="onboarding"
+            ).dec()
+
+    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            # various disconnect cases
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_onboarding_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if row["status"] not in [
+                    AgentState.STATUS_APPROVED,
+                    AgentState.STATUS_REJECTED,
+                ]:
+                    if self._associated_live_run is not None:
+                        live_run = self.get_live_run()
+                        live_run.loop_wrap.execute_coro(
+                            live_run.worker_pool.push_status_update(self)
+                        )
+            self.db_status = row["status"]
+        return self.db_status
+
+    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, task_run: "TaskRun") -> "OnboardingAgent":
+        """
+        Create an OnboardingAgent for a worker to use as part of a task run
+        """
+        db_id = db.new_onboarding_agent(
+            worker.db_id, task_run.task_id, task_run.db_id, task_run.task_type
+        )
+        a = OnboardingAgent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="onboarding"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="onboarding").inc()
+        logger.debug(f"Registered new {a} for worker {worker}.")
+        return a
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+ +
+ +
+
+ + +
+ View Source +
class Agent(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class encompasses a worker as they are working on an individual assignment.
+    It maintains details for the current task at hand such as start and end time,
+    connection status, etc.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Agent and data model access via ...Agent(db, id) was "
+                "now deprecated in favor of calling Agent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.unit_id: str = row["unit_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.assignment_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._unit: Optional["Unit"] = None
+        self._assignment: Optional["Assignment"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization is deferred
+        self._state = None  # type: ignore
+
+    @property
+    def state(self) -> "AgentState":
+        if self._state is None:
+            self._state = AgentState(self)  # type: ignore
+        return cast("AgentState", self._state)
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+    def get_agent_id(self) -> str:
+        """Return this agent's id"""
+        return self.db_id
+
+    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+    def get_unit(self) -> "Unit":
+        """
+        Return the Unit that this agent is working on.
+        """
+        if self._unit is None:
+            from mephisto.data_model.unit import Unit
+
+            self._unit = Unit.get(self.db, self.unit_id)
+        return self._unit
+
+    def get_assignment(self) -> "Assignment":
+        """Return the assignment this agent is working on"""
+        if self._assignment is None:
+            if self._unit is not None:
+                self._assignment = self._unit.get_assignment()
+            else:
+                from mephisto.data_model.assignment import Assignment
+
+                self._assignment = Assignment.get(self.db, self.assignment_id)
+        return self._assignment
+
+    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            if self._unit is not None:
+                self._task_run = self._unit.get_task_run()
+            elif self._assignment is not None:
+                self._task_run = self._assignment.get_task_run()
+            else:
+                from mephisto.data_model.task_run import TaskRun
+
+                self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._unit is not None:
+                self._task = self._unit.get_task()
+            elif self._assignment is not None:
+                self._task = self._assignment.get_task()
+            elif self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        assignment_dir = self.get_assignment().get_data_dir()
+        return os.path.join(assignment_dir, self.db_id)
+
+    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.push_status_update(self)
+            )
+        if new_status in [
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+        ]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+            if old_status == AgentState.STATUS_WAITING:
+                # Waiting agents' unit can be reassigned, as no work
+                # has been done yet.
+                unit = self.get_unit()
+                logger.debug(f"Clearing {self} from {unit} for update to {new_status}")
+                unit.clear_assigned_agent()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="main").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="main").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(worker_id=self.worker_id, agent_type="main").dec()
+
+    @staticmethod
+    def _register_agent(
+        db: "MephistoDB", worker: Worker, unit: "Unit", provider_type: str
+    ) -> "Agent":
+        """
+        Create this agent in the mephisto db with the correct setup
+        """
+        unit._mark_agent_assignment()
+        db_id = db.new_agent(
+            worker.db_id,
+            unit.db_id,
+            unit.task_id,
+            unit.task_run_id,
+            unit.assignment_id,
+            unit.task_type,
+            provider_type,
+        )
+        a = Agent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="main"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="main").inc()
+        logger.debug(f"Registered new agent {a} for {unit}.")
+        a.update_status(AgentState.STATUS_ACCEPTED)
+        return a
+
+    # Specialized child cases may need to implement the following
+
+    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: Worker,
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        agent = cls.new(db, worker, unit)
+        unit.worker_id = worker.db_id
+        agent._unit = unit
+        return agent
+
+    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            # various disconnect cases
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if self._associated_live_run is not None:
+                    live_run = self.get_live_run()
+                    live_run.loop_wrap.execute_coro(
+                        live_run.worker_pool.push_status_update(self)
+                    )
+            self.db_status = row["status"]
+        return self.db_status
+
+    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes should implement the following methods
+
+    def approve_work(self) -> None:
+        """Approve the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def soft_reject_work(self) -> None:
+        """
+        Pay a worker for attempted work, but mark it as below the
+        quality bar for this assignment
+        """
+        # TODO(OWN) extend this method to assign a soft block
+        # qualification automatically if a threshold of
+        # soft rejects as a proportion of total accepts
+        # is exceeded
+        self.approve_work()
+        self.update_status(AgentState.STATUS_SOFT_REJECTED)
+
+    def reject_work(self, reason) -> None:
+        """Reject the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+    def mark_done(self) -> None:
+        """
+        Take any required step with the crowd_provider to ensure that
+        the worker can submit their work and be marked as complete via
+        a call to get_status
+        """
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, unit: "Unit") -> "Agent":
+        """
+        Create an agent for this worker to be used for work on the given Unit.
+
+        Implementation should return the result of _register_agent when sure the agent
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class encompasses a worker as they are working on an individual assignment. +It maintains details for the current task at hand such as start and end time, +connection status, etc.

+
+ + +
+
#   + + + Agent( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Agent":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Agent class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Agent
+        as you will instead be returned the correct Agent class according to
+        the crowdprovider associated with this Agent.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Agent:
+            # We are trying to construct a Agent, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_agent(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).AgentClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Agent class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Agent +as you will instead be returned the correct Agent class according to +the crowdprovider associated with this Agent.

+
+ + +
+
+
#   + + state: mephisto.abstractions._subcomponents.agent_state.AgentState +
+ + + + +
+
+
#   + + + def + set_live_run(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None: +
+ +
+ View Source +
    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+ +
+ +

Set an associated live run for this agent

+
+ + +
+
+
#   + + + def + get_live_run(self) -> mephisto.operations.datatypes.LiveTaskRun: +
+ +
+ View Source +
    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+ +
+ +

Return the associated live run for this agent. Throw if not set

+
+ + +
+
+
#   + + + def + get_agent_id(self) -> str: +
+ +
+ View Source +
    def get_agent_id(self) -> str:
+        """Return this agent's id"""
+        return self.db_id
+
+ +
+ +

Return this agent's id

+
+ + +
+
+
#   + + + def + get_worker(self) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+ +
+ +

Return the worker that is using this agent for a task

+
+ + +
+
+
#   + + + def + get_unit(self) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    def get_unit(self) -> "Unit":
+        """
+        Return the Unit that this agent is working on.
+        """
+        if self._unit is None:
+            from mephisto.data_model.unit import Unit
+
+            self._unit = Unit.get(self.db, self.unit_id)
+        return self._unit
+
+ +
+ +

Return the Unit that this agent is working on.

+
+ + +
+
+
#   + + + def + get_assignment(self) -> mephisto.data_model.assignment.Assignment: +
+ +
+ View Source +
    def get_assignment(self) -> "Assignment":
+        """Return the assignment this agent is working on"""
+        if self._assignment is None:
+            if self._unit is not None:
+                self._assignment = self._unit.get_assignment()
+            else:
+                from mephisto.data_model.assignment import Assignment
+
+                self._assignment = Assignment.get(self.db, self.assignment_id)
+        return self._assignment
+
+ +
+ +

Return the assignment this agent is working on

+
+ + +
+
+
#   + + + def + get_task_run(self) -> mephisto.data_model.task_run.TaskRun: +
+ +
+ View Source +
    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            if self._unit is not None:
+                self._task_run = self._unit.get_task_run()
+            elif self._assignment is not None:
+                self._task_run = self._assignment.get_task_run()
+            else:
+                from mephisto.data_model.task_run import TaskRun
+
+                self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+ +
+ +

Return the TaskRun this agent is working within

+
+ + +
+
+
#   + + + def + get_task(self) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._unit is not None:
+                self._task = self._unit.get_task()
+            elif self._assignment is not None:
+                self._task = self._assignment.get_task()
+            elif self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+ +
+ +

Return the Task this agent is working within

+
+ + +
+
+
#   + + + def + get_data_dir(self) -> str: +
+ +
+ View Source +
    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        assignment_dir = self.get_assignment().get_data_dir()
+        return os.path.join(assignment_dir, self.db_id)
+
+ +
+ +

Return the directory to be storing any agent state for +this agent into

+
+ + +
+
+
#   + + + def + update_status(self, new_status: str) -> None: +
+ +
+ View Source +
    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.push_status_update(self)
+            )
+        if new_status in [
+            AgentState.STATUS_RETURNED,
+            AgentState.STATUS_DISCONNECT,
+            AgentState.STATUS_TIMEOUT,
+        ]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+            if old_status == AgentState.STATUS_WAITING:
+                # Waiting agents' unit can be reassigned, as no work
+                # has been done yet.
+                unit = self.get_unit()
+                logger.debug(f"Clearing {self} from {unit} for update to {new_status}")
+                unit.clear_assigned_agent()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="main").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="main").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(worker_id=self.worker_id, agent_type="main").dec()
+
+ +
+ +

Update the database status of this agent, and +possibly send a message to the frontend agent informing +them of this update

+
+ + +
+
+
#   + +
@classmethod
+ + def + new_from_provider_data( + cls, + db: mephisto.abstractions.database.MephistoDB, + worker: mephisto.data_model.worker.Worker, + unit: mephisto.data_model.unit.Unit, + provider_data: Dict[str, Any] +) -> mephisto.data_model.agent.Agent: +
+ +
+ View Source +
    @classmethod
+    def new_from_provider_data(
+        cls,
+        db: "MephistoDB",
+        worker: Worker,
+        unit: "Unit",
+        provider_data: Dict[str, Any],
+    ) -> "Agent":
+        """
+        Wrapper around the new method that allows registering additional
+        bookkeeping information from a crowd provider for this agent
+        """
+        agent = cls.new(db, worker, unit)
+        unit.worker_id = worker.db_id
+        agent._unit = unit
+        return agent
+
+ +
+ +

Wrapper around the new method that allows registering additional +bookkeeping information from a crowd provider for this agent

+
+ + +
+
+
#   + + + def + observe(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+ +
+ +

Pass the observed information to the AgentState, then +queue the information to be pushed to the user

+
+ + +
+
+
#   + + + def + get_live_update( + self, + timeout: Union[int, NoneType] = None +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            # various disconnect cases
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+ +
+ +

Request information from the Agent's frontend. If non-blocking, +(timeout is None) should return None if no actions are ready +to be returned.

+
+ + +
+
+
#   + + + def + act( + self, + timeout: Union[int, NoneType] = None +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+ +
+ +

Request information from the Agent's frontend. If non-blocking, +(timeout is None) should return None if no actions are ready +to be returned.

+
+ + +
+
+
#   + + + def + await_submit(self, timeout: Union[int, NoneType] = None) -> bool: +
+ +
+ View Source +
    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+ +
+ +

Blocking wait for this agent to submit their task

+
+ + +
+
+
#   + + + def + handle_submit(self, submit_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+ +
+ +

Handle final submission for an onboarding agent, with the given data

+
+ + +
+
+
#   + + + def + get_status(self) -> str: +
+ +
+ View Source +
    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if self._associated_live_run is not None:
+                    live_run = self.get_live_run()
+                    live_run.loop_wrap.execute_coro(
+                        live_run.worker_pool.push_status_update(self)
+                    )
+            self.db_status = row["status"]
+        return self.db_status
+
+ +
+ +

Get the status of this agent in their work on their unit

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+ +
+ +

Force the given agent to end any polling threads and throw an AgentShutdownError +from any acts called on it, ensuring tasks using this agent can be cleaned up.

+
+ + +
+
+
#   + + + def + approve_work(self) -> None: +
+ +
+ View Source +
    def approve_work(self) -> None:
+        """Approve the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+ +
+ +

Approve the work done on this agent's specific Unit

+
+ + +
+
+
#   + + + def + soft_reject_work(self) -> None: +
+ +
+ View Source +
    def soft_reject_work(self) -> None:
+        """
+        Pay a worker for attempted work, but mark it as below the
+        quality bar for this assignment
+        """
+        # TODO(OWN) extend this method to assign a soft block
+        # qualification automatically if a threshold of
+        # soft rejects as a proportion of total accepts
+        # is exceeded
+        self.approve_work()
+        self.update_status(AgentState.STATUS_SOFT_REJECTED)
+
+ +
+ +

Pay a worker for attempted work, but mark it as below the +quality bar for this assignment

+
+ + +
+
+
#   + + + def + reject_work(self, reason) -> None: +
+ +
+ View Source +
    def reject_work(self, reason) -> None:
+        """Reject the work done on this agent's specific Unit"""
+        raise NotImplementedError()
+
+ +
+ +

Reject the work done on this agent's specific Unit

+
+ + +
+
+
#   + + + def + mark_done(self) -> None: +
+ +
+ View Source +
    def mark_done(self) -> None:
+        """
+        Take any required step with the crowd_provider to ensure that
+        the worker can submit their work and be marked as complete via
+        a call to get_status
+        """
+        raise NotImplementedError()
+
+ +
+ +

Take any required step with the crowd_provider to ensure that +the worker can submit their work and be marked as complete via +a call to get_status

+
+ + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, unit: "Unit") -> "Agent":
+        """
+        Create an agent for this worker to be used for work on the given Unit.
+
+        Implementation should return the result of _register_agent when sure the agent
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Create an agent for this worker to be used for work on the given Unit.

+ +

Implementation should return the result of _register_agent when sure the agent +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + +
+ View Source +
class OnboardingAgent(
+    MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta
+):
+    """
+    Onboarding agents are a special extension of agents used
+    in tasks that have a separate onboarding step. These agents
+    are designed to work without being linked to an explicit
+    unit, and instead are tied to the task run and task name.
+
+
+    Blueprints that require OnboardingAgents should implement an
+    OnboardingAgentState (to process the special task), and their
+    TaskRunners should have a run_onboarding and cleanup_onboarding
+    method.
+    """
+
+    DISPLAY_PREFIX = "onboarding_"
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct OnboardingAgent and data model access via OnboardingAgent(db, id) is "
+                "now deprecated in favor of calling OnboardingAgent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_onboarding_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["onboarding_agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.task_type: str = row["task_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization
+        self.state = AgentState(self)  # type: ignore
+
+    def get_agent_id(self) -> str:
+        """Return an id to use for onboarding agent requests"""
+        return f"{self.DISPLAY_PREFIX}{self.db_id}"
+
+    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+    @classmethod
+    def is_onboarding_id(cls, agent_id: str) -> bool:
+        """return if the given id is for an onboarding agent"""
+        return agent_id.startswith(cls.DISPLAY_PREFIX)
+
+    @classmethod
+    def get_db_id_from_agent_id(cls, agent_id: str) -> str:
+        """Extract the db_id for an onboarding_agent"""
+        assert agent_id.startswith(
+            cls.DISPLAY_PREFIX
+        ), f"Provided id {agent_id} is not an onboarding_id"
+        return agent_id[len(cls.DISPLAY_PREFIX) :]
+
+    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            from mephisto.data_model.task_run import TaskRun
+
+            self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        task_run_dir = self.get_task_run().get_run_dir()
+        return os.path.join(task_run_dir, "onboarding", self.get_agent_id())
+
+    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_onboarding_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            if new_status not in [
+                AgentState.STATUS_APPROVED,
+                AgentState.STATUS_REJECTED,
+            ]:
+                live_run = self.get_live_run()
+                live_run.loop_wrap.execute_coro(
+                    live_run.worker_pool.push_status_update(self)
+                )
+        if new_status in [AgentState.STATUS_RETURNED, AgentState.STATUS_DISCONNECT]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="onboarding").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="onboarding").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(
+                worker_id=self.worker_id, agent_type="onboarding"
+            ).dec()
+
+    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            # various disconnect cases
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_onboarding_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if row["status"] not in [
+                    AgentState.STATUS_APPROVED,
+                    AgentState.STATUS_REJECTED,
+                ]:
+                    if self._associated_live_run is not None:
+                        live_run = self.get_live_run()
+                        live_run.loop_wrap.execute_coro(
+                            live_run.worker_pool.push_status_update(self)
+                        )
+            self.db_status = row["status"]
+        return self.db_status
+
+    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, task_run: "TaskRun") -> "OnboardingAgent":
+        """
+        Create an OnboardingAgent for a worker to use as part of a task run
+        """
+        db_id = db.new_onboarding_agent(
+            worker.db_id, task_run.task_id, task_run.db_id, task_run.task_type
+        )
+        a = OnboardingAgent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="onboarding"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="onboarding").inc()
+        logger.debug(f"Registered new {a} for worker {worker}.")
+        return a
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+ +
+ +

Onboarding agents are a special extension of agents used +in tasks that have a separate onboarding step. These agents +are designed to work without being linked to an explicit +unit, and instead are tied to the task run and task name.

+ +

Blueprints that require OnboardingAgents should implement an +OnboardingAgentState (to process the special task), and their +TaskRunners should have a run_onboarding and cleanup_onboarding +method.

+
+ + +
+
#   + + + OnboardingAgent( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct OnboardingAgent and data model access via OnboardingAgent(db, id) is "
+                "now deprecated in favor of calling OnboardingAgent.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_onboarding_agent(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["onboarding_agent_id"]
+        self.db_status: str = row["status"]
+        self.worker_id: str = row["worker_id"]
+        self.task_type: str = row["task_type"]
+        self.pending_actions: "Queue[Dict[str, Any]]" = Queue()
+        self.has_live_update = threading.Event()
+        self.has_live_update.clear()
+        self.task_run_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.did_submit = threading.Event()
+        self.is_shutdown = False
+
+        # Deferred loading of related entities
+        self._worker: Optional["Worker"] = None
+        self._task_run: Optional["TaskRun"] = None
+        self._task: Optional["Task"] = None
+
+        # Related entity set by a live run
+        self._associated_live_run: Optional["LiveTaskRun"] = None
+
+        # Follow-up initialization
+        self.state = AgentState(self)  # type: ignore
+
+ +
+ + + +
+
+
#   + + DISPLAY_PREFIX = 'onboarding_' +
+ + + + +
+
+
#   + + + def + get_agent_id(self) -> str: +
+ +
+ View Source +
    def get_agent_id(self) -> str:
+        """Return an id to use for onboarding agent requests"""
+        return f"{self.DISPLAY_PREFIX}{self.db_id}"
+
+ +
+ +

Return an id to use for onboarding agent requests

+
+ + +
+
+
#   + + + def + set_live_run(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None: +
+ +
+ View Source +
    def set_live_run(self, live_run: "LiveTaskRun") -> None:
+        """Set an associated live run for this agent"""
+        self._associated_live_run = live_run
+
+ +
+ +

Set an associated live run for this agent

+
+ + +
+
+
#   + + + def + get_live_run(self) -> mephisto.operations.datatypes.LiveTaskRun: +
+ +
+ View Source +
    def get_live_run(self) -> "LiveTaskRun":
+        """Return the associated live run for this agent. Throw if not set"""
+        if self._associated_live_run is None:
+            raise AssertionError(
+                "Should not be getting the live run, not set for given agent"
+            )
+        return self._associated_live_run
+
+ +
+ +

Return the associated live run for this agent. Throw if not set

+
+ + +
+
+
#   + +
@classmethod
+ + def + is_onboarding_id(cls, agent_id: str) -> bool: +
+ +
+ View Source +
    @classmethod
+    def is_onboarding_id(cls, agent_id: str) -> bool:
+        """return if the given id is for an onboarding agent"""
+        return agent_id.startswith(cls.DISPLAY_PREFIX)
+
+ +
+ +

return if the given id is for an onboarding agent

+
+ + +
+
+
#   + +
@classmethod
+ + def + get_db_id_from_agent_id(cls, agent_id: str) -> str: +
+ +
+ View Source +
    @classmethod
+    def get_db_id_from_agent_id(cls, agent_id: str) -> str:
+        """Extract the db_id for an onboarding_agent"""
+        assert agent_id.startswith(
+            cls.DISPLAY_PREFIX
+        ), f"Provided id {agent_id} is not an onboarding_id"
+        return agent_id[len(cls.DISPLAY_PREFIX) :]
+
+ +
+ +

Extract the db_id for an onboarding_agent

+
+ + +
+
+
#   + + + def + get_worker(self) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    def get_worker(self) -> Worker:
+        """
+        Return the worker that is using this agent for a task
+        """
+        if self._worker is None:
+            self._worker = Worker.get(self.db, self.worker_id)
+        return self._worker
+
+ +
+ +

Return the worker that is using this agent for a task

+
+ + +
+
+
#   + + + def + get_task_run(self) -> mephisto.data_model.task_run.TaskRun: +
+ +
+ View Source +
    def get_task_run(self) -> "TaskRun":
+        """Return the TaskRun this agent is working within"""
+        if self._task_run is None:
+            from mephisto.data_model.task_run import TaskRun
+
+            self._task_run = TaskRun.get(self.db, self.task_run_id)
+        return self._task_run
+
+ +
+ +

Return the TaskRun this agent is working within

+
+ + +
+
+
#   + + + def + get_task(self) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    def get_task(self) -> "Task":
+        """Return the Task this agent is working within"""
+        if self._task is None:
+            if self._task_run is not None:
+                self._task = self._task_run.get_task()
+            else:
+                from mephisto.data_model.task import Task
+
+                self._task = Task.get(self.db, self.task_id)
+        return self._task
+
+ +
+ +

Return the Task this agent is working within

+
+ + +
+
+
#   + + + def + get_data_dir(self) -> str: +
+ +
+ View Source +
    def get_data_dir(self) -> str:
+        """
+        Return the directory to be storing any agent state for
+        this agent into
+        """
+        task_run_dir = self.get_task_run().get_run_dir()
+        return os.path.join(task_run_dir, "onboarding", self.get_agent_id())
+
+ +
+ +

Return the directory to be storing any agent state for +this agent into

+
+ + +
+
+
#   + + + def + update_status(self, new_status: str) -> None: +
+ +
+ View Source +
    def update_status(self, new_status: str) -> None:
+        """Update the database status of this agent, and
+        possibly send a message to the frontend agent informing
+        them of this update"""
+        if self.db_status == new_status:
+            return  # Noop, this is already the case
+
+        logger.debug(f"Updating {self} to {new_status}")
+        if self.db_status in AgentState.complete():
+            logger.info(f"Updating {self} from final status to {new_status}")
+
+        old_status = self.db_status
+        self.db.update_onboarding_agent(self.db_id, status=new_status)
+        self.db_status = new_status
+        if self._associated_live_run is not None:
+            if new_status not in [
+                AgentState.STATUS_APPROVED,
+                AgentState.STATUS_REJECTED,
+            ]:
+                live_run = self.get_live_run()
+                live_run.loop_wrap.execute_coro(
+                    live_run.worker_pool.push_status_update(self)
+                )
+        if new_status in [AgentState.STATUS_RETURNED, AgentState.STATUS_DISCONNECT]:
+            # Disconnect statuses should free any pending acts
+            self.has_live_update.set()
+            self.did_submit.set()
+
+        # Metrics changes
+        ACTIVE_AGENT_STATUSES.labels(status=old_status, agent_type="onboarding").dec()
+        ACTIVE_AGENT_STATUSES.labels(status=new_status, agent_type="onboarding").inc()
+        if (
+            old_status not in AgentState.complete()
+            and new_status in AgentState.complete()
+        ):
+            ACTIVE_WORKERS.labels(
+                worker_id=self.worker_id, agent_type="onboarding"
+            ).dec()
+
+ +
+ +

Update the database status of this agent, and +possibly send a message to the frontend agent informing +them of this update

+
+ + +
+
+
#   + + + def + observe(self, live_update: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def observe(self, live_update: "Dict[str, Any]") -> None:
+        """
+        Pass the observed information to the AgentState, then
+        queue the information to be pushed to the user
+        """
+        if live_update.get("update_id") is None:
+            live_update["update_id"] = str(uuid4())
+        self.state.update_data(live_update)
+
+        if self._associated_live_run is not None:
+            live_run = self.get_live_run()
+            live_run.client_io.send_live_update(self.get_agent_id(), live_update)
+
+ +
+ +

Pass the observed information to the AgentState, then +queue the information to be pushed to the user

+
+ + +
+
+
#   + + + def + get_live_update( + self, + timeout: Union[int, NoneType] = None +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def get_live_update(
+        self, timeout: Optional[int] = None
+    ) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        if self.pending_actions.empty():
+            if timeout is None or timeout == 0:
+                return None
+            self.has_live_update.wait(timeout)
+
+        if self.pending_actions.empty():
+            # various disconnect cases
+            if self.is_shutdown:
+                raise AgentShutdownError(self.db_id)
+            status = self.get_status()
+            if status == AgentState.STATUS_DISCONNECT:
+                raise AgentDisconnectedError(self.db_id)
+            elif status == AgentState.STATUS_RETURNED:
+                raise AgentReturnedError(self.db_id)
+            self.update_status(AgentState.STATUS_TIMEOUT)
+            raise AgentTimeoutError(timeout, self.db_id)
+        assert (
+            not self.pending_actions.empty()
+        ), "has_live_update released without an action!"
+
+        act = self.pending_actions.get()
+
+        if self.pending_actions.empty():
+            self.has_live_update.clear()
+        self.state.update_data(act)
+        return act
+
+ +
+ +

Request information from the Agent's frontend. If non-blocking, +(timeout is None) should return None if no actions are ready +to be returned.

+
+ + +
+
+
#   + + + def + act( + self, + timeout: Union[int, NoneType] = None +) -> Union[Dict[str, Any], NoneType]: +
+ +
+ View Source +
    def act(self, timeout: Optional[int] = None) -> Optional[Dict[str, Any]]:
+        """
+        Request information from the Agent's frontend. If non-blocking,
+        (timeout is None) should return None if no actions are ready
+        to be returned.
+        """
+        warn_once(
+            "As of Mephisto 1.0 Agent.act is being deprecated in favor of Agent.get_live_update. "
+            "This functionality will no longer work in 1.1"
+        )
+        return self.get_live_update(timeout)
+
+ +
+ +

Request information from the Agent's frontend. If non-blocking, +(timeout is None) should return None if no actions are ready +to be returned.

+
+ + +
+
+
#   + + + def + await_submit(self, timeout: Union[int, NoneType] = None) -> bool: +
+ +
+ View Source +
    def await_submit(self, timeout: Optional[int] = None) -> bool:
+        """Blocking wait for this agent to submit their task"""
+        if timeout is not None:
+            self.did_submit.wait(timeout=timeout)
+        return self.did_submit.is_set()
+
+ +
+ +

Blocking wait for this agent to submit their task

+
+ + +
+
+
#   + + + def + handle_submit(self, submit_data: Dict[str, Any]) -> None: +
+ +
+ View Source +
    def handle_submit(self, submit_data: Dict[str, Any]) -> None:
+        """Handle final submission for an onboarding agent, with the given data"""
+        self.did_submit.set()
+        self.state.update_submit(submit_data)
+
+ +
+ +

Handle final submission for an onboarding agent, with the given data

+
+ + +
+
+
#   + + + def + get_status(self) -> str: +
+ +
+ View Source +
    def get_status(self) -> str:
+        """Get the status of this agent in their work on their unit"""
+        if self.db_status not in AgentState.complete():
+            row = self.db.get_onboarding_agent(self.db_id)
+            if row["status"] != self.db_status:
+                if row["status"] in [
+                    AgentState.STATUS_RETURNED,
+                    AgentState.STATUS_DISCONNECT,
+                ]:
+                    # Disconnect statuses should free any pending acts
+                    self.has_live_update.set()
+                if row["status"] not in [
+                    AgentState.STATUS_APPROVED,
+                    AgentState.STATUS_REJECTED,
+                ]:
+                    if self._associated_live_run is not None:
+                        live_run = self.get_live_run()
+                        live_run.loop_wrap.execute_coro(
+                            live_run.worker_pool.push_status_update(self)
+                        )
+            self.db_status = row["status"]
+        return self.db_status
+
+ +
+ +

Get the status of this agent in their work on their unit

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """
+        Force the given agent to end any polling threads and throw an AgentShutdownError
+        from any acts called on it, ensuring tasks using this agent can be cleaned up.
+        """
+        logger.debug(f"{self} is shutting down")
+        self.has_live_update.set()
+        self.is_shutdown = True
+
+ +
+ +

Force the given agent to end any polling threads and throw an AgentShutdownError +from any acts called on it, ensuring tasks using this agent can be cleaned up.

+
+ + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker: Worker, task_run: "TaskRun") -> "OnboardingAgent":
+        """
+        Create an OnboardingAgent for a worker to use as part of a task run
+        """
+        db_id = db.new_onboarding_agent(
+            worker.db_id, task_run.task_id, task_run.db_id, task_run.task_type
+        )
+        a = OnboardingAgent.get(db, db_id)
+        ACTIVE_AGENT_STATUSES.labels(
+            status=AgentState.STATUS_NONE, agent_type="onboarding"
+        ).inc()
+        ACTIVE_WORKERS.labels(worker_id=worker.db_id, agent_type="onboarding").inc()
+        logger.debug(f"Registered new {a} for worker {worker}.")
+        return a
+
+ +
+ +

Create an OnboardingAgent for a worker to use as part of a task run

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/assignment.html b/docs/web/static/python_api/mephisto/data_model/assignment.html new file mode 100644 index 000000000..0252ebbe5 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/assignment.html @@ -0,0 +1,1310 @@ + + + + + + + + + mephisto.data_model.assignment API documentation + + + + + + + + + +
+
+

+mephisto.data_model.assignment

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.agent import Agent
+from mephisto.data_model.requester import Requester
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedMeta,
+    MephistoDataModelComponentMixin,
+)
+from typing import List, Optional, Mapping, Dict, Any, TYPE_CHECKING, IO
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+
+import os
+import json
+from dataclasses import dataclass
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+ASSIGNMENT_DATA_FILE = "assign_data.json"
+
+
+@dataclass
+class InitializationData:
+    shared: Dict[str, Any]
+    unit_data: List[Dict[str, Any]]
+
+    def dumpJSON(self, fp: IO[str]):
+        return json.dump({"shared": self.shared, "unit_data": self.unit_data}, fp)
+
+    @staticmethod
+    def loadFromJSON(fp: IO[str]):
+        as_dict = json.load(fp)
+        return InitializationData(
+            shared=as_dict["shared"], unit_data=as_dict["unit_data"]
+        )
+
+
+class Assignment(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class tracks an individual run of a specific task, and handles state management
+    for the set of units within via abstracted database helpers
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Assignment and data model access via Assignment(db, id) is "
+                "now deprecated in favor of calling Assignment.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_assignment(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+
+        # Deferred loading of related entities
+        self.__task_run: Optional["TaskRun"] = None
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+
+    def get_data_dir(self) -> str:
+        """Return the directory we expect to find assignment data in"""
+        task_run = self.get_task_run()
+        run_dir = task_run.get_run_dir()
+        return os.path.join(run_dir, self.db_id)
+
+    def get_assignment_data(self) -> InitializationData:
+        """Return the specific assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        assert os.path.exists(assign_data_filename), "No data exists for assignment"
+        with open(assign_data_filename, "r") as json_file:
+            return InitializationData.loadFromJSON(json_file)
+
+    def write_assignment_data(self, data: InitializationData) -> None:
+        """Set the assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        os.makedirs(self.get_data_dir(), exist_ok=True)
+        with open(assign_data_filename, "w+") as json_file:
+            data.dumpJSON(json_file)
+
+    def get_agents(self) -> List[Optional["Agent"]]:
+        """
+        Return all of the agents for this assignment
+        """
+        units = self.get_units()
+        return [u.get_assigned_agent() for u in units]
+
+    def get_status(self) -> str:
+        """
+        Get the status of this assignment, as determined by the status of
+        the units
+        """
+        units = self.get_units()
+        statuses = set(unit.get_status() for unit in units)
+
+        if len(statuses) == 1:
+            return statuses.pop()
+
+        if len(statuses) == 0:
+            return AssignmentState.CREATED
+
+        if AssignmentState.CREATED in statuses:
+            return AssignmentState.CREATED
+
+        if any([s == AssignmentState.LAUNCHED for s in statuses]):
+            # If any are only launched, consider the whole thing launched
+            return AssignmentState.LAUNCHED
+
+        if any([s == AssignmentState.ASSIGNED for s in statuses]):
+            # If any are still assigned, consider the whole thing assigned
+            return AssignmentState.ASSIGNED
+
+        if all(
+            [
+                s in [AssignmentState.ACCEPTED, AssignmentState.REJECTED]
+                for s in statuses
+            ]
+        ):
+            return AssignmentState.MIXED
+
+        if all([s in AssignmentState.final_agent() for s in statuses]):
+            return AssignmentState.COMPLETED
+
+        raise NotImplementedError(f"Unexpected set of unit statuses {statuses}")
+
+    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+    def get_task(self) -> Task:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_requester(self) -> Requester:
+        """
+        Return the requester who offered this Assignment
+        """
+        if self.__requester is None:
+            if self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def get_units(self, status: Optional[str] = None) -> List["Unit"]:
+        """
+        Get units for this assignment, optionally
+        constrained by the specific status.
+        """
+        assert (
+            status is None or status in AssignmentState.valid_unit()
+        ), "Invalid assignment status"
+        units = self.db.find_units(assignment_id=self.db_id)
+        if status is not None:
+            units = [u for u in units if u.get_status() == status]
+        return units
+
+    def get_workers(self) -> List["Worker"]:
+        """
+        Get the list of workers that have worked on this specific assignment
+        """
+        units = self.get_units()
+        pos_agents = [s.get_assigned_agent() for s in units]
+        agents = [a for a in pos_agents if a is not None]
+        workers = [a.get_worker() for a in agents]
+        return workers
+
+    def get_cost_of_statuses(self, statuses: List[str]) -> float:
+        """
+        Return the sum of all pay_amounts for every unit
+        of this assignment with any of the given statuses
+        """
+        units = [u for u in self.get_units() if u.get_status() in statuses]
+        sum_cost = 0.0
+        for unit in units:
+            sum_cost += unit.get_pay_amount()
+        return sum_cost
+
+    def __repr__(self) -> str:
+        return f"Assignment({self.db_id})"
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", task_run: TaskRun, assignment_data: Optional[Dict[str, Any]]
+    ) -> "Assignment":
+        """
+        Create an assignment for the given task. Initialize the folders for storing
+        the results for this assignment. Can take assignment_data to save and
+        load for this particular assignment.
+        """
+        # TODO(#567) consider offloading this state management to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        db_id = db.new_assignment(
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        run_dir = task_run.get_run_dir()
+        assign_dir = os.path.join(run_dir, db_id)
+        os.makedirs(assign_dir)
+        if assignment_data is not None:
+            with open(
+                os.path.join(assign_dir, ASSIGNMENT_DATA_FILE), "w+"
+            ) as json_file:
+                json.dump(assignment_data, json_file)
+        assignment = Assignment.get(db, db_id)
+        logger.debug(f"{assignment} created for {task_run}")
+        return assignment
+
+ +
+ +
+
+
+ #   + + + class + InitializationData: +
+ +
+ View Source +
class InitializationData:
+    shared: Dict[str, Any]
+    unit_data: List[Dict[str, Any]]
+
+    def dumpJSON(self, fp: IO[str]):
+        return json.dump({"shared": self.shared, "unit_data": self.unit_data}, fp)
+
+    @staticmethod
+    def loadFromJSON(fp: IO[str]):
+        as_dict = json.load(fp)
+        return InitializationData(
+            shared=as_dict["shared"], unit_data=as_dict["unit_data"]
+        )
+
+ +
+ +

InitializationData(shared: Dict[str, Any], unit_data: List[Dict[str, Any]])

+
+ + +
+
#   + + + InitializationData(shared: Dict[str, Any], unit_data: List[Dict[str, Any]]) +
+ + + + +
+
+
#   + + + def + dumpJSON(self, fp: IO[str]): +
+ +
+ View Source +
    def dumpJSON(self, fp: IO[str]):
+        return json.dump({"shared": self.shared, "unit_data": self.unit_data}, fp)
+
+ +
+ + + +
+
+
#   + +
@staticmethod
+ + def + loadFromJSON(fp: IO[str]): +
+ +
+ View Source +
    @staticmethod
+    def loadFromJSON(fp: IO[str]):
+        as_dict = json.load(fp)
+        return InitializationData(
+            shared=as_dict["shared"], unit_data=as_dict["unit_data"]
+        )
+
+ +
+ + + +
+
+
+ + +
+ View Source +
class Assignment(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class tracks an individual run of a specific task, and handles state management
+    for the set of units within via abstracted database helpers
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Assignment and data model access via Assignment(db, id) is "
+                "now deprecated in favor of calling Assignment.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_assignment(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+
+        # Deferred loading of related entities
+        self.__task_run: Optional["TaskRun"] = None
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+
+    def get_data_dir(self) -> str:
+        """Return the directory we expect to find assignment data in"""
+        task_run = self.get_task_run()
+        run_dir = task_run.get_run_dir()
+        return os.path.join(run_dir, self.db_id)
+
+    def get_assignment_data(self) -> InitializationData:
+        """Return the specific assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        assert os.path.exists(assign_data_filename), "No data exists for assignment"
+        with open(assign_data_filename, "r") as json_file:
+            return InitializationData.loadFromJSON(json_file)
+
+    def write_assignment_data(self, data: InitializationData) -> None:
+        """Set the assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        os.makedirs(self.get_data_dir(), exist_ok=True)
+        with open(assign_data_filename, "w+") as json_file:
+            data.dumpJSON(json_file)
+
+    def get_agents(self) -> List[Optional["Agent"]]:
+        """
+        Return all of the agents for this assignment
+        """
+        units = self.get_units()
+        return [u.get_assigned_agent() for u in units]
+
+    def get_status(self) -> str:
+        """
+        Get the status of this assignment, as determined by the status of
+        the units
+        """
+        units = self.get_units()
+        statuses = set(unit.get_status() for unit in units)
+
+        if len(statuses) == 1:
+            return statuses.pop()
+
+        if len(statuses) == 0:
+            return AssignmentState.CREATED
+
+        if AssignmentState.CREATED in statuses:
+            return AssignmentState.CREATED
+
+        if any([s == AssignmentState.LAUNCHED for s in statuses]):
+            # If any are only launched, consider the whole thing launched
+            return AssignmentState.LAUNCHED
+
+        if any([s == AssignmentState.ASSIGNED for s in statuses]):
+            # If any are still assigned, consider the whole thing assigned
+            return AssignmentState.ASSIGNED
+
+        if all(
+            [
+                s in [AssignmentState.ACCEPTED, AssignmentState.REJECTED]
+                for s in statuses
+            ]
+        ):
+            return AssignmentState.MIXED
+
+        if all([s in AssignmentState.final_agent() for s in statuses]):
+            return AssignmentState.COMPLETED
+
+        raise NotImplementedError(f"Unexpected set of unit statuses {statuses}")
+
+    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+    def get_task(self) -> Task:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_requester(self) -> Requester:
+        """
+        Return the requester who offered this Assignment
+        """
+        if self.__requester is None:
+            if self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def get_units(self, status: Optional[str] = None) -> List["Unit"]:
+        """
+        Get units for this assignment, optionally
+        constrained by the specific status.
+        """
+        assert (
+            status is None or status in AssignmentState.valid_unit()
+        ), "Invalid assignment status"
+        units = self.db.find_units(assignment_id=self.db_id)
+        if status is not None:
+            units = [u for u in units if u.get_status() == status]
+        return units
+
+    def get_workers(self) -> List["Worker"]:
+        """
+        Get the list of workers that have worked on this specific assignment
+        """
+        units = self.get_units()
+        pos_agents = [s.get_assigned_agent() for s in units]
+        agents = [a for a in pos_agents if a is not None]
+        workers = [a.get_worker() for a in agents]
+        return workers
+
+    def get_cost_of_statuses(self, statuses: List[str]) -> float:
+        """
+        Return the sum of all pay_amounts for every unit
+        of this assignment with any of the given statuses
+        """
+        units = [u for u in self.get_units() if u.get_status() in statuses]
+        sum_cost = 0.0
+        for unit in units:
+            sum_cost += unit.get_pay_amount()
+        return sum_cost
+
+    def __repr__(self) -> str:
+        return f"Assignment({self.db_id})"
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", task_run: TaskRun, assignment_data: Optional[Dict[str, Any]]
+    ) -> "Assignment":
+        """
+        Create an assignment for the given task. Initialize the folders for storing
+        the results for this assignment. Can take assignment_data to save and
+        load for this particular assignment.
+        """
+        # TODO(#567) consider offloading this state management to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        db_id = db.new_assignment(
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        run_dir = task_run.get_run_dir()
+        assign_dir = os.path.join(run_dir, db_id)
+        os.makedirs(assign_dir)
+        if assignment_data is not None:
+            with open(
+                os.path.join(assign_dir, ASSIGNMENT_DATA_FILE), "w+"
+            ) as json_file:
+                json.dump(assignment_data, json_file)
+        assignment = Assignment.get(db, db_id)
+        logger.debug(f"{assignment} created for {task_run}")
+        return assignment
+
+ +
+ +

This class tracks an individual run of a specific task, and handles state management +for the set of units within via abstracted database helpers

+
+ + +
+
#   + + + Assignment( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Assignment and data model access via Assignment(db, id) is "
+                "now deprecated in favor of calling Assignment.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_assignment(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["assignment_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.task_type: str = row["task_type"]
+        self.provider_type: str = row["provider_type"]
+
+        # Deferred loading of related entities
+        self.__task_run: Optional["TaskRun"] = None
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+
+ +
+ + + +
+
+
#   + + + def + get_data_dir(self) -> str: +
+ +
+ View Source +
    def get_data_dir(self) -> str:
+        """Return the directory we expect to find assignment data in"""
+        task_run = self.get_task_run()
+        run_dir = task_run.get_run_dir()
+        return os.path.join(run_dir, self.db_id)
+
+ +
+ +

Return the directory we expect to find assignment data in

+
+ + +
+
+
#   + + + def + get_assignment_data(self) -> mephisto.data_model.assignment.InitializationData: +
+ +
+ View Source +
    def get_assignment_data(self) -> InitializationData:
+        """Return the specific assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        assert os.path.exists(assign_data_filename), "No data exists for assignment"
+        with open(assign_data_filename, "r") as json_file:
+            return InitializationData.loadFromJSON(json_file)
+
+ +
+ +

Return the specific assignment data for this assignment

+
+ + +
+
+
#   + + + def + write_assignment_data( + self, + data: mephisto.data_model.assignment.InitializationData +) -> None: +
+ +
+ View Source +
    def write_assignment_data(self, data: InitializationData) -> None:
+        """Set the assignment data for this assignment"""
+        assign_data_filename = os.path.join(self.get_data_dir(), ASSIGNMENT_DATA_FILE)
+        os.makedirs(self.get_data_dir(), exist_ok=True)
+        with open(assign_data_filename, "w+") as json_file:
+            data.dumpJSON(json_file)
+
+ +
+ +

Set the assignment data for this assignment

+
+ + +
+
+
#   + + + def + get_agents( + self +) -> list[typing.Union[mephisto.data_model.agent.Agent, NoneType]]: +
+ +
+ View Source +
    def get_agents(self) -> List[Optional["Agent"]]:
+        """
+        Return all of the agents for this assignment
+        """
+        units = self.get_units()
+        return [u.get_assigned_agent() for u in units]
+
+ +
+ +

Return all of the agents for this assignment

+
+ + +
+
+
#   + + + def + get_status(self) -> str: +
+ +
+ View Source +
    def get_status(self) -> str:
+        """
+        Get the status of this assignment, as determined by the status of
+        the units
+        """
+        units = self.get_units()
+        statuses = set(unit.get_status() for unit in units)
+
+        if len(statuses) == 1:
+            return statuses.pop()
+
+        if len(statuses) == 0:
+            return AssignmentState.CREATED
+
+        if AssignmentState.CREATED in statuses:
+            return AssignmentState.CREATED
+
+        if any([s == AssignmentState.LAUNCHED for s in statuses]):
+            # If any are only launched, consider the whole thing launched
+            return AssignmentState.LAUNCHED
+
+        if any([s == AssignmentState.ASSIGNED for s in statuses]):
+            # If any are still assigned, consider the whole thing assigned
+            return AssignmentState.ASSIGNED
+
+        if all(
+            [
+                s in [AssignmentState.ACCEPTED, AssignmentState.REJECTED]
+                for s in statuses
+            ]
+        ):
+            return AssignmentState.MIXED
+
+        if all([s in AssignmentState.final_agent() for s in statuses]):
+            return AssignmentState.COMPLETED
+
+        raise NotImplementedError(f"Unexpected set of unit statuses {statuses}")
+
+ +
+ +

Get the status of this assignment, as determined by the status of +the units

+
+ + +
+
+
#   + + + def + get_task_run(self) -> mephisto.data_model.task_run.TaskRun: +
+ +
+ View Source +
    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+ +
+ +

Return the task run that this assignment is part of

+
+ + +
+
+
#   + + + def + get_task(self) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    def get_task(self) -> Task:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+ +
+ +

Return the task run that this assignment is part of

+
+ + +
+
+
#   + + + def + get_requester(self) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    def get_requester(self) -> Requester:
+        """
+        Return the requester who offered this Assignment
+        """
+        if self.__requester is None:
+            if self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+ +
+ +

Return the requester who offered this Assignment

+
+ + +
+
+
#   + + + def + get_units( + self, + status: Union[str, NoneType] = None +) -> list[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    def get_units(self, status: Optional[str] = None) -> List["Unit"]:
+        """
+        Get units for this assignment, optionally
+        constrained by the specific status.
+        """
+        assert (
+            status is None or status in AssignmentState.valid_unit()
+        ), "Invalid assignment status"
+        units = self.db.find_units(assignment_id=self.db_id)
+        if status is not None:
+            units = [u for u in units if u.get_status() == status]
+        return units
+
+ +
+ +

Get units for this assignment, optionally +constrained by the specific status.

+
+ + +
+
+
#   + + + def + get_workers(self) -> list[mephisto.data_model.worker.Worker]: +
+ +
+ View Source +
    def get_workers(self) -> List["Worker"]:
+        """
+        Get the list of workers that have worked on this specific assignment
+        """
+        units = self.get_units()
+        pos_agents = [s.get_assigned_agent() for s in units]
+        agents = [a for a in pos_agents if a is not None]
+        workers = [a.get_worker() for a in agents]
+        return workers
+
+ +
+ +

Get the list of workers that have worked on this specific assignment

+
+ + +
+
+
#   + + + def + get_cost_of_statuses(self, statuses: List[str]) -> float: +
+ +
+ View Source +
    def get_cost_of_statuses(self, statuses: List[str]) -> float:
+        """
+        Return the sum of all pay_amounts for every unit
+        of this assignment with any of the given statuses
+        """
+        units = [u for u in self.get_units() if u.get_status() in statuses]
+        sum_cost = 0.0
+        for unit in units:
+            sum_cost += unit.get_pay_amount()
+        return sum_cost
+
+ +
+ +

Return the sum of all pay_amounts for every unit +of this assignment with any of the given statuses

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + task_run: mephisto.data_model.task_run.TaskRun, + assignment_data: Union[Dict[str, Any], NoneType] +) -> mephisto.data_model.assignment.Assignment: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", task_run: TaskRun, assignment_data: Optional[Dict[str, Any]]
+    ) -> "Assignment":
+        """
+        Create an assignment for the given task. Initialize the folders for storing
+        the results for this assignment. Can take assignment_data to save and
+        load for this particular assignment.
+        """
+        # TODO(#567) consider offloading this state management to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        db_id = db.new_assignment(
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        run_dir = task_run.get_run_dir()
+        assign_dir = os.path.join(run_dir, db_id)
+        os.makedirs(assign_dir)
+        if assignment_data is not None:
+            with open(
+                os.path.join(assign_dir, ASSIGNMENT_DATA_FILE), "w+"
+            ) as json_file:
+                json.dump(assignment_data, json_file)
+        assignment = Assignment.get(db, db_id)
+        logger.debug(f"{assignment} created for {task_run}")
+        return assignment
+
+ +
+ +

Create an assignment for the given task. Initialize the folders for storing +the results for this assignment. Can take assignment_data to save and +load for this particular assignment.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/constants.html b/docs/web/static/python_api/mephisto/data_model/constants.html new file mode 100644 index 000000000..3b6bd0678 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/constants.html @@ -0,0 +1,260 @@ + + + + + + + + + mephisto.data_model.constants API documentation + + + + + + + + + +
+
+

+mephisto.data_model.constants

+ +

This file contains any constants shared in the data model that +aren't more appropriately held in one of the object-focused files

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+This file contains any constants shared in the data model that
+aren't more appropriately held in one of the object-focused files
+"""
+
+NO_PROJECT_NAME = "NO_PROJECT"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/constants/assignment_state.html b/docs/web/static/python_api/mephisto/data_model/constants/assignment_state.html new file mode 100644 index 000000000..97bbfd231 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/constants/assignment_state.html @@ -0,0 +1,821 @@ + + + + + + + + + mephisto.data_model.constants.assignment_state API documentation + + + + + + + + + +
+
+

+mephisto.data_model.constants.assignment_state

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+from typing import List
+
+
+class AssignmentState:
+    CREATED = "created"
+    LAUNCHED = "launched"
+    ASSIGNED = "assigned"
+    COMPLETED = "completed"
+    ACCEPTED = "accepted"
+    MIXED = "mixed"
+    REJECTED = "rejected"
+    SOFT_REJECTED = "soft_rejected"
+    EXPIRED = "expired"
+
+    @staticmethod
+    def valid() -> List[str]:
+        """Return all valid assignment statuses"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.MIXED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+    @staticmethod
+    def incomplete() -> List[str]:
+        """Return all statuses that are considered incomplete"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+        ]
+
+    @staticmethod
+    def payable() -> List[str]:
+        """Return all statuses that should be considered spent budget"""
+        return [
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def valid_unit() -> List[str]:
+        """Return all statuses that are valids for a Unit"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+    @staticmethod
+    def final_unit() -> List[str]:
+        """Return all statuses that are terminal for a Unit"""
+        return [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def completed() -> List[str]:
+        """Return all statuses that denote a unit having been completed"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def final_agent() -> List[str]:
+        """Return all statuses that are terminal changes to a Unit's agent"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+ +
+ +
+
+
+ #   + + + class + AssignmentState: +
+ +
+ View Source +
class AssignmentState:
+    CREATED = "created"
+    LAUNCHED = "launched"
+    ASSIGNED = "assigned"
+    COMPLETED = "completed"
+    ACCEPTED = "accepted"
+    MIXED = "mixed"
+    REJECTED = "rejected"
+    SOFT_REJECTED = "soft_rejected"
+    EXPIRED = "expired"
+
+    @staticmethod
+    def valid() -> List[str]:
+        """Return all valid assignment statuses"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.MIXED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+    @staticmethod
+    def incomplete() -> List[str]:
+        """Return all statuses that are considered incomplete"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+        ]
+
+    @staticmethod
+    def payable() -> List[str]:
+        """Return all statuses that should be considered spent budget"""
+        return [
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def valid_unit() -> List[str]:
+        """Return all statuses that are valids for a Unit"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+    @staticmethod
+    def final_unit() -> List[str]:
+        """Return all statuses that are terminal for a Unit"""
+        return [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def completed() -> List[str]:
+        """Return all statuses that denote a unit having been completed"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+    @staticmethod
+    def final_agent() -> List[str]:
+        """Return all statuses that are terminal changes to a Unit's agent"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+ +
+ + + +
+
#   + + + AssignmentState() +
+ + + + +
+
+
#   + + CREATED = 'created' +
+ + + + +
+
+
#   + + LAUNCHED = 'launched' +
+ + + + +
+
+
#   + + ASSIGNED = 'assigned' +
+ + + + +
+
+
#   + + COMPLETED = 'completed' +
+ + + + +
+
+
#   + + ACCEPTED = 'accepted' +
+ + + + +
+
+
#   + + MIXED = 'mixed' +
+ + + + +
+
+
#   + + REJECTED = 'rejected' +
+ + + + +
+
+
#   + + SOFT_REJECTED = 'soft_rejected' +
+ + + + +
+
+
#   + + EXPIRED = 'expired' +
+ + + + +
+
+
#   + +
@staticmethod
+ + def + valid() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def valid() -> List[str]:
+        """Return all valid assignment statuses"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.MIXED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+ +
+ +

Return all valid assignment statuses

+
+ + +
+
+
#   + +
@staticmethod
+ + def + incomplete() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def incomplete() -> List[str]:
+        """Return all statuses that are considered incomplete"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+        ]
+
+ +
+ +

Return all statuses that are considered incomplete

+
+ + +
+
+
#   + +
@staticmethod
+ + def + payable() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def payable() -> List[str]:
+        """Return all statuses that should be considered spent budget"""
+        return [
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+ +
+ +

Return all statuses that should be considered spent budget

+
+ + +
+
+
#   + +
@staticmethod
+ + def + valid_unit() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def valid_unit() -> List[str]:
+        """Return all statuses that are valids for a Unit"""
+        return [
+            AssignmentState.CREATED,
+            AssignmentState.LAUNCHED,
+            AssignmentState.ASSIGNED,
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+ +
+ +

Return all statuses that are valids for a Unit

+
+ + +
+
+
#   + +
@staticmethod
+ + def + final_unit() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def final_unit() -> List[str]:
+        """Return all statuses that are terminal for a Unit"""
+        return [
+            AssignmentState.ACCEPTED,
+            AssignmentState.EXPIRED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+ +
+ +

Return all statuses that are terminal for a Unit

+
+ + +
+
+
#   + +
@staticmethod
+ + def + completed() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def completed() -> List[str]:
+        """Return all statuses that denote a unit having been completed"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+        ]
+
+ +
+ +

Return all statuses that denote a unit having been completed

+
+ + +
+
+
#   + +
@staticmethod
+ + def + final_agent() -> List[str]: +
+ +
+ View Source +
    @staticmethod
+    def final_agent() -> List[str]:
+        """Return all statuses that are terminal changes to a Unit's agent"""
+        return [
+            AssignmentState.COMPLETED,
+            AssignmentState.ACCEPTED,
+            AssignmentState.REJECTED,
+            AssignmentState.SOFT_REJECTED,
+            AssignmentState.EXPIRED,
+        ]
+
+ +
+ +

Return all statuses that are terminal changes to a Unit's agent

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/exceptions.html b/docs/web/static/python_api/mephisto/data_model/exceptions.html new file mode 100644 index 000000000..6e367b609 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/exceptions.html @@ -0,0 +1,600 @@ + + + + + + + + + mephisto.data_model.exceptions API documentation + + + + + + + + + +
+
+

+mephisto.data_model.exceptions

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+# types of exceptions thrown when an agent exits the chat. These are thrown
+# on a failed act call call. If one of these is thrown and not handled,
+# the world should die and enter cleanup.
+class AbsentAgentError(Exception):
+    """Exceptions for when an agent leaves a task"""
+
+    def __init__(self, message, agent_id):
+        self.message = message
+        self.agent_id = agent_id
+
+
+class AgentDisconnectedError(AbsentAgentError):
+    """Exception for a real disconnect event (no signal)"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"Agent disconnected", agent_id)
+
+
+class AgentTimeoutError(AbsentAgentError):
+    """Exception for when a worker doesn't respond in time"""
+
+    def __init__(self, timeout, agent_id):
+        super().__init__(f"Agent exceeded {timeout}", agent_id)
+
+
+class AgentReturnedError(AbsentAgentError):
+    """Exception for an explicit return event (worker returns task)"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"Agent returned task", agent_id)
+
+
+class AgentShutdownError(AbsentAgentError):
+    """Exception for when a task is shutdown but agents are still in a task"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"This agent has been forced to shut down", agent_id)
+
+ +
+ +
+
+
+ #   + + + class + AbsentAgentError(builtins.Exception): +
+ +
+ View Source +
class AbsentAgentError(Exception):
+    """Exceptions for when an agent leaves a task"""
+
+    def __init__(self, message, agent_id):
+        self.message = message
+        self.agent_id = agent_id
+
+ +
+ +

Exceptions for when an agent leaves a task

+
+ + +
+
#   + + + AbsentAgentError(message, agent_id) +
+ +
+ View Source +
    def __init__(self, message, agent_id):
+        self.message = message
+        self.agent_id = agent_id
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + AgentDisconnectedError(AbsentAgentError): +
+ +
+ View Source +
class AgentDisconnectedError(AbsentAgentError):
+    """Exception for a real disconnect event (no signal)"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"Agent disconnected", agent_id)
+
+ +
+ +

Exception for a real disconnect event (no signal)

+
+ + +
+
#   + + + AgentDisconnectedError(agent_id) +
+ +
+ View Source +
    def __init__(self, agent_id):
+        super().__init__(f"Agent disconnected", agent_id)
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + AgentTimeoutError(AbsentAgentError): +
+ +
+ View Source +
class AgentTimeoutError(AbsentAgentError):
+    """Exception for when a worker doesn't respond in time"""
+
+    def __init__(self, timeout, agent_id):
+        super().__init__(f"Agent exceeded {timeout}", agent_id)
+
+ +
+ +

Exception for when a worker doesn't respond in time

+
+ + +
+
#   + + + AgentTimeoutError(timeout, agent_id) +
+ +
+ View Source +
    def __init__(self, timeout, agent_id):
+        super().__init__(f"Agent exceeded {timeout}", agent_id)
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + AgentReturnedError(AbsentAgentError): +
+ +
+ View Source +
class AgentReturnedError(AbsentAgentError):
+    """Exception for an explicit return event (worker returns task)"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"Agent returned task", agent_id)
+
+ +
+ +

Exception for an explicit return event (worker returns task)

+
+ + +
+
#   + + + AgentReturnedError(agent_id) +
+ +
+ View Source +
    def __init__(self, agent_id):
+        super().__init__(f"Agent returned task", agent_id)
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+
+ #   + + + class + AgentShutdownError(AbsentAgentError): +
+ +
+ View Source +
class AgentShutdownError(AbsentAgentError):
+    """Exception for when a task is shutdown but agents are still in a task"""
+
+    def __init__(self, agent_id):
+        super().__init__(f"This agent has been forced to shut down", agent_id)
+
+ +
+ +

Exception for when a task is shutdown but agents are still in a task

+
+ + +
+
#   + + + AgentShutdownError(agent_id) +
+ +
+ View Source +
    def __init__(self, agent_id):
+        super().__init__(f"This agent has been forced to shut down", agent_id)
+
+ +
+ + + +
+
+
Inherited Members
+
+
builtins.BaseException
+
with_traceback
+
args
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/packet.html b/docs/web/static/python_api/mephisto/data_model/packet.html new file mode 100644 index 000000000..a4f333802 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/packet.html @@ -0,0 +1,556 @@ + + + + + + + + + mephisto.data_model.packet API documentation + + + + + + + + + +
+
+

+mephisto.data_model.packet

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Dict, Any
+import time
+
+PACKET_TYPE_ALIVE = "alive"
+PACKET_TYPE_SUBMIT_ONBOARDING = "submit_onboarding"
+PACKET_TYPE_SUBMIT_UNIT = "submit_unit"
+PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE = "client_bound_live_update"
+PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE = "mephisto_bound_live_update"
+PACKET_TYPE_REGISTER_AGENT = "register_agent"
+PACKET_TYPE_AGENT_DETAILS = "agent_details"
+PACKET_TYPE_UPDATE_STATUS = "update_status"
+PACKET_TYPE_REQUEST_STATUSES = "request_statuses"
+PACKET_TYPE_RETURN_STATUSES = "return_statuses"
+PACKET_TYPE_ERROR = "log_error"
+
+
+class Packet:
+    """
+    Simple class for encapsulating messages as sent between the
+    Mephisto python client, the router, and any frontend.
+
+    Used to be able to make assertions about the kind of data
+    being sent for specific message types.
+    """
+
+    def __init__(
+        self,
+        packet_type: str,
+        subject_id: str,  # Target agent id the packet is about
+        data: Optional[Dict[str, Any]] = None,
+        client_timestamp: Optional[float] = None,
+        router_incoming_timestamp: Optional[float] = None,
+        router_outgoing_timestamp: Optional[float] = None,
+        server_timestamp: Optional[float] = None,
+    ):
+        self.type = packet_type
+        self.subject_id = subject_id
+        self.data = {} if data is None else data
+        if server_timestamp is None:
+            server_timestamp = time.time()
+        self.server_timestamp = server_timestamp
+        self.client_timestamp = client_timestamp
+        self.router_incoming_timestamp = router_incoming_timestamp
+        self.router_outgoing_timestamp = router_outgoing_timestamp
+
+    @staticmethod
+    def from_dict(input_dict: Dict[str, Any]) -> "Packet":
+        required_fields = ["packet_type", "subject_id", "data"]
+        for field in required_fields:
+            assert (
+                field in input_dict
+            ), f"Packet input dict {input_dict} missing required field {field}"
+        return Packet(
+            packet_type=input_dict["packet_type"],
+            subject_id=input_dict["subject_id"],
+            data=input_dict["data"],
+            client_timestamp=input_dict.get("client_timestamp"),
+            router_incoming_timestamp=input_dict.get("router_incoming_timestamp"),
+            router_outgoing_timestamp=input_dict.get("router_outgoing_timestamp"),
+            server_timestamp=input_dict.get("server_timestamp"),
+        )
+
+    def to_sendable_dict(self) -> Dict[str, Any]:
+        return {
+            "packet_type": self.type,
+            "subject_id": self.subject_id,
+            "data": self.data,
+            "client_timestamp": self.client_timestamp,
+            "router_incoming_timestamp": self.router_incoming_timestamp,
+            "router_outgoing_timestamp": self.router_outgoing_timestamp,
+            "server_timestamp": self.server_timestamp,
+        }
+
+    def copy(self):
+        return Packet.from_dict(self.to_sendable_dict())
+
+    def __str__(self) -> str:
+        return str(self.to_sendable_dict())
+
+ +
+ +
+
+
+ #   + + + class + Packet: +
+ +
+ View Source +
class Packet:
+    """
+    Simple class for encapsulating messages as sent between the
+    Mephisto python client, the router, and any frontend.
+
+    Used to be able to make assertions about the kind of data
+    being sent for specific message types.
+    """
+
+    def __init__(
+        self,
+        packet_type: str,
+        subject_id: str,  # Target agent id the packet is about
+        data: Optional[Dict[str, Any]] = None,
+        client_timestamp: Optional[float] = None,
+        router_incoming_timestamp: Optional[float] = None,
+        router_outgoing_timestamp: Optional[float] = None,
+        server_timestamp: Optional[float] = None,
+    ):
+        self.type = packet_type
+        self.subject_id = subject_id
+        self.data = {} if data is None else data
+        if server_timestamp is None:
+            server_timestamp = time.time()
+        self.server_timestamp = server_timestamp
+        self.client_timestamp = client_timestamp
+        self.router_incoming_timestamp = router_incoming_timestamp
+        self.router_outgoing_timestamp = router_outgoing_timestamp
+
+    @staticmethod
+    def from_dict(input_dict: Dict[str, Any]) -> "Packet":
+        required_fields = ["packet_type", "subject_id", "data"]
+        for field in required_fields:
+            assert (
+                field in input_dict
+            ), f"Packet input dict {input_dict} missing required field {field}"
+        return Packet(
+            packet_type=input_dict["packet_type"],
+            subject_id=input_dict["subject_id"],
+            data=input_dict["data"],
+            client_timestamp=input_dict.get("client_timestamp"),
+            router_incoming_timestamp=input_dict.get("router_incoming_timestamp"),
+            router_outgoing_timestamp=input_dict.get("router_outgoing_timestamp"),
+            server_timestamp=input_dict.get("server_timestamp"),
+        )
+
+    def to_sendable_dict(self) -> Dict[str, Any]:
+        return {
+            "packet_type": self.type,
+            "subject_id": self.subject_id,
+            "data": self.data,
+            "client_timestamp": self.client_timestamp,
+            "router_incoming_timestamp": self.router_incoming_timestamp,
+            "router_outgoing_timestamp": self.router_outgoing_timestamp,
+            "server_timestamp": self.server_timestamp,
+        }
+
+    def copy(self):
+        return Packet.from_dict(self.to_sendable_dict())
+
+    def __str__(self) -> str:
+        return str(self.to_sendable_dict())
+
+ +
+ +

Simple class for encapsulating messages as sent between the +Mephisto python client, the router, and any frontend.

+ +

Used to be able to make assertions about the kind of data +being sent for specific message types.

+
+ + +
+
#   + + + Packet( + packet_type: str, + subject_id: str, + data: Union[Dict[str, Any], NoneType] = None, + client_timestamp: Union[float, NoneType] = None, + router_incoming_timestamp: Union[float, NoneType] = None, + router_outgoing_timestamp: Union[float, NoneType] = None, + server_timestamp: Union[float, NoneType] = None +) +
+ +
+ View Source +
    def __init__(
+        self,
+        packet_type: str,
+        subject_id: str,  # Target agent id the packet is about
+        data: Optional[Dict[str, Any]] = None,
+        client_timestamp: Optional[float] = None,
+        router_incoming_timestamp: Optional[float] = None,
+        router_outgoing_timestamp: Optional[float] = None,
+        server_timestamp: Optional[float] = None,
+    ):
+        self.type = packet_type
+        self.subject_id = subject_id
+        self.data = {} if data is None else data
+        if server_timestamp is None:
+            server_timestamp = time.time()
+        self.server_timestamp = server_timestamp
+        self.client_timestamp = client_timestamp
+        self.router_incoming_timestamp = router_incoming_timestamp
+        self.router_outgoing_timestamp = router_outgoing_timestamp
+
+ +
+ + + +
+
+
#   + +
@staticmethod
+ + def + from_dict(input_dict: Dict[str, Any]) -> mephisto.data_model.packet.Packet: +
+ +
+ View Source +
    @staticmethod
+    def from_dict(input_dict: Dict[str, Any]) -> "Packet":
+        required_fields = ["packet_type", "subject_id", "data"]
+        for field in required_fields:
+            assert (
+                field in input_dict
+            ), f"Packet input dict {input_dict} missing required field {field}"
+        return Packet(
+            packet_type=input_dict["packet_type"],
+            subject_id=input_dict["subject_id"],
+            data=input_dict["data"],
+            client_timestamp=input_dict.get("client_timestamp"),
+            router_incoming_timestamp=input_dict.get("router_incoming_timestamp"),
+            router_outgoing_timestamp=input_dict.get("router_outgoing_timestamp"),
+            server_timestamp=input_dict.get("server_timestamp"),
+        )
+
+ +
+ + + +
+
+
#   + + + def + to_sendable_dict(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def to_sendable_dict(self) -> Dict[str, Any]:
+        return {
+            "packet_type": self.type,
+            "subject_id": self.subject_id,
+            "data": self.data,
+            "client_timestamp": self.client_timestamp,
+            "router_incoming_timestamp": self.router_incoming_timestamp,
+            "router_outgoing_timestamp": self.router_outgoing_timestamp,
+            "server_timestamp": self.server_timestamp,
+        }
+
+ +
+ + + +
+
+
#   + + + def + copy(self): +
+ +
+ View Source +
    def copy(self):
+        return Packet.from_dict(self.to_sendable_dict())
+
+ +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/project.html b/docs/web/static/python_api/mephisto/data_model/project.html new file mode 100644 index 000000000..7d473ec44 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/project.html @@ -0,0 +1,554 @@ + + + + + + + + + mephisto.data_model.project API documentation + + + + + + + + + +
+
+

+mephisto.data_model.project

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model.constants import NO_PROJECT_NAME
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedMeta,
+    MephistoDataModelComponentMixin,
+)
+
+from typing import List, Mapping, Any, Optional, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task import Task
+
+
+class Project(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    High level project that many crowdsourcing tasks may be related to. Useful
+    for budgeting and grouping tasks for a review perspective.
+
+    Abstracts relevant queries behind usable functions.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Project and data model access via Project(db, id) is "
+                "now deprecated in favor of calling Project.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = self.db.get_project(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["project_id"]
+        self.project_name: str = row["project_name"]
+
+    def get_tasks(self) -> List["Task"]:
+        """
+        Return the list of tasks that are run as part of this project
+        """
+        return self.db.find_tasks(project_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this project
+        across all tasks.
+        """
+        tasks = self.get_tasks()
+        sum_total = 0.0
+        for task in tasks:
+            sum_total += task.get_total_spend()
+        return sum_total
+
+    @staticmethod
+    def new(self, db: "MephistoDB", project_name: str) -> "Project":
+        """
+        Try to create a new project by this name, raise an exception if
+        the name already exists.
+        """
+        assert (
+            project_name != NO_PROJECT_NAME
+        ), f"{project_name} is a reserved name that cannot be used as a project name."
+        db_id = db.new_project(project_name)
+        return Project.get(db, db_id)
+
+ +
+ +
+
+ + +
+ View Source +
class Project(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    High level project that many crowdsourcing tasks may be related to. Useful
+    for budgeting and grouping tasks for a review perspective.
+
+    Abstracts relevant queries behind usable functions.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Project and data model access via Project(db, id) is "
+                "now deprecated in favor of calling Project.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = self.db.get_project(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["project_id"]
+        self.project_name: str = row["project_name"]
+
+    def get_tasks(self) -> List["Task"]:
+        """
+        Return the list of tasks that are run as part of this project
+        """
+        return self.db.find_tasks(project_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this project
+        across all tasks.
+        """
+        tasks = self.get_tasks()
+        sum_total = 0.0
+        for task in tasks:
+            sum_total += task.get_total_spend()
+        return sum_total
+
+    @staticmethod
+    def new(self, db: "MephistoDB", project_name: str) -> "Project":
+        """
+        Try to create a new project by this name, raise an exception if
+        the name already exists.
+        """
+        assert (
+            project_name != NO_PROJECT_NAME
+        ), f"{project_name} is a reserved name that cannot be used as a project name."
+        db_id = db.new_project(project_name)
+        return Project.get(db, db_id)
+
+ +
+ +

High level project that many crowdsourcing tasks may be related to. Useful +for budgeting and grouping tasks for a review perspective.

+ +

Abstracts relevant queries behind usable functions.

+
+ + +
+
#   + + + Project( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Project and data model access via Project(db, id) is "
+                "now deprecated in favor of calling Project.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = self.db.get_project(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["project_id"]
+        self.project_name: str = row["project_name"]
+
+ +
+ + + +
+
+
#   + + + def + get_tasks(self) -> list[mephisto.data_model.task.Task]: +
+ +
+ View Source +
    def get_tasks(self) -> List["Task"]:
+        """
+        Return the list of tasks that are run as part of this project
+        """
+        return self.db.find_tasks(project_id=self.db_id)
+
+ +
+ +

Return the list of tasks that are run as part of this project

+
+ + +
+
+
#   + + + def + get_total_spend(self) -> float: +
+ +
+ View Source +
    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this project
+        across all tasks.
+        """
+        tasks = self.get_tasks()
+        sum_total = 0.0
+        for task in tasks:
+            sum_total += task.get_total_spend()
+        return sum_total
+
+ +
+ +

Return the total amount of funding spent for this project +across all tasks.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + self, + db: mephisto.abstractions.database.MephistoDB, + project_name: str +) -> mephisto.data_model.project.Project: +
+ +
+ View Source +
    @staticmethod
+    def new(self, db: "MephistoDB", project_name: str) -> "Project":
+        """
+        Try to create a new project by this name, raise an exception if
+        the name already exists.
+        """
+        assert (
+            project_name != NO_PROJECT_NAME
+        ), f"{project_name} is a reserved name that cannot be used as a project name."
+        db_id = db.new_project(project_name)
+        return Project.get(db, db_id)
+
+ +
+ +

Try to create a new project by this name, raise an exception if +the name already exists.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/qualification.html b/docs/web/static/python_api/mephisto/data_model/qualification.html new file mode 100644 index 000000000..b2d090dc3 --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/qualification.html @@ -0,0 +1,523 @@ + + + + + + + + + mephisto.data_model.qualification API documentation + + + + + + + + + +
+
+

+mephisto.data_model.qualification

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedMeta,
+    MephistoDataModelComponentMixin,
+)
+
+from typing import Optional, Mapping, TYPE_CHECKING, Any
+
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+QUAL_GREATER = "GreaterThan"
+QUAL_GREATER_EQUAL = "GreaterThanOrEqualTo"
+QUAL_LESS = "LessThan"
+QUAL_LESS_EQUAL = "LessThanOrEqualTo"
+QUAL_EQUAL = "EqualTo"
+QUAL_NOT_EQUAL = "NotEqualTo"
+QUAL_EXISTS = "Exists"
+QUAL_NOT_EXIST = "DoesNotExist"
+QUAL_IN_LIST = "In"
+QUAL_NOT_IN_LIST = "NotIn"
+
+SUPPORTED_COMPARATORS = [
+    QUAL_GREATER,
+    QUAL_GREATER_EQUAL,
+    QUAL_LESS,
+    QUAL_LESS_EQUAL,
+    QUAL_EQUAL,
+    QUAL_NOT_EQUAL,
+    QUAL_EXISTS,
+    QUAL_NOT_EXIST,
+    QUAL_IN_LIST,
+    QUAL_NOT_IN_LIST,
+]
+
+COMPARATOR_OPERATIONS = {
+    QUAL_GREATER: lambda x, y: x > y,
+    QUAL_GREATER_EQUAL: lambda x, y: x >= y,
+    QUAL_LESS: lambda x, y: x < y,
+    QUAL_LESS_EQUAL: lambda x, y: x <= y,
+    QUAL_EQUAL: lambda x, y: x == y,
+    QUAL_NOT_EQUAL: lambda x, y: not x == y,
+    QUAL_IN_LIST: lambda x, y: x in y,
+    QUAL_NOT_IN_LIST: lambda x, y: x not in y,
+}
+
+
+class Qualification(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """Simple convenience wrapper for Qualifications in the data model"""
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Qualification and data model access via Qualification(db, id) is "
+                "now deprecated in favor of calling Qualification.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_qualification(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["qualification_id"]
+        self.qualification_name: str = row["qualification_name"]
+
+
+class GrantedQualification:
+    """Convenience wrapper for tracking granted qualifications"""
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        qualification_id: str,
+        worker_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_granted_qualification(qualification_id, worker_id)
+        assert row is not None, f"Granted qualification did not exist in given db"
+        self.worker_id: str = row["worker_id"]
+        self.qualification_id: str = row["qualification_id"]
+        self.value: str = row["value"]
+
+ +
+ +
+
+ + +
+ View Source +
class Qualification(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """Simple convenience wrapper for Qualifications in the data model"""
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Qualification and data model access via Qualification(db, id) is "
+                "now deprecated in favor of calling Qualification.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_qualification(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["qualification_id"]
+        self.qualification_name: str = row["qualification_name"]
+
+ +
+ +

Simple convenience wrapper for Qualifications in the data model

+
+ + +
+
#   + + + Qualification( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Qualification and data model access via Qualification(db, id) is "
+                "now deprecated in favor of calling Qualification.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_qualification(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["qualification_id"]
+        self.qualification_name: str = row["qualification_name"]
+
+ +
+ + + +
+ +
+
+
+ #   + + + class + GrantedQualification: +
+ +
+ View Source +
class GrantedQualification:
+    """Convenience wrapper for tracking granted qualifications"""
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        qualification_id: str,
+        worker_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_granted_qualification(qualification_id, worker_id)
+        assert row is not None, f"Granted qualification did not exist in given db"
+        self.worker_id: str = row["worker_id"]
+        self.qualification_id: str = row["qualification_id"]
+        self.value: str = row["value"]
+
+ +
+ +

Convenience wrapper for tracking granted qualifications

+
+ + +
+
#   + + + GrantedQualification( + db: mephisto.abstractions.database.MephistoDB, + qualification_id: str, + worker_id: str, + row: Union[Mapping[str, Any], NoneType] = None +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        qualification_id: str,
+        worker_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+    ):
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_granted_qualification(qualification_id, worker_id)
+        assert row is not None, f"Granted qualification did not exist in given db"
+        self.worker_id: str = row["worker_id"]
+        self.qualification_id: str = row["qualification_id"]
+        self.value: str = row["value"]
+
+ +
+ + + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/requester.html b/docs/web/static/python_api/mephisto/data_model/requester.html new file mode 100644 index 000000000..8dc660e7e --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/requester.html @@ -0,0 +1,1024 @@ + + + + + + + + + mephisto.data_model.requester API documentation + + + + + + + + + +
+
+

+mephisto.data_model.requester

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from abc import abstractmethod, abstractstaticmethod
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedABCMeta,
+    MephistoDataModelComponentMixin,
+)
+from dataclasses import dataclass, field
+from omegaconf import MISSING, DictConfig
+
+from typing import List, Optional, Mapping, Dict, TYPE_CHECKING, Any, Type, ClassVar
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+@dataclass
+class RequesterArgs:
+    """Base class for arguments to register a requester"""
+
+    name: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+
+
+class Requester(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass: ClassVar[Type["RequesterArgs"]] = RequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Requester and data model access via Requester(db, id) is "
+                "now deprecated in favor of calling Requester.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_requester(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["requester_id"]
+        self.provider_type: str = row["provider_type"]
+        self.requester_name: str = row["requester_name"]
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_task_runs(self) -> List["TaskRun"]:
+        """
+        Return the list of task runs that are run by this requester
+        """
+        return self.db.find_task_runs(requester_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent by this requester
+        across all tasks.
+        """
+        task_runs = self.db.find_task_runs(requester_id=self.db_id)
+        total_spend = 0.0
+        for run in task_runs:
+            total_spend += run.get_total_spend()
+        return total_spend
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """
+        Determine if this is a requester on a sandbox/test account
+        """
+        return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    @staticmethod
+    def _register_requester(
+        db: "MephistoDB", requester_id: str, provider_type: str
+    ) -> "Requester":
+        """
+        Create an entry for this requester in the database
+        """
+        db_id = db.new_requester(requester_id, provider_type)
+        requester = Requester.get(db, db_id)
+        logger.debug(f"Registered new requester {requester}")
+        return requester
+
+    # Children classes should implement the following methods
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+
+        Should throw an exception if something is wrong with provided registration arguments.
+        """
+        raise NotImplementedError()
+
+    def is_registered(self) -> bool:
+        """Check to see if this requester has already been registered"""
+        raise NotImplementedError()
+
+    def get_available_budget(self) -> float:
+        """
+        Return the funds that this requester profile has available for usage with
+        its crowdsourcing vendor
+        """
+        raise NotImplementedError()
+
+    def to_dict(self) -> Dict[str, Any]:
+        """
+        Produce a dict of this requester and important features for json serialization
+        """
+        return {
+            "requester_id": self.db_id,
+            "provider_type": self.provider_type,
+            "requester_name": self.requester_name,
+            "registered": self.is_registered(),
+        }
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        """
+        Try to create a new requester by this name, raise an exception if
+        the name already exists.
+
+        Implementation should call _register_requester(db, requester_id) when sure the requester
+        can be successfully created to have it put into the db and return the result.
+        """
+        raise NotImplementedError()
+
+ +
+ +
+
+
+ #   + + + class + RequesterArgs: +
+ +
+ View Source +
class RequesterArgs:
+    """Base class for arguments to register a requester"""
+
+    name: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+
+ +
+ +

Base class for arguments to register a requester

+
+ + +
+
#   + + + RequesterArgs(name: str = '???') +
+ + + + +
+
+
#   + + name: str = '???' +
+ + + + +
+
+
+ + +
+ View Source +
class Requester(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    High level class representing a requester on some kind of crowd provider. Sets some default
+    initializations, but mostly should be extended by the specific requesters for crowd providers
+    with whatever implementation details are required to get those to work.
+    """
+
+    ArgsClass: ClassVar[Type["RequesterArgs"]] = RequesterArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Requester and data model access via Requester(db, id) is "
+                "now deprecated in favor of calling Requester.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_requester(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["requester_id"]
+        self.provider_type: str = row["provider_type"]
+        self.requester_name: str = row["requester_name"]
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_task_runs(self) -> List["TaskRun"]:
+        """
+        Return the list of task runs that are run by this requester
+        """
+        return self.db.find_task_runs(requester_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent by this requester
+        across all tasks.
+        """
+        task_runs = self.db.find_task_runs(requester_id=self.db_id)
+        total_spend = 0.0
+        for run in task_runs:
+            total_spend += run.get_total_spend()
+        return total_spend
+
+    @classmethod
+    def is_sandbox(self) -> bool:
+        """
+        Determine if this is a requester on a sandbox/test account
+        """
+        return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    @staticmethod
+    def _register_requester(
+        db: "MephistoDB", requester_id: str, provider_type: str
+    ) -> "Requester":
+        """
+        Create an entry for this requester in the database
+        """
+        db_id = db.new_requester(requester_id, provider_type)
+        requester = Requester.get(db, db_id)
+        logger.debug(f"Registered new requester {requester}")
+        return requester
+
+    # Children classes should implement the following methods
+
+    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+
+        Should throw an exception if something is wrong with provided registration arguments.
+        """
+        raise NotImplementedError()
+
+    def is_registered(self) -> bool:
+        """Check to see if this requester has already been registered"""
+        raise NotImplementedError()
+
+    def get_available_budget(self) -> float:
+        """
+        Return the funds that this requester profile has available for usage with
+        its crowdsourcing vendor
+        """
+        raise NotImplementedError()
+
+    def to_dict(self) -> Dict[str, Any]:
+        """
+        Produce a dict of this requester and important features for json serialization
+        """
+        return {
+            "requester_id": self.db_id,
+            "provider_type": self.provider_type,
+            "requester_name": self.requester_name,
+            "registered": self.is_registered(),
+        }
+
+    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        """
+        Try to create a new requester by this name, raise an exception if
+        the name already exists.
+
+        Implementation should call _register_requester(db, requester_id) when sure the requester
+        can be successfully created to have it put into the db and return the result.
+        """
+        raise NotImplementedError()
+
+ +
+ +

High level class representing a requester on some kind of crowd provider. Sets some default +initializations, but mostly should be extended by the specific requesters for crowd providers +with whatever implementation details are required to get those to work.

+
+ + +
+
#   + + + Requester( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Requester":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Requester class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Requester
+        as you will instead be returned the correct Requester class according to
+        the crowdprovider associated with this Requester.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Requester:
+            # We are trying to construct a Requester, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_requester(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).RequesterClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Requester class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Requester +as you will instead be returned the correct Requester class according to +the crowdprovider associated with this Requester.

+
+ + +
+
+
#   + + + def + get_task_runs(self) -> list[mephisto.data_model.task_run.TaskRun]: +
+ +
+ View Source +
    def get_task_runs(self) -> List["TaskRun"]:
+        """
+        Return the list of task runs that are run by this requester
+        """
+        return self.db.find_task_runs(requester_id=self.db_id)
+
+ +
+ +

Return the list of task runs that are run by this requester

+
+ + +
+
+
#   + + + def + get_total_spend(self) -> float: +
+ +
+ View Source +
    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent by this requester
+        across all tasks.
+        """
+        task_runs = self.db.find_task_runs(requester_id=self.db_id)
+        total_spend = 0.0
+        for run in task_runs:
+            total_spend += run.get_total_spend()
+        return total_spend
+
+ +
+ +

Return the total amount of funding spent by this requester +across all tasks.

+
+ + +
+
+
#   + +
@classmethod
+ + def + is_sandbox(self) -> bool: +
+ +
+ View Source +
    @classmethod
+    def is_sandbox(self) -> bool:
+        """
+        Determine if this is a requester on a sandbox/test account
+        """
+        return False
+
+ +
+ +

Determine if this is a requester on a sandbox/test account

+
+ + +
+
+
#   + + + def + register( + self, + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> None: +
+ +
+ View Source +
    def register(self, args: Optional[DictConfig] = None) -> None:
+        """
+        Register this requester with the crowd provider by providing any required credentials
+        or such. If no args are provided, assume the registration is already made and try
+        to assert it as such.
+
+        Should throw an exception if something is wrong with provided registration arguments.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Register this requester with the crowd provider by providing any required credentials +or such. If no args are provided, assume the registration is already made and try +to assert it as such.

+ +

Should throw an exception if something is wrong with provided registration arguments.

+
+ + +
+
+
#   + + + def + is_registered(self) -> bool: +
+ +
+ View Source +
    def is_registered(self) -> bool:
+        """Check to see if this requester has already been registered"""
+        raise NotImplementedError()
+
+ +
+ +

Check to see if this requester has already been registered

+
+ + +
+
+
#   + + + def + get_available_budget(self) -> float: +
+ +
+ View Source +
    def get_available_budget(self) -> float:
+        """
+        Return the funds that this requester profile has available for usage with
+        its crowdsourcing vendor
+        """
+        raise NotImplementedError()
+
+ +
+ +

Return the funds that this requester profile has available for usage with +its crowdsourcing vendor

+
+ + +
+
+
#   + + + def + to_dict(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def to_dict(self) -> Dict[str, Any]:
+        """
+        Produce a dict of this requester and important features for json serialization
+        """
+        return {
+            "requester_id": self.db_id,
+            "provider_type": self.provider_type,
+            "requester_name": self.requester_name,
+            "registered": self.is_registered(),
+        }
+
+ +
+ +

Produce a dict of this requester and important features for json serialization

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + requester_name: str +) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", requester_name: str) -> "Requester":
+        """
+        Try to create a new requester by this name, raise an exception if
+        the name already exists.
+
+        Implementation should call _register_requester(db, requester_id) when sure the requester
+        can be successfully created to have it put into the db and return the result.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Try to create a new requester by this name, raise an exception if +the name already exists.

+ +

Implementation should call _register_requester(db, requester_id) when sure the requester +can be successfully created to have it put into the db and return the result.

+
+ + +
+ +
+
+
+ #   + + + class + Requester.ArgsClass: +
+ +
+ View Source +
class RequesterArgs:
+    """Base class for arguments to register a requester"""
+
+    name: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Name for the requester in the Mephisto DB.",
+            "required": True,
+        },
+    )
+
+ +
+ +

Base class for arguments to register a requester

+
+ + +
+
Inherited Members
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/task.html b/docs/web/static/python_api/mephisto/data_model/task.html new file mode 100644 index 000000000..c78b3e7fd --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/task.html @@ -0,0 +1,773 @@ + + + + + + + + + mephisto.data_model.task API documentation + + + + + + + + + +
+
+

+mephisto.data_model.task

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import os
+from shutil import copytree
+
+from mephisto.data_model.project import Project
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedMeta,
+    MephistoDataModelComponentMixin,
+)
+from mephisto.utils.dirs import get_dir_for_task
+
+from functools import reduce
+
+from typing import List, Optional, Mapping, TYPE_CHECKING, Any
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+
+
+def assert_task_is_valid(dir_name, task_type) -> None:
+    """
+    Go through the given task directory and ensure it is valid under the
+    given task type
+    """
+    # TODO(#97) actually check to ensure all the expected files are there
+    pass
+
+
+class Task(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class contains all of the required tidbits for launching a set of
+    assignments, primarily by leveraging a blueprint. It also takes the
+    project name if this task is to be associated with a specific project.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Task and data model access via Task(db, id) is "
+                "now deprecated in favor of calling Task.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_id"]
+        self.task_name: str = row["task_name"]
+        self.task_type: str = row["task_type"]
+        self.project_id: Optional[str] = row["project_id"]
+        self.parent_task_id: Optional[str] = row["parent_task_id"]
+
+    def get_project(self) -> Optional[Project]:
+        """
+        Get the project for this task, if it exists
+        """
+        if self.project_id is not None:
+            return Project.get(self.db, self.project_id)
+        else:
+            return None
+
+    def set_project(self, project: Project) -> None:
+        if self.project_id != project.db_id:
+            # TODO(#101) this constitutes an update, must go back to the db
+            raise NotImplementedError()
+
+    def get_runs(self) -> List["TaskRun"]:
+        """
+        Return all of the runs of this task that have been launched
+        """
+        return self.db.find_task_runs(task_id=self.db_id)
+
+    def get_assignments(self) -> List["Assignment"]:
+        """
+        Return all of the assignments for all runs of this task
+        """
+        return self.db.find_assignments(task_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this task.
+        """
+        total_spend = 0.0
+        for task_run in self.get_runs():
+            total_spend += task_run.get_total_spend()
+        return total_spend
+
+    @staticmethod
+    def new(
+        db: "MephistoDB",
+        task_name: str,
+        task_type: str,
+    ) -> "Task":
+        """
+        Create a new task by the given name, ensure that the folder for this task
+        exists and has the expected directories and files. If a project is
+        specified, register the task underneath it
+        """
+        # TODO(#567) this state management should be offloaded to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        assert (
+            len(db.find_tasks(task_name=task_name)) == 0
+        ), f"A task named {task_name} already exists!"
+
+        new_task_dir = get_dir_for_task(task_name, not_exists_ok=True)
+        assert new_task_dir is not None, "Should always be able to make a new task dir"
+        assert_task_is_valid(new_task_dir, task_type)
+
+        db_id = db.new_task(task_name, task_type)
+        return Task.get(db, db_id)
+
+        def __repr__(self):
+            return f"Task-{self.task_name} [{self.task_type}]"
+
+ +
+ +
+
+
#   + + + def + assert_task_is_valid(dir_name, task_type) -> None: +
+ +
+ View Source +
def assert_task_is_valid(dir_name, task_type) -> None:
+    """
+    Go through the given task directory and ensure it is valid under the
+    given task type
+    """
+    # TODO(#97) actually check to ensure all the expected files are there
+    pass
+
+ +
+ +

Go through the given task directory and ensure it is valid under the +given task type

+
+ + +
+
+ + +
+ View Source +
class Task(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class contains all of the required tidbits for launching a set of
+    assignments, primarily by leveraging a blueprint. It also takes the
+    project name if this task is to be associated with a specific project.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Task and data model access via Task(db, id) is "
+                "now deprecated in favor of calling Task.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_id"]
+        self.task_name: str = row["task_name"]
+        self.task_type: str = row["task_type"]
+        self.project_id: Optional[str] = row["project_id"]
+        self.parent_task_id: Optional[str] = row["parent_task_id"]
+
+    def get_project(self) -> Optional[Project]:
+        """
+        Get the project for this task, if it exists
+        """
+        if self.project_id is not None:
+            return Project.get(self.db, self.project_id)
+        else:
+            return None
+
+    def set_project(self, project: Project) -> None:
+        if self.project_id != project.db_id:
+            # TODO(#101) this constitutes an update, must go back to the db
+            raise NotImplementedError()
+
+    def get_runs(self) -> List["TaskRun"]:
+        """
+        Return all of the runs of this task that have been launched
+        """
+        return self.db.find_task_runs(task_id=self.db_id)
+
+    def get_assignments(self) -> List["Assignment"]:
+        """
+        Return all of the assignments for all runs of this task
+        """
+        return self.db.find_assignments(task_id=self.db_id)
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this task.
+        """
+        total_spend = 0.0
+        for task_run in self.get_runs():
+            total_spend += task_run.get_total_spend()
+        return total_spend
+
+    @staticmethod
+    def new(
+        db: "MephistoDB",
+        task_name: str,
+        task_type: str,
+    ) -> "Task":
+        """
+        Create a new task by the given name, ensure that the folder for this task
+        exists and has the expected directories and files. If a project is
+        specified, register the task underneath it
+        """
+        # TODO(#567) this state management should be offloaded to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        assert (
+            len(db.find_tasks(task_name=task_name)) == 0
+        ), f"A task named {task_name} already exists!"
+
+        new_task_dir = get_dir_for_task(task_name, not_exists_ok=True)
+        assert new_task_dir is not None, "Should always be able to make a new task dir"
+        assert_task_is_valid(new_task_dir, task_type)
+
+        db_id = db.new_task(task_name, task_type)
+        return Task.get(db, db_id)
+
+        def __repr__(self):
+            return f"Task-{self.task_name} [{self.task_type}]"
+
+ +
+ +

This class contains all of the required tidbits for launching a set of +assignments, primarily by leveraging a blueprint. It also takes the +project name if this task is to be associated with a specific project.

+
+ + +
+
#   + + + Task( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Task and data model access via Task(db, id) is "
+                "now deprecated in favor of calling Task.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_id"]
+        self.task_name: str = row["task_name"]
+        self.task_type: str = row["task_type"]
+        self.project_id: Optional[str] = row["project_id"]
+        self.parent_task_id: Optional[str] = row["parent_task_id"]
+
+ +
+ + + +
+
+
#   + + + def + get_project(self) -> Union[mephisto.data_model.project.Project, NoneType]: +
+ +
+ View Source +
    def get_project(self) -> Optional[Project]:
+        """
+        Get the project for this task, if it exists
+        """
+        if self.project_id is not None:
+            return Project.get(self.db, self.project_id)
+        else:
+            return None
+
+ +
+ +

Get the project for this task, if it exists

+
+ + +
+
+
#   + + + def + set_project(self, project: mephisto.data_model.project.Project) -> None: +
+ +
+ View Source +
    def set_project(self, project: Project) -> None:
+        if self.project_id != project.db_id:
+            # TODO(#101) this constitutes an update, must go back to the db
+            raise NotImplementedError()
+
+ +
+ + + +
+
+
#   + + + def + get_runs(self) -> list[mephisto.data_model.task_run.TaskRun]: +
+ +
+ View Source +
    def get_runs(self) -> List["TaskRun"]:
+        """
+        Return all of the runs of this task that have been launched
+        """
+        return self.db.find_task_runs(task_id=self.db_id)
+
+ +
+ +

Return all of the runs of this task that have been launched

+
+ + +
+
+
#   + + + def + get_assignments(self) -> list[mephisto.data_model.assignment.Assignment]: +
+ +
+ View Source +
    def get_assignments(self) -> List["Assignment"]:
+        """
+        Return all of the assignments for all runs of this task
+        """
+        return self.db.find_assignments(task_id=self.db_id)
+
+ +
+ +

Return all of the assignments for all runs of this task

+
+ + +
+
+
#   + + + def + get_total_spend(self) -> float: +
+ +
+ View Source +
    def get_total_spend(self) -> float:
+        """
+        Return the total amount of funding spent for this task.
+        """
+        total_spend = 0.0
+        for task_run in self.get_runs():
+            total_spend += task_run.get_total_spend()
+        return total_spend
+
+ +
+ +

Return the total amount of funding spent for this task.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + task_name: str, + task_type: str +) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB",
+        task_name: str,
+        task_type: str,
+    ) -> "Task":
+        """
+        Create a new task by the given name, ensure that the folder for this task
+        exists and has the expected directories and files. If a project is
+        specified, register the task underneath it
+        """
+        # TODO(#567) this state management should be offloaded to the MephistoDB
+        # as it is data handling and can theoretically be done differently
+        # in different implementations
+        assert (
+            len(db.find_tasks(task_name=task_name)) == 0
+        ), f"A task named {task_name} already exists!"
+
+        new_task_dir = get_dir_for_task(task_name, not_exists_ok=True)
+        assert new_task_dir is not None, "Should always be able to make a new task dir"
+        assert_task_is_valid(new_task_dir, task_type)
+
+        db_id = db.new_task(task_name, task_type)
+        return Task.get(db, db_id)
+
+        def __repr__(self):
+            return f"Task-{self.task_name} [{self.task_type}]"
+
+ +
+ +

Create a new task by the given name, ensure that the folder for this task +exists and has the expected directories and files. If a project is +specified, register the task underneath it

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/task_run.html b/docs/web/static/python_api/mephisto/data_model/task_run.html new file mode 100644 index 000000000..556b41a7d --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/task_run.html @@ -0,0 +1,2271 @@ + + + + + + + + + mephisto.data_model.task_run API documentation + + + + + + + + + +
+
+

+mephisto.data_model.task_run

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import os
+import json
+from dataclasses import dataclass, field
+
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedMeta,
+    MephistoDataModelComponentMixin,
+)
+from mephisto.utils.dirs import get_dir_for_run
+
+from omegaconf import OmegaConf, MISSING
+
+from typing import List, Optional, Dict, Mapping, TYPE_CHECKING, Any
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.assignment import Assignment
+    from mephisto.abstractions.blueprint import Blueprint, SharedTaskState
+    from mephisto.data_model.worker import Worker
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+    from mephisto.data_model.task import Task
+    from omegaconf import DictConfig
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+@dataclass
+class TaskRunArgs:
+    """Object for grouping the contents to configure a class"""
+
+    task_name: Optional[str] = field(
+        default=MISSING,
+        metadata={
+            "help": "Grouping to launch this task run under, none defaults to the blueprint type"
+        },
+    )
+    task_title: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Display title for your task on the crowd provider.",
+            "required": True,
+        },
+    )
+    task_description: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Longer form description for what your task entails.",
+            "required": True,
+        },
+    )
+    task_reward: float = field(
+        default=MISSING,
+        metadata={
+            "help": "Amount to pay per worker per unit, in dollars.",
+            "required": True,
+        },
+    )
+    task_tags: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Comma seperated tags for workers to use to find your task.",
+            "required": True,
+        },
+    )
+    assignment_duration_in_seconds: int = field(
+        default=30 * 60,
+        metadata={"help": "Time that workers have to work on your task once accepted."},
+    )
+    allowed_concurrent: int = field(
+        default=0,
+        metadata={
+            "help": "Maximum units a worker is allowed to work on at once. (0 is infinite)",
+            "required": True,
+        },
+    )
+    maximum_units_per_worker: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum tasks of this task name that a worker can work on across all "
+                "tasks that share this task_name. (0 is infinite)"
+            )
+        },
+    )
+    max_num_concurrent_units: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum units that will be released simultaneously, setting a limit "
+                "on concurrent connections to Mephisto overall. (0 is infinite)"
+            )
+        },
+    )
+    submission_timeout: int = field(
+        default=600,
+        metadata={
+            "help": (
+                "Time that mephisto will wait after marking a task done before abandoning "
+                "waiting for the worker to actually press submit."
+            )
+        },
+    )
+
+    @classmethod
+    def get_mock_params(cls) -> str:
+        """Returns a param string with default / mock arguments to use for testing"""
+        from mephisto.operations.hydra_config import MephistoConfig
+
+        return OmegaConf.structured(
+            MephistoConfig(
+                task=TaskRunArgs(
+                    task_title="Mock Task Title",
+                    task_reward=0.3,
+                    task_tags="mock,task,tags",
+                    task_description="This is a test description",
+                )
+            )
+        )
+
+
+class TaskRun(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class tracks an individual run of a specific task, and handles state management
+    for the set of assignments within
+    """
+
+    ArgsClass = TaskRunArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct TaskRun and data model access via TaskRun(db, id) is "
+                "now deprecated in favor of calling TaskRun.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task_run(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.param_string: str = row["init_params"]
+        try:
+            self.args: "DictConfig" = OmegaConf.create(json.loads(self.param_string))
+        except Exception as e:
+            self.args = OmegaConf.create({})
+            print(e)
+        self.start_time = row["creation_date"]
+        self.provider_type: str = row["provider_type"]
+        self.task_type: str = row["task_type"]
+        self.sandbox: bool = row["sandbox"]
+        self.assignments_generator_done: bool = False
+
+        # properties with deferred loading
+        self.__is_completed = row["is_completed"]
+        self.__has_assignments = False
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__run_dir: Optional[str] = None
+        self.__blueprint: Optional["Blueprint"] = None
+        self.__crowd_provider: Optional["CrowdProvider"] = None
+
+    def get_units(self) -> List["Unit"]:
+        """
+        Return the units associated with this task run.
+        """
+        return self.db.find_units(task_run_id=self.db_id)
+
+    def get_valid_units_for_worker(self, worker: "Worker") -> List["Unit"]:
+        """
+        Get any units that the given worker could work on in this
+        task run
+        """
+        config = self.get_task_args()
+
+        if config.allowed_concurrent != 0 or config.maximum_units_per_worker:
+            current_units = self.db.find_units(
+                task_run_id=self.db_id,
+                worker_id=worker.db_id,
+                status=AssignmentState.ASSIGNED,
+            )
+            currently_active = len(current_units)
+            if config.allowed_concurrent != 0:
+                if currently_active >= config.allowed_concurrent:
+                    logger.debug(
+                        f"{worker} at maximum concurrent units {currently_active}"
+                    )
+                    return []  # currently at the maximum number of concurrent units
+            if config.maximum_units_per_worker != 0:
+                completed_types = AssignmentState.completed()
+                related_units = self.db.find_units(
+                    task_id=self.task_id,
+                    worker_id=worker.db_id,
+                )
+                currently_completed = len(
+                    [u for u in related_units if u.db_status in completed_types]
+                )
+                if (
+                    currently_active + currently_completed
+                    >= config.maximum_units_per_worker
+                ):
+                    logger.debug(
+                        f"{worker} at maximum units {currently_active}, {currently_completed}"
+                    )
+                    return []  # Currently at the maximum number of units for this task
+
+        task_units: List["Unit"] = self.get_units()
+        unit_assigns: Dict[str, List["Unit"]] = {}
+        for unit in task_units:
+            assignment_id = unit.assignment_id
+            if assignment_id not in unit_assigns:
+                unit_assigns[assignment_id] = []
+            unit_assigns[assignment_id].append(unit)
+
+        # Cannot pair with self
+        units: List["Unit"] = []
+        for unit_set in unit_assigns.values():
+            is_self_set = map(lambda u: u.worker_id == worker.db_id, unit_set)
+            if not any(is_self_set):
+                units += unit_set
+        # Valid units must be launched and must not be special units (negative indices)
+        valid_units = [
+            u
+            for u in units
+            if u.get_status() == AssignmentState.LAUNCHED and u.unit_index >= 0
+        ]
+        logger.debug(f"Found {len(valid_units)} available units")
+
+        # Should load cached blueprint for SharedTaskState
+        blueprint = self.get_blueprint()
+        ret_units = [
+            u
+            for u in valid_units
+            if blueprint.shared_state.worker_can_do_unit(worker, u)
+        ]
+
+        logger.debug(f"This worker is qualified for {len(ret_units)} unit.")
+        logger.debug(f"Found {ret_units[:3]} for {worker}.")
+        return ret_units
+
+    def clear_reservation(self, unit: "Unit") -> None:
+        """
+        Remove the holder used to reserve a unit
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        if os.path.exists(os.path.join(write_dir, file_name)):
+            os.unlink(os.path.join(write_dir, file_name))
+            logger.debug(f"Cleared reservation {file_name} for {unit}")
+
+    def reserve_unit(self, unit: "Unit") -> Optional["Unit"]:
+        """
+        'Atomically' reserve a unit by writing to the filesystem. If
+        the file creation fails, return none
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        os.makedirs(write_dir, exist_ok=True)
+        try:
+            with open(os.path.join(write_dir, file_name), "x") as res_file:
+                pass  # Creating the file is sufficient
+        except FileExistsError:
+            print(os.path.join(write_dir, file_name), " existed")
+            return None
+        logger.debug(f"Reserved {unit} with {file_name}")
+        return unit
+
+    def get_blueprint(
+        self,
+        args: Optional["DictConfig"] = None,
+        shared_state: Optional["SharedTaskState"] = None,
+    ) -> "Blueprint":
+        """Return the runner associated with this task run"""
+        from mephisto.operations.registry import get_blueprint_from_type
+        from mephisto.abstractions.blueprint import SharedTaskState
+
+        if self.__blueprint is None:
+            cache = False
+            if args is None:
+                args = self.args
+            else:
+                cache = True
+
+            BlueprintClass = get_blueprint_from_type(self.task_type)
+            if shared_state is None:
+                shared_state = BlueprintClass.SharedStateClass()
+            if not cache:
+                return BlueprintClass(self, args, shared_state)
+            self.__blueprint = BlueprintClass(self, args, shared_state)
+        return self.__blueprint
+
+    def get_provider(self) -> "CrowdProvider":
+        """Return the crowd provider used to launch this task"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if self.__crowd_provider is None:
+            CrowdProviderClass = get_crowd_provider_from_type(self.provider_type)
+            self.__crowd_provider = CrowdProviderClass(self.db)
+        return self.__crowd_provider
+
+    def get_task(self) -> "Task":
+        """Return the task used to initialize this run"""
+        if self.__task is None:
+            from mephisto.data_model.task import Task
+
+            self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_task_args(self) -> "DictConfig":
+        return self.args.task
+
+    def get_requester(self) -> Requester:
+        """
+        Return the requester that started this task.
+        """
+        if self.__requester is None:
+            self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def get_has_assignments(self) -> bool:
+        """See if this task run has any assignments launched yet"""
+        if not self.__has_assignments:
+            if len(self.get_assignments()) > 0:
+                self.__has_assignments = True
+        return self.__has_assignments
+
+    def get_assignments(self, status: Optional[str] = None) -> List["Assignment"]:
+        """
+        Get assignments for this run, optionally filtering by their
+        current status
+        """
+        assert (
+            status is None or status in AssignmentState.valid()
+        ), "Invalid assignment status"
+        assignments = self.db.find_assignments(task_run_id=self.db_id)
+        if status is not None:
+            assignments = [a for a in assignments if a.get_status() == status]
+        return assignments
+
+    def get_assignment_statuses(self) -> Dict[str, int]:
+        """
+        Get the statistics for all of the assignments for this run.
+        """
+        assigns = self.get_assignments()
+        assigns_with_status = [(x, x.get_status()) for x in assigns]
+        return {
+            status: len(
+                [x for x, had_status in assigns_with_status if had_status == status]
+            )
+            for status in AssignmentState.valid()
+        }
+
+    def update_completion_progress(self, task_launcher=None, status=None) -> None:
+        """Flag the task run that the assignments' generator has finished"""
+        if task_launcher:
+            if task_launcher.get_assignments_are_all_created():
+                self.assignments_generator_done = True
+        if status:
+            self.assignments_generator_done = status
+
+    def get_is_completed(self) -> bool:
+        """get the completion status of this task"""
+        self.sync_completion_status()
+        return self.__is_completed
+
+    def sync_completion_status(self) -> None:
+        """
+        Update the is_complete status for this task run based on completion
+        of subassignments. If this task run has no subassignments yet, it
+        is not complete
+        """
+        if not self.__is_completed and self.get_has_assignments():
+            statuses = self.get_assignment_statuses()
+            has_incomplete = False
+            for status in AssignmentState.incomplete():
+                if statuses[status] > 0:
+                    has_incomplete = True
+            if not has_incomplete and self.assignments_generator_done is not False:
+                self.db.update_task_run(self.db_id, is_completed=True)
+                self.__is_completed = True
+
+    def get_run_dir(self) -> str:
+        """
+        Return the directory where the data from this run is stored
+        """
+        if self.__run_dir is None:
+            task = self.get_task()
+            project = task.get_project()
+            if project is None:
+                self.__run_dir = get_dir_for_run(self)
+            else:
+                self.__run_dir = get_dir_for_run(self, project.project_name)
+            os.makedirs(self.__run_dir, exist_ok=True)
+        return self.__run_dir
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount spent on this run, based on any assignments
+        that are still in a payable state.
+        """
+        assigns = self.get_assignments()
+        total_amount = 0.0
+        for assign in assigns:
+            total_amount += assign.get_cost_of_statuses(AssignmentState.payable())
+        return total_amount
+
+    def to_dict(self) -> Dict[str, Any]:
+        """Return a dict containing any important information about this task run"""
+        return {
+            "task_run_id": self.db_id,
+            "task_id": self.task_id,
+            "task_name": self.get_task().task_name,
+            "task_type": self.task_type,
+            "start_time": self.start_time,
+            "params": OmegaConf.to_container(self.args),
+            "param_string": self.param_string,
+            "task_status": self.get_assignment_statuses(),
+            "sandbox": self.get_requester().is_sandbox(),
+        }
+
+    def __repr__(self) -> str:
+        return f"TaskRun({self.db_id})"
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", task: "Task", requester: Requester, param_string: str
+    ) -> "TaskRun":
+        """
+        Create a new run for the given task with the given params
+        """
+        db_id = db.new_task_run(
+            task.db_id,
+            requester.db_id,
+            param_string,
+            requester.provider_type,
+            task.task_type,
+        )
+        task_run = TaskRun.get(db, db_id)
+        logger.debug(f"Created new task run {task_run}")
+        return task_run
+
+ +
+ +
+
+
+ #   + + + class + TaskRunArgs: +
+ +
+ View Source +
class TaskRunArgs:
+    """Object for grouping the contents to configure a class"""
+
+    task_name: Optional[str] = field(
+        default=MISSING,
+        metadata={
+            "help": "Grouping to launch this task run under, none defaults to the blueprint type"
+        },
+    )
+    task_title: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Display title for your task on the crowd provider.",
+            "required": True,
+        },
+    )
+    task_description: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Longer form description for what your task entails.",
+            "required": True,
+        },
+    )
+    task_reward: float = field(
+        default=MISSING,
+        metadata={
+            "help": "Amount to pay per worker per unit, in dollars.",
+            "required": True,
+        },
+    )
+    task_tags: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Comma seperated tags for workers to use to find your task.",
+            "required": True,
+        },
+    )
+    assignment_duration_in_seconds: int = field(
+        default=30 * 60,
+        metadata={"help": "Time that workers have to work on your task once accepted."},
+    )
+    allowed_concurrent: int = field(
+        default=0,
+        metadata={
+            "help": "Maximum units a worker is allowed to work on at once. (0 is infinite)",
+            "required": True,
+        },
+    )
+    maximum_units_per_worker: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum tasks of this task name that a worker can work on across all "
+                "tasks that share this task_name. (0 is infinite)"
+            )
+        },
+    )
+    max_num_concurrent_units: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum units that will be released simultaneously, setting a limit "
+                "on concurrent connections to Mephisto overall. (0 is infinite)"
+            )
+        },
+    )
+    submission_timeout: int = field(
+        default=600,
+        metadata={
+            "help": (
+                "Time that mephisto will wait after marking a task done before abandoning "
+                "waiting for the worker to actually press submit."
+            )
+        },
+    )
+
+    @classmethod
+    def get_mock_params(cls) -> str:
+        """Returns a param string with default / mock arguments to use for testing"""
+        from mephisto.operations.hydra_config import MephistoConfig
+
+        return OmegaConf.structured(
+            MephistoConfig(
+                task=TaskRunArgs(
+                    task_title="Mock Task Title",
+                    task_reward=0.3,
+                    task_tags="mock,task,tags",
+                    task_description="This is a test description",
+                )
+            )
+        )
+
+ +
+ +

Object for grouping the contents to configure a class

+
+ + +
+
#   + + + TaskRunArgs( + task_name: Union[str, NoneType] = '???', + task_title: str = '???', + task_description: str = '???', + task_reward: float = '???', + task_tags: str = '???', + assignment_duration_in_seconds: int = 1800, + allowed_concurrent: int = 0, + maximum_units_per_worker: int = 0, + max_num_concurrent_units: int = 0, + submission_timeout: int = 600 +) +
+ + + + +
+
+
#   + + task_name: Union[str, NoneType] = '???' +
+ + + + +
+
+
#   + + task_title: str = '???' +
+ + + + +
+
+
#   + + task_description: str = '???' +
+ + + + +
+
+
#   + + task_reward: float = '???' +
+ + + + +
+
+
#   + + task_tags: str = '???' +
+ + + + +
+
+
#   + + assignment_duration_in_seconds: int = 1800 +
+ + + + +
+
+
#   + + allowed_concurrent: int = 0 +
+ + + + +
+
+
#   + + maximum_units_per_worker: int = 0 +
+ + + + +
+
+
#   + + max_num_concurrent_units: int = 0 +
+ + + + +
+
+
#   + + submission_timeout: int = 600 +
+ + + + +
+
+
#   + +
@classmethod
+ + def + get_mock_params(cls) -> str: +
+ +
+ View Source +
    @classmethod
+    def get_mock_params(cls) -> str:
+        """Returns a param string with default / mock arguments to use for testing"""
+        from mephisto.operations.hydra_config import MephistoConfig
+
+        return OmegaConf.structured(
+            MephistoConfig(
+                task=TaskRunArgs(
+                    task_title="Mock Task Title",
+                    task_reward=0.3,
+                    task_tags="mock,task,tags",
+                    task_description="This is a test description",
+                )
+            )
+        )
+
+ +
+ +

Returns a param string with default / mock arguments to use for testing

+
+ + +
+
+
+ + +
+ View Source +
class TaskRun(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedMeta):
+    """
+    This class tracks an individual run of a specific task, and handles state management
+    for the set of assignments within
+    """
+
+    ArgsClass = TaskRunArgs
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct TaskRun and data model access via TaskRun(db, id) is "
+                "now deprecated in favor of calling TaskRun.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task_run(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.param_string: str = row["init_params"]
+        try:
+            self.args: "DictConfig" = OmegaConf.create(json.loads(self.param_string))
+        except Exception as e:
+            self.args = OmegaConf.create({})
+            print(e)
+        self.start_time = row["creation_date"]
+        self.provider_type: str = row["provider_type"]
+        self.task_type: str = row["task_type"]
+        self.sandbox: bool = row["sandbox"]
+        self.assignments_generator_done: bool = False
+
+        # properties with deferred loading
+        self.__is_completed = row["is_completed"]
+        self.__has_assignments = False
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__run_dir: Optional[str] = None
+        self.__blueprint: Optional["Blueprint"] = None
+        self.__crowd_provider: Optional["CrowdProvider"] = None
+
+    def get_units(self) -> List["Unit"]:
+        """
+        Return the units associated with this task run.
+        """
+        return self.db.find_units(task_run_id=self.db_id)
+
+    def get_valid_units_for_worker(self, worker: "Worker") -> List["Unit"]:
+        """
+        Get any units that the given worker could work on in this
+        task run
+        """
+        config = self.get_task_args()
+
+        if config.allowed_concurrent != 0 or config.maximum_units_per_worker:
+            current_units = self.db.find_units(
+                task_run_id=self.db_id,
+                worker_id=worker.db_id,
+                status=AssignmentState.ASSIGNED,
+            )
+            currently_active = len(current_units)
+            if config.allowed_concurrent != 0:
+                if currently_active >= config.allowed_concurrent:
+                    logger.debug(
+                        f"{worker} at maximum concurrent units {currently_active}"
+                    )
+                    return []  # currently at the maximum number of concurrent units
+            if config.maximum_units_per_worker != 0:
+                completed_types = AssignmentState.completed()
+                related_units = self.db.find_units(
+                    task_id=self.task_id,
+                    worker_id=worker.db_id,
+                )
+                currently_completed = len(
+                    [u for u in related_units if u.db_status in completed_types]
+                )
+                if (
+                    currently_active + currently_completed
+                    >= config.maximum_units_per_worker
+                ):
+                    logger.debug(
+                        f"{worker} at maximum units {currently_active}, {currently_completed}"
+                    )
+                    return []  # Currently at the maximum number of units for this task
+
+        task_units: List["Unit"] = self.get_units()
+        unit_assigns: Dict[str, List["Unit"]] = {}
+        for unit in task_units:
+            assignment_id = unit.assignment_id
+            if assignment_id not in unit_assigns:
+                unit_assigns[assignment_id] = []
+            unit_assigns[assignment_id].append(unit)
+
+        # Cannot pair with self
+        units: List["Unit"] = []
+        for unit_set in unit_assigns.values():
+            is_self_set = map(lambda u: u.worker_id == worker.db_id, unit_set)
+            if not any(is_self_set):
+                units += unit_set
+        # Valid units must be launched and must not be special units (negative indices)
+        valid_units = [
+            u
+            for u in units
+            if u.get_status() == AssignmentState.LAUNCHED and u.unit_index >= 0
+        ]
+        logger.debug(f"Found {len(valid_units)} available units")
+
+        # Should load cached blueprint for SharedTaskState
+        blueprint = self.get_blueprint()
+        ret_units = [
+            u
+            for u in valid_units
+            if blueprint.shared_state.worker_can_do_unit(worker, u)
+        ]
+
+        logger.debug(f"This worker is qualified for {len(ret_units)} unit.")
+        logger.debug(f"Found {ret_units[:3]} for {worker}.")
+        return ret_units
+
+    def clear_reservation(self, unit: "Unit") -> None:
+        """
+        Remove the holder used to reserve a unit
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        if os.path.exists(os.path.join(write_dir, file_name)):
+            os.unlink(os.path.join(write_dir, file_name))
+            logger.debug(f"Cleared reservation {file_name} for {unit}")
+
+    def reserve_unit(self, unit: "Unit") -> Optional["Unit"]:
+        """
+        'Atomically' reserve a unit by writing to the filesystem. If
+        the file creation fails, return none
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        os.makedirs(write_dir, exist_ok=True)
+        try:
+            with open(os.path.join(write_dir, file_name), "x") as res_file:
+                pass  # Creating the file is sufficient
+        except FileExistsError:
+            print(os.path.join(write_dir, file_name), " existed")
+            return None
+        logger.debug(f"Reserved {unit} with {file_name}")
+        return unit
+
+    def get_blueprint(
+        self,
+        args: Optional["DictConfig"] = None,
+        shared_state: Optional["SharedTaskState"] = None,
+    ) -> "Blueprint":
+        """Return the runner associated with this task run"""
+        from mephisto.operations.registry import get_blueprint_from_type
+        from mephisto.abstractions.blueprint import SharedTaskState
+
+        if self.__blueprint is None:
+            cache = False
+            if args is None:
+                args = self.args
+            else:
+                cache = True
+
+            BlueprintClass = get_blueprint_from_type(self.task_type)
+            if shared_state is None:
+                shared_state = BlueprintClass.SharedStateClass()
+            if not cache:
+                return BlueprintClass(self, args, shared_state)
+            self.__blueprint = BlueprintClass(self, args, shared_state)
+        return self.__blueprint
+
+    def get_provider(self) -> "CrowdProvider":
+        """Return the crowd provider used to launch this task"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if self.__crowd_provider is None:
+            CrowdProviderClass = get_crowd_provider_from_type(self.provider_type)
+            self.__crowd_provider = CrowdProviderClass(self.db)
+        return self.__crowd_provider
+
+    def get_task(self) -> "Task":
+        """Return the task used to initialize this run"""
+        if self.__task is None:
+            from mephisto.data_model.task import Task
+
+            self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_task_args(self) -> "DictConfig":
+        return self.args.task
+
+    def get_requester(self) -> Requester:
+        """
+        Return the requester that started this task.
+        """
+        if self.__requester is None:
+            self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def get_has_assignments(self) -> bool:
+        """See if this task run has any assignments launched yet"""
+        if not self.__has_assignments:
+            if len(self.get_assignments()) > 0:
+                self.__has_assignments = True
+        return self.__has_assignments
+
+    def get_assignments(self, status: Optional[str] = None) -> List["Assignment"]:
+        """
+        Get assignments for this run, optionally filtering by their
+        current status
+        """
+        assert (
+            status is None or status in AssignmentState.valid()
+        ), "Invalid assignment status"
+        assignments = self.db.find_assignments(task_run_id=self.db_id)
+        if status is not None:
+            assignments = [a for a in assignments if a.get_status() == status]
+        return assignments
+
+    def get_assignment_statuses(self) -> Dict[str, int]:
+        """
+        Get the statistics for all of the assignments for this run.
+        """
+        assigns = self.get_assignments()
+        assigns_with_status = [(x, x.get_status()) for x in assigns]
+        return {
+            status: len(
+                [x for x, had_status in assigns_with_status if had_status == status]
+            )
+            for status in AssignmentState.valid()
+        }
+
+    def update_completion_progress(self, task_launcher=None, status=None) -> None:
+        """Flag the task run that the assignments' generator has finished"""
+        if task_launcher:
+            if task_launcher.get_assignments_are_all_created():
+                self.assignments_generator_done = True
+        if status:
+            self.assignments_generator_done = status
+
+    def get_is_completed(self) -> bool:
+        """get the completion status of this task"""
+        self.sync_completion_status()
+        return self.__is_completed
+
+    def sync_completion_status(self) -> None:
+        """
+        Update the is_complete status for this task run based on completion
+        of subassignments. If this task run has no subassignments yet, it
+        is not complete
+        """
+        if not self.__is_completed and self.get_has_assignments():
+            statuses = self.get_assignment_statuses()
+            has_incomplete = False
+            for status in AssignmentState.incomplete():
+                if statuses[status] > 0:
+                    has_incomplete = True
+            if not has_incomplete and self.assignments_generator_done is not False:
+                self.db.update_task_run(self.db_id, is_completed=True)
+                self.__is_completed = True
+
+    def get_run_dir(self) -> str:
+        """
+        Return the directory where the data from this run is stored
+        """
+        if self.__run_dir is None:
+            task = self.get_task()
+            project = task.get_project()
+            if project is None:
+                self.__run_dir = get_dir_for_run(self)
+            else:
+                self.__run_dir = get_dir_for_run(self, project.project_name)
+            os.makedirs(self.__run_dir, exist_ok=True)
+        return self.__run_dir
+
+    def get_total_spend(self) -> float:
+        """
+        Return the total amount spent on this run, based on any assignments
+        that are still in a payable state.
+        """
+        assigns = self.get_assignments()
+        total_amount = 0.0
+        for assign in assigns:
+            total_amount += assign.get_cost_of_statuses(AssignmentState.payable())
+        return total_amount
+
+    def to_dict(self) -> Dict[str, Any]:
+        """Return a dict containing any important information about this task run"""
+        return {
+            "task_run_id": self.db_id,
+            "task_id": self.task_id,
+            "task_name": self.get_task().task_name,
+            "task_type": self.task_type,
+            "start_time": self.start_time,
+            "params": OmegaConf.to_container(self.args),
+            "param_string": self.param_string,
+            "task_status": self.get_assignment_statuses(),
+            "sandbox": self.get_requester().is_sandbox(),
+        }
+
+    def __repr__(self) -> str:
+        return f"TaskRun({self.db_id})"
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", task: "Task", requester: Requester, param_string: str
+    ) -> "TaskRun":
+        """
+        Create a new run for the given task with the given params
+        """
+        db_id = db.new_task_run(
+            task.db_id,
+            requester.db_id,
+            param_string,
+            requester.provider_type,
+            task.task_type,
+        )
+        task_run = TaskRun.get(db, db_id)
+        logger.debug(f"Created new task run {task_run}")
+        return task_run
+
+ +
+ +

This class tracks an individual run of a specific task, and handles state management +for the set of assignments within

+
+ + +
+
#   + + + TaskRun( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct TaskRun and data model access via TaskRun(db, id) is "
+                "now deprecated in favor of calling TaskRun.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_task_run(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["task_run_id"]
+        self.task_id: str = row["task_id"]
+        self.requester_id: str = row["requester_id"]
+        self.param_string: str = row["init_params"]
+        try:
+            self.args: "DictConfig" = OmegaConf.create(json.loads(self.param_string))
+        except Exception as e:
+            self.args = OmegaConf.create({})
+            print(e)
+        self.start_time = row["creation_date"]
+        self.provider_type: str = row["provider_type"]
+        self.task_type: str = row["task_type"]
+        self.sandbox: bool = row["sandbox"]
+        self.assignments_generator_done: bool = False
+
+        # properties with deferred loading
+        self.__is_completed = row["is_completed"]
+        self.__has_assignments = False
+        self.__task: Optional["Task"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__run_dir: Optional[str] = None
+        self.__blueprint: Optional["Blueprint"] = None
+        self.__crowd_provider: Optional["CrowdProvider"] = None
+
+ +
+ + + +
+
+
#   + + + def + get_units(self) -> list[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    def get_units(self) -> List["Unit"]:
+        """
+        Return the units associated with this task run.
+        """
+        return self.db.find_units(task_run_id=self.db_id)
+
+ +
+ +

Return the units associated with this task run.

+
+ + +
+
+
#   + + + def + get_valid_units_for_worker( + self, + worker: mephisto.data_model.worker.Worker +) -> list[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    def get_valid_units_for_worker(self, worker: "Worker") -> List["Unit"]:
+        """
+        Get any units that the given worker could work on in this
+        task run
+        """
+        config = self.get_task_args()
+
+        if config.allowed_concurrent != 0 or config.maximum_units_per_worker:
+            current_units = self.db.find_units(
+                task_run_id=self.db_id,
+                worker_id=worker.db_id,
+                status=AssignmentState.ASSIGNED,
+            )
+            currently_active = len(current_units)
+            if config.allowed_concurrent != 0:
+                if currently_active >= config.allowed_concurrent:
+                    logger.debug(
+                        f"{worker} at maximum concurrent units {currently_active}"
+                    )
+                    return []  # currently at the maximum number of concurrent units
+            if config.maximum_units_per_worker != 0:
+                completed_types = AssignmentState.completed()
+                related_units = self.db.find_units(
+                    task_id=self.task_id,
+                    worker_id=worker.db_id,
+                )
+                currently_completed = len(
+                    [u for u in related_units if u.db_status in completed_types]
+                )
+                if (
+                    currently_active + currently_completed
+                    >= config.maximum_units_per_worker
+                ):
+                    logger.debug(
+                        f"{worker} at maximum units {currently_active}, {currently_completed}"
+                    )
+                    return []  # Currently at the maximum number of units for this task
+
+        task_units: List["Unit"] = self.get_units()
+        unit_assigns: Dict[str, List["Unit"]] = {}
+        for unit in task_units:
+            assignment_id = unit.assignment_id
+            if assignment_id not in unit_assigns:
+                unit_assigns[assignment_id] = []
+            unit_assigns[assignment_id].append(unit)
+
+        # Cannot pair with self
+        units: List["Unit"] = []
+        for unit_set in unit_assigns.values():
+            is_self_set = map(lambda u: u.worker_id == worker.db_id, unit_set)
+            if not any(is_self_set):
+                units += unit_set
+        # Valid units must be launched and must not be special units (negative indices)
+        valid_units = [
+            u
+            for u in units
+            if u.get_status() == AssignmentState.LAUNCHED and u.unit_index >= 0
+        ]
+        logger.debug(f"Found {len(valid_units)} available units")
+
+        # Should load cached blueprint for SharedTaskState
+        blueprint = self.get_blueprint()
+        ret_units = [
+            u
+            for u in valid_units
+            if blueprint.shared_state.worker_can_do_unit(worker, u)
+        ]
+
+        logger.debug(f"This worker is qualified for {len(ret_units)} unit.")
+        logger.debug(f"Found {ret_units[:3]} for {worker}.")
+        return ret_units
+
+ +
+ +

Get any units that the given worker could work on in this +task run

+
+ + +
+
+
#   + + + def + clear_reservation(self, unit: mephisto.data_model.unit.Unit) -> None: +
+ +
+ View Source +
    def clear_reservation(self, unit: "Unit") -> None:
+        """
+        Remove the holder used to reserve a unit
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        if os.path.exists(os.path.join(write_dir, file_name)):
+            os.unlink(os.path.join(write_dir, file_name))
+            logger.debug(f"Cleared reservation {file_name} for {unit}")
+
+ +
+ +

Remove the holder used to reserve a unit

+
+ + +
+
+
#   + + + def + reserve_unit( + self, + unit: mephisto.data_model.unit.Unit +) -> Union[mephisto.data_model.unit.Unit, NoneType]: +
+ +
+ View Source +
    def reserve_unit(self, unit: "Unit") -> Optional["Unit"]:
+        """
+        'Atomically' reserve a unit by writing to the filesystem. If
+        the file creation fails, return none
+        """
+        file_name = f"unit_res_{unit.db_id}"
+        write_dir = os.path.join(self.get_run_dir(), "reservations")
+        os.makedirs(write_dir, exist_ok=True)
+        try:
+            with open(os.path.join(write_dir, file_name), "x") as res_file:
+                pass  # Creating the file is sufficient
+        except FileExistsError:
+            print(os.path.join(write_dir, file_name), " existed")
+            return None
+        logger.debug(f"Reserved {unit} with {file_name}")
+        return unit
+
+ +
+ +

'Atomically' reserve a unit by writing to the filesystem. If +the file creation fails, return none

+
+ + +
+
+
#   + + + def + get_blueprint( + self, + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None, + shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None +) -> mephisto.abstractions.blueprint.Blueprint: +
+ +
+ View Source +
    def get_blueprint(
+        self,
+        args: Optional["DictConfig"] = None,
+        shared_state: Optional["SharedTaskState"] = None,
+    ) -> "Blueprint":
+        """Return the runner associated with this task run"""
+        from mephisto.operations.registry import get_blueprint_from_type
+        from mephisto.abstractions.blueprint import SharedTaskState
+
+        if self.__blueprint is None:
+            cache = False
+            if args is None:
+                args = self.args
+            else:
+                cache = True
+
+            BlueprintClass = get_blueprint_from_type(self.task_type)
+            if shared_state is None:
+                shared_state = BlueprintClass.SharedStateClass()
+            if not cache:
+                return BlueprintClass(self, args, shared_state)
+            self.__blueprint = BlueprintClass(self, args, shared_state)
+        return self.__blueprint
+
+ +
+ +

Return the runner associated with this task run

+
+ + +
+
+
#   + + + def + get_provider(self) -> mephisto.abstractions.crowd_provider.CrowdProvider: +
+ +
+ View Source +
    def get_provider(self) -> "CrowdProvider":
+        """Return the crowd provider used to launch this task"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if self.__crowd_provider is None:
+            CrowdProviderClass = get_crowd_provider_from_type(self.provider_type)
+            self.__crowd_provider = CrowdProviderClass(self.db)
+        return self.__crowd_provider
+
+ +
+ +

Return the crowd provider used to launch this task

+
+ + +
+
+
#   + + + def + get_task(self) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    def get_task(self) -> "Task":
+        """Return the task used to initialize this run"""
+        if self.__task is None:
+            from mephisto.data_model.task import Task
+
+            self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+ +
+ +

Return the task used to initialize this run

+
+ + +
+
+
#   + + + def + get_task_args(self) -> omegaconf.dictconfig.DictConfig: +
+ +
+ View Source +
    def get_task_args(self) -> "DictConfig":
+        return self.args.task
+
+ +
+ + + +
+
+
#   + + + def + get_requester(self) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    def get_requester(self) -> Requester:
+        """
+        Return the requester that started this task.
+        """
+        if self.__requester is None:
+            self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+ +
+ +

Return the requester that started this task.

+
+ + +
+
+
#   + + + def + get_has_assignments(self) -> bool: +
+ +
+ View Source +
    def get_has_assignments(self) -> bool:
+        """See if this task run has any assignments launched yet"""
+        if not self.__has_assignments:
+            if len(self.get_assignments()) > 0:
+                self.__has_assignments = True
+        return self.__has_assignments
+
+ +
+ +

See if this task run has any assignments launched yet

+
+ + +
+
+
#   + + + def + get_assignments( + self, + status: Union[str, NoneType] = None +) -> list[mephisto.data_model.assignment.Assignment]: +
+ +
+ View Source +
    def get_assignments(self, status: Optional[str] = None) -> List["Assignment"]:
+        """
+        Get assignments for this run, optionally filtering by their
+        current status
+        """
+        assert (
+            status is None or status in AssignmentState.valid()
+        ), "Invalid assignment status"
+        assignments = self.db.find_assignments(task_run_id=self.db_id)
+        if status is not None:
+            assignments = [a for a in assignments if a.get_status() == status]
+        return assignments
+
+ +
+ +

Get assignments for this run, optionally filtering by their +current status

+
+ + +
+
+
#   + + + def + get_assignment_statuses(self) -> Dict[str, int]: +
+ +
+ View Source +
    def get_assignment_statuses(self) -> Dict[str, int]:
+        """
+        Get the statistics for all of the assignments for this run.
+        """
+        assigns = self.get_assignments()
+        assigns_with_status = [(x, x.get_status()) for x in assigns]
+        return {
+            status: len(
+                [x for x, had_status in assigns_with_status if had_status == status]
+            )
+            for status in AssignmentState.valid()
+        }
+
+ +
+ +

Get the statistics for all of the assignments for this run.

+
+ + +
+
+
#   + + + def + update_completion_progress(self, task_launcher=None, status=None) -> None: +
+ +
+ View Source +
    def update_completion_progress(self, task_launcher=None, status=None) -> None:
+        """Flag the task run that the assignments' generator has finished"""
+        if task_launcher:
+            if task_launcher.get_assignments_are_all_created():
+                self.assignments_generator_done = True
+        if status:
+            self.assignments_generator_done = status
+
+ +
+ +

Flag the task run that the assignments' generator has finished

+
+ + +
+
+
#   + + + def + get_is_completed(self) -> bool: +
+ +
+ View Source +
    def get_is_completed(self) -> bool:
+        """get the completion status of this task"""
+        self.sync_completion_status()
+        return self.__is_completed
+
+ +
+ +

get the completion status of this task

+
+ + +
+
+
#   + + + def + sync_completion_status(self) -> None: +
+ +
+ View Source +
    def sync_completion_status(self) -> None:
+        """
+        Update the is_complete status for this task run based on completion
+        of subassignments. If this task run has no subassignments yet, it
+        is not complete
+        """
+        if not self.__is_completed and self.get_has_assignments():
+            statuses = self.get_assignment_statuses()
+            has_incomplete = False
+            for status in AssignmentState.incomplete():
+                if statuses[status] > 0:
+                    has_incomplete = True
+            if not has_incomplete and self.assignments_generator_done is not False:
+                self.db.update_task_run(self.db_id, is_completed=True)
+                self.__is_completed = True
+
+ +
+ +

Update the is_complete status for this task run based on completion +of subassignments. If this task run has no subassignments yet, it +is not complete

+
+ + +
+
+
#   + + + def + get_run_dir(self) -> str: +
+ +
+ View Source +
    def get_run_dir(self) -> str:
+        """
+        Return the directory where the data from this run is stored
+        """
+        if self.__run_dir is None:
+            task = self.get_task()
+            project = task.get_project()
+            if project is None:
+                self.__run_dir = get_dir_for_run(self)
+            else:
+                self.__run_dir = get_dir_for_run(self, project.project_name)
+            os.makedirs(self.__run_dir, exist_ok=True)
+        return self.__run_dir
+
+ +
+ +

Return the directory where the data from this run is stored

+
+ + +
+
+
#   + + + def + get_total_spend(self) -> float: +
+ +
+ View Source +
    def get_total_spend(self) -> float:
+        """
+        Return the total amount spent on this run, based on any assignments
+        that are still in a payable state.
+        """
+        assigns = self.get_assignments()
+        total_amount = 0.0
+        for assign in assigns:
+            total_amount += assign.get_cost_of_statuses(AssignmentState.payable())
+        return total_amount
+
+ +
+ +

Return the total amount spent on this run, based on any assignments +that are still in a payable state.

+
+ + +
+
+
#   + + + def + to_dict(self) -> Dict[str, Any]: +
+ +
+ View Source +
    def to_dict(self) -> Dict[str, Any]:
+        """Return a dict containing any important information about this task run"""
+        return {
+            "task_run_id": self.db_id,
+            "task_id": self.task_id,
+            "task_name": self.get_task().task_name,
+            "task_type": self.task_type,
+            "start_time": self.start_time,
+            "params": OmegaConf.to_container(self.args),
+            "param_string": self.param_string,
+            "task_status": self.get_assignment_statuses(),
+            "sandbox": self.get_requester().is_sandbox(),
+        }
+
+ +
+ +

Return a dict containing any important information about this task run

+
+ + +
+
+ + +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", task: "Task", requester: Requester, param_string: str
+    ) -> "TaskRun":
+        """
+        Create a new run for the given task with the given params
+        """
+        db_id = db.new_task_run(
+            task.db_id,
+            requester.db_id,
+            param_string,
+            requester.provider_type,
+            task.task_type,
+        )
+        task_run = TaskRun.get(db, db_id)
+        logger.debug(f"Created new task run {task_run}")
+        return task_run
+
+ +
+ +

Create a new run for the given task with the given params

+
+ + +
+ +
+
+
+ #   + + + class + TaskRun.ArgsClass: +
+ +
+ View Source +
class TaskRunArgs:
+    """Object for grouping the contents to configure a class"""
+
+    task_name: Optional[str] = field(
+        default=MISSING,
+        metadata={
+            "help": "Grouping to launch this task run under, none defaults to the blueprint type"
+        },
+    )
+    task_title: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Display title for your task on the crowd provider.",
+            "required": True,
+        },
+    )
+    task_description: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Longer form description for what your task entails.",
+            "required": True,
+        },
+    )
+    task_reward: float = field(
+        default=MISSING,
+        metadata={
+            "help": "Amount to pay per worker per unit, in dollars.",
+            "required": True,
+        },
+    )
+    task_tags: str = field(
+        default=MISSING,
+        metadata={
+            "help": "Comma seperated tags for workers to use to find your task.",
+            "required": True,
+        },
+    )
+    assignment_duration_in_seconds: int = field(
+        default=30 * 60,
+        metadata={"help": "Time that workers have to work on your task once accepted."},
+    )
+    allowed_concurrent: int = field(
+        default=0,
+        metadata={
+            "help": "Maximum units a worker is allowed to work on at once. (0 is infinite)",
+            "required": True,
+        },
+    )
+    maximum_units_per_worker: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum tasks of this task name that a worker can work on across all "
+                "tasks that share this task_name. (0 is infinite)"
+            )
+        },
+    )
+    max_num_concurrent_units: int = field(
+        default=0,
+        metadata={
+            "help": (
+                "Maximum units that will be released simultaneously, setting a limit "
+                "on concurrent connections to Mephisto overall. (0 is infinite)"
+            )
+        },
+    )
+    submission_timeout: int = field(
+        default=600,
+        metadata={
+            "help": (
+                "Time that mephisto will wait after marking a task done before abandoning "
+                "waiting for the worker to actually press submit."
+            )
+        },
+    )
+
+    @classmethod
+    def get_mock_params(cls) -> str:
+        """Returns a param string with default / mock arguments to use for testing"""
+        from mephisto.operations.hydra_config import MephistoConfig
+
+        return OmegaConf.structured(
+            MephistoConfig(
+                task=TaskRunArgs(
+                    task_title="Mock Task Title",
+                    task_reward=0.3,
+                    task_tags="mock,task,tags",
+                    task_description="This is a test description",
+                )
+            )
+        )
+
+ +
+ +

Object for grouping the contents to configure a class

+
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/unit.html b/docs/web/static/python_api/mephisto/data_model/unit.html new file mode 100644 index 000000000..d1d6bd2ee --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/unit.html @@ -0,0 +1,1712 @@ + + + + + + + + + mephisto.data_model.unit API documentation + + + + + + + + + +
+
+

+mephisto.data_model.unit

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+from abc import ABC
+from prometheus_client import Gauge  # type: ignore
+from collections import defaultdict
+from mephisto.data_model.constants.assignment_state import AssignmentState
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun
+from mephisto.data_model.agent import Agent
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedABCMeta,
+    MephistoDataModelComponentMixin,
+)
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model.requester import Requester
+from typing import Optional, Mapping, Dict, Any, Type, DefaultDict, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+    from mephisto.data_model.assignment import Assignment, InitializationData
+
+import os
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+SCREENING_UNIT_INDEX = -1
+GOLD_UNIT_INDEX = -2
+COMPENSATION_UNIT_INDEX = -3
+INDEX_TO_TYPE_MAP: DefaultDict[int, str] = defaultdict(
+    lambda: "standard",
+    {
+        0: "standard",
+        SCREENING_UNIT_INDEX: "screening_unit",
+        GOLD_UNIT_INDEX: "gold_unit",
+        COMPENSATION_UNIT_INDEX: "compensation_unit",
+    },
+)
+
+ACTIVE_UNIT_STATUSES = Gauge(
+    "active_unit_statuses",
+    "Tracking of all units current statuses",
+    ["status", "unit_type"],
+)
+for status in AssignmentState.valid_unit():
+    for unit_type in INDEX_TO_TYPE_MAP.values():
+        ACTIVE_UNIT_STATUSES.labels(status=status, unit_type=unit_type)
+
+
+class Unit(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Unit and data model access via ...Unit(db, id) is "
+                "now deprecated in favor of calling Unit.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_unit(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["unit_id"]
+        self.assignment_id: str = row["assignment_id"]
+        self.unit_index: int = row["unit_index"]
+        self.pay_amount: float = row["pay_amount"]
+        self.agent_id: Optional[str] = row["agent_id"]
+        self.provider_type: str = row["provider_type"]
+        self.db_status: str = row["status"]
+        self.task_type: str = row["task_type"]
+        self.task_id: str = row["task_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.requester_id: str = row["requester_id"]
+        self.worker_id: str = row["worker_id"]
+
+        # Deferred loading of related entities
+        self.__task: Optional["Task"] = None
+        self.__task_run: Optional["TaskRun"] = None
+        self.__assignment: Optional["Assignment"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__agent: Optional["Agent"] = None
+        self.__worker: Optional["Worker"] = None
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_crowd_provider_class(self) -> Type["CrowdProvider"]:
+        """Get the CrowdProvider class that manages this Unit"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        return get_crowd_provider_from_type(self.provider_type)
+
+    def get_assignment_data(self) -> "InitializationData":
+        """Return the specific assignment data for this assignment"""
+        return self.get_assignment().get_assignment_data()
+
+    def sync_status(self) -> None:
+        """
+        Ensure that the queried status from this unit and the db status
+        are up to date
+        """
+        # TODO(#102) this will need to be run periodically/on crashes
+        # to sync any lost state
+        self.set_db_status(self.get_status())
+
+    def get_db_status(self) -> str:
+        """
+        Return the status as currently stored in the database
+        """
+        if self.db_status in AssignmentState.final_unit():
+            return self.db_status
+        row = self.db.get_unit(self.db_id)
+        assert row is not None, f"Unit {self.db_id} stopped existing in the db..."
+        return row["status"]
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        assert (
+            status in AssignmentState.valid_unit()
+        ), f"{status} not valid Assignment Status, not in {AssignmentState.valid_unit()}"
+        if status == self.db_status:
+            return
+        logger.debug(f"Updating status for {self} to {status}")
+        ACTIVE_UNIT_STATUSES.labels(
+            status=self.db_status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).inc()
+        self.db_status = status
+        self.db.update_unit(self.db_id, status=status)
+
+    def _mark_agent_assignment(self) -> None:
+        """Special helper to mark the transition from LAUNCHED to ASSIGNED"""
+        assert (
+            self.db_status == AssignmentState.LAUNCHED
+        ), "can only mark LAUNCHED units"
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.LAUNCHED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.ASSIGNED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).inc()
+
+    def get_assignment(self) -> "Assignment":
+        """
+        Return the assignment that this Unit is part of.
+        """
+        if self.__assignment is None:
+            from mephisto.data_model.assignment import Assignment
+
+            self.__assignment = Assignment.get(self.db, self.assignment_id)
+        return self.__assignment
+
+    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            if self.__assignment is not None:
+                self.__task_run = self.__assignment.get_task_run()
+            else:
+                self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+    def get_task(self) -> Task:
+        """
+        Return the task that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__assignment is not None:
+                self.__task = self.__assignment.get_task()
+            elif self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_requester(self) -> "Requester":
+        """
+        Return the requester who offered this Unit
+        """
+        if self.__requester is None:
+            if self.__assignment is not None:
+                self.__requester = self.__assignment.get_requester()
+            elif self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def clear_assigned_agent(self) -> None:
+        """Clear the agent that is assigned to this unit"""
+        logger.debug(f"Clearing assigned agent {self.agent_id} from {self}")
+        self.db.clear_unit_agent_assignment(self.db_id)
+        self.get_task_run().clear_reservation(self)
+        self.agent_id = None
+        self.__agent = None
+
+    def get_assigned_agent(self) -> Optional[Agent]:
+        """
+        Get the agent assigned to this Unit if there is one, else return None
+        """
+        # In these statuses, we know the agent isn't changing anymore, and thus will
+        # not need to be re-queried
+        if self.db_status in AssignmentState.final_unit():
+            if self.agent_id is None:
+                return None
+            return Agent.get(self.db, self.agent_id)
+
+        # Query the database to get the most up-to-date assignment, as this can
+        # change after instantiation if the Unit status isn't final
+        unit_copy = Unit.get(self.db, self.db_id)
+        self.agent_id = unit_copy.agent_id
+        if self.agent_id is not None:
+            return Agent.get(self.db, self.agent_id)
+        return None
+
+    @staticmethod
+    def _register_unit(
+        db: "MephistoDB",
+        assignment: "Assignment",
+        index: int,
+        pay_amount: float,
+        provider_type: str,
+    ) -> "Unit":
+        """
+        Create an entry for this unit in the database
+        """
+        db_id = db.new_unit(
+            assignment.task_id,
+            assignment.task_run_id,
+            assignment.requester_id,
+            assignment.db_id,
+            index,
+            pay_amount,
+            provider_type,
+            assignment.task_type,
+            sandbox=assignment.sandbox,
+        )
+        unit = Unit.get(db, db_id)
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.CREATED, unit_type=INDEX_TO_TYPE_MAP[index]
+        ).inc()
+        logger.debug(f"Registered new unit {unit} for {assignment}.")
+        return unit
+
+    def get_pay_amount(self) -> float:
+        """
+        Return the amount that this Unit is costing against the budget,
+        calculating additional fees as relevant
+        """
+        return self.pay_amount
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes may need to override the following
+
+    def get_status(self) -> str:
+        """
+        Get the status of this unit, as determined by whether there's
+        a worker working on it at the moment, and any other possible states. Should
+        return one of UNIT_STATUSES
+
+        Accurate status is crowd-provider dependent, and thus this method should be
+        defined in the child class to ensure that the local record matches
+        the ground truth in the provider
+        """
+        from mephisto.abstractions.blueprint import AgentState
+
+        db_status = self.db_status
+
+        # Expiration is a terminal state, and shouldn't be changed
+        if db_status == AssignmentState.EXPIRED:
+            return db_status
+
+        computed_status = AssignmentState.LAUNCHED
+
+        agent = self.get_assigned_agent()
+        if agent is None:
+            row = self.db.get_unit(self.db_id)
+            computed_status = row["status"]
+        else:
+            agent_status = agent.get_status()
+            if agent_status == AgentState.STATUS_NONE:
+                computed_status = AssignmentState.LAUNCHED
+            elif agent_status in [
+                AgentState.STATUS_ACCEPTED,
+                AgentState.STATUS_ONBOARDING,
+                AgentState.STATUS_PARTNER_DISCONNECT,
+                AgentState.STATUS_WAITING,
+                AgentState.STATUS_IN_TASK,
+            ]:
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status in [AgentState.STATUS_COMPLETED]:
+                computed_status = AssignmentState.COMPLETED
+            elif agent_status in [AgentState.STATUS_SOFT_REJECTED]:
+                computed_status = AssignmentState.SOFT_REJECTED
+            elif agent_status in [AgentState.STATUS_EXPIRED]:
+                computed_status = AssignmentState.EXPIRED
+            elif agent_status in [
+                AgentState.STATUS_DISCONNECT,
+                AgentState.STATUS_RETURNED,
+                AgentState.STATUS_TIMEOUT,
+            ]:
+                # Still assigned, as we expect the task launcher to explicitly
+                # update our status to expired or to remove the agent
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status == AgentState.STATUS_APPROVED:
+                computed_status = AssignmentState.ACCEPTED
+            elif agent_status == AgentState.STATUS_REJECTED:
+                computed_status = AssignmentState.REJECTED
+
+        if computed_status != db_status:
+            self.set_db_status(computed_status)
+
+        return computed_status
+
+    # Children classes should implement the below methods
+
+    def launch(self, task_url: str) -> None:
+        """
+        Make this Unit available on the crowdsourcing vendor. Depending on
+        the task type, this could mean a number of different setup steps.
+
+        Some crowd providers require setting up a configuration for the
+        very first launch, and this method should call a helper to manage
+        that step if necessary.
+        """
+        raise NotImplementedError()
+
+    def expire(self) -> float:
+        """
+        Expire this unit, removing it from being workable on the vendor.
+        Return the maximum time needed to wait before we know it's taken down.
+        """
+        raise NotImplementedError()
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """
+        Create a Unit for the given assignment
+
+        Implementation should return the result of _register_unit when sure the unit
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +
+
+
#   + + INDEX_TO_TYPE_MAP: DefaultDict[int, str] = defaultdict(<function <lambda>>, {0: 'standard', -1: 'screening_unit', -2: 'gold_unit', -3: 'compensation_unit'}) +
+ + + + +
+
+ + +
+ View Source +
class Unit(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class tracks the status of an individual worker's contribution to a
+    higher level assignment. It is the smallest 'unit' of work to complete
+    the assignment, and this class is only responsible for checking
+    the status of that work itself being done.
+
+    It should be extended for usage with a specific crowd provider
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Unit and data model access via ...Unit(db, id) is "
+                "now deprecated in favor of calling Unit.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_unit(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["unit_id"]
+        self.assignment_id: str = row["assignment_id"]
+        self.unit_index: int = row["unit_index"]
+        self.pay_amount: float = row["pay_amount"]
+        self.agent_id: Optional[str] = row["agent_id"]
+        self.provider_type: str = row["provider_type"]
+        self.db_status: str = row["status"]
+        self.task_type: str = row["task_type"]
+        self.task_id: str = row["task_id"]
+        self.task_run_id: str = row["task_run_id"]
+        self.sandbox: bool = row["sandbox"]
+        self.requester_id: str = row["requester_id"]
+        self.worker_id: str = row["worker_id"]
+
+        # Deferred loading of related entities
+        self.__task: Optional["Task"] = None
+        self.__task_run: Optional["TaskRun"] = None
+        self.__assignment: Optional["Assignment"] = None
+        self.__requester: Optional["Requester"] = None
+        self.__agent: Optional["Agent"] = None
+        self.__worker: Optional["Worker"] = None
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    def get_crowd_provider_class(self) -> Type["CrowdProvider"]:
+        """Get the CrowdProvider class that manages this Unit"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        return get_crowd_provider_from_type(self.provider_type)
+
+    def get_assignment_data(self) -> "InitializationData":
+        """Return the specific assignment data for this assignment"""
+        return self.get_assignment().get_assignment_data()
+
+    def sync_status(self) -> None:
+        """
+        Ensure that the queried status from this unit and the db status
+        are up to date
+        """
+        # TODO(#102) this will need to be run periodically/on crashes
+        # to sync any lost state
+        self.set_db_status(self.get_status())
+
+    def get_db_status(self) -> str:
+        """
+        Return the status as currently stored in the database
+        """
+        if self.db_status in AssignmentState.final_unit():
+            return self.db_status
+        row = self.db.get_unit(self.db_id)
+        assert row is not None, f"Unit {self.db_id} stopped existing in the db..."
+        return row["status"]
+
+    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        assert (
+            status in AssignmentState.valid_unit()
+        ), f"{status} not valid Assignment Status, not in {AssignmentState.valid_unit()}"
+        if status == self.db_status:
+            return
+        logger.debug(f"Updating status for {self} to {status}")
+        ACTIVE_UNIT_STATUSES.labels(
+            status=self.db_status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).inc()
+        self.db_status = status
+        self.db.update_unit(self.db_id, status=status)
+
+    def _mark_agent_assignment(self) -> None:
+        """Special helper to mark the transition from LAUNCHED to ASSIGNED"""
+        assert (
+            self.db_status == AssignmentState.LAUNCHED
+        ), "can only mark LAUNCHED units"
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.LAUNCHED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.ASSIGNED,
+            unit_type=INDEX_TO_TYPE_MAP[self.unit_index],
+        ).inc()
+
+    def get_assignment(self) -> "Assignment":
+        """
+        Return the assignment that this Unit is part of.
+        """
+        if self.__assignment is None:
+            from mephisto.data_model.assignment import Assignment
+
+            self.__assignment = Assignment.get(self.db, self.assignment_id)
+        return self.__assignment
+
+    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            if self.__assignment is not None:
+                self.__task_run = self.__assignment.get_task_run()
+            else:
+                self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+    def get_task(self) -> Task:
+        """
+        Return the task that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__assignment is not None:
+                self.__task = self.__assignment.get_task()
+            elif self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+    def get_requester(self) -> "Requester":
+        """
+        Return the requester who offered this Unit
+        """
+        if self.__requester is None:
+            if self.__assignment is not None:
+                self.__requester = self.__assignment.get_requester()
+            elif self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+    def clear_assigned_agent(self) -> None:
+        """Clear the agent that is assigned to this unit"""
+        logger.debug(f"Clearing assigned agent {self.agent_id} from {self}")
+        self.db.clear_unit_agent_assignment(self.db_id)
+        self.get_task_run().clear_reservation(self)
+        self.agent_id = None
+        self.__agent = None
+
+    def get_assigned_agent(self) -> Optional[Agent]:
+        """
+        Get the agent assigned to this Unit if there is one, else return None
+        """
+        # In these statuses, we know the agent isn't changing anymore, and thus will
+        # not need to be re-queried
+        if self.db_status in AssignmentState.final_unit():
+            if self.agent_id is None:
+                return None
+            return Agent.get(self.db, self.agent_id)
+
+        # Query the database to get the most up-to-date assignment, as this can
+        # change after instantiation if the Unit status isn't final
+        unit_copy = Unit.get(self.db, self.db_id)
+        self.agent_id = unit_copy.agent_id
+        if self.agent_id is not None:
+            return Agent.get(self.db, self.agent_id)
+        return None
+
+    @staticmethod
+    def _register_unit(
+        db: "MephistoDB",
+        assignment: "Assignment",
+        index: int,
+        pay_amount: float,
+        provider_type: str,
+    ) -> "Unit":
+        """
+        Create an entry for this unit in the database
+        """
+        db_id = db.new_unit(
+            assignment.task_id,
+            assignment.task_run_id,
+            assignment.requester_id,
+            assignment.db_id,
+            index,
+            pay_amount,
+            provider_type,
+            assignment.task_type,
+            sandbox=assignment.sandbox,
+        )
+        unit = Unit.get(db, db_id)
+        ACTIVE_UNIT_STATUSES.labels(
+            status=AssignmentState.CREATED, unit_type=INDEX_TO_TYPE_MAP[index]
+        ).inc()
+        logger.debug(f"Registered new unit {unit} for {assignment}.")
+        return unit
+
+    def get_pay_amount(self) -> float:
+        """
+        Return the amount that this Unit is costing against the budget,
+        calculating additional fees as relevant
+        """
+        return self.pay_amount
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id}, {self.db_status})"
+
+    # Children classes may need to override the following
+
+    def get_status(self) -> str:
+        """
+        Get the status of this unit, as determined by whether there's
+        a worker working on it at the moment, and any other possible states. Should
+        return one of UNIT_STATUSES
+
+        Accurate status is crowd-provider dependent, and thus this method should be
+        defined in the child class to ensure that the local record matches
+        the ground truth in the provider
+        """
+        from mephisto.abstractions.blueprint import AgentState
+
+        db_status = self.db_status
+
+        # Expiration is a terminal state, and shouldn't be changed
+        if db_status == AssignmentState.EXPIRED:
+            return db_status
+
+        computed_status = AssignmentState.LAUNCHED
+
+        agent = self.get_assigned_agent()
+        if agent is None:
+            row = self.db.get_unit(self.db_id)
+            computed_status = row["status"]
+        else:
+            agent_status = agent.get_status()
+            if agent_status == AgentState.STATUS_NONE:
+                computed_status = AssignmentState.LAUNCHED
+            elif agent_status in [
+                AgentState.STATUS_ACCEPTED,
+                AgentState.STATUS_ONBOARDING,
+                AgentState.STATUS_PARTNER_DISCONNECT,
+                AgentState.STATUS_WAITING,
+                AgentState.STATUS_IN_TASK,
+            ]:
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status in [AgentState.STATUS_COMPLETED]:
+                computed_status = AssignmentState.COMPLETED
+            elif agent_status in [AgentState.STATUS_SOFT_REJECTED]:
+                computed_status = AssignmentState.SOFT_REJECTED
+            elif agent_status in [AgentState.STATUS_EXPIRED]:
+                computed_status = AssignmentState.EXPIRED
+            elif agent_status in [
+                AgentState.STATUS_DISCONNECT,
+                AgentState.STATUS_RETURNED,
+                AgentState.STATUS_TIMEOUT,
+            ]:
+                # Still assigned, as we expect the task launcher to explicitly
+                # update our status to expired or to remove the agent
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status == AgentState.STATUS_APPROVED:
+                computed_status = AssignmentState.ACCEPTED
+            elif agent_status == AgentState.STATUS_REJECTED:
+                computed_status = AssignmentState.REJECTED
+
+        if computed_status != db_status:
+            self.set_db_status(computed_status)
+
+        return computed_status
+
+    # Children classes should implement the below methods
+
+    def launch(self, task_url: str) -> None:
+        """
+        Make this Unit available on the crowdsourcing vendor. Depending on
+        the task type, this could mean a number of different setup steps.
+
+        Some crowd providers require setting up a configuration for the
+        very first launch, and this method should call a helper to manage
+        that step if necessary.
+        """
+        raise NotImplementedError()
+
+    def expire(self) -> float:
+        """
+        Expire this unit, removing it from being workable on the vendor.
+        Return the maximum time needed to wait before we know it's taken down.
+        """
+        raise NotImplementedError()
+
+    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        raise NotImplementedError()
+
+    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """
+        Create a Unit for the given assignment
+
+        Implementation should return the result of _register_unit when sure the unit
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class tracks the status of an individual worker's contribution to a +higher level assignment. It is the smallest 'unit' of work to complete +the assignment, and this class is only responsible for checking +the status of that work itself being done.

+ +

It should be extended for usage with a specific crowd provider

+
+ + +
+
#   + + + Unit( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Unit":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Unit class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a Unit
+        as you will instead be returned the correct Unit class according to
+        the crowdprovider associated with this Unit.
+        """
+        if cls == Unit:
+            # We are trying to construct a Unit, find what type to use and
+            # create that instead
+            from mephisto.operations.registry import get_crowd_provider_from_type
+
+            if row is None:
+                row = db.get_unit(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class = get_crowd_provider_from_type(row["provider_type"]).UnitClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Unit class without needing to specifically find it +for a given db_id. As such it is impossible to create a Unit +as you will instead be returned the correct Unit class according to +the crowdprovider associated with this Unit.

+
+ + +
+
+
#   + + + def + get_crowd_provider_class(self) -> type[mephisto.abstractions.crowd_provider.CrowdProvider]: +
+ +
+ View Source +
    def get_crowd_provider_class(self) -> Type["CrowdProvider"]:
+        """Get the CrowdProvider class that manages this Unit"""
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        return get_crowd_provider_from_type(self.provider_type)
+
+ +
+ +

Get the CrowdProvider class that manages this Unit

+
+ + +
+
+
#   + + + def + get_assignment_data(self) -> mephisto.data_model.assignment.InitializationData: +
+ +
+ View Source +
    def get_assignment_data(self) -> "InitializationData":
+        """Return the specific assignment data for this assignment"""
+        return self.get_assignment().get_assignment_data()
+
+ +
+ +

Return the specific assignment data for this assignment

+
+ + +
+
+
#   + + + def + sync_status(self) -> None: +
+ +
+ View Source +
    def sync_status(self) -> None:
+        """
+        Ensure that the queried status from this unit and the db status
+        are up to date
+        """
+        # TODO(#102) this will need to be run periodically/on crashes
+        # to sync any lost state
+        self.set_db_status(self.get_status())
+
+ +
+ +

Ensure that the queried status from this unit and the db status +are up to date

+
+ + +
+
+
#   + + + def + get_db_status(self) -> str: +
+ +
+ View Source +
    def get_db_status(self) -> str:
+        """
+        Return the status as currently stored in the database
+        """
+        if self.db_status in AssignmentState.final_unit():
+            return self.db_status
+        row = self.db.get_unit(self.db_id)
+        assert row is not None, f"Unit {self.db_id} stopped existing in the db..."
+        return row["status"]
+
+ +
+ +

Return the status as currently stored in the database

+
+ + +
+
+
#   + + + def + set_db_status(self, status: str) -> None: +
+ +
+ View Source +
    def set_db_status(self, status: str) -> None:
+        """
+        Set the status reflected in the database for this Unit
+        """
+        assert (
+            status in AssignmentState.valid_unit()
+        ), f"{status} not valid Assignment Status, not in {AssignmentState.valid_unit()}"
+        if status == self.db_status:
+            return
+        logger.debug(f"Updating status for {self} to {status}")
+        ACTIVE_UNIT_STATUSES.labels(
+            status=self.db_status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).dec()
+        ACTIVE_UNIT_STATUSES.labels(
+            status=status, unit_type=INDEX_TO_TYPE_MAP[self.unit_index]
+        ).inc()
+        self.db_status = status
+        self.db.update_unit(self.db_id, status=status)
+
+ +
+ +

Set the status reflected in the database for this Unit

+
+ + +
+
+
#   + + + def + get_assignment(self) -> mephisto.data_model.assignment.Assignment: +
+ +
+ View Source +
    def get_assignment(self) -> "Assignment":
+        """
+        Return the assignment that this Unit is part of.
+        """
+        if self.__assignment is None:
+            from mephisto.data_model.assignment import Assignment
+
+            self.__assignment = Assignment.get(self.db, self.assignment_id)
+        return self.__assignment
+
+ +
+ +

Return the assignment that this Unit is part of.

+
+ + +
+
+
#   + + + def + get_task_run(self) -> mephisto.data_model.task_run.TaskRun: +
+ +
+ View Source +
    def get_task_run(self) -> TaskRun:
+        """
+        Return the task run that this assignment is part of
+        """
+        if self.__task_run is None:
+            if self.__assignment is not None:
+                self.__task_run = self.__assignment.get_task_run()
+            else:
+                self.__task_run = TaskRun.get(self.db, self.task_run_id)
+        return self.__task_run
+
+ +
+ +

Return the task run that this assignment is part of

+
+ + +
+
+
#   + + + def + get_task(self) -> mephisto.data_model.task.Task: +
+ +
+ View Source +
    def get_task(self) -> Task:
+        """
+        Return the task that this assignment is part of
+        """
+        if self.__task is None:
+            if self.__assignment is not None:
+                self.__task = self.__assignment.get_task()
+            elif self.__task_run is not None:
+                self.__task = self.__task_run.get_task()
+            else:
+                self.__task = Task.get(self.db, self.task_id)
+        return self.__task
+
+ +
+ +

Return the task that this assignment is part of

+
+ + +
+
+
#   + + + def + get_requester(self) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
    def get_requester(self) -> "Requester":
+        """
+        Return the requester who offered this Unit
+        """
+        if self.__requester is None:
+            if self.__assignment is not None:
+                self.__requester = self.__assignment.get_requester()
+            elif self.__task_run is not None:
+                self.__requester = self.__task_run.get_requester()
+            else:
+                self.__requester = Requester.get(self.db, self.requester_id)
+        return self.__requester
+
+ +
+ +

Return the requester who offered this Unit

+
+ + +
+
+
#   + + + def + clear_assigned_agent(self) -> None: +
+ +
+ View Source +
    def clear_assigned_agent(self) -> None:
+        """Clear the agent that is assigned to this unit"""
+        logger.debug(f"Clearing assigned agent {self.agent_id} from {self}")
+        self.db.clear_unit_agent_assignment(self.db_id)
+        self.get_task_run().clear_reservation(self)
+        self.agent_id = None
+        self.__agent = None
+
+ +
+ +

Clear the agent that is assigned to this unit

+
+ + +
+
+
#   + + + def + get_assigned_agent(self) -> Union[mephisto.data_model.agent.Agent, NoneType]: +
+ +
+ View Source +
    def get_assigned_agent(self) -> Optional[Agent]:
+        """
+        Get the agent assigned to this Unit if there is one, else return None
+        """
+        # In these statuses, we know the agent isn't changing anymore, and thus will
+        # not need to be re-queried
+        if self.db_status in AssignmentState.final_unit():
+            if self.agent_id is None:
+                return None
+            return Agent.get(self.db, self.agent_id)
+
+        # Query the database to get the most up-to-date assignment, as this can
+        # change after instantiation if the Unit status isn't final
+        unit_copy = Unit.get(self.db, self.db_id)
+        self.agent_id = unit_copy.agent_id
+        if self.agent_id is not None:
+            return Agent.get(self.db, self.agent_id)
+        return None
+
+ +
+ +

Get the agent assigned to this Unit if there is one, else return None

+
+ + +
+
+
#   + + + def + get_pay_amount(self) -> float: +
+ +
+ View Source +
    def get_pay_amount(self) -> float:
+        """
+        Return the amount that this Unit is costing against the budget,
+        calculating additional fees as relevant
+        """
+        return self.pay_amount
+
+ +
+ +

Return the amount that this Unit is costing against the budget, +calculating additional fees as relevant

+
+ + +
+
+
#   + + + def + get_status(self) -> str: +
+ +
+ View Source +
    def get_status(self) -> str:
+        """
+        Get the status of this unit, as determined by whether there's
+        a worker working on it at the moment, and any other possible states. Should
+        return one of UNIT_STATUSES
+
+        Accurate status is crowd-provider dependent, and thus this method should be
+        defined in the child class to ensure that the local record matches
+        the ground truth in the provider
+        """
+        from mephisto.abstractions.blueprint import AgentState
+
+        db_status = self.db_status
+
+        # Expiration is a terminal state, and shouldn't be changed
+        if db_status == AssignmentState.EXPIRED:
+            return db_status
+
+        computed_status = AssignmentState.LAUNCHED
+
+        agent = self.get_assigned_agent()
+        if agent is None:
+            row = self.db.get_unit(self.db_id)
+            computed_status = row["status"]
+        else:
+            agent_status = agent.get_status()
+            if agent_status == AgentState.STATUS_NONE:
+                computed_status = AssignmentState.LAUNCHED
+            elif agent_status in [
+                AgentState.STATUS_ACCEPTED,
+                AgentState.STATUS_ONBOARDING,
+                AgentState.STATUS_PARTNER_DISCONNECT,
+                AgentState.STATUS_WAITING,
+                AgentState.STATUS_IN_TASK,
+            ]:
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status in [AgentState.STATUS_COMPLETED]:
+                computed_status = AssignmentState.COMPLETED
+            elif agent_status in [AgentState.STATUS_SOFT_REJECTED]:
+                computed_status = AssignmentState.SOFT_REJECTED
+            elif agent_status in [AgentState.STATUS_EXPIRED]:
+                computed_status = AssignmentState.EXPIRED
+            elif agent_status in [
+                AgentState.STATUS_DISCONNECT,
+                AgentState.STATUS_RETURNED,
+                AgentState.STATUS_TIMEOUT,
+            ]:
+                # Still assigned, as we expect the task launcher to explicitly
+                # update our status to expired or to remove the agent
+                computed_status = AssignmentState.ASSIGNED
+            elif agent_status == AgentState.STATUS_APPROVED:
+                computed_status = AssignmentState.ACCEPTED
+            elif agent_status == AgentState.STATUS_REJECTED:
+                computed_status = AssignmentState.REJECTED
+
+        if computed_status != db_status:
+            self.set_db_status(computed_status)
+
+        return computed_status
+
+ +
+ +

Get the status of this unit, as determined by whether there's +a worker working on it at the moment, and any other possible states. Should +return one of UNIT_STATUSES

+ +

Accurate status is crowd-provider dependent, and thus this method should be +defined in the child class to ensure that the local record matches +the ground truth in the provider

+
+ + +
+
+
#   + + + def + launch(self, task_url: str) -> None: +
+ +
+ View Source +
    def launch(self, task_url: str) -> None:
+        """
+        Make this Unit available on the crowdsourcing vendor. Depending on
+        the task type, this could mean a number of different setup steps.
+
+        Some crowd providers require setting up a configuration for the
+        very first launch, and this method should call a helper to manage
+        that step if necessary.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Make this Unit available on the crowdsourcing vendor. Depending on +the task type, this could mean a number of different setup steps.

+ +

Some crowd providers require setting up a configuration for the +very first launch, and this method should call a helper to manage +that step if necessary.

+
+ + +
+
+
#   + + + def + expire(self) -> float: +
+ +
+ View Source +
    def expire(self) -> float:
+        """
+        Expire this unit, removing it from being workable on the vendor.
+        Return the maximum time needed to wait before we know it's taken down.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Expire this unit, removing it from being workable on the vendor. +Return the maximum time needed to wait before we know it's taken down.

+
+ + +
+
+
#   + + + def + is_expired(self) -> bool: +
+ +
+ View Source +
    def is_expired(self) -> bool:
+        """Determine if this unit is expired as according to the vendor."""
+        raise NotImplementedError()
+
+ +
+ +

Determine if this unit is expired as according to the vendor.

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + assignment: mephisto.data_model.assignment.Assignment, + index: int, + pay_amount: float +) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    @staticmethod
+    def new(
+        db: "MephistoDB", assignment: "Assignment", index: int, pay_amount: float
+    ) -> "Unit":
+        """
+        Create a Unit for the given assignment
+
+        Implementation should return the result of _register_unit when sure the unit
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Create a Unit for the given assignment

+ +

Implementation should return the result of _register_unit when sure the unit +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/data_model/worker.html b/docs/web/static/python_api/mephisto/data_model/worker.html new file mode 100644 index 000000000..3af86342d --- /dev/null +++ b/docs/web/static/python_api/mephisto/data_model/worker.html @@ -0,0 +1,1505 @@ + + + + + + + + + mephisto.data_model.worker API documentation + + + + + + + + + +
+
+

+mephisto.data_model.worker

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from abc import ABC, abstractmethod
+from dataclasses import dataclass, field
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model._db_backed_meta import (
+    MephistoDBBackedABCMeta,
+    MephistoDataModelComponentMixin,
+)
+from typing import Any, List, Optional, Mapping, Tuple, Dict, Type, Tuple, TYPE_CHECKING
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.agent import Agent
+    from mephisto.data_model.unit import Unit
+    from mephisto.data_model.requester import Requester
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.data_model.qualification import GrantedQualification
+    from argparse import _ArgumentGroup as ArgumentGroup
+
+
+@dataclass
+class WorkerArgs:
+    """Base class for arguments to register a worker"""
+
+    name: str = field(
+        metadata={
+            "help": (
+                "Name to associate external worker id with an internal mephisto id. "
+                "Should be based on the external provider id."
+            )
+        }
+    )
+
+
+class Worker(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Worker and data model access via ...Worker(db, id) is "
+                "now deprecated in favor of calling Worker.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_worker(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["worker_id"]
+        self.provider_type = row["provider_type"]
+        self.worker_name = row["worker_name"]
+        # TODO(#568) Do we want any other attributes here?
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    # TODO(#568) make getters for helpful worker statistics
+
+    def get_agents(self, status: Optional[str] = None) -> List["Agent"]:
+        """
+        Get the list of agents that this worker was responsible for, by the given status
+        if needed
+        """
+        assert status is None or status in AgentState.valid(), "Invalid agent status"
+        return self.db.find_agents(worker_id=self.db_id, status=status)
+
+    @staticmethod
+    def _register_worker(
+        db: "MephistoDB", worker_name: str, provider_type: str
+    ) -> "Worker":
+        """
+        Create an entry for this worker in the database
+        """
+        db_id = db.new_worker(worker_name, provider_type)
+        worker = Worker.get(db, db_id)
+        logger.debug(f"Registered new worker {worker}")
+        return worker
+
+    @classmethod
+    def new_from_provider_data(
+        cls, db: "MephistoDB", creation_data: Dict[str, Any]
+    ) -> "Worker":
+        """
+        Given the parameters passed through wrap_crowd_source.js, construct
+        a new worker
+
+        Basic case simply takes the worker id and registers it
+        """
+        return cls.new(db, creation_data["worker_name"])
+
+    def get_granted_qualification(
+        self, qualification_name: str
+    ) -> Optional["GrantedQualification"]:
+        """Return the granted qualification for this worker for the given name"""
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            return None
+        qualification = found_qualifications[0]
+        granted_qualifications = self.db.check_granted_qualifications(
+            qualification.db_id, self.db_id
+        )
+        if len(granted_qualifications) == 0:
+            return None
+        return granted_qualifications[0]
+
+    def is_disqualified(self, qualification_name: str):
+        """
+        Find out if the given worker has been disqualified by the given qualification
+
+        Returns True if the qualification exists and has a falsey value
+        Returns False if the qualification doesn't exist or has a truthy value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return not qualification.value
+
+    def is_qualified(self, qualification_name: str):
+        """
+        Find out if the given worker has qualified by the given qualification
+
+        Returns True if the qualification exists and is truthy value
+        Returns False if the qualification doesn't exist or falsey value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return bool(qualification.value)
+
+    def revoke_qualification(self, qualification_name) -> bool:
+        """
+        Remove this user's qualification if it exists
+
+        Returns True if removal happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        granted_qualification = self.get_granted_qualification(qualification_name)
+        if granted_qualification is None:
+            return False
+
+        logger.debug(f"Revoking qualification {qualification_name} from worker {self}.")
+        self.db.revoke_qualification(granted_qualification.qualification_id, self.db_id)
+        try:
+            self.revoke_crowd_qualification(qualification_name)
+            return True
+        except Exception as e:
+            logger.exception(
+                f"Found error while trying to revoke qualification: {repr(e)}",
+                exc_info=True,
+            )
+            return False
+        return True
+
+    def grant_qualification(
+        self, qualification_name: str, value: int = 1, skip_crowd=False
+    ):
+        """
+        Grant a positive or negative qualification to this worker
+
+        Returns True if granting happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            raise Exception(
+                f"No qualification by the name {qualification_name} found in the db"
+            )
+
+        logger.debug(
+            f"Granting worker {self} qualification {qualification_name}: {value}"
+        )
+        qualification = found_qualifications[0]
+        self.db.grant_qualification(qualification.db_id, self.db_id, value=value)
+        if not skip_crowd:
+            try:
+                self.grant_crowd_qualification(qualification_name, value)
+                return True
+            except Exception as e:
+                logger.exception(
+                    f"Found error while trying to grant qualification: {repr(e)}",
+                    exc_info=True,
+                )
+                return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    # Children classes can implement the following methods
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be granted
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be revoked
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    # Children classes should implement the following methods
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        raise NotImplementedError()
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        raise NotImplementedError()
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason"""
+        raise NotImplementedError()
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        raise NotImplementedError()
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        raise NotImplementedError()
+
+    def register(self, args: Optional[Dict[str, str]] = None) -> None:
+        """Register this worker with the crowdprovider, if necessary"""
+        pass
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_name: str) -> "Worker":
+        """
+        Create a new worker attached to the given identifier, assuming it doesn't already
+        exist in the database.
+
+        Implementation should return the result of _register_worker when sure the worker
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +
+
+
+ #   + + + class + WorkerArgs: +
+ +
+ View Source +
class WorkerArgs:
+    """Base class for arguments to register a worker"""
+
+    name: str = field(
+        metadata={
+            "help": (
+                "Name to associate external worker id with an internal mephisto id. "
+                "Should be based on the external provider id."
+            )
+        }
+    )
+
+ +
+ +

Base class for arguments to register a worker

+
+ + +
+
#   + + + WorkerArgs(name: str) +
+ + + + +
+
+
+ + +
+ View Source +
class Worker(MephistoDataModelComponentMixin, metaclass=MephistoDBBackedABCMeta):
+    """
+    This class represents an individual - namely a person. It maintains components of ongoing identity for a user.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ):
+        if not _used_new_call:
+            raise AssertionError(
+                "Direct Worker and data model access via ...Worker(db, id) is "
+                "now deprecated in favor of calling Worker.get(db, id). "
+            )
+        self.db: "MephistoDB" = db
+        if row is None:
+            row = db.get_worker(db_id)
+        assert row is not None, f"Given db_id {db_id} did not exist in given db"
+        self.db_id: str = row["worker_id"]
+        self.provider_type = row["provider_type"]
+        self.worker_name = row["worker_name"]
+        # TODO(#568) Do we want any other attributes here?
+
+    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+    # TODO(#568) make getters for helpful worker statistics
+
+    def get_agents(self, status: Optional[str] = None) -> List["Agent"]:
+        """
+        Get the list of agents that this worker was responsible for, by the given status
+        if needed
+        """
+        assert status is None or status in AgentState.valid(), "Invalid agent status"
+        return self.db.find_agents(worker_id=self.db_id, status=status)
+
+    @staticmethod
+    def _register_worker(
+        db: "MephistoDB", worker_name: str, provider_type: str
+    ) -> "Worker":
+        """
+        Create an entry for this worker in the database
+        """
+        db_id = db.new_worker(worker_name, provider_type)
+        worker = Worker.get(db, db_id)
+        logger.debug(f"Registered new worker {worker}")
+        return worker
+
+    @classmethod
+    def new_from_provider_data(
+        cls, db: "MephistoDB", creation_data: Dict[str, Any]
+    ) -> "Worker":
+        """
+        Given the parameters passed through wrap_crowd_source.js, construct
+        a new worker
+
+        Basic case simply takes the worker id and registers it
+        """
+        return cls.new(db, creation_data["worker_name"])
+
+    def get_granted_qualification(
+        self, qualification_name: str
+    ) -> Optional["GrantedQualification"]:
+        """Return the granted qualification for this worker for the given name"""
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            return None
+        qualification = found_qualifications[0]
+        granted_qualifications = self.db.check_granted_qualifications(
+            qualification.db_id, self.db_id
+        )
+        if len(granted_qualifications) == 0:
+            return None
+        return granted_qualifications[0]
+
+    def is_disqualified(self, qualification_name: str):
+        """
+        Find out if the given worker has been disqualified by the given qualification
+
+        Returns True if the qualification exists and has a falsey value
+        Returns False if the qualification doesn't exist or has a truthy value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return not qualification.value
+
+    def is_qualified(self, qualification_name: str):
+        """
+        Find out if the given worker has qualified by the given qualification
+
+        Returns True if the qualification exists and is truthy value
+        Returns False if the qualification doesn't exist or falsey value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return bool(qualification.value)
+
+    def revoke_qualification(self, qualification_name) -> bool:
+        """
+        Remove this user's qualification if it exists
+
+        Returns True if removal happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        granted_qualification = self.get_granted_qualification(qualification_name)
+        if granted_qualification is None:
+            return False
+
+        logger.debug(f"Revoking qualification {qualification_name} from worker {self}.")
+        self.db.revoke_qualification(granted_qualification.qualification_id, self.db_id)
+        try:
+            self.revoke_crowd_qualification(qualification_name)
+            return True
+        except Exception as e:
+            logger.exception(
+                f"Found error while trying to revoke qualification: {repr(e)}",
+                exc_info=True,
+            )
+            return False
+        return True
+
+    def grant_qualification(
+        self, qualification_name: str, value: int = 1, skip_crowd=False
+    ):
+        """
+        Grant a positive or negative qualification to this worker
+
+        Returns True if granting happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            raise Exception(
+                f"No qualification by the name {qualification_name} found in the db"
+            )
+
+        logger.debug(
+            f"Granting worker {self} qualification {qualification_name}: {value}"
+        )
+        qualification = found_qualifications[0]
+        self.db.grant_qualification(qualification.db_id, self.db_id, value=value)
+        if not skip_crowd:
+            try:
+                self.grant_crowd_qualification(qualification_name, value)
+                return True
+            except Exception as e:
+                logger.exception(
+                    f"Found error while trying to grant qualification: {repr(e)}",
+                    exc_info=True,
+                )
+                return False
+
+    def __repr__(self) -> str:
+        return f"{self.__class__.__name__}({self.db_id})"
+
+    # Children classes can implement the following methods
+
+    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be granted
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be revoked
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+    # Children classes should implement the following methods
+
+    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        raise NotImplementedError()
+
+    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        raise NotImplementedError()
+
+    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason"""
+        raise NotImplementedError()
+
+    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        raise NotImplementedError()
+
+    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        raise NotImplementedError()
+
+    def register(self, args: Optional[Dict[str, str]] = None) -> None:
+        """Register this worker with the crowdprovider, if necessary"""
+        pass
+
+    @staticmethod
+    def new(db: "MephistoDB", worker_name: str) -> "Worker":
+        """
+        Create a new worker attached to the given identifier, assuming it doesn't already
+        exist in the database.
+
+        Implementation should return the result of _register_worker when sure the worker
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

+
+ + +
+
#   + + + Worker( + db: mephisto.abstractions.database.MephistoDB, + db_id: str, + row: Union[Mapping[str, Any], NoneType] = None, + _used_new_call: bool = False +) +
+ +
+ View Source +
    def __new__(
+        cls,
+        db: "MephistoDB",
+        db_id: str,
+        row: Optional[Mapping[str, Any]] = None,
+        _used_new_call: bool = False,
+    ) -> "Worker":
+        """
+        The new method is overridden to be able to automatically generate
+        the expected Worker class without needing to specifically find it
+        for a given db_id. As such it is impossible to create a base Worker
+        as you will instead be returned the correct Worker class according to
+        the crowdprovider associated with this Worker.
+        """
+        from mephisto.operations.registry import get_crowd_provider_from_type
+
+        if cls == Worker:
+            # We are trying to construct a Worker, find what type to use and
+            # create that instead
+            if row is None:
+                row = db.get_worker(db_id)
+            assert row is not None, f"Given db_id {db_id} did not exist in given db"
+            correct_class: Type[Worker] = get_crowd_provider_from_type(
+                row["provider_type"]
+            ).WorkerClass
+            return super().__new__(correct_class)
+        else:
+            # We are constructing another instance directly
+            return super().__new__(cls)
+
+ +
+ +

The new method is overridden to be able to automatically generate +the expected Worker class without needing to specifically find it +for a given db_id. As such it is impossible to create a base Worker +as you will instead be returned the correct Worker class according to +the crowdprovider associated with this Worker.

+
+ + +
+
+
#   + + + def + get_agents( + self, + status: Union[str, NoneType] = None +) -> list[mephisto.data_model.agent.Agent]: +
+ +
+ View Source +
    def get_agents(self, status: Optional[str] = None) -> List["Agent"]:
+        """
+        Get the list of agents that this worker was responsible for, by the given status
+        if needed
+        """
+        assert status is None or status in AgentState.valid(), "Invalid agent status"
+        return self.db.find_agents(worker_id=self.db_id, status=status)
+
+ +
+ +

Get the list of agents that this worker was responsible for, by the given status +if needed

+
+ + +
+
+
#   + +
@classmethod
+ + def + new_from_provider_data( + cls, + db: mephisto.abstractions.database.MephistoDB, + creation_data: Dict[str, Any] +) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    @classmethod
+    def new_from_provider_data(
+        cls, db: "MephistoDB", creation_data: Dict[str, Any]
+    ) -> "Worker":
+        """
+        Given the parameters passed through wrap_crowd_source.js, construct
+        a new worker
+
+        Basic case simply takes the worker id and registers it
+        """
+        return cls.new(db, creation_data["worker_name"])
+
+ +
+ +

Given the parameters passed through wrap_crowd_source.js, construct +a new worker

+ +

Basic case simply takes the worker id and registers it

+
+ + +
+
+
#   + + + def + get_granted_qualification( + self, + qualification_name: str +) -> Union[mephisto.data_model.qualification.GrantedQualification, NoneType]: +
+ +
+ View Source +
    def get_granted_qualification(
+        self, qualification_name: str
+    ) -> Optional["GrantedQualification"]:
+        """Return the granted qualification for this worker for the given name"""
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            return None
+        qualification = found_qualifications[0]
+        granted_qualifications = self.db.check_granted_qualifications(
+            qualification.db_id, self.db_id
+        )
+        if len(granted_qualifications) == 0:
+            return None
+        return granted_qualifications[0]
+
+ +
+ +

Return the granted qualification for this worker for the given name

+
+ + +
+
+
#   + + + def + is_disqualified(self, qualification_name: str): +
+ +
+ View Source +
    def is_disqualified(self, qualification_name: str):
+        """
+        Find out if the given worker has been disqualified by the given qualification
+
+        Returns True if the qualification exists and has a falsey value
+        Returns False if the qualification doesn't exist or has a truthy value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return not qualification.value
+
+ +
+ +

Find out if the given worker has been disqualified by the given qualification

+ +

Returns True if the qualification exists and has a falsey value +Returns False if the qualification doesn't exist or has a truthy value

+
+ + +
+
+
#   + + + def + is_qualified(self, qualification_name: str): +
+ +
+ View Source +
    def is_qualified(self, qualification_name: str):
+        """
+        Find out if the given worker has qualified by the given qualification
+
+        Returns True if the qualification exists and is truthy value
+        Returns False if the qualification doesn't exist or falsey value
+        """
+        qualification = self.get_granted_qualification(qualification_name)
+        if qualification is None:
+            return False
+        return bool(qualification.value)
+
+ +
+ +

Find out if the given worker has qualified by the given qualification

+ +

Returns True if the qualification exists and is truthy value +Returns False if the qualification doesn't exist or falsey value

+
+ + +
+
+
#   + + + def + revoke_qualification(self, qualification_name) -> bool: +
+ +
+ View Source +
    def revoke_qualification(self, qualification_name) -> bool:
+        """
+        Remove this user's qualification if it exists
+
+        Returns True if removal happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        granted_qualification = self.get_granted_qualification(qualification_name)
+        if granted_qualification is None:
+            return False
+
+        logger.debug(f"Revoking qualification {qualification_name} from worker {self}.")
+        self.db.revoke_qualification(granted_qualification.qualification_id, self.db_id)
+        try:
+            self.revoke_crowd_qualification(qualification_name)
+            return True
+        except Exception as e:
+            logger.exception(
+                f"Found error while trying to revoke qualification: {repr(e)}",
+                exc_info=True,
+            )
+            return False
+        return True
+
+ +
+ +

Remove this user's qualification if it exists

+ +

Returns True if removal happens locally and externally, False if an exception +happens with the crowd provider

+
+ + +
+
+
#   + + + def + grant_qualification(self, qualification_name: str, value: int = 1, skip_crowd=False): +
+ +
+ View Source +
    def grant_qualification(
+        self, qualification_name: str, value: int = 1, skip_crowd=False
+    ):
+        """
+        Grant a positive or negative qualification to this worker
+
+        Returns True if granting happens locally and externally, False if an exception
+        happens with the crowd provider
+        """
+        found_qualifications = self.db.find_qualifications(qualification_name)
+        if len(found_qualifications) == 0:
+            raise Exception(
+                f"No qualification by the name {qualification_name} found in the db"
+            )
+
+        logger.debug(
+            f"Granting worker {self} qualification {qualification_name}: {value}"
+        )
+        qualification = found_qualifications[0]
+        self.db.grant_qualification(qualification.db_id, self.db_id, value=value)
+        if not skip_crowd:
+            try:
+                self.grant_crowd_qualification(qualification_name, value)
+                return True
+            except Exception as e:
+                logger.exception(
+                    f"Found error while trying to grant qualification: {repr(e)}",
+                    exc_info=True,
+                )
+                return False
+
+ +
+ +

Grant a positive or negative qualification to this worker

+ +

Returns True if granting happens locally and externally, False if an exception +happens with the crowd provider

+
+ + +
+
+
#   + + + def + grant_crowd_qualification(self, qualification_name: str, value: int = 1) -> None: +
+ +
+ View Source +
    def grant_crowd_qualification(
+        self, qualification_name: str, value: int = 1
+    ) -> None:
+        """
+        Grant a qualification by the given name to this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be granted
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+ +
+ +

Grant a qualification by the given name to this worker

+ +

If the CrowdProvider has a notion of qualifications, they can be granted +in sync with Mephisto's qualifications

+
+ + +
+
+
#   + + + def + revoke_crowd_qualification(self, qualification_name: str) -> None: +
+ +
+ View Source +
    def revoke_crowd_qualification(self, qualification_name: str) -> None:
+        """
+        Revoke the qualification by the given name from this worker
+
+        If the CrowdProvider has a notion of qualifications, they can be revoked
+        in sync with Mephisto's qualifications
+        """
+        return None
+
+ +
+ +

Revoke the qualification by the given name from this worker

+ +

If the CrowdProvider has a notion of qualifications, they can be revoked +in sync with Mephisto's qualifications

+
+ + +
+
+
#   + + + def + bonus_worker( + self, + amount: float, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def bonus_worker(
+        self, amount: float, reason: str, unit: Optional["Unit"] = None
+    ) -> Tuple[bool, str]:
+        """Bonus this worker for work any reason. Return success of bonus"""
+        raise NotImplementedError()
+
+ +
+ +

Bonus this worker for work any reason. Return success of bonus

+
+ + +
+
+
#   + + + def + block_worker( + self, + reason: str, + unit: Union[mephisto.data_model.unit.Unit, NoneType] = None, + requester: Union[mephisto.data_model.requester.Requester, NoneType] = None +) -> Tuple[bool, str]: +
+ +
+ View Source +
    def block_worker(
+        self,
+        reason: str,
+        unit: Optional["Unit"] = None,
+        requester: Optional["Requester"] = None,
+    ) -> Tuple[bool, str]:
+        """Block this worker for a specified reason. Return success of block"""
+        raise NotImplementedError()
+
+ +
+ +

Block this worker for a specified reason. Return success of block

+
+ + +
+
+
#   + + + def + unblock_worker( + self, + reason: str, + requester: mephisto.data_model.requester.Requester +) -> bool: +
+ +
+ View Source +
    def unblock_worker(self, reason: str, requester: "Requester") -> bool:
+        """unblock a blocked worker for the specified reason"""
+        raise NotImplementedError()
+
+ +
+ +

unblock a blocked worker for the specified reason

+
+ + +
+
+
#   + + + def + is_blocked(self, requester: mephisto.data_model.requester.Requester) -> bool: +
+ +
+ View Source +
    def is_blocked(self, requester: "Requester") -> bool:
+        """Determine if a worker is blocked"""
+        raise NotImplementedError()
+
+ +
+ +

Determine if a worker is blocked

+
+ + +
+
+
#   + + + def + is_eligible(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool: +
+ +
+ View Source +
    def is_eligible(self, task_run: "TaskRun") -> bool:
+        """Determine if this worker is eligible for the given task run"""
+        raise NotImplementedError()
+
+ +
+ +

Determine if this worker is eligible for the given task run

+
+ + +
+
+
#   + + + def + register(self, args: Union[Dict[str, str], NoneType] = None) -> None: +
+ +
+ View Source +
    def register(self, args: Optional[Dict[str, str]] = None) -> None:
+        """Register this worker with the crowdprovider, if necessary"""
+        pass
+
+ +
+ +

Register this worker with the crowdprovider, if necessary

+
+ + +
+
+
#   + +
@staticmethod
+ + def + new( + db: mephisto.abstractions.database.MephistoDB, + worker_name: str +) -> mephisto.data_model.worker.Worker: +
+ +
+ View Source +
    @staticmethod
+    def new(db: "MephistoDB", worker_name: str) -> "Worker":
+        """
+        Create a new worker attached to the given identifier, assuming it doesn't already
+        exist in the database.
+
+        Implementation should return the result of _register_worker when sure the worker
+        can be successfully created to have it put into the db.
+        """
+        raise NotImplementedError()
+
+ +
+ +

Create a new worker attached to the given identifier, assuming it doesn't already +exist in the database.

+ +

Implementation should return the result of _register_worker when sure the worker +can be successfully created to have it put into the db.

+
+ + +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations.html b/docs/web/static/python_api/mephisto/operations.html new file mode 100644 index 000000000..4b6c8607b --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations.html @@ -0,0 +1,381 @@ + + + + + + + + + mephisto.operations API documentation + + + + + + + + + +
+
+

+mephisto.operations

+ +

Mephisto Operations

+ +

The contents of the operations folder comprise controllers for launching and monitoring tasks, as well as other classes that either operate on the data model or support the mid level of Mephisto's design. Each has a high level responsibility, detailed below. Within these classes there's something of a heirarchy depending on the amount of underlying infrastructure that a class is built upon.

+ +

High-level controller components

+ +

This level of components is reserved for modules that operate on the highest level of the Mephisto heirarchy. These should be either directly usable, or easy to bundle into scripts for the client/api.

+ +
    +
  • Operator: High-level class responsible for launching and monitoring a TaskRun. Generally initialized using a TaskConfig and the launch_task_run method.
  • +
+ +

At the moment only the Operator exists in this level, as the module that manages the process of launching and monitoring a complete data collection job. Modules on a similar level of complexity may be written for the review flow, and for packaging data for release.

+ +

Mid-level connecting components

+ +

These components are responsible for tying some of the underlying data model components to the reality of what they represent. They ensure that tasks remain in sync with what is actually happening, such that the content on Mephisto matches what is present on crowd providers and architects, and to some degree to blueprints.

+ +
    +
  • ClientIOHandler: Responsible for processing incoming packets from clients and directing them to the right place. Also ensures that reconnecting workers are directed to the correct agents. The ClientIOHandler acts as the bridge between Architects and Blueprints.
  • +
  • WorkerPool: Responsible for following the status of a worker from the point they attempt to accept a Unit until the Unit is either completed or returned. This includes spawning the threads that watch specific Assignment's or Unit's, evaluating onboarding and qualifications.
  • +
  • registry.py: Reponsible for keeping track of instances of all of the Mephisto core abstractions, such that the system is able to refer to them just by name.
  • +
  • TaskLauncher: Responsible for moving through an iterator or generator of assignments and units to be created, first creating the local Mephisto state to represent them and then later leveraging the CrowdProvider to launch them. Also ensures certain configuration invariants hold, such as a maximum number of concurrent tasks available.
  • +
+ +

Low-level Mephisto infra

+ +

These modules contain functionality that is used to condense shared behavior from various parts of the Mephisto codebase into standard functionality and utilities.

+ +
    +
  • config_handler.py: Functions responsible for providing a consistent interface into a user's configuration file for Mephisto, stored at ~/.mephisto/config.yml.
  • +
  • hydra_config.py: Classes and functionality responsible for ensuring that Mephisto operates well using Hydra, including base classes to build Hydra structured configs from (such as the TaskConfig) and methods to simplify interacting with Hydra in the codebase.
  • +
  • logger_core.py: Helpers to simplify the process of generating unique loggers and logging configuration for various parts of Mephisto. (Much still to be done here).
  • +
+ +

Operator

+ +

The Operator is responsible for actually coordinating launching tasks. This is managed using the launch_task_run function. It takes in a Hydra DictConfig of arguments corresponding to the Blueprint, Architect, and CrowdProvider of choice. It can also take a SharedTaskState object to pass information that wouldn't normally be able to be parsed on the command line, or where it can only be extracted at runtime.

+ +

One important extra argument is SharedTaskState.qualifications, which allows configuring a task with requirements for workers to be eligibible to work on the task. Functionality for this can be seen in data_model.qualifications, with examples in how operator handles the block_qualification.

+ +

The lifecycle of an operator is to launch as many LiveTaskRuns as desired using the launch_task_run function, and then to watch over their progress using the wait_for_runs_then_shutdown function. These methods cover the full requirements for launching and monitoring a job.

+ +

If wait_for_runs_then_shutdown is not used, it's always important to call the shutdown methods whenever an operator has been created. While tasks are underway, a user can use get_running_task_runs to see the status of things that are currently running. Once there are no running task runs, the Operator can be told to shut down.

+ +

ClientIOHandler

+ +

The ClientIOHandler's primary responsiblity is to abstract the remote nature of Mephisto Workers and Agents to allow them to directly act on the local maching. It is the layer that abstracts humans and human work into Workers and Agents that take actions. To that end, it has to set up a socket to connect to the task server, poll status on any agents currently working on tasks, and process incoming agent actions over the socket to put them into the Agent so that a task can use the data.

+ +

When provided with details of a LiveTaskRun, the associated Architect tells the ClientIOHandler where the server(s) that agents are communicating with is(/are) running. Then on initialization, Channel can be opened for each of these servers.

+ +

Once this connection is established:

+ +
    +
  • Incoming messages from the server (which represent actions taken by human agents) are passed to the pending_actions queue of the Agent that corresponds with that human agent. Future calls to Agent.get_live_update() will pop off from this queue.
  • +
  • Calls to Agent.observe() will push the message through to the appropriate Channel's sending queue immediately.
  • +
  • The ClientIOHandler should also be querying for Agent's status and pushing responses to the WorkerPool to handle updates.
  • +
+ +

WorkerPool

+ +

The WorkerPool is responsible for placing workers into appropriate Agents after finding Units they are eligible for, and passing off task execution to a Blueprint's TaskRunner. It also monitors changes to agent status.

+ +

In order to properly determine eligibility and launch tasks, the WorkerPool relies on the Blueprint and CrowdProvider for the registered LiveTaskRun:

+ +
    +
  • The Blueprint contains details about the relevant task run, and is used for properly registering a new Agent the correct Unit. For this, in _register_agent it gets all Units that a worker is eligible for, reserves one, and then handles creating a new Agent out of the given Worker-Unit pair.
  • +
  • The CrowdProvider is also used during the registration process. In the first part it ensures that upon a first connect by a new person, a corresponding Worker is created to keep records for that worker (_register_worker). Later it is used during _register_agent to ensure that the Agent class used is associated with the correct CrowdProvider and has its relevant abstractions.
  • +
+ +

From this point, all interactions are handled from the perspective of pure Mephisto Agents, and the remaining responsibilities of the WorkerPool are to ensure that, from the perspective of a Blueprint's TaskRunner, the Agents local python state is entirely representative of the actual state of the human worker in the task.

+ +

registry

+ +

The registry.py file contains functions required for establishing a registry of abstraction modules for Mephisto to refer to. This allows Mephisto to properly re-initialize classes and get information for data stored in the MephistoDB without needing to store pickled modules, or information beyond the registration key.

+ +

The file exposes the register_mephisto_abstraction class decorator, which ensures that on import a specific module will be added to the given registry. The fill_registries function automatically populates the registry dicts with all of the relevant modules in Mephisto, though this should likely be expanded to allow users or repositories to mark or register their own Mephisto implementations.

+ +

Mephisto classes can then use the get_<abstraction>_from_type methods from the file to retrieve the specific modules to be initialized for the given abstraction type string.

+ +

TaskLauncher

+ +

The TaskLauncher class is a fairly lightweight class responsible for handling the process of launching units. A TaskLauncher is created for a specific TaskRun, and provided with assignment_data for that full task run. It creates Assignments and Units for the TaskRun, and packages the expected data into the Assignment. When a task is ready to go live, one calls launch_units(url) with the url that the task should be pointed to. If units need to be expired (such as during a shutdown), expire_units handles this for all units created for the given TaskRun.

+ +

TaskLaunchers will parse the TaskRun's TaskRunArgs to know what parameters to set. This info should be used to initialize the assignments and the units as specified. The TaskLauncher can also be used to limit the number of currently available tasks using the max_num_concurrent_units argument, which prevents too many tasks from running at the same time, potentially overrunning the TaskRunner that the Blueprint has provided.

+ +

config_handler.py

+ +

The methods in this module standardize how Mephisto interacts with the user configurations options for the whole system. These are stored in "~/.mephisto/config.yml" at the moment. The structure of the config file is such that it subdivides values to store into sections containing keys. Those keys can contain any value, but writing and reading data is done by referring to the section and the key for the data being written or read.

+ +

The following methods are defined:

+ +
    +
  • get_config: loads all of the contents of the mephisto config file.
  • +
  • write_config: Writes an entirely new config to file
  • +
  • init_config: Tries to create an initial configuration file if none exists
  • +
  • add_config_arg: Sets the value for just one configuration arg in the whole set.
  • +
  • get_config_arg: Returns a specific argument value from a section of the config.
  • +
+ +

hydra_config.py

+ +

The hydra config module contains a number of classes and methods to make interfacing with hydra a little more convenient for Mephisto and its users. It defines common structured config types, currently the MephistoConfig and the TaskConfig, for use in user code. It also defines methods for handling registering those structured configs under the expected names, which the registry relies on. Lastly, it provides the register_script_config method, which lets a user define a structured config for use in their scripts without needing to initialize a hydra ConfigStore.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/client_io_handler.html b/docs/web/static/python_api/mephisto/operations/client_io_handler.html new file mode 100644 index 000000000..d7a227c32 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/client_io_handler.html @@ -0,0 +1,1543 @@ + + + + + + + + + mephisto.operations.client_io_handler API documentation + + + + + + + + + +
+
+

+mephisto.operations.client_io_handler

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import weakref
+import time
+import asyncio
+from queue import Queue
+from prometheus_client import Histogram  # type: ignore
+
+from mephisto.data_model.packet import (
+    Packet,
+    PACKET_TYPE_ALIVE,
+    PACKET_TYPE_SUBMIT_ONBOARDING,
+    PACKET_TYPE_SUBMIT_UNIT,
+    PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE,
+    PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+    PACKET_TYPE_REGISTER_AGENT,
+    PACKET_TYPE_AGENT_DETAILS,
+    PACKET_TYPE_UPDATE_STATUS,
+    PACKET_TYPE_REQUEST_STATUSES,
+    PACKET_TYPE_RETURN_STATUSES,
+    PACKET_TYPE_ERROR,
+)
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model.agent import Agent, OnboardingAgent
+from mephisto.operations.datatypes import LiveTaskRun
+from mephisto.abstractions._subcomponents.channel import Channel, STATUS_CHECK_TIME
+from typing import Dict, Tuple, Union, Optional, List, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+
+from mephisto.utils.logger_core import get_logger, format_loud
+
+logger = get_logger(name=__name__)
+
+SYSTEM_CHANNEL_ID = "mephisto"
+START_DEATH_TIME = 10
+
+# Initialize monitoring metrics
+PACKET_PROCESSING_LATENCY = Histogram(
+    "client_io_handler_latency_seconds",
+    "Time spent processing a packet on the IO handler",
+    ["packet_type"],
+)
+E2E_PACKET_LATENCY = Histogram(
+    "e2e_packet_latency",
+    "Time spent processing packets across request lifecycle",
+    ["packet_type", "stage"],
+)
+for packet_type in [
+    PACKET_TYPE_SUBMIT_ONBOARDING,
+    PACKET_TYPE_SUBMIT_UNIT,
+    PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE,
+    PACKET_TYPE_REGISTER_AGENT,
+    PACKET_TYPE_RETURN_STATUSES,
+    PACKET_TYPE_ERROR,
+]:
+    PACKET_PROCESSING_LATENCY.labels(packet_type=packet_type)
+    for stage in [
+        "client_to_router",
+        "router_processing",
+        "router_to_server",
+        "server_processing",
+        "e2e_time",
+    ]:
+        E2E_PACKET_LATENCY.labels(packet_type=packet_type, stage=stage)
+
+
+class ClientIOHandler:
+    """
+    This class is responsible for managing all of the incoming and outgoing messages
+    between the Mephisto backend, the router, and clients. It is tightly coupled with
+    the Architect abstraction, and uses components of that API to send and receive
+    messages, but operates on the level of message parsing and distribution logic.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked IO state
+        self.channels: Dict[str, Channel] = {}
+        # Map from onboarding id to agent request packet
+        self.onboarding_packets: Dict[str, Tuple[Dict[str, Any], str]] = {}
+        # Dict from registration id to agent id
+        self.agents_by_registration_id: Dict[str, str] = {}
+        # Agent status handling
+        self._status_task: Optional[asyncio.Task] = None
+        # Message handling
+        self.message_queue: "Queue[Packet]" = Queue()
+        self.agent_id_to_channel_id: Dict[str, str] = {}
+        # Map from a request id to the channel that issued it
+        self.request_id_to_channel_id: Dict[str, str] = {}
+        self.request_id_to_packet: Dict[str, Packet] = {}  # For metrics purposes
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+    def log_metrics_for_packet(self, packet: "Packet") -> None:
+        """
+        Log the full metrics for the provided packet, using now as the expected response time
+        """
+        client_timestamp = packet.client_timestamp
+        router_incoming_timestamp = packet.router_incoming_timestamp
+        router_outgoing_timestamp = packet.router_outgoing_timestamp
+        server_timestamp = packet.server_timestamp
+        response_timestamp = time.time()
+        if router_outgoing_timestamp is None:
+            print(packet, "no outgoing timestamp")
+            router_outgoing_timestamp = server_timestamp
+        if router_incoming_timestamp is None:
+            print(packet, "no incoming timestamp")
+            router_incoming_timestamp = router_outgoing_timestamp
+        if client_timestamp is None:
+            print(packet, "no client timestamp")
+            client_timestamp = router_incoming_timestamp
+        client_to_router = max(0, router_incoming_timestamp - client_timestamp)
+        router_processing = max(
+            0, router_outgoing_timestamp - router_incoming_timestamp
+        )
+        router_to_server = max(0, server_timestamp - router_outgoing_timestamp)
+        server_processing = max(0, response_timestamp - server_timestamp)
+        e2e_time = max(0, response_timestamp - client_timestamp)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="client_to_router"
+        ).observe(client_to_router)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_processing"
+        ).observe(router_processing)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_to_server"
+        ).observe(router_to_server)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="server_processing"
+        ).observe(server_processing)
+        E2E_PACKET_LATENCY.labels(packet_type=packet.type, stage="e2e_time").observe(
+            e2e_time
+        )
+
+    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this io handler"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to an io handler at a time"
+        self._live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this handler, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+    def _on_channel_open(self, channel_id: str) -> None:
+        """Handler for what to do when a socket opens, we send an alive"""
+        self._send_alive(channel_id)
+
+    def _on_catastrophic_disconnect(self, channel_id: str) -> None:
+        """On a catastrophic (unable to reconnect) disconnect event, cleanup this task"""
+        logger.error(f"Channel {channel_id} called on_catastrophic_disconnect")
+
+        live_run = self.get_live_run()
+        live_run.force_shutdown = True
+
+    async def __on_channel_message_internal(
+        self, channel_id: str, packet: Packet
+    ) -> None:
+        """Incoming message handler defers to the internal handler"""
+        try:
+            self._on_message(packet, channel_id)
+        except Exception as e:
+            logger.exception(
+                f"Channel {channel_id} encountered error on packet {packet}",
+                exc_info=True,
+            )
+            raise
+
+    def _on_channel_message(self, channel_id: str, packet: Packet) -> None:
+        """Channel handler wrapper that passes handling to the local loop"""
+        self.get_live_run().loop_wrap.execute_coro(
+            self.__on_channel_message_internal(channel_id, packet)
+        )
+
+    def _register_channel(self, channel: Channel) -> str:
+        """Register this channel"""
+        channel_id = channel.channel_id
+
+        self.channels[channel_id] = channel
+
+        channel.open()
+        self._send_alive(channel_id)
+        start_time = time.time()
+        while not channel.is_alive():
+            if time.time() - start_time > START_DEATH_TIME:
+                # TODO(OWN) Ask channel why it might have failed to connect?
+                self.channels[channel_id].close()
+                raise ConnectionRefusedError(  # noqa F821 we only support py3
+                    "Was not able to establish a connection with the server, "
+                    "please try to run again. If that fails,"
+                    "please launch with mephisto.log_level=debug and watch for "
+                    "clear errors. If this doesn't help, feel free to open an issue "
+                    "with your debug logs on the Mephisto github."
+                )
+            try:
+                self._send_alive(channel_id)
+            except Exception:
+                pass
+            time.sleep(0.3)
+        return channel_id
+
+    def launch_channels(self) -> None:
+        """Launch and register all of the channels for this live run to this IO handler"""
+        live_run = self.get_live_run()
+
+        channels = live_run.architect.get_channels(
+            self._on_channel_open,
+            self._on_catastrophic_disconnect,
+            self._on_channel_message,
+        )
+        for channel in channels:
+            self._register_channel(channel)
+
+        async def launch_status_task():
+            self._status_task = asyncio.create_task(self._ping_statuses_while_alive())
+
+        live_run.loop_wrap.execute_coro(launch_status_task())
+
+    def associate_agent_with_registration(
+        self, agent_id: str, request_id: str, registration_id: str
+    ) -> None:
+        """
+        Given an agent id and request id, registers the agent id to the channel
+        that the request was made from
+        """
+        channel_id = self.request_id_to_channel_id[request_id]
+        self.agent_id_to_channel_id[agent_id] = channel_id
+        self.agents_by_registration_id[registration_id] = agent_id
+
+    def _send_alive(self, channel_id: str) -> bool:
+        logger.info("Sending alive")
+        return self.channels[channel_id].enqueue_send(
+            Packet(
+                packet_type=PACKET_TYPE_ALIVE,
+                subject_id=SYSTEM_CHANNEL_ID,
+            )
+        )
+
+    def _log_frontend_error(self, packet: Packet):
+        """Log to the local logger an error that occurred on the frontend"""
+        error = packet.data
+        if "error_type" in error and error["error_type"] == "version-mismatch":
+            logger.warning(f"{format_loud('[Version Mismatch!!]')}: {error['text']}")
+        else:
+            logger.warning(f"[FRONT_END_ERROR]: {error}")
+
+    def _on_live_update(self, packet: Packet, _channel_id: str):
+        """Handle an action as sent from an agent, enqueuing to the agent"""
+        live_run = self.get_live_run()
+        agent = live_run.worker_pool.get_agent_for_id(packet.subject_id)
+        assert agent is not None, "Could not find given agent!"
+
+        agent.pending_actions.put(packet.data)
+        agent.has_live_update.set()
+
+    def _on_submit_unit(self, packet: Packet, _channel_id: str):
+        """Handle an action as sent from an agent, enqueuing to the agent"""
+        live_run = self.get_live_run()
+        agent = live_run.worker_pool.get_agent_for_id(packet.subject_id)
+        assert agent is not None, "Could not find given agent!"
+
+        # If the packet is_submit, and has files, we need to
+        # process downloading those files first
+        data_files = packet.data.get("files")
+        if data_files is not None:
+            save_dir = agent.get_data_dir()
+            architect = live_run.architect
+            for f_obj in data_files:
+                # TODO(#649) this is incredibly blocking!
+                architect.download_file(f_obj["filename"], save_dir)
+
+        agent.handle_submit(packet.data)
+
+    def _on_submit_onboarding(self, packet: Packet, channel_id: str) -> None:
+        """Handle the submission of onboarding data"""
+        assert (
+            "onboarding_data" in packet.data
+        ), f"Onboarding packet {packet} submitted without data"
+        live_run = self.get_live_run()
+        onboarding_id = packet.subject_id
+        if onboarding_id not in live_run.worker_pool.onboarding_agents:
+            logger.warning(
+                f"Onboarding agent {onboarding_id} already submitted or disconnected, "
+                f"but is calling _on_submit_onboarding again"
+            )
+            return
+        agent = live_run.worker_pool.get_agent_for_id(onboarding_id)
+        assert agent is not None, f"Could not find given agent by id {onboarding_id}"
+        request_id = packet.data["request_id"]
+        self.request_id_to_channel_id[request_id] = channel_id
+        self.request_id_to_packet[request_id] = packet
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        logger.debug(f"{agent} has submitted onboarding: {packet}")
+        # Update the request id for the original packet (which has the required
+        # registration data) to be the new submission packet (so that we answer
+        # back properly under the new request)
+        live_run.worker_pool.onboarding_infos[onboarding_id].request_id = request_id
+
+        agent.handle_submit(packet.data["onboarding_data"])
+
+    def _register_agent(self, packet: Packet, channel_id: str) -> None:
+        """Read and forward a worker registration packet"""
+        live_run = self.get_live_run()
+        request_id = packet.data["request_id"]
+
+        self.request_id_to_channel_id[request_id] = channel_id
+        self.request_id_to_packet[request_id] = packet
+        crowd_data = packet.data["provider_data"]
+
+        # Check for reconnecting agent
+        agent_registration_id = crowd_data["agent_registration_id"]
+        if agent_registration_id in self.agents_by_registration_id:
+            agent_id = self.agents_by_registration_id[agent_registration_id]
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.reconnect_agent(agent_id, request_id)
+            )
+            self.agent_id_to_channel_id[agent_id] = channel_id
+            logger.debug(
+                f"Found existing agent_registration_id {agent_registration_id}, "
+                f"reconnecting to {agent_id}."
+            )
+            return
+
+        # Handle regular agent
+        live_run.loop_wrap.execute_coro(
+            live_run.worker_pool.register_worker(crowd_data, request_id)
+        )
+
+    def enqueue_agent_details(self, request_id: str, additional_data: Dict[str, Any]):
+        """
+        Synchronous method to enqueue a message sending the given agent details
+        """
+        base_data = {"request_id": request_id}
+        for key, val in additional_data.items():
+            base_data[key] = val
+        self.message_queue.put(
+            Packet(
+                packet_type=PACKET_TYPE_AGENT_DETAILS,
+                subject_id=self.request_id_to_channel_id[request_id],
+                data=base_data,
+            )
+        )
+        self.process_outgoing_queue(self.message_queue)
+        self.log_metrics_for_packet(self.request_id_to_packet[request_id])
+        del self.request_id_to_channel_id[request_id]
+        del self.request_id_to_packet[request_id]
+
+    def _on_message(self, packet: Packet, channel_id: str):
+        """Handle incoming messages from the channel"""
+        live_run = self.get_live_run()
+        # TODO(#102) this method currently assumes that the packet's subject_id will
+        # always be a valid agent in our list of agent_infos. This isn't always the case
+        # when relaunching with the same URLs.
+        with PACKET_PROCESSING_LATENCY.labels(packet_type=packet.type).time():
+            if packet.type == PACKET_TYPE_SUBMIT_ONBOARDING:
+                self._on_submit_onboarding(packet, channel_id)
+            elif packet.type == PACKET_TYPE_SUBMIT_UNIT:
+                self._on_submit_unit(packet, channel_id)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+                self._on_live_update(packet, channel_id)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_REGISTER_AGENT:
+                self._register_agent(packet, channel_id)
+            elif packet.type == PACKET_TYPE_RETURN_STATUSES:
+                # Record this status response
+                live_run.worker_pool.handle_updated_agent_status(packet.data)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_ERROR:
+                self._log_frontend_error(packet)
+                self.log_metrics_for_packet(packet)
+            else:
+                # PACKET_TYPE_REQUEST_STATUSES, PACKET_TYPE_ALIVE,
+                # PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE, PACKET_TYPE_AGENT_DETAILS
+                raise Exception(f"Unexpected packet type {packet.type}")
+
+    def _request_status_update(self) -> None:
+        """
+        Check last round of statuses, then request
+        an update from the server on all agent's current status
+        """
+        for channel_id, channel in self.channels.items():
+            send_packet = Packet(
+                packet_type=PACKET_TYPE_REQUEST_STATUSES,
+                subject_id=SYSTEM_CHANNEL_ID,
+                data={},
+            )
+            channel.enqueue_send(send_packet)
+
+    async def _ping_statuses_while_alive(self) -> None:
+        while not self.is_shutdown and len(self.channels) > 0:
+            self._request_status_update()
+            await asyncio.sleep(STATUS_CHECK_TIME)
+
+    def send_live_update(self, agent_id: str, data: Dict[str, Any]):
+        """Send a live data packet to the given agent id"""
+        data_packet = Packet(
+            packet_type=PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE,
+            subject_id=agent_id,
+            data=data,
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(data_packet)
+
+    def send_status_update(self, agent_id: str, status: str):
+        """Update the status for the given agent"""
+        status_packet = Packet(
+            packet_type=PACKET_TYPE_UPDATE_STATUS,
+            subject_id=agent_id,
+            data={
+                "status": status,
+            },
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(status_packet)
+
+    def process_outgoing_queue(self, message_queue: "Queue[Packet]") -> None:
+        """Sends messages from the given list until it is empty"""
+        while not message_queue.empty() > 0:
+            curr_obs = message_queue.get()
+            try:
+                channel = self._get_channel_for_agent(curr_obs.subject_id)
+            except Exception:
+                channel = self.channels[curr_obs.subject_id]
+            channel.enqueue_send(curr_obs)
+
+    def shutdown(self) -> None:
+        """Close any channels related to a LiveTaskRun, clean up any resources"""
+        while not self.message_queue.empty():
+            self.message_queue.get()
+        run_channels = list(self.channels.keys())
+        logger.debug(f"Closing channels {run_channels}")
+        for channel_id in run_channels:
+            self.channels[channel_id].close()
+            del self.channels[channel_id]
+        self.is_shutdown = True
+
+        logger.debug(f"Cancelling status ping task")
+        try:
+            if self._status_task is not None and not self._status_task.cancelled():
+                self._status_task.cancel()
+
+                async def await_status_task():
+                    await self._status_task
+                    self._live_run = None
+
+                self.get_live_run().loop_wrap.execute_coro(await_status_task())
+        except asyncio.CancelledError:
+            pass
+
+    def _get_channel_for_agent(self, agent_id: str) -> Channel:
+        """Return the sending channel for a given agent"""
+        channel_id = self.agent_id_to_channel_id.get(agent_id, None)
+        if channel_id is None:
+            raise Exception(f"No channel found for the given agent id {agent_id}!")
+        return self.channels[channel_id]
+
+ +
+ +
+
+
+ #   + + + class + ClientIOHandler: +
+ +
+ View Source +
class ClientIOHandler:
+    """
+    This class is responsible for managing all of the incoming and outgoing messages
+    between the Mephisto backend, the router, and clients. It is tightly coupled with
+    the Architect abstraction, and uses components of that API to send and receive
+    messages, but operates on the level of message parsing and distribution logic.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked IO state
+        self.channels: Dict[str, Channel] = {}
+        # Map from onboarding id to agent request packet
+        self.onboarding_packets: Dict[str, Tuple[Dict[str, Any], str]] = {}
+        # Dict from registration id to agent id
+        self.agents_by_registration_id: Dict[str, str] = {}
+        # Agent status handling
+        self._status_task: Optional[asyncio.Task] = None
+        # Message handling
+        self.message_queue: "Queue[Packet]" = Queue()
+        self.agent_id_to_channel_id: Dict[str, str] = {}
+        # Map from a request id to the channel that issued it
+        self.request_id_to_channel_id: Dict[str, str] = {}
+        self.request_id_to_packet: Dict[str, Packet] = {}  # For metrics purposes
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+    def log_metrics_for_packet(self, packet: "Packet") -> None:
+        """
+        Log the full metrics for the provided packet, using now as the expected response time
+        """
+        client_timestamp = packet.client_timestamp
+        router_incoming_timestamp = packet.router_incoming_timestamp
+        router_outgoing_timestamp = packet.router_outgoing_timestamp
+        server_timestamp = packet.server_timestamp
+        response_timestamp = time.time()
+        if router_outgoing_timestamp is None:
+            print(packet, "no outgoing timestamp")
+            router_outgoing_timestamp = server_timestamp
+        if router_incoming_timestamp is None:
+            print(packet, "no incoming timestamp")
+            router_incoming_timestamp = router_outgoing_timestamp
+        if client_timestamp is None:
+            print(packet, "no client timestamp")
+            client_timestamp = router_incoming_timestamp
+        client_to_router = max(0, router_incoming_timestamp - client_timestamp)
+        router_processing = max(
+            0, router_outgoing_timestamp - router_incoming_timestamp
+        )
+        router_to_server = max(0, server_timestamp - router_outgoing_timestamp)
+        server_processing = max(0, response_timestamp - server_timestamp)
+        e2e_time = max(0, response_timestamp - client_timestamp)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="client_to_router"
+        ).observe(client_to_router)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_processing"
+        ).observe(router_processing)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_to_server"
+        ).observe(router_to_server)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="server_processing"
+        ).observe(server_processing)
+        E2E_PACKET_LATENCY.labels(packet_type=packet.type, stage="e2e_time").observe(
+            e2e_time
+        )
+
+    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this io handler"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to an io handler at a time"
+        self._live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this handler, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+    def _on_channel_open(self, channel_id: str) -> None:
+        """Handler for what to do when a socket opens, we send an alive"""
+        self._send_alive(channel_id)
+
+    def _on_catastrophic_disconnect(self, channel_id: str) -> None:
+        """On a catastrophic (unable to reconnect) disconnect event, cleanup this task"""
+        logger.error(f"Channel {channel_id} called on_catastrophic_disconnect")
+
+        live_run = self.get_live_run()
+        live_run.force_shutdown = True
+
+    async def __on_channel_message_internal(
+        self, channel_id: str, packet: Packet
+    ) -> None:
+        """Incoming message handler defers to the internal handler"""
+        try:
+            self._on_message(packet, channel_id)
+        except Exception as e:
+            logger.exception(
+                f"Channel {channel_id} encountered error on packet {packet}",
+                exc_info=True,
+            )
+            raise
+
+    def _on_channel_message(self, channel_id: str, packet: Packet) -> None:
+        """Channel handler wrapper that passes handling to the local loop"""
+        self.get_live_run().loop_wrap.execute_coro(
+            self.__on_channel_message_internal(channel_id, packet)
+        )
+
+    def _register_channel(self, channel: Channel) -> str:
+        """Register this channel"""
+        channel_id = channel.channel_id
+
+        self.channels[channel_id] = channel
+
+        channel.open()
+        self._send_alive(channel_id)
+        start_time = time.time()
+        while not channel.is_alive():
+            if time.time() - start_time > START_DEATH_TIME:
+                # TODO(OWN) Ask channel why it might have failed to connect?
+                self.channels[channel_id].close()
+                raise ConnectionRefusedError(  # noqa F821 we only support py3
+                    "Was not able to establish a connection with the server, "
+                    "please try to run again. If that fails,"
+                    "please launch with mephisto.log_level=debug and watch for "
+                    "clear errors. If this doesn't help, feel free to open an issue "
+                    "with your debug logs on the Mephisto github."
+                )
+            try:
+                self._send_alive(channel_id)
+            except Exception:
+                pass
+            time.sleep(0.3)
+        return channel_id
+
+    def launch_channels(self) -> None:
+        """Launch and register all of the channels for this live run to this IO handler"""
+        live_run = self.get_live_run()
+
+        channels = live_run.architect.get_channels(
+            self._on_channel_open,
+            self._on_catastrophic_disconnect,
+            self._on_channel_message,
+        )
+        for channel in channels:
+            self._register_channel(channel)
+
+        async def launch_status_task():
+            self._status_task = asyncio.create_task(self._ping_statuses_while_alive())
+
+        live_run.loop_wrap.execute_coro(launch_status_task())
+
+    def associate_agent_with_registration(
+        self, agent_id: str, request_id: str, registration_id: str
+    ) -> None:
+        """
+        Given an agent id and request id, registers the agent id to the channel
+        that the request was made from
+        """
+        channel_id = self.request_id_to_channel_id[request_id]
+        self.agent_id_to_channel_id[agent_id] = channel_id
+        self.agents_by_registration_id[registration_id] = agent_id
+
+    def _send_alive(self, channel_id: str) -> bool:
+        logger.info("Sending alive")
+        return self.channels[channel_id].enqueue_send(
+            Packet(
+                packet_type=PACKET_TYPE_ALIVE,
+                subject_id=SYSTEM_CHANNEL_ID,
+            )
+        )
+
+    def _log_frontend_error(self, packet: Packet):
+        """Log to the local logger an error that occurred on the frontend"""
+        error = packet.data
+        if "error_type" in error and error["error_type"] == "version-mismatch":
+            logger.warning(f"{format_loud('[Version Mismatch!!]')}: {error['text']}")
+        else:
+            logger.warning(f"[FRONT_END_ERROR]: {error}")
+
+    def _on_live_update(self, packet: Packet, _channel_id: str):
+        """Handle an action as sent from an agent, enqueuing to the agent"""
+        live_run = self.get_live_run()
+        agent = live_run.worker_pool.get_agent_for_id(packet.subject_id)
+        assert agent is not None, "Could not find given agent!"
+
+        agent.pending_actions.put(packet.data)
+        agent.has_live_update.set()
+
+    def _on_submit_unit(self, packet: Packet, _channel_id: str):
+        """Handle an action as sent from an agent, enqueuing to the agent"""
+        live_run = self.get_live_run()
+        agent = live_run.worker_pool.get_agent_for_id(packet.subject_id)
+        assert agent is not None, "Could not find given agent!"
+
+        # If the packet is_submit, and has files, we need to
+        # process downloading those files first
+        data_files = packet.data.get("files")
+        if data_files is not None:
+            save_dir = agent.get_data_dir()
+            architect = live_run.architect
+            for f_obj in data_files:
+                # TODO(#649) this is incredibly blocking!
+                architect.download_file(f_obj["filename"], save_dir)
+
+        agent.handle_submit(packet.data)
+
+    def _on_submit_onboarding(self, packet: Packet, channel_id: str) -> None:
+        """Handle the submission of onboarding data"""
+        assert (
+            "onboarding_data" in packet.data
+        ), f"Onboarding packet {packet} submitted without data"
+        live_run = self.get_live_run()
+        onboarding_id = packet.subject_id
+        if onboarding_id not in live_run.worker_pool.onboarding_agents:
+            logger.warning(
+                f"Onboarding agent {onboarding_id} already submitted or disconnected, "
+                f"but is calling _on_submit_onboarding again"
+            )
+            return
+        agent = live_run.worker_pool.get_agent_for_id(onboarding_id)
+        assert agent is not None, f"Could not find given agent by id {onboarding_id}"
+        request_id = packet.data["request_id"]
+        self.request_id_to_channel_id[request_id] = channel_id
+        self.request_id_to_packet[request_id] = packet
+        agent.update_status(AgentState.STATUS_WAITING)
+
+        logger.debug(f"{agent} has submitted onboarding: {packet}")
+        # Update the request id for the original packet (which has the required
+        # registration data) to be the new submission packet (so that we answer
+        # back properly under the new request)
+        live_run.worker_pool.onboarding_infos[onboarding_id].request_id = request_id
+
+        agent.handle_submit(packet.data["onboarding_data"])
+
+    def _register_agent(self, packet: Packet, channel_id: str) -> None:
+        """Read and forward a worker registration packet"""
+        live_run = self.get_live_run()
+        request_id = packet.data["request_id"]
+
+        self.request_id_to_channel_id[request_id] = channel_id
+        self.request_id_to_packet[request_id] = packet
+        crowd_data = packet.data["provider_data"]
+
+        # Check for reconnecting agent
+        agent_registration_id = crowd_data["agent_registration_id"]
+        if agent_registration_id in self.agents_by_registration_id:
+            agent_id = self.agents_by_registration_id[agent_registration_id]
+            live_run.loop_wrap.execute_coro(
+                live_run.worker_pool.reconnect_agent(agent_id, request_id)
+            )
+            self.agent_id_to_channel_id[agent_id] = channel_id
+            logger.debug(
+                f"Found existing agent_registration_id {agent_registration_id}, "
+                f"reconnecting to {agent_id}."
+            )
+            return
+
+        # Handle regular agent
+        live_run.loop_wrap.execute_coro(
+            live_run.worker_pool.register_worker(crowd_data, request_id)
+        )
+
+    def enqueue_agent_details(self, request_id: str, additional_data: Dict[str, Any]):
+        """
+        Synchronous method to enqueue a message sending the given agent details
+        """
+        base_data = {"request_id": request_id}
+        for key, val in additional_data.items():
+            base_data[key] = val
+        self.message_queue.put(
+            Packet(
+                packet_type=PACKET_TYPE_AGENT_DETAILS,
+                subject_id=self.request_id_to_channel_id[request_id],
+                data=base_data,
+            )
+        )
+        self.process_outgoing_queue(self.message_queue)
+        self.log_metrics_for_packet(self.request_id_to_packet[request_id])
+        del self.request_id_to_channel_id[request_id]
+        del self.request_id_to_packet[request_id]
+
+    def _on_message(self, packet: Packet, channel_id: str):
+        """Handle incoming messages from the channel"""
+        live_run = self.get_live_run()
+        # TODO(#102) this method currently assumes that the packet's subject_id will
+        # always be a valid agent in our list of agent_infos. This isn't always the case
+        # when relaunching with the same URLs.
+        with PACKET_PROCESSING_LATENCY.labels(packet_type=packet.type).time():
+            if packet.type == PACKET_TYPE_SUBMIT_ONBOARDING:
+                self._on_submit_onboarding(packet, channel_id)
+            elif packet.type == PACKET_TYPE_SUBMIT_UNIT:
+                self._on_submit_unit(packet, channel_id)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_MEPHISTO_BOUND_LIVE_UPDATE:
+                self._on_live_update(packet, channel_id)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_REGISTER_AGENT:
+                self._register_agent(packet, channel_id)
+            elif packet.type == PACKET_TYPE_RETURN_STATUSES:
+                # Record this status response
+                live_run.worker_pool.handle_updated_agent_status(packet.data)
+                self.log_metrics_for_packet(packet)
+            elif packet.type == PACKET_TYPE_ERROR:
+                self._log_frontend_error(packet)
+                self.log_metrics_for_packet(packet)
+            else:
+                # PACKET_TYPE_REQUEST_STATUSES, PACKET_TYPE_ALIVE,
+                # PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE, PACKET_TYPE_AGENT_DETAILS
+                raise Exception(f"Unexpected packet type {packet.type}")
+
+    def _request_status_update(self) -> None:
+        """
+        Check last round of statuses, then request
+        an update from the server on all agent's current status
+        """
+        for channel_id, channel in self.channels.items():
+            send_packet = Packet(
+                packet_type=PACKET_TYPE_REQUEST_STATUSES,
+                subject_id=SYSTEM_CHANNEL_ID,
+                data={},
+            )
+            channel.enqueue_send(send_packet)
+
+    async def _ping_statuses_while_alive(self) -> None:
+        while not self.is_shutdown and len(self.channels) > 0:
+            self._request_status_update()
+            await asyncio.sleep(STATUS_CHECK_TIME)
+
+    def send_live_update(self, agent_id: str, data: Dict[str, Any]):
+        """Send a live data packet to the given agent id"""
+        data_packet = Packet(
+            packet_type=PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE,
+            subject_id=agent_id,
+            data=data,
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(data_packet)
+
+    def send_status_update(self, agent_id: str, status: str):
+        """Update the status for the given agent"""
+        status_packet = Packet(
+            packet_type=PACKET_TYPE_UPDATE_STATUS,
+            subject_id=agent_id,
+            data={
+                "status": status,
+            },
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(status_packet)
+
+    def process_outgoing_queue(self, message_queue: "Queue[Packet]") -> None:
+        """Sends messages from the given list until it is empty"""
+        while not message_queue.empty() > 0:
+            curr_obs = message_queue.get()
+            try:
+                channel = self._get_channel_for_agent(curr_obs.subject_id)
+            except Exception:
+                channel = self.channels[curr_obs.subject_id]
+            channel.enqueue_send(curr_obs)
+
+    def shutdown(self) -> None:
+        """Close any channels related to a LiveTaskRun, clean up any resources"""
+        while not self.message_queue.empty():
+            self.message_queue.get()
+        run_channels = list(self.channels.keys())
+        logger.debug(f"Closing channels {run_channels}")
+        for channel_id in run_channels:
+            self.channels[channel_id].close()
+            del self.channels[channel_id]
+        self.is_shutdown = True
+
+        logger.debug(f"Cancelling status ping task")
+        try:
+            if self._status_task is not None and not self._status_task.cancelled():
+                self._status_task.cancel()
+
+                async def await_status_task():
+                    await self._status_task
+                    self._live_run = None
+
+                self.get_live_run().loop_wrap.execute_coro(await_status_task())
+        except asyncio.CancelledError:
+            pass
+
+    def _get_channel_for_agent(self, agent_id: str) -> Channel:
+        """Return the sending channel for a given agent"""
+        channel_id = self.agent_id_to_channel_id.get(agent_id, None)
+        if channel_id is None:
+            raise Exception(f"No channel found for the given agent id {agent_id}!")
+        return self.channels[channel_id]
+
+ +
+ +

This class is responsible for managing all of the incoming and outgoing messages +between the Mephisto backend, the router, and clients. It is tightly coupled with +the Architect abstraction, and uses components of that API to send and receive +messages, but operates on the level of message parsing and distribution logic.

+
+ + +
+
#   + + + ClientIOHandler(db: mephisto.abstractions.database.MephistoDB) +
+ +
+ View Source +
    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked IO state
+        self.channels: Dict[str, Channel] = {}
+        # Map from onboarding id to agent request packet
+        self.onboarding_packets: Dict[str, Tuple[Dict[str, Any], str]] = {}
+        # Dict from registration id to agent id
+        self.agents_by_registration_id: Dict[str, str] = {}
+        # Agent status handling
+        self._status_task: Optional[asyncio.Task] = None
+        # Message handling
+        self.message_queue: "Queue[Packet]" = Queue()
+        self.agent_id_to_channel_id: Dict[str, str] = {}
+        # Map from a request id to the channel that issued it
+        self.request_id_to_channel_id: Dict[str, str] = {}
+        self.request_id_to_packet: Dict[str, Packet] = {}  # For metrics purposes
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+ +
+ + + +
+
+
#   + + + def + log_metrics_for_packet(self, packet: mephisto.data_model.packet.Packet) -> None: +
+ +
+ View Source +
    def log_metrics_for_packet(self, packet: "Packet") -> None:
+        """
+        Log the full metrics for the provided packet, using now as the expected response time
+        """
+        client_timestamp = packet.client_timestamp
+        router_incoming_timestamp = packet.router_incoming_timestamp
+        router_outgoing_timestamp = packet.router_outgoing_timestamp
+        server_timestamp = packet.server_timestamp
+        response_timestamp = time.time()
+        if router_outgoing_timestamp is None:
+            print(packet, "no outgoing timestamp")
+            router_outgoing_timestamp = server_timestamp
+        if router_incoming_timestamp is None:
+            print(packet, "no incoming timestamp")
+            router_incoming_timestamp = router_outgoing_timestamp
+        if client_timestamp is None:
+            print(packet, "no client timestamp")
+            client_timestamp = router_incoming_timestamp
+        client_to_router = max(0, router_incoming_timestamp - client_timestamp)
+        router_processing = max(
+            0, router_outgoing_timestamp - router_incoming_timestamp
+        )
+        router_to_server = max(0, server_timestamp - router_outgoing_timestamp)
+        server_processing = max(0, response_timestamp - server_timestamp)
+        e2e_time = max(0, response_timestamp - client_timestamp)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="client_to_router"
+        ).observe(client_to_router)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_processing"
+        ).observe(router_processing)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="router_to_server"
+        ).observe(router_to_server)
+        E2E_PACKET_LATENCY.labels(
+            packet_type=packet.type, stage="server_processing"
+        ).observe(server_processing)
+        E2E_PACKET_LATENCY.labels(packet_type=packet.type, stage="e2e_time").observe(
+            e2e_time
+        )
+
+ +
+ +

Log the full metrics for the provided packet, using now as the expected response time

+
+ + +
+
+
#   + + + def + register_run(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None: +
+ +
+ View Source +
    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this io handler"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to an io handler at a time"
+        self._live_run = live_run
+
+ +
+ +

Register a live run for this io handler

+
+ + +
+
+
#   + + + def + get_live_run(self) -> mephisto.operations.datatypes.LiveTaskRun: +
+ +
+ View Source +
    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this handler, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+ +
+ +

Get the associated live run for this handler, asserting it's set

+
+ + +
+
+
#   + + + def + launch_channels(self) -> None: +
+ +
+ View Source +
    def launch_channels(self) -> None:
+        """Launch and register all of the channels for this live run to this IO handler"""
+        live_run = self.get_live_run()
+
+        channels = live_run.architect.get_channels(
+            self._on_channel_open,
+            self._on_catastrophic_disconnect,
+            self._on_channel_message,
+        )
+        for channel in channels:
+            self._register_channel(channel)
+
+        async def launch_status_task():
+            self._status_task = asyncio.create_task(self._ping_statuses_while_alive())
+
+        live_run.loop_wrap.execute_coro(launch_status_task())
+
+ +
+ +

Launch and register all of the channels for this live run to this IO handler

+
+ + +
+
+
#   + + + def + associate_agent_with_registration(self, agent_id: str, request_id: str, registration_id: str) -> None: +
+ +
+ View Source +
    def associate_agent_with_registration(
+        self, agent_id: str, request_id: str, registration_id: str
+    ) -> None:
+        """
+        Given an agent id and request id, registers the agent id to the channel
+        that the request was made from
+        """
+        channel_id = self.request_id_to_channel_id[request_id]
+        self.agent_id_to_channel_id[agent_id] = channel_id
+        self.agents_by_registration_id[registration_id] = agent_id
+
+ +
+ +

Given an agent id and request id, registers the agent id to the channel +that the request was made from

+
+ + +
+
+
#   + + + def + enqueue_agent_details(self, request_id: str, additional_data: Dict[str, Any]): +
+ +
+ View Source +
    def enqueue_agent_details(self, request_id: str, additional_data: Dict[str, Any]):
+        """
+        Synchronous method to enqueue a message sending the given agent details
+        """
+        base_data = {"request_id": request_id}
+        for key, val in additional_data.items():
+            base_data[key] = val
+        self.message_queue.put(
+            Packet(
+                packet_type=PACKET_TYPE_AGENT_DETAILS,
+                subject_id=self.request_id_to_channel_id[request_id],
+                data=base_data,
+            )
+        )
+        self.process_outgoing_queue(self.message_queue)
+        self.log_metrics_for_packet(self.request_id_to_packet[request_id])
+        del self.request_id_to_channel_id[request_id]
+        del self.request_id_to_packet[request_id]
+
+ +
+ +

Synchronous method to enqueue a message sending the given agent details

+
+ + +
+
+
#   + + + def + send_live_update(self, agent_id: str, data: Dict[str, Any]): +
+ +
+ View Source +
    def send_live_update(self, agent_id: str, data: Dict[str, Any]):
+        """Send a live data packet to the given agent id"""
+        data_packet = Packet(
+            packet_type=PACKET_TYPE_CLIENT_BOUND_LIVE_UPDATE,
+            subject_id=agent_id,
+            data=data,
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(data_packet)
+
+ +
+ +

Send a live data packet to the given agent id

+
+ + +
+
+
#   + + + def + send_status_update(self, agent_id: str, status: str): +
+ +
+ View Source +
    def send_status_update(self, agent_id: str, status: str):
+        """Update the status for the given agent"""
+        status_packet = Packet(
+            packet_type=PACKET_TYPE_UPDATE_STATUS,
+            subject_id=agent_id,
+            data={
+                "status": status,
+            },
+        )
+        self._get_channel_for_agent(agent_id).enqueue_send(status_packet)
+
+ +
+ +

Update the status for the given agent

+
+ + +
+
+
#   + + + def + process_outgoing_queue(self, message_queue: 'Queue[Packet]') -> None: +
+ +
+ View Source +
    def process_outgoing_queue(self, message_queue: "Queue[Packet]") -> None:
+        """Sends messages from the given list until it is empty"""
+        while not message_queue.empty() > 0:
+            curr_obs = message_queue.get()
+            try:
+                channel = self._get_channel_for_agent(curr_obs.subject_id)
+            except Exception:
+                channel = self.channels[curr_obs.subject_id]
+            channel.enqueue_send(curr_obs)
+
+ +
+ +

Sends messages from the given list until it is empty

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Close any channels related to a LiveTaskRun, clean up any resources"""
+        while not self.message_queue.empty():
+            self.message_queue.get()
+        run_channels = list(self.channels.keys())
+        logger.debug(f"Closing channels {run_channels}")
+        for channel_id in run_channels:
+            self.channels[channel_id].close()
+            del self.channels[channel_id]
+        self.is_shutdown = True
+
+        logger.debug(f"Cancelling status ping task")
+        try:
+            if self._status_task is not None and not self._status_task.cancelled():
+                self._status_task.cancel()
+
+                async def await_status_task():
+                    await self._status_task
+                    self._live_run = None
+
+                self.get_live_run().loop_wrap.execute_coro(await_status_task())
+        except asyncio.CancelledError:
+            pass
+
+ +
+ +

Close any channels related to a LiveTaskRun, clean up any resources

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/config_handler.html b/docs/web/static/python_api/mephisto/operations/config_handler.html new file mode 100644 index 000000000..d725f9db6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/config_handler.html @@ -0,0 +1,487 @@ + + + + + + + + + mephisto.operations.config_handler API documentation + + + + + + + + + +
+
+

+mephisto.operations.config_handler

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import yaml
+from typing import Dict, Any
+
+CORE_SECTION = "core"
+DATA_STORAGE_KEY = "main_data_directory"
+
+DEFAULT_CONFIG_FOLDER = os.path.expanduser("~/.mephisto/")
+DEFAULT_CONFIG_FILE = os.path.join(DEFAULT_CONFIG_FOLDER, "config.yml")
+OLD_DATA_CONFIG_LOC = os.path.join(
+    os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "data", "DATA_LOC"
+)
+
+
+def get_raw_config() -> str:
+    """Returns the raw string config as written in the YAML config file"""
+    with open(DEFAULT_CONFIG_FILE, "r") as config_file:
+        return config_file.read().strip()
+
+
+def get_config() -> Dict[str, Any]:
+    """Get the data out of the YAML config file"""
+    return yaml.safe_load(get_raw_config())
+
+
+def write_config(config_data: Dict[str, Any]):
+    """Write the given dictionary to the config yaml"""
+    with open(DEFAULT_CONFIG_FILE, "w") as config_file:
+        config_file.write(yaml.dump(config_data))
+
+
+def init_config() -> None:
+    if not os.path.exists(DEFAULT_CONFIG_FOLDER):
+        os.mkdir(DEFAULT_CONFIG_FOLDER)
+
+    if os.path.exists(OLD_DATA_CONFIG_LOC):
+        print(
+            f"We are migrating Mephisto's configuration to a YAML file stored at {DEFAULT_CONFIG_FILE}"
+        )
+        with open(OLD_DATA_CONFIG_LOC, "r") as data_dir_file:
+            loaded_data_dir = data_dir_file.read().strip()
+        with open(DEFAULT_CONFIG_FILE, "w") as config_file:
+            config_file.write(
+                yaml.dump({CORE_SECTION: {DATA_STORAGE_KEY: loaded_data_dir}})
+            )
+        print(f"Removing DATA_LOC configuration file from {OLD_DATA_CONFIG_LOC}")
+        os.unlink(OLD_DATA_CONFIG_LOC)
+    elif not os.path.exists(DEFAULT_CONFIG_FILE):
+        with open(DEFAULT_CONFIG_FILE, "w") as config_fp:
+            config_fp.write(yaml.dump({CORE_SECTION: {}}))
+
+
+def add_config_arg(section: str, key: str, value: Any) -> None:
+    """Add an argument to the YAML config, overwriting existing"""
+    config = get_config()
+    if section not in config:
+        config[section] = {}
+    config[section][key] = value
+    write_config(config)
+
+
+def get_config_arg(section: str, key: str) -> Any:
+    """Get an argument from the YAML config. Return None if it doesn't exist"""
+    config = get_config()
+    return config.get(section, {}).get(key, None)
+
+ +
+ +
+
+
#   + + + def + get_raw_config() -> str: +
+ +
+ View Source +
def get_raw_config() -> str:
+    """Returns the raw string config as written in the YAML config file"""
+    with open(DEFAULT_CONFIG_FILE, "r") as config_file:
+        return config_file.read().strip()
+
+ +
+ +

Returns the raw string config as written in the YAML config file

+
+ + +
+
+
#   + + + def + get_config() -> Dict[str, Any]: +
+ +
+ View Source +
def get_config() -> Dict[str, Any]:
+    """Get the data out of the YAML config file"""
+    return yaml.safe_load(get_raw_config())
+
+ +
+ +

Get the data out of the YAML config file

+
+ + +
+
+
#   + + + def + write_config(config_data: Dict[str, Any]): +
+ +
+ View Source +
def write_config(config_data: Dict[str, Any]):
+    """Write the given dictionary to the config yaml"""
+    with open(DEFAULT_CONFIG_FILE, "w") as config_file:
+        config_file.write(yaml.dump(config_data))
+
+ +
+ +

Write the given dictionary to the config yaml

+
+ + +
+
+
#   + + + def + init_config() -> None: +
+ +
+ View Source +
def init_config() -> None:
+    if not os.path.exists(DEFAULT_CONFIG_FOLDER):
+        os.mkdir(DEFAULT_CONFIG_FOLDER)
+
+    if os.path.exists(OLD_DATA_CONFIG_LOC):
+        print(
+            f"We are migrating Mephisto's configuration to a YAML file stored at {DEFAULT_CONFIG_FILE}"
+        )
+        with open(OLD_DATA_CONFIG_LOC, "r") as data_dir_file:
+            loaded_data_dir = data_dir_file.read().strip()
+        with open(DEFAULT_CONFIG_FILE, "w") as config_file:
+            config_file.write(
+                yaml.dump({CORE_SECTION: {DATA_STORAGE_KEY: loaded_data_dir}})
+            )
+        print(f"Removing DATA_LOC configuration file from {OLD_DATA_CONFIG_LOC}")
+        os.unlink(OLD_DATA_CONFIG_LOC)
+    elif not os.path.exists(DEFAULT_CONFIG_FILE):
+        with open(DEFAULT_CONFIG_FILE, "w") as config_fp:
+            config_fp.write(yaml.dump({CORE_SECTION: {}}))
+
+ +
+ + + +
+
+
#   + + + def + add_config_arg(section: str, key: str, value: Any) -> None: +
+ +
+ View Source +
def add_config_arg(section: str, key: str, value: Any) -> None:
+    """Add an argument to the YAML config, overwriting existing"""
+    config = get_config()
+    if section not in config:
+        config[section] = {}
+    config[section][key] = value
+    write_config(config)
+
+ +
+ +

Add an argument to the YAML config, overwriting existing

+
+ + +
+
+
#   + + + def + get_config_arg(section: str, key: str) -> Any: +
+ +
+ View Source +
def get_config_arg(section: str, key: str) -> Any:
+    """Get an argument from the YAML config. Return None if it doesn't exist"""
+    config = get_config()
+    return config.get(section, {}).get(key, None)
+
+ +
+ +

Get an argument from the YAML config. Return None if it doesn't exist

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/datatypes.html b/docs/web/static/python_api/mephisto/operations/datatypes.html new file mode 100644 index 000000000..9facd14a9 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/datatypes.html @@ -0,0 +1,686 @@ + + + + + + + + + mephisto.operations.datatypes API documentation + + + + + + + + + +
+
+

+mephisto.operations.datatypes

+ +

This file contains the various datatypes that are used on the operations layer +to facilitate executing task runs.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+This file contains the various datatypes that are used on the operations layer
+to facilitate executing task runs.
+"""
+
+from dataclasses import dataclass
+import asyncio
+from functools import partial
+from typing import Dict, Set, Optional, List, Any, Union, TYPE_CHECKING
+import threading
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.blueprint import TaskRunner, Blueprint
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+    from mephisto.abstractions.architect import Architect
+    from mephisto.operations.task_launcher import TaskLauncher
+    from mephisto.abstractions._subcomponents.channel import Channel
+    from mephisto.data_model.agent import Agent, OnboardingAgent
+    from mephisto.operations.client_io_handler import ClientIOHandler
+    from mephisto.operations.worker_pool import WorkerPool
+
+
+class LoopWrapper:
+    def __init__(self, event_loop: asyncio.AbstractEventLoop):
+        self.loop = event_loop
+        self.tid = threading.current_thread()
+
+    def set_active_thread(self):
+        self.tid = threading.current_thread()
+
+    def execute_coro(self, coro) -> None:
+        """Execute this coroutine in the loop, regardless of callsite"""
+
+        def _async_execute(func):
+            """Wrapper to execute this function"""
+            func()
+
+        f = partial(asyncio.ensure_future, coro, loop=self.loop)
+        if threading.current_thread() == self.tid:
+            # We're in the loop's thread, just execute!
+            f()
+        else:
+            # Schedule calling the function from the loop's thread
+            self.loop.call_soon_threadsafe(_async_execute, f)
+
+
+@dataclass
+class LiveTaskRun:
+    task_run: "TaskRun"
+    # Core abstraction instances
+    architect: "Architect"
+    blueprint: "Blueprint"
+    provider: "CrowdProvider"
+    # Live job operations and state
+    qualifications: List[Dict[str, Any]]
+    task_runner: "TaskRunner"
+    task_launcher: "TaskLauncher"
+
+    client_io: "ClientIOHandler"
+    worker_pool: "WorkerPool"
+
+    loop_wrap: LoopWrapper
+
+    # Toggle used to tell operator to force shutdown
+    # of this task run in error conditions
+    force_shutdown: bool = False
+
+    def shutdown(self):
+        self.task_runner.shutdown()
+        self.worker_pool.shutdown()
+        self.client_io.shutdown()
+
+
+class WorkerFailureReasons:
+    NOT_QUALIFIED = "You are not currently qualified to work on this task..."
+    NO_AVAILABLE_UNITS = (
+        "There is currently no available work, please try again later..."
+    )
+    TOO_MANY_CONCURRENT = "You are currently working on too many tasks concurrently to accept another, please finish your current work."
+    MAX_FOR_TASK = "You have already completed the maximum amount of tasks the requester has set for this task."
+    TASK_MISSING = "You appear to have already completed this task, or have disconnected long enough for your session to clear..."
+
+ +
+ +
+
+
+ #   + + + class + LoopWrapper: +
+ +
+ View Source +
class LoopWrapper:
+    def __init__(self, event_loop: asyncio.AbstractEventLoop):
+        self.loop = event_loop
+        self.tid = threading.current_thread()
+
+    def set_active_thread(self):
+        self.tid = threading.current_thread()
+
+    def execute_coro(self, coro) -> None:
+        """Execute this coroutine in the loop, regardless of callsite"""
+
+        def _async_execute(func):
+            """Wrapper to execute this function"""
+            func()
+
+        f = partial(asyncio.ensure_future, coro, loop=self.loop)
+        if threading.current_thread() == self.tid:
+            # We're in the loop's thread, just execute!
+            f()
+        else:
+            # Schedule calling the function from the loop's thread
+            self.loop.call_soon_threadsafe(_async_execute, f)
+
+ +
+ + + +
+
#   + + + LoopWrapper(event_loop: asyncio.events.AbstractEventLoop) +
+ +
+ View Source +
    def __init__(self, event_loop: asyncio.AbstractEventLoop):
+        self.loop = event_loop
+        self.tid = threading.current_thread()
+
+ +
+ + + +
+
+
#   + + + def + set_active_thread(self): +
+ +
+ View Source +
    def set_active_thread(self):
+        self.tid = threading.current_thread()
+
+ +
+ + + +
+
+
#   + + + def + execute_coro(self, coro) -> None: +
+ +
+ View Source +
    def execute_coro(self, coro) -> None:
+        """Execute this coroutine in the loop, regardless of callsite"""
+
+        def _async_execute(func):
+            """Wrapper to execute this function"""
+            func()
+
+        f = partial(asyncio.ensure_future, coro, loop=self.loop)
+        if threading.current_thread() == self.tid:
+            # We're in the loop's thread, just execute!
+            f()
+        else:
+            # Schedule calling the function from the loop's thread
+            self.loop.call_soon_threadsafe(_async_execute, f)
+
+ +
+ +

Execute this coroutine in the loop, regardless of callsite

+
+ + +
+
+
+
+ #   + + + class + LiveTaskRun: +
+ +
+ View Source +
class LiveTaskRun:
+    task_run: "TaskRun"
+    # Core abstraction instances
+    architect: "Architect"
+    blueprint: "Blueprint"
+    provider: "CrowdProvider"
+    # Live job operations and state
+    qualifications: List[Dict[str, Any]]
+    task_runner: "TaskRunner"
+    task_launcher: "TaskLauncher"
+
+    client_io: "ClientIOHandler"
+    worker_pool: "WorkerPool"
+
+    loop_wrap: LoopWrapper
+
+    # Toggle used to tell operator to force shutdown
+    # of this task run in error conditions
+    force_shutdown: bool = False
+
+    def shutdown(self):
+        self.task_runner.shutdown()
+        self.worker_pool.shutdown()
+        self.client_io.shutdown()
+
+ +
+ +

LiveTaskRun(task_run: 'TaskRun', architect: 'Architect', blueprint: 'Blueprint', provider: 'CrowdProvider', qualifications: List[Dict[str, Any]], task_runner: 'TaskRunner', task_launcher: 'TaskLauncher', client_io: 'ClientIOHandler', worker_pool: 'WorkerPool', loop_wrap: mephisto.operations.datatypes.LoopWrapper, force_shutdown: bool = False)

+
+ + +
+
#   + + + LiveTaskRun( + task_run: mephisto.data_model.task_run.TaskRun, + architect: mephisto.abstractions.architect.Architect, + blueprint: mephisto.abstractions.blueprint.Blueprint, + provider: mephisto.abstractions.crowd_provider.CrowdProvider, + qualifications: List[Dict[str, Any]], + task_runner: mephisto.abstractions._subcomponents.task_runner.TaskRunner, + task_launcher: mephisto.operations.task_launcher.TaskLauncher, + client_io: mephisto.operations.client_io_handler.ClientIOHandler, + worker_pool: mephisto.operations.worker_pool.WorkerPool, + loop_wrap: mephisto.operations.datatypes.LoopWrapper, + force_shutdown: bool = False +) +
+ + + + +
+
+
#   + + force_shutdown: bool = False +
+ + + + +
+
+
#   + + + def + shutdown(self): +
+ +
+ View Source +
    def shutdown(self):
+        self.task_runner.shutdown()
+        self.worker_pool.shutdown()
+        self.client_io.shutdown()
+
+ +
+ + + +
+
+
+
+ #   + + + class + WorkerFailureReasons: +
+ +
+ View Source +
class WorkerFailureReasons:
+    NOT_QUALIFIED = "You are not currently qualified to work on this task..."
+    NO_AVAILABLE_UNITS = (
+        "There is currently no available work, please try again later..."
+    )
+    TOO_MANY_CONCURRENT = "You are currently working on too many tasks concurrently to accept another, please finish your current work."
+    MAX_FOR_TASK = "You have already completed the maximum amount of tasks the requester has set for this task."
+    TASK_MISSING = "You appear to have already completed this task, or have disconnected long enough for your session to clear..."
+
+ +
+ + + +
+
#   + + + WorkerFailureReasons() +
+ + + + +
+
+
#   + + NOT_QUALIFIED = 'You are not currently qualified to work on this task...' +
+ + + + +
+
+
#   + + NO_AVAILABLE_UNITS = 'There is currently no available work, please try again later...' +
+ + + + +
+
+
#   + + TOO_MANY_CONCURRENT = 'You are currently working on too many tasks concurrently to accept another, please finish your current work.' +
+ + + + +
+
+
#   + + MAX_FOR_TASK = 'You have already completed the maximum amount of tasks the requester has set for this task.' +
+ + + + +
+
+
#   + + TASK_MISSING = 'You appear to have already completed this task, or have disconnected long enough for your session to clear...' +
+ + + + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/hydra_config.html b/docs/web/static/python_api/mephisto/operations/hydra_config.html new file mode 100644 index 000000000..45f79ecc9 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/hydra_config.html @@ -0,0 +1,1039 @@ + + + + + + + + + mephisto.operations.hydra_config API documentation + + + + + + + + + +
+
+

+mephisto.operations.hydra_config

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from hydra.core.config_store import ConfigStoreWithProvider
+from mephisto.abstractions.blueprint import BlueprintArgs
+from mephisto.abstractions.architect import ArchitectArgs
+from mephisto.abstractions.crowd_provider import ProviderArgs
+from mephisto.data_model.task_run import TaskRunArgs
+from mephisto.utils.logger_core import get_logger, warn_once
+from mephisto.utils.dirs import get_run_file_dir
+from dataclasses import dataclass, field, fields, Field
+from omegaconf import OmegaConf, MISSING, DictConfig
+from typing import List, Type, Dict, Any, TYPE_CHECKING
+
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.architect import Architect
+    from mephisto.abstractions.blueprint import Blueprint
+
+
+logger = get_logger(name=__name__)
+
+config = ConfigStoreWithProvider("mephisto")
+
+
+@dataclass
+class DatabaseArgs:
+    _database_type: str = "singleton"  # default DB is performant singleton
+
+
+@dataclass
+class MephistoConfig:
+    blueprint: BlueprintArgs = MISSING
+    provider: ProviderArgs = MISSING
+    architect: ArchitectArgs = MISSING
+    task: TaskRunArgs = TaskRunArgs()
+    database: DatabaseArgs = DatabaseArgs()
+    log_level: str = "info"
+
+
+@dataclass
+class TaskConfig:
+    mephisto: MephistoConfig = MephistoConfig()
+    task_dir: str = get_run_file_dir()
+    num_tasks: int = 5
+
+
+def register_abstraction_config(name: str, node: Any, abstraction_type: str):
+    config.store(
+        name=name,
+        node=node,
+        group=f"mephisto/{abstraction_type}",
+    )
+
+
+def build_default_task_config(conf_name: str) -> Type[TaskConfig]:
+    default_list = ["_self_", {"conf": conf_name}]
+
+    @dataclass
+    class DefaultTaskConfig(TaskConfig):
+        defaults: List[Any] = field(default_factory=lambda: default_list)
+
+    return DefaultTaskConfig
+
+
+@dataclass
+class RunScriptConfig(TaskConfig):
+    def __post_init__(self):
+        warn_once(
+            "RunScriptConfig has been deprecated in Mephisto 1.0 in favor "
+            "of using TaskConfig and the `task_script` decorator. See "
+            "our new examples for usage."
+        )
+
+
+def initialize_named_configs():
+    """
+    Functionality to register the core mephisto configuration structure. Must be done in __init__
+    """
+    config.store(
+        name="base_mephisto_config",
+        node=MephistoConfig,
+        group="mephisto",
+    )
+
+
+def register_script_config(name: str, module: Any):
+    check_for_hydra_compat()
+    config.store(name=name, node=module)
+
+
+def check_for_hydra_compat():
+    # Required for determining 0.3.x to 0.4.0 conversion
+    # of scripts
+    import inspect
+    import os
+
+    callsite = inspect.stack(0)[-1].filename
+    call_dir = os.path.dirname(os.path.join(".", callsite))
+    if "hydra_configs" not in os.listdir(call_dir):
+        logger.warning(
+            "\u001b[31;1m"
+            f"We noticed you don't have a hydra_configs directory in the folder "
+            f"{call_dir} where you are running this script from.\n"
+            "Mephisto Version 0.4.0 has breaking changes for user scripts due "
+            "to the Hydra 1.1 upgrade. This may prevent scripts from launching. "
+            "See https://github.com/facebookresearch/Mephisto/issues/529 for "
+            "remediation details."
+            "\u001b[0m"
+        )
+
+
+## Hydra argument config parsing helpers for other uses, generally the server API
+
+
+def get_dict_from_field(in_field: Field) -> Dict[str, Any]:
+    """
+    Extract all of the arguments from an argument group
+    and return a dict mapping from argument dest to argument dict
+    """
+    try:
+        found_type = in_field.type.__name__
+    except AttributeError:
+        found_type = in_field.metadata.get("type", "unknown")
+    return {
+        "dest": in_field.name,
+        "type": found_type,
+        "default": in_field.metadata.get("default", in_field.default),
+        "help": in_field.metadata.get("help"),
+        "choices": in_field.metadata.get("choices"),
+        "required": in_field.metadata.get("required", False),
+    }
+
+
+def get_extra_argument_dicts(customizable_class: Any) -> List[Dict[str, Any]]:
+    """
+    Produce the argument dicts for the given customizable class
+    (Blueprint, Architect, etc)
+    """
+    dict_fields = fields(customizable_class.ArgsClass)
+    usable_fields = []
+    group_field = None
+    for f in dict_fields:
+        if not f.name.startswith("_"):
+            usable_fields.append(f)
+        elif f.name == "_group":
+            group_field = f
+    parsed_fields = [get_dict_from_field(f) for f in usable_fields]
+    help_text = ""
+    if group_field is not None:
+        help_text = group_field.metadata.get("help", "")
+    return [{"desc": help_text, "args": {f["dest"]: f for f in parsed_fields}}]
+
+
+def get_task_state_dicts(customizable_class: Type["Blueprint"]) -> List[Dict[str, Any]]:
+    """
+    Return the SharedTaskState configurable class for the given blueprint
+    """
+    dict_fields = fields(customizable_class.SharedStateClass)
+    usable_fields = []
+    for f in dict_fields:
+        if not f.name.startswith("_"):
+            usable_fields.append(f)
+    parsed_fields = [get_dict_from_field(f) for f in usable_fields]
+    return [{"desc": "", "args": {f["dest"]: f for f in parsed_fields}}]
+
+
+def parse_arg_dict(customizable_class: Any, args: Dict[str, Any]) -> DictConfig:
+    """
+    Get the ArgsClass for a class, then parse the given args using
+    it. Return the DictConfig of the finalized namespace.
+    """
+    return OmegaConf.structured(customizable_class.ArgsClass(**args))
+
+ +
+ +
+
+
+ #   + + + class + DatabaseArgs: +
+ +
+ View Source +
class DatabaseArgs:
+    _database_type: str = "singleton"  # default DB is performant singleton
+
+ +
+ +

DatabaseArgs(_database_type: str = 'singleton')

+
+ + +
+
#   + + + DatabaseArgs(_database_type: str = 'singleton') +
+ + + + +
+
+
+
+ #   + + + class + MephistoConfig: +
+ +
+ View Source +
class MephistoConfig:
+    blueprint: BlueprintArgs = MISSING
+    provider: ProviderArgs = MISSING
+    architect: ArchitectArgs = MISSING
+    task: TaskRunArgs = TaskRunArgs()
+    database: DatabaseArgs = DatabaseArgs()
+    log_level: str = "info"
+
+ +
+ +

MephistoConfig(blueprint: mephisto.abstractions.blueprint.BlueprintArgs = '???', provider: mephisto.abstractions.crowd_provider.ProviderArgs = '???', architect: mephisto.abstractions.architect.ArchitectArgs = '???', task: mephisto.data_model.task_run.TaskRunArgs = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database: mephisto.operations.hydra_config.DatabaseArgs = DatabaseArgs(_database_type='singleton'), log_level: str = 'info')

+
+ + +
+
#   + + + MephistoConfig( + blueprint: mephisto.abstractions.blueprint.BlueprintArgs = '???', + provider: mephisto.abstractions.crowd_provider.ProviderArgs = '???', + architect: mephisto.abstractions.architect.ArchitectArgs = '???', + task: mephisto.data_model.task_run.TaskRunArgs = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), + database: mephisto.operations.hydra_config.DatabaseArgs = DatabaseArgs(_database_type='singleton'), + log_level: str = 'info' +) +
+ + + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
+
#   + + task: mephisto.data_model.task_run.TaskRunArgs = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600) +
+ + + + +
+
+
#   + + database: mephisto.operations.hydra_config.DatabaseArgs = DatabaseArgs(_database_type='singleton') +
+ + + + +
+
+
#   + + log_level: str = 'info' +
+ + + + +
+
+
+
+ #   + + + class + TaskConfig: +
+ +
+ View Source +
class TaskConfig:
+    mephisto: MephistoConfig = MephistoConfig()
+    task_dir: str = get_run_file_dir()
+    num_tasks: int = 5
+
+ +
+ +

TaskConfig(mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', num_tasks: int = 5)

+
+ + +
+
#   + + + TaskConfig( + mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), + task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', + num_tasks: int = 5 +) +
+ + + + +
+
+
#   + + mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info') +
+ + + + +
+
+
#   + + task_dir: str = '/Users/jju/miniconda3/envs/py38/bin' +
+ + + + +
+
+
#   + + num_tasks: int = 5 +
+ + + + +
+
+
+
#   + + + def + register_abstraction_config(name: str, node: Any, abstraction_type: str): +
+ +
+ View Source +
def register_abstraction_config(name: str, node: Any, abstraction_type: str):
+    config.store(
+        name=name,
+        node=node,
+        group=f"mephisto/{abstraction_type}",
+    )
+
+ +
+ + + +
+
+
#   + + + def + build_default_task_config(conf_name: str) -> Type[mephisto.operations.hydra_config.TaskConfig]: +
+ +
+ View Source +
def build_default_task_config(conf_name: str) -> Type[TaskConfig]:
+    default_list = ["_self_", {"conf": conf_name}]
+
+    @dataclass
+    class DefaultTaskConfig(TaskConfig):
+        defaults: List[Any] = field(default_factory=lambda: default_list)
+
+    return DefaultTaskConfig
+
+ +
+ + + +
+
+
+ #   + + + class + RunScriptConfig(TaskConfig): +
+ +
+ View Source +
class RunScriptConfig(TaskConfig):
+    def __post_init__(self):
+        warn_once(
+            "RunScriptConfig has been deprecated in Mephisto 1.0 in favor "
+            "of using TaskConfig and the `task_script` decorator. See "
+            "our new examples for usage."
+        )
+
+ +
+ +

RunScriptConfig(mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', num_tasks: int = 5)

+
+ + +
+
#   + + + RunScriptConfig( + mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), + task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', + num_tasks: int = 5 +) +
+ + + + +
+
+
Inherited Members
+
+ +
+
+
+
+
#   + + + def + initialize_named_configs(): +
+ +
+ View Source +
def initialize_named_configs():
+    """
+    Functionality to register the core mephisto configuration structure. Must be done in __init__
+    """
+    config.store(
+        name="base_mephisto_config",
+        node=MephistoConfig,
+        group="mephisto",
+    )
+
+ +
+ +

Functionality to register the core mephisto configuration structure. Must be done in __init__

+
+ + +
+
+
#   + + + def + register_script_config(name: str, module: Any): +
+ +
+ View Source +
def register_script_config(name: str, module: Any):
+    check_for_hydra_compat()
+    config.store(name=name, node=module)
+
+ +
+ + + +
+
+
#   + + + def + check_for_hydra_compat(): +
+ +
+ View Source +
def check_for_hydra_compat():
+    # Required for determining 0.3.x to 0.4.0 conversion
+    # of scripts
+    import inspect
+    import os
+
+    callsite = inspect.stack(0)[-1].filename
+    call_dir = os.path.dirname(os.path.join(".", callsite))
+    if "hydra_configs" not in os.listdir(call_dir):
+        logger.warning(
+            "\u001b[31;1m"
+            f"We noticed you don't have a hydra_configs directory in the folder "
+            f"{call_dir} where you are running this script from.\n"
+            "Mephisto Version 0.4.0 has breaking changes for user scripts due "
+            "to the Hydra 1.1 upgrade. This may prevent scripts from launching. "
+            "See https://github.com/facebookresearch/Mephisto/issues/529 for "
+            "remediation details."
+            "\u001b[0m"
+        )
+
+ +
+ + + +
+
+
#   + + + def + get_dict_from_field(in_field: dataclasses.Field) -> Dict[str, Any]: +
+ +
+ View Source +
def get_dict_from_field(in_field: Field) -> Dict[str, Any]:
+    """
+    Extract all of the arguments from an argument group
+    and return a dict mapping from argument dest to argument dict
+    """
+    try:
+        found_type = in_field.type.__name__
+    except AttributeError:
+        found_type = in_field.metadata.get("type", "unknown")
+    return {
+        "dest": in_field.name,
+        "type": found_type,
+        "default": in_field.metadata.get("default", in_field.default),
+        "help": in_field.metadata.get("help"),
+        "choices": in_field.metadata.get("choices"),
+        "required": in_field.metadata.get("required", False),
+    }
+
+ +
+ +

Extract all of the arguments from an argument group +and return a dict mapping from argument dest to argument dict

+
+ + +
+
+
#   + + + def + get_extra_argument_dicts(customizable_class: Any) -> List[Dict[str, Any]]: +
+ +
+ View Source +
def get_extra_argument_dicts(customizable_class: Any) -> List[Dict[str, Any]]:
+    """
+    Produce the argument dicts for the given customizable class
+    (Blueprint, Architect, etc)
+    """
+    dict_fields = fields(customizable_class.ArgsClass)
+    usable_fields = []
+    group_field = None
+    for f in dict_fields:
+        if not f.name.startswith("_"):
+            usable_fields.append(f)
+        elif f.name == "_group":
+            group_field = f
+    parsed_fields = [get_dict_from_field(f) for f in usable_fields]
+    help_text = ""
+    if group_field is not None:
+        help_text = group_field.metadata.get("help", "")
+    return [{"desc": help_text, "args": {f["dest"]: f for f in parsed_fields}}]
+
+ +
+ +

Produce the argument dicts for the given customizable class +(Blueprint, Architect, etc)

+
+ + +
+
+
#   + + + def + get_task_state_dicts( + customizable_class: type[mephisto.abstractions.blueprint.Blueprint] +) -> List[Dict[str, Any]]: +
+ +
+ View Source +
def get_task_state_dicts(customizable_class: Type["Blueprint"]) -> List[Dict[str, Any]]:
+    """
+    Return the SharedTaskState configurable class for the given blueprint
+    """
+    dict_fields = fields(customizable_class.SharedStateClass)
+    usable_fields = []
+    for f in dict_fields:
+        if not f.name.startswith("_"):
+            usable_fields.append(f)
+    parsed_fields = [get_dict_from_field(f) for f in usable_fields]
+    return [{"desc": "", "args": {f["dest"]: f for f in parsed_fields}}]
+
+ +
+ +

Return the SharedTaskState configurable class for the given blueprint

+
+ + +
+
+
#   + + + def + parse_arg_dict( + customizable_class: Any, + args: Dict[str, Any] +) -> omegaconf.dictconfig.DictConfig: +
+ +
+ View Source +
def parse_arg_dict(customizable_class: Any, args: Dict[str, Any]) -> DictConfig:
+    """
+    Get the ArgsClass for a class, then parse the given args using
+    it. Return the DictConfig of the finalized namespace.
+    """
+    return OmegaConf.structured(customizable_class.ArgsClass(**args))
+
+ +
+ +

Get the ArgsClass for a class, then parse the given args using +it. Return the DictConfig of the finalized namespace.

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/operator.html b/docs/web/static/python_api/mephisto/operations/operator.html new file mode 100644 index 000000000..fdce92f16 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/operator.html @@ -0,0 +1,1997 @@ + + + + + + + + + mephisto.operations.operator API documentation + + + + + + + + + +
+
+

+mephisto.operations.operator

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import json
+import os
+import time
+import threading
+import traceback
+import signal
+import asyncio
+
+from mephisto.operations.datatypes import LiveTaskRun, LoopWrapper
+
+from typing import (
+    Dict,
+    Optional,
+    Type,
+    Callable,
+    TYPE_CHECKING,
+)
+from mephisto.data_model.task_run import TaskRun
+from mephisto.abstractions.blueprint import SharedTaskState
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+)
+from mephisto.abstractions.database import MephistoDB, EntryDoesNotExistException
+from mephisto.data_model.qualification import QUAL_NOT_EXIST
+from mephisto.utils.qualifications import make_qualification_dict
+from mephisto.operations.task_launcher import TaskLauncher
+from mephisto.operations.client_io_handler import ClientIOHandler
+from mephisto.operations.worker_pool import WorkerPool
+from mephisto.operations.registry import (
+    get_blueprint_from_type,
+    get_crowd_provider_from_type,
+    get_architect_from_type,
+)
+from mephisto.utils.testing import get_mock_requester
+from mephisto.utils.metrics import (
+    launch_prometheus_server,
+    start_metrics_server,
+    shutdown_prometheus_server,
+)
+from mephisto.utils.logger_core import (
+    get_logger,
+    set_mephisto_log_level,
+    format_loud,
+    warn_once,
+)
+from omegaconf import DictConfig, OmegaConf
+
+logger = get_logger(name=__name__)
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprint import Blueprint, TaskRunner
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+    from mephisto.abstractions.architect import Architect
+
+
+RUN_STATUS_POLL_TIME = 10
+
+
+class Operator:
+    """
+    Acting as the controller behind the curtain, the Operator class
+    is responsible for managing the knobs, switches, and dials
+    of the rest of the Mephisto architecture.
+
+    Most convenience scripts for using Mephisto will use an Operator
+    to get the job done, though this class itself is also a
+    good model to use to understand how the underlying
+    architecture works in order to build custom jobs or workflows.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        self._task_runs_tracked: Dict[str, LiveTaskRun] = {}
+        self.is_shutdown = False
+
+        # Try to get an event loop. Only should be one
+        # operator per thread
+        has_loop = None
+        try:
+            has_loop = asyncio.get_running_loop()
+        except RuntimeError:
+            pass  # We want there to be no running loop
+        assert has_loop is None, "Can only run one operator loop per thread."
+
+        # Create the event loop for this operator.
+        self._event_loop = asyncio.new_event_loop()
+        self._loop_wrapper = LoopWrapper(self._event_loop)
+        self._run_tracker_task = self._event_loop.create_task(
+            self._track_and_kill_runs(),
+        )
+        self._stop_task: Optional[asyncio.Task] = None
+        self._using_prometheus = launch_prometheus_server()
+        start_metrics_server()
+
+    def get_running_task_runs(self) -> Dict[str, LiveTaskRun]:
+        """Return the currently running task runs and their handlers"""
+        return self._task_runs_tracked.copy()
+
+    def _get_requester_and_provider_from_config(self, run_config: DictConfig):
+        """
+        Retrieve the desired provider from the config, raising an error
+        if there's a mismatch between the found provider and desired requester
+        """
+        # First try to find the requester:
+        requester_name = run_config.provider.requester_name
+        requesters = self.db.find_requesters(requester_name=requester_name)
+        if len(requesters) == 0:
+            if run_config.provider.requester_name == "MOCK_REQUESTER":
+                requesters = [get_mock_requester(self.db)]
+            else:
+                raise EntryDoesNotExistException(
+                    f"No requester found with name {requester_name}"
+                )
+        requester = requesters[0]
+        requester_id = requester.db_id
+        provider_type = requester.provider_type
+        assert provider_type == run_config.provider._provider_type, (
+            f"Found requester for name {requester_name} is not "
+            f"of the specified type {run_config.provider._provider_type}, "
+            f"but is instead {provider_type}."
+        )
+        return requester, provider_type
+
+    def _create_live_task_run(
+        self,
+        run_config: DictConfig,
+        shared_state: SharedTaskState,
+        task_run: TaskRun,
+        architect_class: Type["Architect"],
+        blueprint_class: Type["Blueprint"],
+        provider_class: Type["CrowdProvider"],
+    ) -> LiveTaskRun:
+        """
+        Initialize all of the members of a live task run object
+        """
+        # Register the blueprint with args to the task run to ensure cached
+        blueprint = task_run.get_blueprint(args=run_config, shared_state=shared_state)
+
+        # prepare the architect
+        build_dir = os.path.join(task_run.get_run_dir(), "build")
+        os.makedirs(build_dir, exist_ok=True)
+        architect = architect_class(
+            self.db, run_config, shared_state, task_run, build_dir
+        )
+        # Create the backend runner
+        task_runner = blueprint_class.TaskRunnerClass(
+            task_run, run_config, shared_state
+        )
+
+        # Small hack for auto appending block qualification
+        # TODO(OWN) we can use blueprint.mro() to discover BlueprintMixins and extract from there
+        existing_qualifications = shared_state.qualifications
+        if run_config.blueprint.get("block_qualification", None) is not None:
+            existing_qualifications.append(
+                make_qualification_dict(
+                    run_config.blueprint.block_qualification, QUAL_NOT_EXIST, None
+                )
+            )
+        if run_config.blueprint.get("onboarding_qualification", None) is not None:
+            existing_qualifications.append(
+                make_qualification_dict(
+                    OnboardingRequired.get_failed_qual(
+                        run_config.blueprint.onboarding_qualification
+                    ),
+                    QUAL_NOT_EXIST,
+                    None,
+                )
+            )
+        shared_state.qualifications = existing_qualifications
+
+        # Create provider
+        provider = provider_class(self.db)
+
+        # Create the launcher
+        initialization_data_iterable = blueprint.get_initialization_data()
+        launcher = TaskLauncher(
+            self.db,
+            task_run,
+            initialization_data_iterable,
+            max_num_concurrent_units=run_config.task.max_num_concurrent_units,
+        )
+
+        worker_pool = WorkerPool(self.db)
+        client_io = ClientIOHandler(self.db)
+        live_run = LiveTaskRun(
+            task_run=task_run,
+            architect=architect,
+            blueprint=blueprint,
+            provider=provider,
+            qualifications=shared_state.qualifications,
+            task_runner=task_runner,
+            task_launcher=launcher,
+            client_io=client_io,
+            worker_pool=worker_pool,
+            loop_wrap=self._loop_wrapper,
+        )
+        worker_pool.register_run(live_run)
+        client_io.register_run(live_run)
+
+        return live_run
+
+    def validate_and_run_config_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run_or_die(run_config, shared_state=shared_state)
+
+    def launch_task_run_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        """
+        Parse the given arguments and launch a job.
+        """
+        set_mephisto_log_level(level=run_config.get("log_level", "info"))
+
+        requester, provider_type = self._get_requester_and_provider_from_config(
+            run_config
+        )
+
+        # Next get the abstraction classes, and run validation
+        # before anything is actually created in the database
+        blueprint_type = run_config.blueprint._blueprint_type
+        architect_type = run_config.architect._architect_type
+        BlueprintClass = get_blueprint_from_type(blueprint_type)
+        ArchitectClass = get_architect_from_type(architect_type)
+        CrowdProviderClass = get_crowd_provider_from_type(provider_type)
+
+        if shared_state is None:
+            shared_state = BlueprintClass.SharedStateClass()
+
+        BlueprintClass.assert_task_args(run_config, shared_state)
+        ArchitectClass.assert_task_args(run_config, shared_state)
+        CrowdProviderClass.assert_task_args(run_config, shared_state)
+
+        # Find an existing task or create a new one
+        task_name = run_config.task.get("task_name", None)
+        if task_name is None:
+            task_name = blueprint_type
+            logger.warning(
+                f"Task is using the default blueprint name {task_name} as a name, "
+                "as no task_name is provided"
+            )
+        tasks = self.db.find_tasks(task_name=task_name)
+        task_id = None
+        if len(tasks) == 0:
+            task_id = self.db.new_task(task_name, blueprint_type)
+        else:
+            task_id = tasks[0].db_id
+
+        logger.info(f"Creating a task run under task name: {task_name}")
+
+        # Create a new task run
+        new_run_id = self.db.new_task_run(
+            task_id,
+            requester.db_id,
+            json.dumps(OmegaConf.to_yaml(run_config, resolve=True)),
+            provider_type,
+            blueprint_type,
+            requester.is_sandbox(),
+        )
+        task_run = TaskRun.get(self.db, new_run_id)
+
+        live_run = self._create_live_task_run(
+            run_config,
+            shared_state,
+            task_run,
+            ArchitectClass,
+            BlueprintClass,
+            CrowdProviderClass,
+        )
+
+        try:
+            # If anything fails after here, we have to cleanup the architect
+            # Setup and deploy the server
+            built_dir = live_run.architect.prepare()
+            task_url = live_run.architect.deploy()
+
+            # TODO(#102) maybe the cleanup (destruction of the server configuration?) should only
+            # happen after everything has already been reviewed, this way it's possible to
+            # retrieve the exact build directory to review a task for real
+            live_run.architect.cleanup()
+
+            # Register the task with the provider
+            live_run.provider.setup_resources_for_task_run(
+                task_run, run_config, shared_state, task_url
+            )
+
+            live_run.client_io.launch_channels()
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error(
+                "Encountered error while launching run, shutting down", exc_info=True
+            )
+            try:
+                live_run.architect.shutdown()
+            except (KeyboardInterrupt, Exception) as architect_exception:
+                logger.exception(
+                    f"Could not shut down architect: {architect_exception}",
+                    exc_info=True,
+                )
+            raise e
+
+        live_run.task_launcher.create_assignments()
+        live_run.task_launcher.launch_units(task_url)
+
+        self._task_runs_tracked[task_run.db_id] = live_run
+        task_run.update_completion_progress(status=False)
+
+        return task_run.db_id
+
+    async def _track_and_kill_runs(self):
+        """
+        Background task that shuts down servers when a task
+        is fully done.
+        """
+        # TODO(#649) only trigger these on a status change?
+        while not self.is_shutdown:
+            runs_to_check = list(self._task_runs_tracked.values())
+            for tracked_run in runs_to_check:
+                await asyncio.sleep(0.01)  # Low pri, allow to be interrupted
+                if not tracked_run.force_shutdown:
+                    task_run = tracked_run.task_run
+                    if tracked_run.task_launcher.finished_generators is False:
+                        # If the run can still generate assignments, it's
+                        # definitely not done
+                        continue
+                    task_run.update_completion_progress(
+                        task_launcher=tracked_run.task_launcher
+                    )
+                    if not task_run.get_is_completed():
+                        continue
+
+                tracked_run.client_io.shutdown()
+                tracked_run.worker_pool.shutdown()
+                tracked_run.task_launcher.shutdown()
+                tracked_run.architect.shutdown()
+                del self._task_runs_tracked[task_run.db_id]
+            await asyncio.sleep(RUN_STATUS_POLL_TIME)
+            if self._using_prometheus:
+                launch_prometheus_server()
+
+    def force_shutdown(self, timeout=5):
+        """
+        Force a best-effort shutdown of everything, letting no individual
+        shutdown step suspend for more than the timeout before moving on.
+
+        Skips waiting for in-flight assignments to rush the shutdown.
+
+        ** Should only be used in sandbox or test environments. **
+        """
+        self.is_shutdown = True
+
+        def end_launchers_and_expire_units():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.task_launcher.shutdown()
+                tracked_run.task_launcher.expire_units()
+
+        def end_architects():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.architect.shutdown()
+
+        def cleanup_runs():
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+
+        tasks = {
+            "expire-units": end_launchers_and_expire_units,
+            "end-architects": end_architects,
+            "cleanup-runs": cleanup_runs,
+        }
+
+        for tname, t in tasks.items():
+            shutdown_thread = threading.Thread(target=t, name=f"force-shutdown-{tname}")
+            shutdown_thread.start()
+            start_time = time.time()
+            while time.time() - start_time < timeout and shutdown_thread.is_alive():
+                time.sleep(0.5)
+            if not shutdown_thread.is_alive():
+                # Only join if the shutdown fully completed
+                shutdown_thread.join()
+        if self._event_loop.is_running():
+            self._event_loop.stop()
+        self._event_loop.run_until_complete(self.shutdown_async())
+
+    async def shutdown_async(self):
+        """Shut down the asyncio parts of the Operator"""
+
+        if self._stop_task is not None:
+            await self._stop_task
+        await self._run_tracker_task
+
+    def shutdown(self, skip_input=True):
+        logger.info("operator shutting down")
+        self.is_shutdown = True
+        runs_to_check = list(self._task_runs_tracked.items())
+        for run_id, tracked_run in runs_to_check:
+            logger.info(f"Expiring units for task run {run_id}.")
+            try:
+                tracked_run.task_launcher.shutdown()
+            except (KeyboardInterrupt, SystemExit) as e:
+                logger.info(
+                    f"Skipping waiting for launcher threads to join on task run {run_id}."
+                )
+
+            def cant_cancel_expirations(self, sig, frame):
+                logging.warn(
+                    "Ignoring ^C during unit expirations. ^| if you NEED to exit and you will "
+                    "have to clean up units that hadn't been expired afterwards."
+                )
+
+            old_handler = signal.signal(signal.SIGINT, cant_cancel_expirations)
+            tracked_run.task_launcher.expire_units()
+            signal.signal(signal.SIGINT, old_handler)
+        try:
+            remaining_runs = self._task_runs_tracked.values()
+
+            while len(remaining_runs) > 0:
+                logger.info(
+                    f"Waiting on {len(remaining_runs)} task runs with assignments in-flight. "
+                    f"{format_loud('Ctrl-C ONCE')} to kill running tasks and FORCE QUIT."
+                )
+                next_runs = []
+                for tracked_run in remaining_runs:
+                    if tracked_run.task_run.get_is_completed():
+                        tracked_run.shutdown()
+                        tracked_run.architect.shutdown()
+                    else:
+                        next_runs.append(tracked_run)
+                if len(next_runs) > 0:
+                    time.sleep(30)
+                remaining_runs = next_runs
+        except Exception as e:
+            logger.exception(
+                f"Encountered problem during shutting down {e}", exc_info=True
+            )
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.warning(
+                "Skipping waiting for outstanding task completions, shutting down servers now!"
+                f"Follow cleanup instructions {format_loud('closely')} for proper cleanup.",
+            )
+            for tracked_run in remaining_runs:
+                logger.warning(
+                    f"Cleaning up run {tracked_run.task_run.db_id}. {format_loud('Ctrl-C once per step')} to skip that step."
+                )
+                try:
+                    logger.warning(f"Shutting down active Units in-flight.")
+                    tracked_run.worker_pool.disconnect_active_agents()
+                    tracked_run.task_runner.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Cleaning up remaining workers.")
+                    tracked_run.worker_pool.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Closing client communications.")
+                    tracked_run.client_io.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Shutting down servers")
+                    tracked_run.architect.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+        finally:
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+            if self._event_loop.is_running():
+                self._event_loop.stop()
+            self._event_loop.run_until_complete(self.shutdown_async())
+            if self._using_prometheus:
+                shutdown_prometheus_server()
+
+    def validate_and_run_config(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run(run_config, shared_state=shared_state)
+
+    def launch_task_run(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        """
+        Wrapper around validate_and_run_config_or_die that prints errors on
+        failure, rather than throwing. Generally for use in scripts.
+        """
+        assert (
+            not self.is_shutdown
+        ), "Cannot run a config on a shutdown operator. Create a new one."
+        try:
+            return self.launch_task_run_or_die(
+                run_config=run_config, shared_state=shared_state
+            )
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error("Ran into error while launching run: ", exc_info=True)
+            return None
+
+    def print_run_details(self):
+        """Print details about running tasks"""
+        for task in self.get_running_task_runs():
+            logger.info(f"Operator running task ID = {task}")
+
+    async def _stop_loop_when_no_running_tasks(self, log_rate: Optional[int] = None):
+        """
+        Stop this operator's event loop when no tasks are
+        running anymore
+        """
+        last_log = 0.0
+        while len(self.get_running_task_runs()) > 0 and not self.is_shutdown:
+            if log_rate is not None:
+                if time.time() - last_log > log_rate:
+                    last_log = time.time()
+                    self.print_run_details()
+            await asyncio.sleep(RUN_STATUS_POLL_TIME)
+        self._event_loop.stop()
+
+    def _run_loop_until(self, condition_met: Callable[[], bool], timeout) -> bool:
+        """
+        Function to run the event loop until a specific condition is met, or
+        a timeout elapses
+        """
+        asyncio.set_event_loop(self._event_loop)
+
+        async def wait_for_condition_or_timeout():
+            condition_was_met = False
+            start_time = time.time()
+            while time.time() - start_time < timeout:
+                if condition_met():
+                    condition_was_met = True
+                    break
+                await asyncio.sleep(0.2)
+            return condition_was_met
+
+        return self._event_loop.run_until_complete(wait_for_condition_or_timeout())
+
+    def _wait_for_runs_in_testing(self, timeout_time) -> None:
+        """
+        Function to kick off the operator main event loop
+        specifically in testing, run until timeout time is exceeded
+
+        generally replaces wait_for_runs_then_shutdown in testing
+        """
+        asyncio.set_event_loop(self._event_loop)
+        self._stop_task = self._event_loop.create_task(
+            self._stop_loop_when_no_running_tasks(log_rate=timeout_time),
+        )
+
+        def trigger_shutdown():
+            self.is_shutdown = True
+
+        self._event_loop.call_later(timeout_time, trigger_shutdown)
+        self._event_loop.run_forever()
+
+    def wait_for_runs_then_shutdown(
+        self, skip_input=False, log_rate: Optional[int] = None
+    ) -> None:
+        """
+        Wait for task_runs to complete, and then shutdown.
+
+        Set log_rate to get print statements of currently running tasks
+        at the specified interval
+        """
+        asyncio.set_event_loop(self._event_loop)
+        self._stop_task = self._event_loop.create_task(
+            self._stop_loop_when_no_running_tasks(log_rate=log_rate),
+        )
+        try:
+            self._event_loop.run_forever()
+        except Exception as e:
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.exception(
+                "Cleaning up after keyboard interrupt, please "
+                f"{format_loud('wait to Ctrl-C again')} until instructed to.",
+                exc_info=False,
+            )
+        finally:
+            self.shutdown()
+
+ +
+ +
+
+
+ #   + + + class + Operator: +
+ +
+ View Source +
class Operator:
+    """
+    Acting as the controller behind the curtain, the Operator class
+    is responsible for managing the knobs, switches, and dials
+    of the rest of the Mephisto architecture.
+
+    Most convenience scripts for using Mephisto will use an Operator
+    to get the job done, though this class itself is also a
+    good model to use to understand how the underlying
+    architecture works in order to build custom jobs or workflows.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        self._task_runs_tracked: Dict[str, LiveTaskRun] = {}
+        self.is_shutdown = False
+
+        # Try to get an event loop. Only should be one
+        # operator per thread
+        has_loop = None
+        try:
+            has_loop = asyncio.get_running_loop()
+        except RuntimeError:
+            pass  # We want there to be no running loop
+        assert has_loop is None, "Can only run one operator loop per thread."
+
+        # Create the event loop for this operator.
+        self._event_loop = asyncio.new_event_loop()
+        self._loop_wrapper = LoopWrapper(self._event_loop)
+        self._run_tracker_task = self._event_loop.create_task(
+            self._track_and_kill_runs(),
+        )
+        self._stop_task: Optional[asyncio.Task] = None
+        self._using_prometheus = launch_prometheus_server()
+        start_metrics_server()
+
+    def get_running_task_runs(self) -> Dict[str, LiveTaskRun]:
+        """Return the currently running task runs and their handlers"""
+        return self._task_runs_tracked.copy()
+
+    def _get_requester_and_provider_from_config(self, run_config: DictConfig):
+        """
+        Retrieve the desired provider from the config, raising an error
+        if there's a mismatch between the found provider and desired requester
+        """
+        # First try to find the requester:
+        requester_name = run_config.provider.requester_name
+        requesters = self.db.find_requesters(requester_name=requester_name)
+        if len(requesters) == 0:
+            if run_config.provider.requester_name == "MOCK_REQUESTER":
+                requesters = [get_mock_requester(self.db)]
+            else:
+                raise EntryDoesNotExistException(
+                    f"No requester found with name {requester_name}"
+                )
+        requester = requesters[0]
+        requester_id = requester.db_id
+        provider_type = requester.provider_type
+        assert provider_type == run_config.provider._provider_type, (
+            f"Found requester for name {requester_name} is not "
+            f"of the specified type {run_config.provider._provider_type}, "
+            f"but is instead {provider_type}."
+        )
+        return requester, provider_type
+
+    def _create_live_task_run(
+        self,
+        run_config: DictConfig,
+        shared_state: SharedTaskState,
+        task_run: TaskRun,
+        architect_class: Type["Architect"],
+        blueprint_class: Type["Blueprint"],
+        provider_class: Type["CrowdProvider"],
+    ) -> LiveTaskRun:
+        """
+        Initialize all of the members of a live task run object
+        """
+        # Register the blueprint with args to the task run to ensure cached
+        blueprint = task_run.get_blueprint(args=run_config, shared_state=shared_state)
+
+        # prepare the architect
+        build_dir = os.path.join(task_run.get_run_dir(), "build")
+        os.makedirs(build_dir, exist_ok=True)
+        architect = architect_class(
+            self.db, run_config, shared_state, task_run, build_dir
+        )
+        # Create the backend runner
+        task_runner = blueprint_class.TaskRunnerClass(
+            task_run, run_config, shared_state
+        )
+
+        # Small hack for auto appending block qualification
+        # TODO(OWN) we can use blueprint.mro() to discover BlueprintMixins and extract from there
+        existing_qualifications = shared_state.qualifications
+        if run_config.blueprint.get("block_qualification", None) is not None:
+            existing_qualifications.append(
+                make_qualification_dict(
+                    run_config.blueprint.block_qualification, QUAL_NOT_EXIST, None
+                )
+            )
+        if run_config.blueprint.get("onboarding_qualification", None) is not None:
+            existing_qualifications.append(
+                make_qualification_dict(
+                    OnboardingRequired.get_failed_qual(
+                        run_config.blueprint.onboarding_qualification
+                    ),
+                    QUAL_NOT_EXIST,
+                    None,
+                )
+            )
+        shared_state.qualifications = existing_qualifications
+
+        # Create provider
+        provider = provider_class(self.db)
+
+        # Create the launcher
+        initialization_data_iterable = blueprint.get_initialization_data()
+        launcher = TaskLauncher(
+            self.db,
+            task_run,
+            initialization_data_iterable,
+            max_num_concurrent_units=run_config.task.max_num_concurrent_units,
+        )
+
+        worker_pool = WorkerPool(self.db)
+        client_io = ClientIOHandler(self.db)
+        live_run = LiveTaskRun(
+            task_run=task_run,
+            architect=architect,
+            blueprint=blueprint,
+            provider=provider,
+            qualifications=shared_state.qualifications,
+            task_runner=task_runner,
+            task_launcher=launcher,
+            client_io=client_io,
+            worker_pool=worker_pool,
+            loop_wrap=self._loop_wrapper,
+        )
+        worker_pool.register_run(live_run)
+        client_io.register_run(live_run)
+
+        return live_run
+
+    def validate_and_run_config_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run_or_die(run_config, shared_state=shared_state)
+
+    def launch_task_run_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        """
+        Parse the given arguments and launch a job.
+        """
+        set_mephisto_log_level(level=run_config.get("log_level", "info"))
+
+        requester, provider_type = self._get_requester_and_provider_from_config(
+            run_config
+        )
+
+        # Next get the abstraction classes, and run validation
+        # before anything is actually created in the database
+        blueprint_type = run_config.blueprint._blueprint_type
+        architect_type = run_config.architect._architect_type
+        BlueprintClass = get_blueprint_from_type(blueprint_type)
+        ArchitectClass = get_architect_from_type(architect_type)
+        CrowdProviderClass = get_crowd_provider_from_type(provider_type)
+
+        if shared_state is None:
+            shared_state = BlueprintClass.SharedStateClass()
+
+        BlueprintClass.assert_task_args(run_config, shared_state)
+        ArchitectClass.assert_task_args(run_config, shared_state)
+        CrowdProviderClass.assert_task_args(run_config, shared_state)
+
+        # Find an existing task or create a new one
+        task_name = run_config.task.get("task_name", None)
+        if task_name is None:
+            task_name = blueprint_type
+            logger.warning(
+                f"Task is using the default blueprint name {task_name} as a name, "
+                "as no task_name is provided"
+            )
+        tasks = self.db.find_tasks(task_name=task_name)
+        task_id = None
+        if len(tasks) == 0:
+            task_id = self.db.new_task(task_name, blueprint_type)
+        else:
+            task_id = tasks[0].db_id
+
+        logger.info(f"Creating a task run under task name: {task_name}")
+
+        # Create a new task run
+        new_run_id = self.db.new_task_run(
+            task_id,
+            requester.db_id,
+            json.dumps(OmegaConf.to_yaml(run_config, resolve=True)),
+            provider_type,
+            blueprint_type,
+            requester.is_sandbox(),
+        )
+        task_run = TaskRun.get(self.db, new_run_id)
+
+        live_run = self._create_live_task_run(
+            run_config,
+            shared_state,
+            task_run,
+            ArchitectClass,
+            BlueprintClass,
+            CrowdProviderClass,
+        )
+
+        try:
+            # If anything fails after here, we have to cleanup the architect
+            # Setup and deploy the server
+            built_dir = live_run.architect.prepare()
+            task_url = live_run.architect.deploy()
+
+            # TODO(#102) maybe the cleanup (destruction of the server configuration?) should only
+            # happen after everything has already been reviewed, this way it's possible to
+            # retrieve the exact build directory to review a task for real
+            live_run.architect.cleanup()
+
+            # Register the task with the provider
+            live_run.provider.setup_resources_for_task_run(
+                task_run, run_config, shared_state, task_url
+            )
+
+            live_run.client_io.launch_channels()
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error(
+                "Encountered error while launching run, shutting down", exc_info=True
+            )
+            try:
+                live_run.architect.shutdown()
+            except (KeyboardInterrupt, Exception) as architect_exception:
+                logger.exception(
+                    f"Could not shut down architect: {architect_exception}",
+                    exc_info=True,
+                )
+            raise e
+
+        live_run.task_launcher.create_assignments()
+        live_run.task_launcher.launch_units(task_url)
+
+        self._task_runs_tracked[task_run.db_id] = live_run
+        task_run.update_completion_progress(status=False)
+
+        return task_run.db_id
+
+    async def _track_and_kill_runs(self):
+        """
+        Background task that shuts down servers when a task
+        is fully done.
+        """
+        # TODO(#649) only trigger these on a status change?
+        while not self.is_shutdown:
+            runs_to_check = list(self._task_runs_tracked.values())
+            for tracked_run in runs_to_check:
+                await asyncio.sleep(0.01)  # Low pri, allow to be interrupted
+                if not tracked_run.force_shutdown:
+                    task_run = tracked_run.task_run
+                    if tracked_run.task_launcher.finished_generators is False:
+                        # If the run can still generate assignments, it's
+                        # definitely not done
+                        continue
+                    task_run.update_completion_progress(
+                        task_launcher=tracked_run.task_launcher
+                    )
+                    if not task_run.get_is_completed():
+                        continue
+
+                tracked_run.client_io.shutdown()
+                tracked_run.worker_pool.shutdown()
+                tracked_run.task_launcher.shutdown()
+                tracked_run.architect.shutdown()
+                del self._task_runs_tracked[task_run.db_id]
+            await asyncio.sleep(RUN_STATUS_POLL_TIME)
+            if self._using_prometheus:
+                launch_prometheus_server()
+
+    def force_shutdown(self, timeout=5):
+        """
+        Force a best-effort shutdown of everything, letting no individual
+        shutdown step suspend for more than the timeout before moving on.
+
+        Skips waiting for in-flight assignments to rush the shutdown.
+
+        ** Should only be used in sandbox or test environments. **
+        """
+        self.is_shutdown = True
+
+        def end_launchers_and_expire_units():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.task_launcher.shutdown()
+                tracked_run.task_launcher.expire_units()
+
+        def end_architects():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.architect.shutdown()
+
+        def cleanup_runs():
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+
+        tasks = {
+            "expire-units": end_launchers_and_expire_units,
+            "end-architects": end_architects,
+            "cleanup-runs": cleanup_runs,
+        }
+
+        for tname, t in tasks.items():
+            shutdown_thread = threading.Thread(target=t, name=f"force-shutdown-{tname}")
+            shutdown_thread.start()
+            start_time = time.time()
+            while time.time() - start_time < timeout and shutdown_thread.is_alive():
+                time.sleep(0.5)
+            if not shutdown_thread.is_alive():
+                # Only join if the shutdown fully completed
+                shutdown_thread.join()
+        if self._event_loop.is_running():
+            self._event_loop.stop()
+        self._event_loop.run_until_complete(self.shutdown_async())
+
+    async def shutdown_async(self):
+        """Shut down the asyncio parts of the Operator"""
+
+        if self._stop_task is not None:
+            await self._stop_task
+        await self._run_tracker_task
+
+    def shutdown(self, skip_input=True):
+        logger.info("operator shutting down")
+        self.is_shutdown = True
+        runs_to_check = list(self._task_runs_tracked.items())
+        for run_id, tracked_run in runs_to_check:
+            logger.info(f"Expiring units for task run {run_id}.")
+            try:
+                tracked_run.task_launcher.shutdown()
+            except (KeyboardInterrupt, SystemExit) as e:
+                logger.info(
+                    f"Skipping waiting for launcher threads to join on task run {run_id}."
+                )
+
+            def cant_cancel_expirations(self, sig, frame):
+                logging.warn(
+                    "Ignoring ^C during unit expirations. ^| if you NEED to exit and you will "
+                    "have to clean up units that hadn't been expired afterwards."
+                )
+
+            old_handler = signal.signal(signal.SIGINT, cant_cancel_expirations)
+            tracked_run.task_launcher.expire_units()
+            signal.signal(signal.SIGINT, old_handler)
+        try:
+            remaining_runs = self._task_runs_tracked.values()
+
+            while len(remaining_runs) > 0:
+                logger.info(
+                    f"Waiting on {len(remaining_runs)} task runs with assignments in-flight. "
+                    f"{format_loud('Ctrl-C ONCE')} to kill running tasks and FORCE QUIT."
+                )
+                next_runs = []
+                for tracked_run in remaining_runs:
+                    if tracked_run.task_run.get_is_completed():
+                        tracked_run.shutdown()
+                        tracked_run.architect.shutdown()
+                    else:
+                        next_runs.append(tracked_run)
+                if len(next_runs) > 0:
+                    time.sleep(30)
+                remaining_runs = next_runs
+        except Exception as e:
+            logger.exception(
+                f"Encountered problem during shutting down {e}", exc_info=True
+            )
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.warning(
+                "Skipping waiting for outstanding task completions, shutting down servers now!"
+                f"Follow cleanup instructions {format_loud('closely')} for proper cleanup.",
+            )
+            for tracked_run in remaining_runs:
+                logger.warning(
+                    f"Cleaning up run {tracked_run.task_run.db_id}. {format_loud('Ctrl-C once per step')} to skip that step."
+                )
+                try:
+                    logger.warning(f"Shutting down active Units in-flight.")
+                    tracked_run.worker_pool.disconnect_active_agents()
+                    tracked_run.task_runner.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Cleaning up remaining workers.")
+                    tracked_run.worker_pool.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Closing client communications.")
+                    tracked_run.client_io.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Shutting down servers")
+                    tracked_run.architect.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+        finally:
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+            if self._event_loop.is_running():
+                self._event_loop.stop()
+            self._event_loop.run_until_complete(self.shutdown_async())
+            if self._using_prometheus:
+                shutdown_prometheus_server()
+
+    def validate_and_run_config(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run(run_config, shared_state=shared_state)
+
+    def launch_task_run(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        """
+        Wrapper around validate_and_run_config_or_die that prints errors on
+        failure, rather than throwing. Generally for use in scripts.
+        """
+        assert (
+            not self.is_shutdown
+        ), "Cannot run a config on a shutdown operator. Create a new one."
+        try:
+            return self.launch_task_run_or_die(
+                run_config=run_config, shared_state=shared_state
+            )
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error("Ran into error while launching run: ", exc_info=True)
+            return None
+
+    def print_run_details(self):
+        """Print details about running tasks"""
+        for task in self.get_running_task_runs():
+            logger.info(f"Operator running task ID = {task}")
+
+    async def _stop_loop_when_no_running_tasks(self, log_rate: Optional[int] = None):
+        """
+        Stop this operator's event loop when no tasks are
+        running anymore
+        """
+        last_log = 0.0
+        while len(self.get_running_task_runs()) > 0 and not self.is_shutdown:
+            if log_rate is not None:
+                if time.time() - last_log > log_rate:
+                    last_log = time.time()
+                    self.print_run_details()
+            await asyncio.sleep(RUN_STATUS_POLL_TIME)
+        self._event_loop.stop()
+
+    def _run_loop_until(self, condition_met: Callable[[], bool], timeout) -> bool:
+        """
+        Function to run the event loop until a specific condition is met, or
+        a timeout elapses
+        """
+        asyncio.set_event_loop(self._event_loop)
+
+        async def wait_for_condition_or_timeout():
+            condition_was_met = False
+            start_time = time.time()
+            while time.time() - start_time < timeout:
+                if condition_met():
+                    condition_was_met = True
+                    break
+                await asyncio.sleep(0.2)
+            return condition_was_met
+
+        return self._event_loop.run_until_complete(wait_for_condition_or_timeout())
+
+    def _wait_for_runs_in_testing(self, timeout_time) -> None:
+        """
+        Function to kick off the operator main event loop
+        specifically in testing, run until timeout time is exceeded
+
+        generally replaces wait_for_runs_then_shutdown in testing
+        """
+        asyncio.set_event_loop(self._event_loop)
+        self._stop_task = self._event_loop.create_task(
+            self._stop_loop_when_no_running_tasks(log_rate=timeout_time),
+        )
+
+        def trigger_shutdown():
+            self.is_shutdown = True
+
+        self._event_loop.call_later(timeout_time, trigger_shutdown)
+        self._event_loop.run_forever()
+
+    def wait_for_runs_then_shutdown(
+        self, skip_input=False, log_rate: Optional[int] = None
+    ) -> None:
+        """
+        Wait for task_runs to complete, and then shutdown.
+
+        Set log_rate to get print statements of currently running tasks
+        at the specified interval
+        """
+        asyncio.set_event_loop(self._event_loop)
+        self._stop_task = self._event_loop.create_task(
+            self._stop_loop_when_no_running_tasks(log_rate=log_rate),
+        )
+        try:
+            self._event_loop.run_forever()
+        except Exception as e:
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.exception(
+                "Cleaning up after keyboard interrupt, please "
+                f"{format_loud('wait to Ctrl-C again')} until instructed to.",
+                exc_info=False,
+            )
+        finally:
+            self.shutdown()
+
+ +
+ +

Acting as the controller behind the curtain, the Operator class +is responsible for managing the knobs, switches, and dials +of the rest of the Mephisto architecture.

+ +

Most convenience scripts for using Mephisto will use an Operator +to get the job done, though this class itself is also a +good model to use to understand how the underlying +architecture works in order to build custom jobs or workflows.

+
+ + +
+ + +
+ View Source +
    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        self._task_runs_tracked: Dict[str, LiveTaskRun] = {}
+        self.is_shutdown = False
+
+        # Try to get an event loop. Only should be one
+        # operator per thread
+        has_loop = None
+        try:
+            has_loop = asyncio.get_running_loop()
+        except RuntimeError:
+            pass  # We want there to be no running loop
+        assert has_loop is None, "Can only run one operator loop per thread."
+
+        # Create the event loop for this operator.
+        self._event_loop = asyncio.new_event_loop()
+        self._loop_wrapper = LoopWrapper(self._event_loop)
+        self._run_tracker_task = self._event_loop.create_task(
+            self._track_and_kill_runs(),
+        )
+        self._stop_task: Optional[asyncio.Task] = None
+        self._using_prometheus = launch_prometheus_server()
+        start_metrics_server()
+
+ +
+ + + +
+
+
#   + + + def + get_running_task_runs(self) -> Dict[str, mephisto.operations.datatypes.LiveTaskRun]: +
+ +
+ View Source +
    def get_running_task_runs(self) -> Dict[str, LiveTaskRun]:
+        """Return the currently running task runs and their handlers"""
+        return self._task_runs_tracked.copy()
+
+ +
+ +

Return the currently running task runs and their handlers

+
+ + +
+
+
#   + + + def + validate_and_run_config_or_die( + self, + run_config: omegaconf.dictconfig.DictConfig, + shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None +) -> str: +
+ +
+ View Source +
    def validate_and_run_config_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run_or_die(run_config, shared_state=shared_state)
+
+ +
+ + + +
+
+
#   + + + def + launch_task_run_or_die( + self, + run_config: omegaconf.dictconfig.DictConfig, + shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None +) -> str: +
+ +
+ View Source +
    def launch_task_run_or_die(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> str:
+        """
+        Parse the given arguments and launch a job.
+        """
+        set_mephisto_log_level(level=run_config.get("log_level", "info"))
+
+        requester, provider_type = self._get_requester_and_provider_from_config(
+            run_config
+        )
+
+        # Next get the abstraction classes, and run validation
+        # before anything is actually created in the database
+        blueprint_type = run_config.blueprint._blueprint_type
+        architect_type = run_config.architect._architect_type
+        BlueprintClass = get_blueprint_from_type(blueprint_type)
+        ArchitectClass = get_architect_from_type(architect_type)
+        CrowdProviderClass = get_crowd_provider_from_type(provider_type)
+
+        if shared_state is None:
+            shared_state = BlueprintClass.SharedStateClass()
+
+        BlueprintClass.assert_task_args(run_config, shared_state)
+        ArchitectClass.assert_task_args(run_config, shared_state)
+        CrowdProviderClass.assert_task_args(run_config, shared_state)
+
+        # Find an existing task or create a new one
+        task_name = run_config.task.get("task_name", None)
+        if task_name is None:
+            task_name = blueprint_type
+            logger.warning(
+                f"Task is using the default blueprint name {task_name} as a name, "
+                "as no task_name is provided"
+            )
+        tasks = self.db.find_tasks(task_name=task_name)
+        task_id = None
+        if len(tasks) == 0:
+            task_id = self.db.new_task(task_name, blueprint_type)
+        else:
+            task_id = tasks[0].db_id
+
+        logger.info(f"Creating a task run under task name: {task_name}")
+
+        # Create a new task run
+        new_run_id = self.db.new_task_run(
+            task_id,
+            requester.db_id,
+            json.dumps(OmegaConf.to_yaml(run_config, resolve=True)),
+            provider_type,
+            blueprint_type,
+            requester.is_sandbox(),
+        )
+        task_run = TaskRun.get(self.db, new_run_id)
+
+        live_run = self._create_live_task_run(
+            run_config,
+            shared_state,
+            task_run,
+            ArchitectClass,
+            BlueprintClass,
+            CrowdProviderClass,
+        )
+
+        try:
+            # If anything fails after here, we have to cleanup the architect
+            # Setup and deploy the server
+            built_dir = live_run.architect.prepare()
+            task_url = live_run.architect.deploy()
+
+            # TODO(#102) maybe the cleanup (destruction of the server configuration?) should only
+            # happen after everything has already been reviewed, this way it's possible to
+            # retrieve the exact build directory to review a task for real
+            live_run.architect.cleanup()
+
+            # Register the task with the provider
+            live_run.provider.setup_resources_for_task_run(
+                task_run, run_config, shared_state, task_url
+            )
+
+            live_run.client_io.launch_channels()
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error(
+                "Encountered error while launching run, shutting down", exc_info=True
+            )
+            try:
+                live_run.architect.shutdown()
+            except (KeyboardInterrupt, Exception) as architect_exception:
+                logger.exception(
+                    f"Could not shut down architect: {architect_exception}",
+                    exc_info=True,
+                )
+            raise e
+
+        live_run.task_launcher.create_assignments()
+        live_run.task_launcher.launch_units(task_url)
+
+        self._task_runs_tracked[task_run.db_id] = live_run
+        task_run.update_completion_progress(status=False)
+
+        return task_run.db_id
+
+ +
+ +

Parse the given arguments and launch a job.

+
+ + +
+
+
#   + + + def + force_shutdown(self, timeout=5): +
+ +
+ View Source +
    def force_shutdown(self, timeout=5):
+        """
+        Force a best-effort shutdown of everything, letting no individual
+        shutdown step suspend for more than the timeout before moving on.
+
+        Skips waiting for in-flight assignments to rush the shutdown.
+
+        ** Should only be used in sandbox or test environments. **
+        """
+        self.is_shutdown = True
+
+        def end_launchers_and_expire_units():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.task_launcher.shutdown()
+                tracked_run.task_launcher.expire_units()
+
+        def end_architects():
+            for tracked_run in self._task_runs_tracked.values():
+                tracked_run.architect.shutdown()
+
+        def cleanup_runs():
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+
+        tasks = {
+            "expire-units": end_launchers_and_expire_units,
+            "end-architects": end_architects,
+            "cleanup-runs": cleanup_runs,
+        }
+
+        for tname, t in tasks.items():
+            shutdown_thread = threading.Thread(target=t, name=f"force-shutdown-{tname}")
+            shutdown_thread.start()
+            start_time = time.time()
+            while time.time() - start_time < timeout and shutdown_thread.is_alive():
+                time.sleep(0.5)
+            if not shutdown_thread.is_alive():
+                # Only join if the shutdown fully completed
+                shutdown_thread.join()
+        if self._event_loop.is_running():
+            self._event_loop.stop()
+        self._event_loop.run_until_complete(self.shutdown_async())
+
+ +
+ +

Force a best-effort shutdown of everything, letting no individual +shutdown step suspend for more than the timeout before moving on.

+ +

Skips waiting for in-flight assignments to rush the shutdown.

+ +

* Should only be used in sandbox or test environments. *

+
+ + +
+
+
#   + + + async def + shutdown_async(self): +
+ +
+ View Source +
    async def shutdown_async(self):
+        """Shut down the asyncio parts of the Operator"""
+
+        if self._stop_task is not None:
+            await self._stop_task
+        await self._run_tracker_task
+
+ +
+ +

Shut down the asyncio parts of the Operator

+
+ + +
+
+
#   + + + def + shutdown(self, skip_input=True): +
+ +
+ View Source +
    def shutdown(self, skip_input=True):
+        logger.info("operator shutting down")
+        self.is_shutdown = True
+        runs_to_check = list(self._task_runs_tracked.items())
+        for run_id, tracked_run in runs_to_check:
+            logger.info(f"Expiring units for task run {run_id}.")
+            try:
+                tracked_run.task_launcher.shutdown()
+            except (KeyboardInterrupt, SystemExit) as e:
+                logger.info(
+                    f"Skipping waiting for launcher threads to join on task run {run_id}."
+                )
+
+            def cant_cancel_expirations(self, sig, frame):
+                logging.warn(
+                    "Ignoring ^C during unit expirations. ^| if you NEED to exit and you will "
+                    "have to clean up units that hadn't been expired afterwards."
+                )
+
+            old_handler = signal.signal(signal.SIGINT, cant_cancel_expirations)
+            tracked_run.task_launcher.expire_units()
+            signal.signal(signal.SIGINT, old_handler)
+        try:
+            remaining_runs = self._task_runs_tracked.values()
+
+            while len(remaining_runs) > 0:
+                logger.info(
+                    f"Waiting on {len(remaining_runs)} task runs with assignments in-flight. "
+                    f"{format_loud('Ctrl-C ONCE')} to kill running tasks and FORCE QUIT."
+                )
+                next_runs = []
+                for tracked_run in remaining_runs:
+                    if tracked_run.task_run.get_is_completed():
+                        tracked_run.shutdown()
+                        tracked_run.architect.shutdown()
+                    else:
+                        next_runs.append(tracked_run)
+                if len(next_runs) > 0:
+                    time.sleep(30)
+                remaining_runs = next_runs
+        except Exception as e:
+            logger.exception(
+                f"Encountered problem during shutting down {e}", exc_info=True
+            )
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.warning(
+                "Skipping waiting for outstanding task completions, shutting down servers now!"
+                f"Follow cleanup instructions {format_loud('closely')} for proper cleanup.",
+            )
+            for tracked_run in remaining_runs:
+                logger.warning(
+                    f"Cleaning up run {tracked_run.task_run.db_id}. {format_loud('Ctrl-C once per step')} to skip that step."
+                )
+                try:
+                    logger.warning(f"Shutting down active Units in-flight.")
+                    tracked_run.worker_pool.disconnect_active_agents()
+                    tracked_run.task_runner.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Cleaning up remaining workers.")
+                    tracked_run.worker_pool.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Closing client communications.")
+                    tracked_run.client_io.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+                try:
+                    logger.warning(f"Shutting down servers")
+                    tracked_run.architect.shutdown()
+                except (KeyboardInterrupt, SystemExit) as e:
+                    logger.warning("Skipped!")
+        finally:
+            runs_to_close = list(self._task_runs_tracked.keys())
+            for run_id in runs_to_close:
+                self._task_runs_tracked[run_id].shutdown()
+            if self._event_loop.is_running():
+                self._event_loop.stop()
+            self._event_loop.run_until_complete(self.shutdown_async())
+            if self._using_prometheus:
+                shutdown_prometheus_server()
+
+ +
+ + + +
+
+
#   + + + def + validate_and_run_config( + self, + run_config: omegaconf.dictconfig.DictConfig, + shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None +) -> Union[str, NoneType]: +
+ +
+ View Source +
    def validate_and_run_config(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        warn_once(
+            "`validate_and_run_config` functions are deprecated in 1.0, and will "
+            "be removed in Mephisto 1.1. Use `launch_task_run` versions instead."
+        )
+        return self.launch_task_run(run_config, shared_state=shared_state)
+
+ +
+ + + +
+
+
#   + + + def + launch_task_run( + self, + run_config: omegaconf.dictconfig.DictConfig, + shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None +) -> Union[str, NoneType]: +
+ +
+ View Source +
    def launch_task_run(
+        self, run_config: DictConfig, shared_state: Optional[SharedTaskState] = None
+    ) -> Optional[str]:
+        """
+        Wrapper around validate_and_run_config_or_die that prints errors on
+        failure, rather than throwing. Generally for use in scripts.
+        """
+        assert (
+            not self.is_shutdown
+        ), "Cannot run a config on a shutdown operator. Create a new one."
+        try:
+            return self.launch_task_run_or_die(
+                run_config=run_config, shared_state=shared_state
+            )
+        except (KeyboardInterrupt, Exception) as e:
+            logger.error("Ran into error while launching run: ", exc_info=True)
+            return None
+
+ +
+ +

Wrapper around validate_and_run_config_or_die that prints errors on +failure, rather than throwing. Generally for use in scripts.

+
+ + +
+
+
#   + + + def + print_run_details(self): +
+ +
+ View Source +
    def print_run_details(self):
+        """Print details about running tasks"""
+        for task in self.get_running_task_runs():
+            logger.info(f"Operator running task ID = {task}")
+
+ +
+ +

Print details about running tasks

+
+ + +
+
+
#   + + + def + wait_for_runs_then_shutdown( + self, + skip_input=False, + log_rate: Union[int, NoneType] = None +) -> None: +
+ +
+ View Source +
    def wait_for_runs_then_shutdown(
+        self, skip_input=False, log_rate: Optional[int] = None
+    ) -> None:
+        """
+        Wait for task_runs to complete, and then shutdown.
+
+        Set log_rate to get print statements of currently running tasks
+        at the specified interval
+        """
+        asyncio.set_event_loop(self._event_loop)
+        self._stop_task = self._event_loop.create_task(
+            self._stop_loop_when_no_running_tasks(log_rate=log_rate),
+        )
+        try:
+            self._event_loop.run_forever()
+        except Exception as e:
+            import traceback
+
+            traceback.print_exc()
+        except (KeyboardInterrupt, SystemExit) as e:
+            logger.exception(
+                "Cleaning up after keyboard interrupt, please "
+                f"{format_loud('wait to Ctrl-C again')} until instructed to.",
+                exc_info=False,
+            )
+        finally:
+            self.shutdown()
+
+ +
+ +

Wait for task_runs to complete, and then shutdown.

+ +

Set log_rate to get print statements of currently running tasks +at the specified interval

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/registry.html b/docs/web/static/python_api/mephisto/operations/registry.html new file mode 100644 index 000000000..b3005b8db --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/registry.html @@ -0,0 +1,802 @@ + + + + + + + + + mephisto.operations.registry API documentation + + + + + + + + + +
+
+

+mephisto.operations.registry

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Union, Type, Dict, Any, List, TYPE_CHECKING
+from mephisto.utils.dirs import get_root_dir, get_provider_dir
+from mephisto.operations.hydra_config import register_abstraction_config
+import importlib
+import os
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.blueprint import Blueprint
+    from mephisto.abstractions.crowd_provider import CrowdProvider
+    from mephisto.abstractions.architect import Architect
+
+
+BLUEPRINTS: Dict[str, Type["Blueprint"]] = {}
+ARCHITECTS: Dict[str, Type["Architect"]] = {}
+PROVIDERS: Dict[str, Type["CrowdProvider"]] = {}
+
+
+def register_mephisto_abstraction():
+    """
+    Decorator method for classes that extend a mephisto abstraction, used
+    to pull Mephisto abstractions out of anywhere that defines them.
+    """
+
+    def register_cls(
+        base_class: Union[Type["Blueprint"], Type["Architect"], Type["CrowdProvider"]]
+    ):
+        from mephisto.abstractions.blueprint import Blueprint
+        from mephisto.abstractions.crowd_provider import CrowdProvider
+        from mephisto.abstractions.architect import Architect
+
+        if issubclass(base_class, Blueprint):
+            name = base_class.BLUEPRINT_TYPE
+            BLUEPRINTS[name] = base_class
+            type_key = "blueprint"
+        elif issubclass(base_class, Architect):
+            name = base_class.ARCHITECT_TYPE
+            ARCHITECTS[name] = base_class
+            type_key = "architect"
+        elif issubclass(base_class, CrowdProvider):
+            name = base_class.PROVIDER_TYPE
+            PROVIDERS[name] = base_class
+            type_key = "provider"
+        else:
+            raise AssertionError(
+                f"Provided class {base_class} not a child of one of the mephisto "
+                "abstractions, expected one of Blueprint, Architect, or CrowdProvider."
+            )
+        register_abstraction_config(
+            name=name, node=base_class.ArgsClass, abstraction_type=type_key
+        )
+        return base_class
+
+    return register_cls
+
+
+def uses_mephisto(module: Any):
+    """
+    Register a module as having defined classes for special Mephisto abstractions.
+    Should be put in the __init__.py of the base module.
+    """
+    # TODO(#653) register the module and file path to the local mephisto registry file
+    pass
+
+
+def fill_registries():
+    """
+    Ensure that all of the required modules are picked up by the mephisto server
+    """
+    # TODO(#653) pick up on local file changes such that Mephisto won't need to be
+    # restarted to add new abstractions
+
+    # TODO(#653) pass through all of the use_mephisto modules in the local registry file
+    # to ensure that all of the modules are added
+
+    # TODO(WISH) these can be made recursive finds with os.walk to pass through subfolders
+    # Import Mephisto CrowdProviders
+    provider_root = get_provider_dir()
+    for dir_name in os.listdir(provider_root):
+        provider_dir = os.path.join(provider_root, dir_name)
+        if not os.path.isdir(provider_dir):
+            continue
+        for filename in os.listdir(provider_dir):
+            if filename.endswith("provider.py"):
+                provider_name = filename[: filename.find(".py")]
+                importlib.import_module(
+                    f"mephisto.abstractions.providers.{dir_name}.{provider_name}"
+                )
+
+    # Import Mephisto Architects
+    architect_root = os.path.join(
+        get_root_dir(), "mephisto", "abstractions", "architects"
+    )
+    for filename in os.listdir(architect_root):
+        if filename.endswith("architect.py"):
+            architect_name = filename[: filename.find(".py")]
+            importlib.import_module(
+                f"mephisto.abstractions.architects.{architect_name}"
+            )
+    # After imports are recursive, manage this more cleanly
+    importlib.import_module("mephisto.abstractions.architects.ec2.ec2_architect")
+
+    # Import Mephisto Blueprints
+    blueprint_root = os.path.join(
+        get_root_dir(), "mephisto", "abstractions", "blueprints"
+    )
+    for dir_name in os.listdir(blueprint_root):
+        blueprint_dir = os.path.join(blueprint_root, dir_name)
+        if not os.path.isdir(blueprint_dir):
+            continue
+        for filename in os.listdir(blueprint_dir):
+            if filename.endswith("blueprint.py"):
+                blueprint_name = filename[: filename.find(".py")]
+                importlib.import_module(
+                    f"mephisto.abstractions.blueprints.{dir_name}.{blueprint_name}"
+                )
+
+
+def get_crowd_provider_from_type(provider_type: str) -> Type["CrowdProvider"]:
+    """Return the crowd provider class for the given string"""
+    if provider_type in PROVIDERS:
+        return PROVIDERS[provider_type]
+    else:
+        raise NotImplementedError(
+            f"Missing provider type {provider_type}, is it registered?"
+        )
+
+
+def get_blueprint_from_type(task_type: str) -> Type["Blueprint"]:
+    """Return the blueprint class for the given string"""
+    if task_type in BLUEPRINTS:
+        return BLUEPRINTS[task_type]
+    else:
+        raise NotImplementedError(
+            f"Missing blueprint type {task_type}, is it registered?"
+        )
+
+
+def get_architect_from_type(architect_type: str) -> Type["Architect"]:
+    """Return the architect class for the given string"""
+    if architect_type in ARCHITECTS:
+        return ARCHITECTS[architect_type]
+    else:
+        raise NotImplementedError(
+            f"Missing architect type {architect_type}, is it registered?"
+        )
+
+
+def get_valid_provider_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(PROVIDERS.keys())
+
+
+def get_valid_blueprint_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(BLUEPRINTS.keys())
+
+
+def get_valid_architect_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(ARCHITECTS.keys())
+
+ +
+ +
+
+ + + + + +
+
+ + + + + +
+
+ + + + + +
+
+
#   + + + def + register_mephisto_abstraction(): +
+ +
+ View Source +
def register_mephisto_abstraction():
+    """
+    Decorator method for classes that extend a mephisto abstraction, used
+    to pull Mephisto abstractions out of anywhere that defines them.
+    """
+
+    def register_cls(
+        base_class: Union[Type["Blueprint"], Type["Architect"], Type["CrowdProvider"]]
+    ):
+        from mephisto.abstractions.blueprint import Blueprint
+        from mephisto.abstractions.crowd_provider import CrowdProvider
+        from mephisto.abstractions.architect import Architect
+
+        if issubclass(base_class, Blueprint):
+            name = base_class.BLUEPRINT_TYPE
+            BLUEPRINTS[name] = base_class
+            type_key = "blueprint"
+        elif issubclass(base_class, Architect):
+            name = base_class.ARCHITECT_TYPE
+            ARCHITECTS[name] = base_class
+            type_key = "architect"
+        elif issubclass(base_class, CrowdProvider):
+            name = base_class.PROVIDER_TYPE
+            PROVIDERS[name] = base_class
+            type_key = "provider"
+        else:
+            raise AssertionError(
+                f"Provided class {base_class} not a child of one of the mephisto "
+                "abstractions, expected one of Blueprint, Architect, or CrowdProvider."
+            )
+        register_abstraction_config(
+            name=name, node=base_class.ArgsClass, abstraction_type=type_key
+        )
+        return base_class
+
+    return register_cls
+
+ +
+ +

Decorator method for classes that extend a mephisto abstraction, used +to pull Mephisto abstractions out of anywhere that defines them.

+
+ + +
+
+
#   + + + def + uses_mephisto(module: Any): +
+ +
+ View Source +
def uses_mephisto(module: Any):
+    """
+    Register a module as having defined classes for special Mephisto abstractions.
+    Should be put in the __init__.py of the base module.
+    """
+    # TODO(#653) register the module and file path to the local mephisto registry file
+    pass
+
+ +
+ +

Register a module as having defined classes for special Mephisto abstractions. +Should be put in the __init__.py of the base module.

+
+ + +
+
+
#   + + + def + fill_registries(): +
+ +
+ View Source +
def fill_registries():
+    """
+    Ensure that all of the required modules are picked up by the mephisto server
+    """
+    # TODO(#653) pick up on local file changes such that Mephisto won't need to be
+    # restarted to add new abstractions
+
+    # TODO(#653) pass through all of the use_mephisto modules in the local registry file
+    # to ensure that all of the modules are added
+
+    # TODO(WISH) these can be made recursive finds with os.walk to pass through subfolders
+    # Import Mephisto CrowdProviders
+    provider_root = get_provider_dir()
+    for dir_name in os.listdir(provider_root):
+        provider_dir = os.path.join(provider_root, dir_name)
+        if not os.path.isdir(provider_dir):
+            continue
+        for filename in os.listdir(provider_dir):
+            if filename.endswith("provider.py"):
+                provider_name = filename[: filename.find(".py")]
+                importlib.import_module(
+                    f"mephisto.abstractions.providers.{dir_name}.{provider_name}"
+                )
+
+    # Import Mephisto Architects
+    architect_root = os.path.join(
+        get_root_dir(), "mephisto", "abstractions", "architects"
+    )
+    for filename in os.listdir(architect_root):
+        if filename.endswith("architect.py"):
+            architect_name = filename[: filename.find(".py")]
+            importlib.import_module(
+                f"mephisto.abstractions.architects.{architect_name}"
+            )
+    # After imports are recursive, manage this more cleanly
+    importlib.import_module("mephisto.abstractions.architects.ec2.ec2_architect")
+
+    # Import Mephisto Blueprints
+    blueprint_root = os.path.join(
+        get_root_dir(), "mephisto", "abstractions", "blueprints"
+    )
+    for dir_name in os.listdir(blueprint_root):
+        blueprint_dir = os.path.join(blueprint_root, dir_name)
+        if not os.path.isdir(blueprint_dir):
+            continue
+        for filename in os.listdir(blueprint_dir):
+            if filename.endswith("blueprint.py"):
+                blueprint_name = filename[: filename.find(".py")]
+                importlib.import_module(
+                    f"mephisto.abstractions.blueprints.{dir_name}.{blueprint_name}"
+                )
+
+ +
+ +

Ensure that all of the required modules are picked up by the mephisto server

+
+ + +
+
+
#   + + + def + get_crowd_provider_from_type( + provider_type: str +) -> type[mephisto.abstractions.crowd_provider.CrowdProvider]: +
+ +
+ View Source +
def get_crowd_provider_from_type(provider_type: str) -> Type["CrowdProvider"]:
+    """Return the crowd provider class for the given string"""
+    if provider_type in PROVIDERS:
+        return PROVIDERS[provider_type]
+    else:
+        raise NotImplementedError(
+            f"Missing provider type {provider_type}, is it registered?"
+        )
+
+ +
+ +

Return the crowd provider class for the given string

+
+ + +
+
+
#   + + + def + get_blueprint_from_type(task_type: str) -> type[mephisto.abstractions.blueprint.Blueprint]: +
+ +
+ View Source +
def get_blueprint_from_type(task_type: str) -> Type["Blueprint"]:
+    """Return the blueprint class for the given string"""
+    if task_type in BLUEPRINTS:
+        return BLUEPRINTS[task_type]
+    else:
+        raise NotImplementedError(
+            f"Missing blueprint type {task_type}, is it registered?"
+        )
+
+ +
+ +

Return the blueprint class for the given string

+
+ + +
+
+
#   + + + def + get_architect_from_type( + architect_type: str +) -> type[mephisto.abstractions.architect.Architect]: +
+ +
+ View Source +
def get_architect_from_type(architect_type: str) -> Type["Architect"]:
+    """Return the architect class for the given string"""
+    if architect_type in ARCHITECTS:
+        return ARCHITECTS[architect_type]
+    else:
+        raise NotImplementedError(
+            f"Missing architect type {architect_type}, is it registered?"
+        )
+
+ +
+ +

Return the architect class for the given string

+
+ + +
+
+
#   + + + def + get_valid_provider_types() -> List[str]: +
+ +
+ View Source +
def get_valid_provider_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(PROVIDERS.keys())
+
+ +
+ +

Return the valid provider types that are currently supported by +the mephisto framework

+
+ + +
+
+
#   + + + def + get_valid_blueprint_types() -> List[str]: +
+ +
+ View Source +
def get_valid_blueprint_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(BLUEPRINTS.keys())
+
+ +
+ +

Return the valid provider types that are currently supported by +the mephisto framework

+
+ + +
+
+
#   + + + def + get_valid_architect_types() -> List[str]: +
+ +
+ View Source +
def get_valid_architect_types() -> List[str]:
+    """
+    Return the valid provider types that are currently supported by
+    the mephisto framework
+    """
+    return list(ARCHITECTS.keys())
+
+ +
+ +

Return the valid provider types that are currently supported by +the mephisto framework

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/task_launcher.html b/docs/web/static/python_api/mephisto/operations/task_launcher.html new file mode 100644 index 000000000..1997144d4 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/task_launcher.html @@ -0,0 +1,1217 @@ + + + + + + + + + mephisto.operations.task_launcher API documentation + + + + + + + + + +
+
+

+mephisto.operations.task_launcher

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+from mephisto.data_model.assignment import (
+    Assignment,
+    InitializationData,
+    AssignmentState,
+)
+from mephisto.data_model.unit import (
+    Unit,
+    SCREENING_UNIT_INDEX,
+    GOLD_UNIT_INDEX,
+    COMPENSATION_UNIT_INDEX,
+)
+
+from typing import Dict, Optional, List, Any, TYPE_CHECKING, Iterator, Iterable
+from tqdm import tqdm  # type: ignore
+import os
+import time
+import enum
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+    from mephisto.abstractions.database import MephistoDB
+
+import threading
+from mephisto.utils.logger_core import get_logger
+import types
+
+logger = get_logger(name=__name__)
+
+UNIT_GENERATOR_WAIT_SECONDS = 10
+ASSIGNMENT_GENERATOR_WAIT_SECONDS = 0.5
+
+
+class GeneratorType(enum.Enum):
+    NONE = 0
+    UNIT = 1
+    ASSIGNMENT = 2
+
+
+class TaskLauncher:
+    """
+    This class is responsible for managing the process of registering
+    and launching units, including the steps for pre-processing
+    data and storing them locally for assignments when appropriate.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        task_run: "TaskRun",
+        assignment_data_iterator: Iterable[InitializationData],
+        max_num_concurrent_units: int = 0,
+    ):
+        """Prepare the task launcher to get it ready to launch the assignments"""
+        self.db = db
+        self.task_run = task_run
+        self.assignment_data_iterable = assignment_data_iterator
+        self.assignments: List[Assignment] = []
+        self.units: List[Unit] = []
+        self.provider_type = task_run.get_provider().PROVIDER_TYPE
+        self.UnitClass = task_run.get_provider().UnitClass
+        self.max_num_concurrent_units = max_num_concurrent_units
+        self.launched_units: Dict[str, Unit] = {}
+        self.unlaunched_units: Dict[str, Unit] = {}
+        self.keep_launching_units: bool = False
+        self.finished_generators: bool = False
+        self.assignment_thread_done: bool = True
+        self.launch_url: Optional[str] = None
+
+        self.unlaunched_units_access_condition = threading.Condition()
+        if isinstance(self.assignment_data_iterable, types.GeneratorType):
+            self.generator_type = GeneratorType.ASSIGNMENT
+            self.assignment_thread_done = False
+        elif max_num_concurrent_units != 0:
+            self.generator_type = GeneratorType.UNIT
+        else:
+            self.generator_type = GeneratorType.NONE
+        run_dir = task_run.get_run_dir()
+        os.makedirs(run_dir, exist_ok=True)
+
+        logger.debug(f"type of assignment data: {type(self.assignment_data_iterable)}")
+        self.units_thread: Optional[threading.Thread] = None
+        self.assignments_thread: Optional[threading.Thread] = None
+
+    def _create_single_assignment(self, assignment_data) -> None:
+        """Create a single assignment in the database using its read assignment_data"""
+        task_run = self.task_run
+        task_args = task_run.get_task_args()
+        assignment_id = self.db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        assignment = Assignment.get(self.db, assignment_id)
+        assignment.write_assignment_data(assignment_data)
+        self.assignments.append(assignment)
+        unit_count = len(assignment_data.unit_data)
+        for unit_idx in range(unit_count):
+            unit = self.UnitClass.new(
+                self.db, assignment, unit_idx, task_args.task_reward
+            )
+            self.units.append(unit)
+            with self.unlaunched_units_access_condition:
+                self.unlaunched_units[unit.db_id] = unit
+
+    def _try_generating_assignments(
+        self, assignment_data_iterator: Iterator[InitializationData]
+    ) -> None:
+        """Try to generate more assignments from the assignments_data_iterator"""
+        while not self.finished_generators:
+            try:
+                data = next(assignment_data_iterator)
+                self._create_single_assignment(data)
+            except StopIteration:
+                self.assignment_thread_done = True
+            time.sleep(ASSIGNMENT_GENERATOR_WAIT_SECONDS)
+
+    def create_assignments(self) -> None:
+        """Create an assignment and associated units for the generated assignment data"""
+        self.keep_launching_units = True
+        if self.generator_type != GeneratorType.ASSIGNMENT:
+            for data in self.assignment_data_iterable:
+                self._create_single_assignment(data)
+        else:
+            assert isinstance(
+                self.assignment_data_iterable, types.GeneratorType
+            ), "Must have assignment data generator for this"
+            self.assignments_thread = threading.Thread(
+                target=self._try_generating_assignments,
+                args=(self.assignment_data_iterable),
+                name="assignment-generator",
+            )
+            self.assignments_thread.start()
+
+    def generate_units(self):
+        """units generator which checks that only 'max_num_concurrent_units' running at the same time,
+        i.e. in the LAUNCHED or ASSIGNED states"""
+        while self.keep_launching_units:
+            units_id_to_remove = []
+            for db_id, unit in self.launched_units.items():
+                status = unit.get_status()
+                if (
+                    status != AssignmentState.LAUNCHED
+                    and status != AssignmentState.ASSIGNED
+                ):
+                    units_id_to_remove.append(db_id)
+            for db_id in units_id_to_remove:
+                self.launched_units.pop(db_id)
+
+            num_avail_units = self.max_num_concurrent_units - len(self.launched_units)
+            num_avail_units = (
+                len(self.unlaunched_units)
+                if self.max_num_concurrent_units == 0
+                else num_avail_units
+            )
+
+            units_id_to_remove = []
+            for i, item in enumerate(self.unlaunched_units.items()):
+                db_id, unit = item
+                if i < num_avail_units:
+                    self.launched_units[unit.db_id] = unit
+                    units_id_to_remove.append(db_id)
+                    yield unit
+                else:
+                    break
+            with self.unlaunched_units_access_condition:
+                for db_id in units_id_to_remove:
+                    self.unlaunched_units.pop(db_id)
+
+            time.sleep(UNIT_GENERATOR_WAIT_SECONDS)
+            if not self.unlaunched_units:
+                break
+
+    def _launch_limited_units(self, url: str) -> None:
+        """use units' generator to launch limited number of units according to (max_num_concurrent_units)"""
+        # Continue launching if we haven't pulled the plug, so long as there are currently
+        # units to launch, or more may come in the future.
+        while not self.finished_generators and (
+            len(self.unlaunched_units) > 0 or not self.assignment_thread_done
+        ):
+            for unit in self.generate_units():
+                if unit is None:
+                    break
+                unit.launch(url)
+            if self.generator_type == GeneratorType.NONE:
+                break
+        self.finished_generators = True
+
+    def launch_units(self, url: str) -> None:
+        """launch any units registered by this TaskLauncher"""
+        self.launch_url = url
+        self.units_thread = threading.Thread(
+            target=self._launch_limited_units, args=(url,), name="unit-generator"
+        )
+        self.units_thread.start()
+
+    def launch_evaluation_unit(
+        self, unit_data: Dict[str, Any], unit_type_index: int
+    ) -> "Unit":
+        """Launch a specific evaluation unit, used for quality control"""
+        assert (
+            self.launch_url is not None
+        ), "Cannot launch an evaluation unit before launching others"
+        task_run = self.task_run
+        task_args = task_run.get_task_args()
+        assignment_id = self.db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        data = InitializationData(unit_data, [{}])
+        assignment = Assignment.get(self.db, assignment_id)
+        assignment.write_assignment_data(data)
+        self.assignments.append(assignment)
+        evaluation_unit = self.UnitClass.new(
+            self.db, assignment, unit_type_index, task_args.task_reward
+        )
+        evaluation_unit.launch(self.launch_url)
+        return evaluation_unit
+
+    def launch_screening_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, SCREENING_UNIT_INDEX)
+
+    def launch_gold_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, GOLD_UNIT_INDEX)
+
+    def get_assignments_are_all_created(self) -> bool:
+        return self.assignment_thread_done
+
+    def expire_units(self) -> None:
+        """Clean up all units on this TaskLauncher"""
+        self.keep_launching_units = False
+        self.finished_generators = True
+        for unit in tqdm(self.units):
+            try:
+                unit.expire()
+            except Exception as e:
+                logger.exception(
+                    f"Warning: failed to expire unit {unit.db_id}. Stated error: {e}",
+                    exc_info=True,
+                )
+
+    def shutdown(self) -> None:
+        """Clean up running threads for generating assignments and units"""
+        self.assignment_thread_done = True
+        self.keep_launching_units = False
+        self.finished_generators = True
+        if self.assignments_thread is not None:
+            self.assignments_thread.join()
+        if self.units_thread is not None:
+            self.units_thread.join()
+
+ +
+ +
+
+
+ #   + + + class + GeneratorType(enum.Enum): +
+ +
+ View Source +
class GeneratorType(enum.Enum):
+    NONE = 0
+    UNIT = 1
+    ASSIGNMENT = 2
+
+ +
+ +

An enumeration.

+
+ + +
+
#   + + NONE = <GeneratorType.NONE: 0> +
+ + + + +
+
+
#   + + UNIT = <GeneratorType.UNIT: 1> +
+ + + + +
+
+
#   + + ASSIGNMENT = <GeneratorType.ASSIGNMENT: 2> +
+ + + + +
+
+
Inherited Members
+
+
enum.Enum
+
name
+
value
+ +
+
+
+
+
+
+ #   + + + class + TaskLauncher: +
+ +
+ View Source +
class TaskLauncher:
+    """
+    This class is responsible for managing the process of registering
+    and launching units, including the steps for pre-processing
+    data and storing them locally for assignments when appropriate.
+    """
+
+    def __init__(
+        self,
+        db: "MephistoDB",
+        task_run: "TaskRun",
+        assignment_data_iterator: Iterable[InitializationData],
+        max_num_concurrent_units: int = 0,
+    ):
+        """Prepare the task launcher to get it ready to launch the assignments"""
+        self.db = db
+        self.task_run = task_run
+        self.assignment_data_iterable = assignment_data_iterator
+        self.assignments: List[Assignment] = []
+        self.units: List[Unit] = []
+        self.provider_type = task_run.get_provider().PROVIDER_TYPE
+        self.UnitClass = task_run.get_provider().UnitClass
+        self.max_num_concurrent_units = max_num_concurrent_units
+        self.launched_units: Dict[str, Unit] = {}
+        self.unlaunched_units: Dict[str, Unit] = {}
+        self.keep_launching_units: bool = False
+        self.finished_generators: bool = False
+        self.assignment_thread_done: bool = True
+        self.launch_url: Optional[str] = None
+
+        self.unlaunched_units_access_condition = threading.Condition()
+        if isinstance(self.assignment_data_iterable, types.GeneratorType):
+            self.generator_type = GeneratorType.ASSIGNMENT
+            self.assignment_thread_done = False
+        elif max_num_concurrent_units != 0:
+            self.generator_type = GeneratorType.UNIT
+        else:
+            self.generator_type = GeneratorType.NONE
+        run_dir = task_run.get_run_dir()
+        os.makedirs(run_dir, exist_ok=True)
+
+        logger.debug(f"type of assignment data: {type(self.assignment_data_iterable)}")
+        self.units_thread: Optional[threading.Thread] = None
+        self.assignments_thread: Optional[threading.Thread] = None
+
+    def _create_single_assignment(self, assignment_data) -> None:
+        """Create a single assignment in the database using its read assignment_data"""
+        task_run = self.task_run
+        task_args = task_run.get_task_args()
+        assignment_id = self.db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        assignment = Assignment.get(self.db, assignment_id)
+        assignment.write_assignment_data(assignment_data)
+        self.assignments.append(assignment)
+        unit_count = len(assignment_data.unit_data)
+        for unit_idx in range(unit_count):
+            unit = self.UnitClass.new(
+                self.db, assignment, unit_idx, task_args.task_reward
+            )
+            self.units.append(unit)
+            with self.unlaunched_units_access_condition:
+                self.unlaunched_units[unit.db_id] = unit
+
+    def _try_generating_assignments(
+        self, assignment_data_iterator: Iterator[InitializationData]
+    ) -> None:
+        """Try to generate more assignments from the assignments_data_iterator"""
+        while not self.finished_generators:
+            try:
+                data = next(assignment_data_iterator)
+                self._create_single_assignment(data)
+            except StopIteration:
+                self.assignment_thread_done = True
+            time.sleep(ASSIGNMENT_GENERATOR_WAIT_SECONDS)
+
+    def create_assignments(self) -> None:
+        """Create an assignment and associated units for the generated assignment data"""
+        self.keep_launching_units = True
+        if self.generator_type != GeneratorType.ASSIGNMENT:
+            for data in self.assignment_data_iterable:
+                self._create_single_assignment(data)
+        else:
+            assert isinstance(
+                self.assignment_data_iterable, types.GeneratorType
+            ), "Must have assignment data generator for this"
+            self.assignments_thread = threading.Thread(
+                target=self._try_generating_assignments,
+                args=(self.assignment_data_iterable),
+                name="assignment-generator",
+            )
+            self.assignments_thread.start()
+
+    def generate_units(self):
+        """units generator which checks that only 'max_num_concurrent_units' running at the same time,
+        i.e. in the LAUNCHED or ASSIGNED states"""
+        while self.keep_launching_units:
+            units_id_to_remove = []
+            for db_id, unit in self.launched_units.items():
+                status = unit.get_status()
+                if (
+                    status != AssignmentState.LAUNCHED
+                    and status != AssignmentState.ASSIGNED
+                ):
+                    units_id_to_remove.append(db_id)
+            for db_id in units_id_to_remove:
+                self.launched_units.pop(db_id)
+
+            num_avail_units = self.max_num_concurrent_units - len(self.launched_units)
+            num_avail_units = (
+                len(self.unlaunched_units)
+                if self.max_num_concurrent_units == 0
+                else num_avail_units
+            )
+
+            units_id_to_remove = []
+            for i, item in enumerate(self.unlaunched_units.items()):
+                db_id, unit = item
+                if i < num_avail_units:
+                    self.launched_units[unit.db_id] = unit
+                    units_id_to_remove.append(db_id)
+                    yield unit
+                else:
+                    break
+            with self.unlaunched_units_access_condition:
+                for db_id in units_id_to_remove:
+                    self.unlaunched_units.pop(db_id)
+
+            time.sleep(UNIT_GENERATOR_WAIT_SECONDS)
+            if not self.unlaunched_units:
+                break
+
+    def _launch_limited_units(self, url: str) -> None:
+        """use units' generator to launch limited number of units according to (max_num_concurrent_units)"""
+        # Continue launching if we haven't pulled the plug, so long as there are currently
+        # units to launch, or more may come in the future.
+        while not self.finished_generators and (
+            len(self.unlaunched_units) > 0 or not self.assignment_thread_done
+        ):
+            for unit in self.generate_units():
+                if unit is None:
+                    break
+                unit.launch(url)
+            if self.generator_type == GeneratorType.NONE:
+                break
+        self.finished_generators = True
+
+    def launch_units(self, url: str) -> None:
+        """launch any units registered by this TaskLauncher"""
+        self.launch_url = url
+        self.units_thread = threading.Thread(
+            target=self._launch_limited_units, args=(url,), name="unit-generator"
+        )
+        self.units_thread.start()
+
+    def launch_evaluation_unit(
+        self, unit_data: Dict[str, Any], unit_type_index: int
+    ) -> "Unit":
+        """Launch a specific evaluation unit, used for quality control"""
+        assert (
+            self.launch_url is not None
+        ), "Cannot launch an evaluation unit before launching others"
+        task_run = self.task_run
+        task_args = task_run.get_task_args()
+        assignment_id = self.db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        data = InitializationData(unit_data, [{}])
+        assignment = Assignment.get(self.db, assignment_id)
+        assignment.write_assignment_data(data)
+        self.assignments.append(assignment)
+        evaluation_unit = self.UnitClass.new(
+            self.db, assignment, unit_type_index, task_args.task_reward
+        )
+        evaluation_unit.launch(self.launch_url)
+        return evaluation_unit
+
+    def launch_screening_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, SCREENING_UNIT_INDEX)
+
+    def launch_gold_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, GOLD_UNIT_INDEX)
+
+    def get_assignments_are_all_created(self) -> bool:
+        return self.assignment_thread_done
+
+    def expire_units(self) -> None:
+        """Clean up all units on this TaskLauncher"""
+        self.keep_launching_units = False
+        self.finished_generators = True
+        for unit in tqdm(self.units):
+            try:
+                unit.expire()
+            except Exception as e:
+                logger.exception(
+                    f"Warning: failed to expire unit {unit.db_id}. Stated error: {e}",
+                    exc_info=True,
+                )
+
+    def shutdown(self) -> None:
+        """Clean up running threads for generating assignments and units"""
+        self.assignment_thread_done = True
+        self.keep_launching_units = False
+        self.finished_generators = True
+        if self.assignments_thread is not None:
+            self.assignments_thread.join()
+        if self.units_thread is not None:
+            self.units_thread.join()
+
+ +
+ +

This class is responsible for managing the process of registering +and launching units, including the steps for pre-processing +data and storing them locally for assignments when appropriate.

+
+ + +
+
#   + + + TaskLauncher( + db: mephisto.abstractions.database.MephistoDB, + task_run: mephisto.data_model.task_run.TaskRun, + assignment_data_iterator: Iterable[mephisto.data_model.assignment.InitializationData], + max_num_concurrent_units: int = 0 +) +
+ +
+ View Source +
    def __init__(
+        self,
+        db: "MephistoDB",
+        task_run: "TaskRun",
+        assignment_data_iterator: Iterable[InitializationData],
+        max_num_concurrent_units: int = 0,
+    ):
+        """Prepare the task launcher to get it ready to launch the assignments"""
+        self.db = db
+        self.task_run = task_run
+        self.assignment_data_iterable = assignment_data_iterator
+        self.assignments: List[Assignment] = []
+        self.units: List[Unit] = []
+        self.provider_type = task_run.get_provider().PROVIDER_TYPE
+        self.UnitClass = task_run.get_provider().UnitClass
+        self.max_num_concurrent_units = max_num_concurrent_units
+        self.launched_units: Dict[str, Unit] = {}
+        self.unlaunched_units: Dict[str, Unit] = {}
+        self.keep_launching_units: bool = False
+        self.finished_generators: bool = False
+        self.assignment_thread_done: bool = True
+        self.launch_url: Optional[str] = None
+
+        self.unlaunched_units_access_condition = threading.Condition()
+        if isinstance(self.assignment_data_iterable, types.GeneratorType):
+            self.generator_type = GeneratorType.ASSIGNMENT
+            self.assignment_thread_done = False
+        elif max_num_concurrent_units != 0:
+            self.generator_type = GeneratorType.UNIT
+        else:
+            self.generator_type = GeneratorType.NONE
+        run_dir = task_run.get_run_dir()
+        os.makedirs(run_dir, exist_ok=True)
+
+        logger.debug(f"type of assignment data: {type(self.assignment_data_iterable)}")
+        self.units_thread: Optional[threading.Thread] = None
+        self.assignments_thread: Optional[threading.Thread] = None
+
+ +
+ +

Prepare the task launcher to get it ready to launch the assignments

+
+ + +
+
+
#   + + + def + create_assignments(self) -> None: +
+ +
+ View Source +
    def create_assignments(self) -> None:
+        """Create an assignment and associated units for the generated assignment data"""
+        self.keep_launching_units = True
+        if self.generator_type != GeneratorType.ASSIGNMENT:
+            for data in self.assignment_data_iterable:
+                self._create_single_assignment(data)
+        else:
+            assert isinstance(
+                self.assignment_data_iterable, types.GeneratorType
+            ), "Must have assignment data generator for this"
+            self.assignments_thread = threading.Thread(
+                target=self._try_generating_assignments,
+                args=(self.assignment_data_iterable),
+                name="assignment-generator",
+            )
+            self.assignments_thread.start()
+
+ +
+ +

Create an assignment and associated units for the generated assignment data

+
+ + +
+
+
#   + + + def + generate_units(self): +
+ +
+ View Source +
    def generate_units(self):
+        """units generator which checks that only 'max_num_concurrent_units' running at the same time,
+        i.e. in the LAUNCHED or ASSIGNED states"""
+        while self.keep_launching_units:
+            units_id_to_remove = []
+            for db_id, unit in self.launched_units.items():
+                status = unit.get_status()
+                if (
+                    status != AssignmentState.LAUNCHED
+                    and status != AssignmentState.ASSIGNED
+                ):
+                    units_id_to_remove.append(db_id)
+            for db_id in units_id_to_remove:
+                self.launched_units.pop(db_id)
+
+            num_avail_units = self.max_num_concurrent_units - len(self.launched_units)
+            num_avail_units = (
+                len(self.unlaunched_units)
+                if self.max_num_concurrent_units == 0
+                else num_avail_units
+            )
+
+            units_id_to_remove = []
+            for i, item in enumerate(self.unlaunched_units.items()):
+                db_id, unit = item
+                if i < num_avail_units:
+                    self.launched_units[unit.db_id] = unit
+                    units_id_to_remove.append(db_id)
+                    yield unit
+                else:
+                    break
+            with self.unlaunched_units_access_condition:
+                for db_id in units_id_to_remove:
+                    self.unlaunched_units.pop(db_id)
+
+            time.sleep(UNIT_GENERATOR_WAIT_SECONDS)
+            if not self.unlaunched_units:
+                break
+
+ +
+ +

units generator which checks that only 'max_num_concurrent_units' running at the same time, +i.e. in the LAUNCHED or ASSIGNED states

+
+ + +
+
+
#   + + + def + launch_units(self, url: str) -> None: +
+ +
+ View Source +
    def launch_units(self, url: str) -> None:
+        """launch any units registered by this TaskLauncher"""
+        self.launch_url = url
+        self.units_thread = threading.Thread(
+            target=self._launch_limited_units, args=(url,), name="unit-generator"
+        )
+        self.units_thread.start()
+
+ +
+ +

launch any units registered by this TaskLauncher

+
+ + +
+
+
#   + + + def + launch_evaluation_unit( + self, + unit_data: Dict[str, Any], + unit_type_index: int +) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    def launch_evaluation_unit(
+        self, unit_data: Dict[str, Any], unit_type_index: int
+    ) -> "Unit":
+        """Launch a specific evaluation unit, used for quality control"""
+        assert (
+            self.launch_url is not None
+        ), "Cannot launch an evaluation unit before launching others"
+        task_run = self.task_run
+        task_args = task_run.get_task_args()
+        assignment_id = self.db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        data = InitializationData(unit_data, [{}])
+        assignment = Assignment.get(self.db, assignment_id)
+        assignment.write_assignment_data(data)
+        self.assignments.append(assignment)
+        evaluation_unit = self.UnitClass.new(
+            self.db, assignment, unit_type_index, task_args.task_reward
+        )
+        evaluation_unit.launch(self.launch_url)
+        return evaluation_unit
+
+ +
+ +

Launch a specific evaluation unit, used for quality control

+
+ + +
+
+
#   + + + def + launch_screening_unit(self, unit_data: Dict[str, Any]) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    def launch_screening_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, SCREENING_UNIT_INDEX)
+
+ +
+ +

Launch a screening unit, which should never return to the pool

+
+ + +
+
+
#   + + + def + launch_gold_unit(self, unit_data: Dict[str, Any]) -> mephisto.data_model.unit.Unit: +
+ +
+ View Source +
    def launch_gold_unit(self, unit_data: Dict[str, Any]) -> "Unit":
+        """Launch a screening unit, which should never return to the pool"""
+        return self.launch_evaluation_unit(unit_data, GOLD_UNIT_INDEX)
+
+ +
+ +

Launch a screening unit, which should never return to the pool

+
+ + +
+
+
#   + + + def + get_assignments_are_all_created(self) -> bool: +
+ +
+ View Source +
    def get_assignments_are_all_created(self) -> bool:
+        return self.assignment_thread_done
+
+ +
+ + + +
+
+
#   + + + def + expire_units(self) -> None: +
+ +
+ View Source +
    def expire_units(self) -> None:
+        """Clean up all units on this TaskLauncher"""
+        self.keep_launching_units = False
+        self.finished_generators = True
+        for unit in tqdm(self.units):
+            try:
+                unit.expire()
+            except Exception as e:
+                logger.exception(
+                    f"Warning: failed to expire unit {unit.db_id}. Stated error: {e}",
+                    exc_info=True,
+                )
+
+ +
+ +

Clean up all units on this TaskLauncher

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Clean up running threads for generating assignments and units"""
+        self.assignment_thread_done = True
+        self.keep_launching_units = False
+        self.finished_generators = True
+        if self.assignments_thread is not None:
+            self.assignments_thread.join()
+        if self.units_thread is not None:
+            self.units_thread.join()
+
+ +
+ +

Clean up running threads for generating assignments and units

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/operations/worker_pool.html b/docs/web/static/python_api/mephisto/operations/worker_pool.html new file mode 100644 index 000000000..952bf06c8 --- /dev/null +++ b/docs/web/static/python_api/mephisto/operations/worker_pool.html @@ -0,0 +1,2408 @@ + + + + + + + + + mephisto.operations.worker_pool API documentation + + + + + + + + + +
+
+

+mephisto.operations.worker_pool

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import time
+from functools import partial
+from dataclasses import dataclass, fields
+from prometheus_client import Histogram, Gauge, Counter  # type: ignore
+from mephisto.data_model.worker import Worker
+from mephisto.data_model.agent import Agent, OnboardingAgent
+from mephisto.utils.qualifications import worker_is_qualified
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.abstractions.blueprints.mixins.onboarding_required import (
+    OnboardingRequired,
+)
+from mephisto.abstractions.blueprints.mixins.screen_task_required import (
+    ScreenTaskRequired,
+)
+from mephisto.abstractions.blueprints.mixins.use_gold_unit import UseGoldUnit
+from mephisto.operations.task_launcher import (
+    SCREENING_UNIT_INDEX,
+    GOLD_UNIT_INDEX,
+)
+from mephisto.operations.datatypes import LiveTaskRun, WorkerFailureReasons
+
+from typing import Sequence, Dict, Union, Optional, List, Any, TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from mephisto.data_model.unit import Unit
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.task_run import TaskRun
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+AGENT_DETAILS_COUNT = Counter(
+    "agent_details_responses", "Responses to agent details requests", ["response"]
+)
+AGENT_DETAILS_COUNT.labels(response="not_qualified")
+AGENT_DETAILS_COUNT.labels(response="no_available_units")
+AGENT_DETAILS_COUNT.labels(response="agent_missing")
+AGENT_DETAILS_COUNT.labels(response="reconnection")
+AGENT_DETAILS_COUNT.labels(response="assigned")
+AGENT_DETAILS_COUNT.labels(response="assigned_onboarding")
+ONBOARDING_OUTCOMES = Counter(
+    "worker_pool_onboarding_outcomes",
+    "Counts of onboarding outcomes as determined by the worker pool",
+    ["outcome"],
+)
+ONBOARDING_OUTCOMES.labels(outcome="launched")
+ONBOARDING_OUTCOMES.labels(outcome="passed")
+ONBOARDING_OUTCOMES.labels(outcome="failed")
+ACTIVE_ONBOARDINGS = Gauge(
+    "worker_pool_active_onboardings",
+    "Count of active onboardings as determined by the worker pool",
+)
+EXTERNAL_FUNCTION_LATENCY = Histogram(
+    "external_function_latency", "Latency for various user functions", ["function"]
+)
+EXTERNAL_FUNCTION_LATENCY.labels(function="get_init_data_for_agent")
+EXTERNAL_FUNCTION_LATENCY.labels(function="validate_onboarding")
+EXTERNAL_FUNCTION_LATENCY.labels(function="get_valid_units_for_worker")
+EXTERNAL_FUNCTION_LATENCY.labels(function="filter_units_for_worker")
+EXTERNAL_FUNCTION_LATENCY.labels(function="get_screening_unit_data")
+EXTERNAL_FUNCTION_LATENCY.labels(function="launch_screening_unit")
+EXTERNAL_FUNCTION_LATENCY.labels(function="get_gold_unit_data_for_worker")
+
+
+@dataclass
+class OnboardingInfo:
+    crowd_data: Dict[str, Any]
+    request_id: str
+
+
+@dataclass
+class AgentDetails:
+    """Class containing the information for a newly initialized frontend agent"""
+
+    worker_id: Optional[str] = None
+    agent_id: Optional[str] = None
+    init_task_data: Optional[Dict[str, Any]] = None
+    failure_reason: Optional[str] = None
+
+    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+
+class WorkerPool:
+    """
+    The WorkerPool is responsible for tracing the status and state of workers
+    and agents that are actively engaged in Mephisto tasks for a given task run. It is
+    responsible for delegating to other classes and controllers on particular status
+    transitions.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked agents
+        self.agents: Dict[str, "Agent"] = {}
+        self.onboarding_agents: Dict[str, "OnboardingAgent"] = {}
+        self.onboarding_infos: Dict[str, OnboardingInfo] = {}
+        # Agent status handling
+        self.last_status_check = time.time()
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this worker pool"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to a worker pool at a time"
+        self._live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this worker pool, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+    def get_agent_for_id(
+        self, agent_id: str
+    ) -> Optional[Union["Agent", "OnboardingAgent"]]:
+        """Temporary method to get an agent, while API is figured out"""
+        if agent_id in self.agents:
+            return self.agents[agent_id]
+        elif agent_id in self.onboarding_agents:
+            return self.onboarding_agents[agent_id]
+        return None
+
+    async def register_worker(
+        self, crowd_data: Dict[str, Any], request_id: str
+    ) -> None:
+        """
+        First process the worker registration, then hand off for
+        registering an agent
+        """
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        crowd_provider = live_run.provider
+        is_sandbox = crowd_provider.is_sandbox()
+        worker_name = crowd_data["worker_name"]
+        if crowd_provider.is_sandbox():
+            # TODO(WISH) there are better ways to get rid of this designation
+            worker_name += "_sandbox"
+        workers = await loop.run_in_executor(
+            None, partial(self.db.find_workers, worker_name=worker_name)
+        )
+        if len(workers) == 0:
+            worker = await loop.run_in_executor(
+                None,
+                partial(
+                    crowd_provider.WorkerClass.new_from_provider_data,
+                    self.db,
+                    crowd_data,
+                ),
+            )
+        else:
+            worker = workers[0]
+
+        is_qualified = await loop.run_in_executor(
+            None, partial(worker_is_qualified, worker, live_run.qualifications)
+        )
+        if not is_qualified:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED
+                ).to_dict(),
+            )
+        else:
+            await self.register_agent(crowd_data, worker, request_id)
+
+    async def _assign_unit_to_agent(
+        self,
+        crowd_data: Dict[str, Any],
+        worker: "Worker",
+        request_id: str,
+        units: List["Unit"],
+    ):
+        live_run = self.get_live_run()
+        task_run = live_run.task_run
+        loop = live_run.loop_wrap.loop
+        task_runner = live_run.task_runner
+        crowd_provider = live_run.provider
+
+        logger.debug(
+            f"Worker {worker.db_id} is being assigned one of {len(units)} units."
+        )
+
+        reserved_unit = None
+        while len(units) > 0 and reserved_unit is None:
+            unit = units.pop(0)
+            reserved_unit = task_run.reserve_unit(unit)
+        if reserved_unit is None:
+            AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                ).to_dict(),
+            )
+        else:
+            agent = await loop.run_in_executor(
+                None,
+                partial(
+                    crowd_provider.AgentClass.new_from_provider_data,
+                    self.db,
+                    worker,
+                    unit,
+                    crowd_data,
+                ),
+            )
+            agent.set_live_run(live_run)
+            live_run.client_io.associate_agent_with_registration(
+                agent.get_agent_id(),
+                request_id,
+                crowd_data["agent_registration_id"],
+            )
+            logger.debug(f"Created agent {agent}, {agent.db_id}.")
+
+            # TODO(#649) this is IO bound
+            with EXTERNAL_FUNCTION_LATENCY.labels(
+                function="get_init_data_for_agent"
+            ).time():
+                init_task_data = await loop.run_in_executor(
+                    None,
+                    partial(
+                        task_runner.get_init_data_for_agent,
+                        agent,
+                    ),
+                )
+
+            AGENT_DETAILS_COUNT.labels(response="assigned").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=init_task_data,
+                ).to_dict(),
+            )
+
+            self.agents[agent.get_agent_id()] = agent
+
+            # Launch individual tasks
+            if unit.unit_index < 0 or not live_run.task_runner.is_concurrent:
+                # Run the unit
+                live_run.task_runner.execute_unit(
+                    unit,
+                    agent,
+                )
+            else:
+                # See if the concurrent unit is ready to launch
+                assignment = await loop.run_in_executor(None, unit.get_assignment)
+                agents = await loop.run_in_executor(None, assignment.get_agents)
+                if None in agents:
+                    agent.update_status(AgentState.STATUS_WAITING)
+                    return  # need to wait for all agents to be here to launch
+
+                non_null_agents = [a for a in agents if a is not None]
+                # Launch the backend for this assignment
+                registered_agents = [
+                    self.agents[a.get_agent_id()]
+                    for a in non_null_agents
+                    if a is not None
+                ]
+
+                live_run.task_runner.execute_assignment(assignment, registered_agents)
+
+    async def register_agent_from_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Convert the onboarding agent to a full agent
+        """
+        logger.debug(f"Registering onboarding agent {onboarding_agent}")
+        onboarding_id = onboarding_agent.get_agent_id()
+        onboarding_agent_info = self.onboarding_agents.get(onboarding_id)
+
+        if onboarding_agent_info is None:
+            logger.warning(
+                f"Could not find info for onboarding agent {onboarding_id}, "
+                "but they submitted onboarding"
+            )
+            return
+
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        blueprint = live_run.blueprint
+        worker = onboarding_agent.get_worker()
+
+        assert (
+            isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+        ), "Should only be registering from onboarding if onboarding is required and set"
+
+        # Onboarding validation is run in thread, as we don't know execution time
+        with EXTERNAL_FUNCTION_LATENCY.labels(function="validate_onboarding").time():
+            worker_passed = await loop.run_in_executor(
+                None, partial(blueprint.validate_onboarding, worker, onboarding_agent)
+            )
+
+        assert blueprint.onboarding_qualification_name is not None
+        worker.grant_qualification(
+            blueprint.onboarding_qualification_name, int(worker_passed)
+        )
+        if not worker_passed:
+            ONBOARDING_OUTCOMES.labels(outcome="failed").inc()
+            worker.grant_qualification(
+                blueprint.onboarding_failed_name, int(worker_passed)
+            )
+            onboarding_agent.update_status(AgentState.STATUS_REJECTED)
+            logger.info(f"Onboarding agent {onboarding_id} failed onboarding")
+        else:
+            ONBOARDING_OUTCOMES.labels(outcome="passed").inc()
+            onboarding_agent.update_status(AgentState.STATUS_APPROVED)
+            logger.info(
+                f"Onboarding agent {onboarding_id} registered out from onboarding"
+            )
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None, partial(live_run.task_run.get_valid_units_for_worker, worker)
+            )
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            usable_units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        if not worker_passed:
+            # TODO(WISH) it may be worth investigating launching a dummy task for these
+            # instances where a worker has failed onboarding, but the onboarding
+            # task still allowed submission of the failed data (no front-end validation)
+            # units = [self.dummy_launcher.launch_dummy()]
+            # self._assign_unit_to_agent(..., units)
+            usable_units = []
+
+        onboarding_info = self.onboarding_infos[onboarding_agent.get_agent_id()]
+        crowd_data = onboarding_info.crowd_data
+        request_id = onboarding_info.request_id
+
+        # Assign to a unit
+        if len(usable_units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                ).to_dict(),
+            )
+        else:
+            await self._assign_unit_to_agent(
+                crowd_data, worker, request_id, usable_units
+            )
+
+    async def reconnect_agent(self, agent_id: str, request_id: str):
+        """When an agent reconnects, find and send the relevant data"""
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_runner = live_run.task_runner
+        agent = self.get_agent_for_id(agent_id)
+        if agent is None:
+            logger.info(
+                f"Looking for reconnecting agent {agent_id} but none found locally"
+            )
+            AGENT_DETAILS_COUNT.labels(response="agent_missing").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.TASK_MISSING,
+                ).to_dict(),
+            )
+            return
+        worker = agent.get_worker()
+        AGENT_DETAILS_COUNT.labels(response="reconnection").inc()
+        if isinstance(agent, OnboardingAgent):
+            blueprint = live_run.blueprint
+            assert (
+                isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+            )
+            onboard_data = blueprint.get_onboarding_data(worker.db_id)
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=onboard_data,
+                ).to_dict(),
+            )
+        else:
+            # TODO(#649) this is IO bound
+            with EXTERNAL_FUNCTION_LATENCY.labels(
+                function="get_init_data_for_agent"
+            ).time():
+                init_task_data = await loop.run_in_executor(
+                    None,
+                    partial(
+                        task_runner.get_init_data_for_agent,
+                        agent,
+                    ),
+                )
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=init_task_data,
+                ).to_dict(),
+            )
+
+    async def register_agent(
+        self, crowd_data: Dict[str, Any], worker: "Worker", request_id: str
+    ):
+        """Process an agent registration packet to register an agent, returning the agent_id"""
+        # Process a new agent
+        logger.debug(f"Registering agent {crowd_data}, {request_id}")
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_run = live_run.task_run
+        agent_registration_id = crowd_data["agent_registration_id"]
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = task_run.get_valid_units_for_worker(worker)
+        if len(units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                ).to_dict(),
+            )
+            logger.debug(
+                f"agent_registration_id {agent_registration_id}, had no valid units."
+            )
+            return
+
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        # If there's onboarding, see if this worker has already been disqualified
+        blueprint = live_run.blueprint
+        if isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding:
+            qual_name = blueprint.onboarding_qualification_name
+            assert (
+                qual_name is not None
+            ), "Cannot be using onboarding and have a null qual"
+            if worker.is_disqualified(qual_name):
+                AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                    ).to_dict(),
+                )
+                logger.debug(
+                    f"Worker {worker.db_id} is already disqualified by onboarding "
+                    f"qual {qual_name}."
+                )
+                return
+            elif not worker.is_qualified(qual_name):
+                # Send a packet with onboarding information
+                onboard_data = blueprint.get_onboarding_data(worker.db_id)
+                onboard_agent = OnboardingAgent.new(self.db, worker, task_run)
+                live_run.client_io.associate_agent_with_registration(
+                    onboard_agent.get_agent_id(),
+                    request_id,
+                    crowd_data["agent_registration_id"],
+                )
+                onboard_agent.state.set_init_state(onboard_data)
+                onboard_agent.set_live_run(live_run)
+                onboard_id = onboard_agent.get_agent_id()
+
+                # register onboarding agent
+                self.onboarding_agents[onboard_id] = onboard_agent
+                self.onboarding_infos[onboard_id] = OnboardingInfo(
+                    crowd_data=crowd_data,
+                    request_id=request_id,
+                )
+
+                ONBOARDING_OUTCOMES.labels(outcome="launched").inc()
+                ACTIVE_ONBOARDINGS.inc()
+                AGENT_DETAILS_COUNT.labels(response="assigned_onboarding").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        agent_id=onboard_id,
+                        init_task_data=onboard_data,
+                    ).to_dict(),
+                )
+                logger.info(
+                    f"{worker} is starting onboarding thread with "
+                    f"onboarding {onboard_agent}."
+                )
+
+                async def cleanup_onboarding():
+                    del self.onboarding_agents[onboard_id]
+                    del self.onboarding_infos[onboard_id]
+                    ACTIVE_ONBOARDINGS.dec()
+
+                # Run the onboarding
+                live_run.task_runner.execute_onboarding(
+                    onboard_agent, cleanup_onboarding
+                )
+                return
+        if isinstance(blueprint, ScreenTaskRequired) and blueprint.use_screening_task:
+            if (
+                blueprint.worker_needs_screening(worker)
+                and blueprint.should_generate_unit()
+            ):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_screening_unit_data"
+                ).time():
+                    screening_data = await loop.run_in_executor(
+                        None, blueprint.get_screening_unit_data
+                    )
+                if screening_data is not None:
+                    launcher = live_run.task_launcher
+                    assert (
+                        launcher is not None
+                    ), "LiveTaskRun must have launcher to use screening tasks"
+                    with EXTERNAL_FUNCTION_LATENCY.labels(
+                        function="launch_screening_unit"
+                    ).time():
+                        screen_unit = await loop.run_in_executor(
+                            None,
+                            partial(
+                                launcher.launch_screening_unit,
+                                screening_data,
+                            ),
+                        )
+                    units = [screen_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(
+                        f"No screening units left for {agent_registration_id}."
+                    )
+                    return
+        if isinstance(blueprint, UseGoldUnit) and blueprint.use_golds:
+            if blueprint.should_produce_gold_for_worker(worker):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_gold_unit_data_for_worker"
+                ).time():
+                    gold_data = await loop.run_in_executor(
+                        None, partial(blueprint.get_gold_unit_data_for_worker, worker)
+                    )
+                if gold_data is not None:
+                    launcher = live_run.task_launcher
+                    gold_unit = await loop.run_in_executor(
+                        None,
+                        partial(
+                            launcher.launch_gold_unit,
+                            gold_data,
+                        ),
+                    )
+                    units = [gold_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(f"No gold units left for {agent_registration_id}...")
+                    return
+
+        # Not onboarding, so just register directly
+        await self._assign_unit_to_agent(crowd_data, worker, request_id, units)
+
+    async def push_status_update(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> None:
+        """
+        Force a status update for a specific agent, pushing the db status to
+        the frontend client
+        """
+        status = agent.db_status
+        if isinstance(agent, OnboardingAgent):
+            if status in [AgentState.STATUS_APPROVED, AgentState.STATUS_REJECTED]:
+                # We don't expose the updated status directly to the frontend here
+                # Can be simplified if we improve how bootstrap-chat handles
+                # the transition of onboarding states
+                status = AgentState.STATUS_WAITING
+
+        live_run = self.get_live_run()
+        live_run.client_io.send_status_update(agent.get_agent_id(), status)
+
+    def handle_updated_agent_status(self, status_map: Dict[str, str]):
+        """
+        Handle updating the local statuses for agents based on
+        the previously reported agent statuses.
+
+        Takes as input a mapping from agent_id to server-side status
+        """
+        live_run = self.get_live_run()
+        for agent_id, status in status_map.items():
+            if status not in AgentState.valid():
+                logger.warning(f"Invalid status for agent {agent_id}: {status}")
+                continue
+            agent = self.get_agent_for_id(agent_id)
+            if agent is None:
+                # no longer tracking agent
+                continue
+            db_status = agent.get_status()
+            if status != db_status:
+                if status == AgentState.STATUS_COMPLETED:
+                    # Frontend agent completed but hasn't confirmed yet
+                    continue
+                if status != AgentState.STATUS_DISCONNECT:
+                    # Stale or reconnect, send a status update
+                    live_run.loop_wrap.execute_coro(
+                        self.push_status_update(self.agents[agent_id])
+                    )
+                    continue  # Only DISCONNECT can be marked remotely, rest are mismatch (except STATUS_COMPLETED)
+                agent.update_status(status)
+        pass
+
+    def disconnect_active_agents(self) -> None:
+        """
+        Under a forced shutdown, set the status of all current agents
+        to disconnected to clear their running tasks
+        """
+        for agent in self.agents.values():
+            agent.update_status(AgentState.STATUS_DISCONNECT)
+        for onboarding_agent in self.onboarding_agents.values():
+            onboarding_agent.update_status(AgentState.STATUS_DISCONNECT)
+
+    def shutdown(self) -> None:
+        """Mark shut down. Handle resource cleanup if necessary"""
+        self.is_shutdown = True
+
+ +
+ +
+
+
+ #   + + + class + OnboardingInfo: +
+ +
+ View Source +
class OnboardingInfo:
+    crowd_data: Dict[str, Any]
+    request_id: str
+
+ +
+ +

OnboardingInfo(crowd_data: Dict[str, Any], request_id: str)

+
+ + +
+
#   + + + OnboardingInfo(crowd_data: Dict[str, Any], request_id: str) +
+ + + + +
+
+
+
+ #   + + + class + AgentDetails: +
+ +
+ View Source +
class AgentDetails:
+    """Class containing the information for a newly initialized frontend agent"""
+
+    worker_id: Optional[str] = None
+    agent_id: Optional[str] = None
+    init_task_data: Optional[Dict[str, Any]] = None
+    failure_reason: Optional[str] = None
+
+    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+ +
+ +

Class containing the information for a newly initialized frontend agent

+
+ + +
+
#   + + + AgentDetails( + worker_id: Union[str, NoneType] = None, + agent_id: Union[str, NoneType] = None, + init_task_data: Union[Dict[str, Any], NoneType] = None, + failure_reason: Union[str, NoneType] = None +) +
+ + + + +
+
+
#   + + worker_id: Union[str, NoneType] = None +
+ + + + +
+
+
#   + + agent_id: Union[str, NoneType] = None +
+ + + + +
+
+
#   + + init_task_data: Union[Dict[str, Any], NoneType] = None +
+ + + + +
+
+
#   + + failure_reason: Union[str, NoneType] = None +
+ + + + +
+
+
#   + + + def + to_dict(self): +
+ +
+ View Source +
    def to_dict(self):
+        return dict((field.name, getattr(self, field.name)) for field in fields(self))
+
+ +
+ + + +
+
+
+
+ #   + + + class + WorkerPool: +
+ +
+ View Source +
class WorkerPool:
+    """
+    The WorkerPool is responsible for tracing the status and state of workers
+    and agents that are actively engaged in Mephisto tasks for a given task run. It is
+    responsible for delegating to other classes and controllers on particular status
+    transitions.
+    """
+
+    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked agents
+        self.agents: Dict[str, "Agent"] = {}
+        self.onboarding_agents: Dict[str, "OnboardingAgent"] = {}
+        self.onboarding_infos: Dict[str, OnboardingInfo] = {}
+        # Agent status handling
+        self.last_status_check = time.time()
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this worker pool"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to a worker pool at a time"
+        self._live_run = live_run
+
+    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this worker pool, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+    def get_agent_for_id(
+        self, agent_id: str
+    ) -> Optional[Union["Agent", "OnboardingAgent"]]:
+        """Temporary method to get an agent, while API is figured out"""
+        if agent_id in self.agents:
+            return self.agents[agent_id]
+        elif agent_id in self.onboarding_agents:
+            return self.onboarding_agents[agent_id]
+        return None
+
+    async def register_worker(
+        self, crowd_data: Dict[str, Any], request_id: str
+    ) -> None:
+        """
+        First process the worker registration, then hand off for
+        registering an agent
+        """
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        crowd_provider = live_run.provider
+        is_sandbox = crowd_provider.is_sandbox()
+        worker_name = crowd_data["worker_name"]
+        if crowd_provider.is_sandbox():
+            # TODO(WISH) there are better ways to get rid of this designation
+            worker_name += "_sandbox"
+        workers = await loop.run_in_executor(
+            None, partial(self.db.find_workers, worker_name=worker_name)
+        )
+        if len(workers) == 0:
+            worker = await loop.run_in_executor(
+                None,
+                partial(
+                    crowd_provider.WorkerClass.new_from_provider_data,
+                    self.db,
+                    crowd_data,
+                ),
+            )
+        else:
+            worker = workers[0]
+
+        is_qualified = await loop.run_in_executor(
+            None, partial(worker_is_qualified, worker, live_run.qualifications)
+        )
+        if not is_qualified:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED
+                ).to_dict(),
+            )
+        else:
+            await self.register_agent(crowd_data, worker, request_id)
+
+    async def _assign_unit_to_agent(
+        self,
+        crowd_data: Dict[str, Any],
+        worker: "Worker",
+        request_id: str,
+        units: List["Unit"],
+    ):
+        live_run = self.get_live_run()
+        task_run = live_run.task_run
+        loop = live_run.loop_wrap.loop
+        task_runner = live_run.task_runner
+        crowd_provider = live_run.provider
+
+        logger.debug(
+            f"Worker {worker.db_id} is being assigned one of {len(units)} units."
+        )
+
+        reserved_unit = None
+        while len(units) > 0 and reserved_unit is None:
+            unit = units.pop(0)
+            reserved_unit = task_run.reserve_unit(unit)
+        if reserved_unit is None:
+            AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                ).to_dict(),
+            )
+        else:
+            agent = await loop.run_in_executor(
+                None,
+                partial(
+                    crowd_provider.AgentClass.new_from_provider_data,
+                    self.db,
+                    worker,
+                    unit,
+                    crowd_data,
+                ),
+            )
+            agent.set_live_run(live_run)
+            live_run.client_io.associate_agent_with_registration(
+                agent.get_agent_id(),
+                request_id,
+                crowd_data["agent_registration_id"],
+            )
+            logger.debug(f"Created agent {agent}, {agent.db_id}.")
+
+            # TODO(#649) this is IO bound
+            with EXTERNAL_FUNCTION_LATENCY.labels(
+                function="get_init_data_for_agent"
+            ).time():
+                init_task_data = await loop.run_in_executor(
+                    None,
+                    partial(
+                        task_runner.get_init_data_for_agent,
+                        agent,
+                    ),
+                )
+
+            AGENT_DETAILS_COUNT.labels(response="assigned").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=init_task_data,
+                ).to_dict(),
+            )
+
+            self.agents[agent.get_agent_id()] = agent
+
+            # Launch individual tasks
+            if unit.unit_index < 0 or not live_run.task_runner.is_concurrent:
+                # Run the unit
+                live_run.task_runner.execute_unit(
+                    unit,
+                    agent,
+                )
+            else:
+                # See if the concurrent unit is ready to launch
+                assignment = await loop.run_in_executor(None, unit.get_assignment)
+                agents = await loop.run_in_executor(None, assignment.get_agents)
+                if None in agents:
+                    agent.update_status(AgentState.STATUS_WAITING)
+                    return  # need to wait for all agents to be here to launch
+
+                non_null_agents = [a for a in agents if a is not None]
+                # Launch the backend for this assignment
+                registered_agents = [
+                    self.agents[a.get_agent_id()]
+                    for a in non_null_agents
+                    if a is not None
+                ]
+
+                live_run.task_runner.execute_assignment(assignment, registered_agents)
+
+    async def register_agent_from_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Convert the onboarding agent to a full agent
+        """
+        logger.debug(f"Registering onboarding agent {onboarding_agent}")
+        onboarding_id = onboarding_agent.get_agent_id()
+        onboarding_agent_info = self.onboarding_agents.get(onboarding_id)
+
+        if onboarding_agent_info is None:
+            logger.warning(
+                f"Could not find info for onboarding agent {onboarding_id}, "
+                "but they submitted onboarding"
+            )
+            return
+
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        blueprint = live_run.blueprint
+        worker = onboarding_agent.get_worker()
+
+        assert (
+            isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+        ), "Should only be registering from onboarding if onboarding is required and set"
+
+        # Onboarding validation is run in thread, as we don't know execution time
+        with EXTERNAL_FUNCTION_LATENCY.labels(function="validate_onboarding").time():
+            worker_passed = await loop.run_in_executor(
+                None, partial(blueprint.validate_onboarding, worker, onboarding_agent)
+            )
+
+        assert blueprint.onboarding_qualification_name is not None
+        worker.grant_qualification(
+            blueprint.onboarding_qualification_name, int(worker_passed)
+        )
+        if not worker_passed:
+            ONBOARDING_OUTCOMES.labels(outcome="failed").inc()
+            worker.grant_qualification(
+                blueprint.onboarding_failed_name, int(worker_passed)
+            )
+            onboarding_agent.update_status(AgentState.STATUS_REJECTED)
+            logger.info(f"Onboarding agent {onboarding_id} failed onboarding")
+        else:
+            ONBOARDING_OUTCOMES.labels(outcome="passed").inc()
+            onboarding_agent.update_status(AgentState.STATUS_APPROVED)
+            logger.info(
+                f"Onboarding agent {onboarding_id} registered out from onboarding"
+            )
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None, partial(live_run.task_run.get_valid_units_for_worker, worker)
+            )
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            usable_units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        if not worker_passed:
+            # TODO(WISH) it may be worth investigating launching a dummy task for these
+            # instances where a worker has failed onboarding, but the onboarding
+            # task still allowed submission of the failed data (no front-end validation)
+            # units = [self.dummy_launcher.launch_dummy()]
+            # self._assign_unit_to_agent(..., units)
+            usable_units = []
+
+        onboarding_info = self.onboarding_infos[onboarding_agent.get_agent_id()]
+        crowd_data = onboarding_info.crowd_data
+        request_id = onboarding_info.request_id
+
+        # Assign to a unit
+        if len(usable_units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                ).to_dict(),
+            )
+        else:
+            await self._assign_unit_to_agent(
+                crowd_data, worker, request_id, usable_units
+            )
+
+    async def reconnect_agent(self, agent_id: str, request_id: str):
+        """When an agent reconnects, find and send the relevant data"""
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_runner = live_run.task_runner
+        agent = self.get_agent_for_id(agent_id)
+        if agent is None:
+            logger.info(
+                f"Looking for reconnecting agent {agent_id} but none found locally"
+            )
+            AGENT_DETAILS_COUNT.labels(response="agent_missing").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.TASK_MISSING,
+                ).to_dict(),
+            )
+            return
+        worker = agent.get_worker()
+        AGENT_DETAILS_COUNT.labels(response="reconnection").inc()
+        if isinstance(agent, OnboardingAgent):
+            blueprint = live_run.blueprint
+            assert (
+                isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+            )
+            onboard_data = blueprint.get_onboarding_data(worker.db_id)
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=onboard_data,
+                ).to_dict(),
+            )
+        else:
+            # TODO(#649) this is IO bound
+            with EXTERNAL_FUNCTION_LATENCY.labels(
+                function="get_init_data_for_agent"
+            ).time():
+                init_task_data = await loop.run_in_executor(
+                    None,
+                    partial(
+                        task_runner.get_init_data_for_agent,
+                        agent,
+                    ),
+                )
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=init_task_data,
+                ).to_dict(),
+            )
+
+    async def register_agent(
+        self, crowd_data: Dict[str, Any], worker: "Worker", request_id: str
+    ):
+        """Process an agent registration packet to register an agent, returning the agent_id"""
+        # Process a new agent
+        logger.debug(f"Registering agent {crowd_data}, {request_id}")
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_run = live_run.task_run
+        agent_registration_id = crowd_data["agent_registration_id"]
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = task_run.get_valid_units_for_worker(worker)
+        if len(units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                ).to_dict(),
+            )
+            logger.debug(
+                f"agent_registration_id {agent_registration_id}, had no valid units."
+            )
+            return
+
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        # If there's onboarding, see if this worker has already been disqualified
+        blueprint = live_run.blueprint
+        if isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding:
+            qual_name = blueprint.onboarding_qualification_name
+            assert (
+                qual_name is not None
+            ), "Cannot be using onboarding and have a null qual"
+            if worker.is_disqualified(qual_name):
+                AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                    ).to_dict(),
+                )
+                logger.debug(
+                    f"Worker {worker.db_id} is already disqualified by onboarding "
+                    f"qual {qual_name}."
+                )
+                return
+            elif not worker.is_qualified(qual_name):
+                # Send a packet with onboarding information
+                onboard_data = blueprint.get_onboarding_data(worker.db_id)
+                onboard_agent = OnboardingAgent.new(self.db, worker, task_run)
+                live_run.client_io.associate_agent_with_registration(
+                    onboard_agent.get_agent_id(),
+                    request_id,
+                    crowd_data["agent_registration_id"],
+                )
+                onboard_agent.state.set_init_state(onboard_data)
+                onboard_agent.set_live_run(live_run)
+                onboard_id = onboard_agent.get_agent_id()
+
+                # register onboarding agent
+                self.onboarding_agents[onboard_id] = onboard_agent
+                self.onboarding_infos[onboard_id] = OnboardingInfo(
+                    crowd_data=crowd_data,
+                    request_id=request_id,
+                )
+
+                ONBOARDING_OUTCOMES.labels(outcome="launched").inc()
+                ACTIVE_ONBOARDINGS.inc()
+                AGENT_DETAILS_COUNT.labels(response="assigned_onboarding").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        agent_id=onboard_id,
+                        init_task_data=onboard_data,
+                    ).to_dict(),
+                )
+                logger.info(
+                    f"{worker} is starting onboarding thread with "
+                    f"onboarding {onboard_agent}."
+                )
+
+                async def cleanup_onboarding():
+                    del self.onboarding_agents[onboard_id]
+                    del self.onboarding_infos[onboard_id]
+                    ACTIVE_ONBOARDINGS.dec()
+
+                # Run the onboarding
+                live_run.task_runner.execute_onboarding(
+                    onboard_agent, cleanup_onboarding
+                )
+                return
+        if isinstance(blueprint, ScreenTaskRequired) and blueprint.use_screening_task:
+            if (
+                blueprint.worker_needs_screening(worker)
+                and blueprint.should_generate_unit()
+            ):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_screening_unit_data"
+                ).time():
+                    screening_data = await loop.run_in_executor(
+                        None, blueprint.get_screening_unit_data
+                    )
+                if screening_data is not None:
+                    launcher = live_run.task_launcher
+                    assert (
+                        launcher is not None
+                    ), "LiveTaskRun must have launcher to use screening tasks"
+                    with EXTERNAL_FUNCTION_LATENCY.labels(
+                        function="launch_screening_unit"
+                    ).time():
+                        screen_unit = await loop.run_in_executor(
+                            None,
+                            partial(
+                                launcher.launch_screening_unit,
+                                screening_data,
+                            ),
+                        )
+                    units = [screen_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(
+                        f"No screening units left for {agent_registration_id}."
+                    )
+                    return
+        if isinstance(blueprint, UseGoldUnit) and blueprint.use_golds:
+            if blueprint.should_produce_gold_for_worker(worker):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_gold_unit_data_for_worker"
+                ).time():
+                    gold_data = await loop.run_in_executor(
+                        None, partial(blueprint.get_gold_unit_data_for_worker, worker)
+                    )
+                if gold_data is not None:
+                    launcher = live_run.task_launcher
+                    gold_unit = await loop.run_in_executor(
+                        None,
+                        partial(
+                            launcher.launch_gold_unit,
+                            gold_data,
+                        ),
+                    )
+                    units = [gold_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(f"No gold units left for {agent_registration_id}...")
+                    return
+
+        # Not onboarding, so just register directly
+        await self._assign_unit_to_agent(crowd_data, worker, request_id, units)
+
+    async def push_status_update(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> None:
+        """
+        Force a status update for a specific agent, pushing the db status to
+        the frontend client
+        """
+        status = agent.db_status
+        if isinstance(agent, OnboardingAgent):
+            if status in [AgentState.STATUS_APPROVED, AgentState.STATUS_REJECTED]:
+                # We don't expose the updated status directly to the frontend here
+                # Can be simplified if we improve how bootstrap-chat handles
+                # the transition of onboarding states
+                status = AgentState.STATUS_WAITING
+
+        live_run = self.get_live_run()
+        live_run.client_io.send_status_update(agent.get_agent_id(), status)
+
+    def handle_updated_agent_status(self, status_map: Dict[str, str]):
+        """
+        Handle updating the local statuses for agents based on
+        the previously reported agent statuses.
+
+        Takes as input a mapping from agent_id to server-side status
+        """
+        live_run = self.get_live_run()
+        for agent_id, status in status_map.items():
+            if status not in AgentState.valid():
+                logger.warning(f"Invalid status for agent {agent_id}: {status}")
+                continue
+            agent = self.get_agent_for_id(agent_id)
+            if agent is None:
+                # no longer tracking agent
+                continue
+            db_status = agent.get_status()
+            if status != db_status:
+                if status == AgentState.STATUS_COMPLETED:
+                    # Frontend agent completed but hasn't confirmed yet
+                    continue
+                if status != AgentState.STATUS_DISCONNECT:
+                    # Stale or reconnect, send a status update
+                    live_run.loop_wrap.execute_coro(
+                        self.push_status_update(self.agents[agent_id])
+                    )
+                    continue  # Only DISCONNECT can be marked remotely, rest are mismatch (except STATUS_COMPLETED)
+                agent.update_status(status)
+        pass
+
+    def disconnect_active_agents(self) -> None:
+        """
+        Under a forced shutdown, set the status of all current agents
+        to disconnected to clear their running tasks
+        """
+        for agent in self.agents.values():
+            agent.update_status(AgentState.STATUS_DISCONNECT)
+        for onboarding_agent in self.onboarding_agents.values():
+            onboarding_agent.update_status(AgentState.STATUS_DISCONNECT)
+
+    def shutdown(self) -> None:
+        """Mark shut down. Handle resource cleanup if necessary"""
+        self.is_shutdown = True
+
+ +
+ +

The WorkerPool is responsible for tracing the status and state of workers +and agents that are actively engaged in Mephisto tasks for a given task run. It is +responsible for delegating to other classes and controllers on particular status +transitions.

+
+ + +
+ + +
+ View Source +
    def __init__(self, db: "MephistoDB"):
+        self.db = db
+        # Tracked agents
+        self.agents: Dict[str, "Agent"] = {}
+        self.onboarding_agents: Dict[str, "OnboardingAgent"] = {}
+        self.onboarding_infos: Dict[str, OnboardingInfo] = {}
+        # Agent status handling
+        self.last_status_check = time.time()
+
+        self.is_shutdown = False
+
+        # Deferred initializiation
+        self._live_run: Optional["LiveTaskRun"] = None
+
+ +
+ + + +
+
+
#   + + + def + register_run(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None: +
+ +
+ View Source +
    def register_run(self, live_run: "LiveTaskRun") -> None:
+        """Register a live run for this worker pool"""
+        assert (
+            self._live_run is None
+        ), "Cannot associate more than one live run to a worker pool at a time"
+        self._live_run = live_run
+
+ +
+ +

Register a live run for this worker pool

+
+ + +
+
+
#   + + + def + get_live_run(self) -> mephisto.operations.datatypes.LiveTaskRun: +
+ +
+ View Source +
    def get_live_run(self) -> "LiveTaskRun":
+        """Get the associated live run for this worker pool, asserting it's set"""
+        live_run = self._live_run
+        assert live_run is not None, "Live run must be registered to use this"
+        return live_run
+
+ +
+ +

Get the associated live run for this worker pool, asserting it's set

+
+ + +
+
+
#   + + + def + get_agent_for_id( + self, + agent_id: str +) -> Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent, NoneType]: +
+ +
+ View Source +
    def get_agent_for_id(
+        self, agent_id: str
+    ) -> Optional[Union["Agent", "OnboardingAgent"]]:
+        """Temporary method to get an agent, while API is figured out"""
+        if agent_id in self.agents:
+            return self.agents[agent_id]
+        elif agent_id in self.onboarding_agents:
+            return self.onboarding_agents[agent_id]
+        return None
+
+ +
+ +

Temporary method to get an agent, while API is figured out

+
+ + +
+
+
#   + + + async def + register_worker(self, crowd_data: Dict[str, Any], request_id: str) -> None: +
+ +
+ View Source +
    async def register_worker(
+        self, crowd_data: Dict[str, Any], request_id: str
+    ) -> None:
+        """
+        First process the worker registration, then hand off for
+        registering an agent
+        """
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        crowd_provider = live_run.provider
+        is_sandbox = crowd_provider.is_sandbox()
+        worker_name = crowd_data["worker_name"]
+        if crowd_provider.is_sandbox():
+            # TODO(WISH) there are better ways to get rid of this designation
+            worker_name += "_sandbox"
+        workers = await loop.run_in_executor(
+            None, partial(self.db.find_workers, worker_name=worker_name)
+        )
+        if len(workers) == 0:
+            worker = await loop.run_in_executor(
+                None,
+                partial(
+                    crowd_provider.WorkerClass.new_from_provider_data,
+                    self.db,
+                    crowd_data,
+                ),
+            )
+        else:
+            worker = workers[0]
+
+        is_qualified = await loop.run_in_executor(
+            None, partial(worker_is_qualified, worker, live_run.qualifications)
+        )
+        if not is_qualified:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED
+                ).to_dict(),
+            )
+        else:
+            await self.register_agent(crowd_data, worker, request_id)
+
+ +
+ +

First process the worker registration, then hand off for +registering an agent

+
+ + +
+
+
#   + + + async def + register_agent_from_onboarding(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent): +
+ +
+ View Source +
    async def register_agent_from_onboarding(self, onboarding_agent: "OnboardingAgent"):
+        """
+        Convert the onboarding agent to a full agent
+        """
+        logger.debug(f"Registering onboarding agent {onboarding_agent}")
+        onboarding_id = onboarding_agent.get_agent_id()
+        onboarding_agent_info = self.onboarding_agents.get(onboarding_id)
+
+        if onboarding_agent_info is None:
+            logger.warning(
+                f"Could not find info for onboarding agent {onboarding_id}, "
+                "but they submitted onboarding"
+            )
+            return
+
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        blueprint = live_run.blueprint
+        worker = onboarding_agent.get_worker()
+
+        assert (
+            isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+        ), "Should only be registering from onboarding if onboarding is required and set"
+
+        # Onboarding validation is run in thread, as we don't know execution time
+        with EXTERNAL_FUNCTION_LATENCY.labels(function="validate_onboarding").time():
+            worker_passed = await loop.run_in_executor(
+                None, partial(blueprint.validate_onboarding, worker, onboarding_agent)
+            )
+
+        assert blueprint.onboarding_qualification_name is not None
+        worker.grant_qualification(
+            blueprint.onboarding_qualification_name, int(worker_passed)
+        )
+        if not worker_passed:
+            ONBOARDING_OUTCOMES.labels(outcome="failed").inc()
+            worker.grant_qualification(
+                blueprint.onboarding_failed_name, int(worker_passed)
+            )
+            onboarding_agent.update_status(AgentState.STATUS_REJECTED)
+            logger.info(f"Onboarding agent {onboarding_id} failed onboarding")
+        else:
+            ONBOARDING_OUTCOMES.labels(outcome="passed").inc()
+            onboarding_agent.update_status(AgentState.STATUS_APPROVED)
+            logger.info(
+                f"Onboarding agent {onboarding_id} registered out from onboarding"
+            )
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None, partial(live_run.task_run.get_valid_units_for_worker, worker)
+            )
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            usable_units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        if not worker_passed:
+            # TODO(WISH) it may be worth investigating launching a dummy task for these
+            # instances where a worker has failed onboarding, but the onboarding
+            # task still allowed submission of the failed data (no front-end validation)
+            # units = [self.dummy_launcher.launch_dummy()]
+            # self._assign_unit_to_agent(..., units)
+            usable_units = []
+
+        onboarding_info = self.onboarding_infos[onboarding_agent.get_agent_id()]
+        crowd_data = onboarding_info.crowd_data
+        request_id = onboarding_info.request_id
+
+        # Assign to a unit
+        if len(usable_units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                ).to_dict(),
+            )
+        else:
+            await self._assign_unit_to_agent(
+                crowd_data, worker, request_id, usable_units
+            )
+
+ +
+ +

Convert the onboarding agent to a full agent

+
+ + +
+
+
#   + + + async def + reconnect_agent(self, agent_id: str, request_id: str): +
+ +
+ View Source +
    async def reconnect_agent(self, agent_id: str, request_id: str):
+        """When an agent reconnects, find and send the relevant data"""
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_runner = live_run.task_runner
+        agent = self.get_agent_for_id(agent_id)
+        if agent is None:
+            logger.info(
+                f"Looking for reconnecting agent {agent_id} but none found locally"
+            )
+            AGENT_DETAILS_COUNT.labels(response="agent_missing").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    failure_reason=WorkerFailureReasons.TASK_MISSING,
+                ).to_dict(),
+            )
+            return
+        worker = agent.get_worker()
+        AGENT_DETAILS_COUNT.labels(response="reconnection").inc()
+        if isinstance(agent, OnboardingAgent):
+            blueprint = live_run.blueprint
+            assert (
+                isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding
+            )
+            onboard_data = blueprint.get_onboarding_data(worker.db_id)
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=onboard_data,
+                ).to_dict(),
+            )
+        else:
+            # TODO(#649) this is IO bound
+            with EXTERNAL_FUNCTION_LATENCY.labels(
+                function="get_init_data_for_agent"
+            ).time():
+                init_task_data = await loop.run_in_executor(
+                    None,
+                    partial(
+                        task_runner.get_init_data_for_agent,
+                        agent,
+                    ),
+                )
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    agent_id=agent.get_agent_id(),
+                    init_task_data=init_task_data,
+                ).to_dict(),
+            )
+
+ +
+ +

When an agent reconnects, find and send the relevant data

+
+ + +
+
+
#   + + + async def + register_agent( + self, + crowd_data: Dict[str, Any], + worker: mephisto.data_model.worker.Worker, + request_id: str +): +
+ +
+ View Source +
    async def register_agent(
+        self, crowd_data: Dict[str, Any], worker: "Worker", request_id: str
+    ):
+        """Process an agent registration packet to register an agent, returning the agent_id"""
+        # Process a new agent
+        logger.debug(f"Registering agent {crowd_data}, {request_id}")
+        live_run = self.get_live_run()
+        loop = live_run.loop_wrap.loop
+        task_run = live_run.task_run
+        agent_registration_id = crowd_data["agent_registration_id"]
+
+        # get the list of tentatively valid units
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="get_valid_units_for_worker"
+        ).time():
+            units = task_run.get_valid_units_for_worker(worker)
+        if len(units) == 0:
+            AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+            live_run.client_io.enqueue_agent_details(
+                request_id,
+                AgentDetails(
+                    worker_id=worker.db_id,
+                    failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                ).to_dict(),
+            )
+            logger.debug(
+                f"agent_registration_id {agent_registration_id}, had no valid units."
+            )
+            return
+
+        with EXTERNAL_FUNCTION_LATENCY.labels(
+            function="filter_units_for_worker"
+        ).time():
+            units = await loop.run_in_executor(
+                None,
+                partial(live_run.task_runner.filter_units_for_worker, units, worker),
+            )
+
+        # If there's onboarding, see if this worker has already been disqualified
+        blueprint = live_run.blueprint
+        if isinstance(blueprint, OnboardingRequired) and blueprint.use_onboarding:
+            qual_name = blueprint.onboarding_qualification_name
+            assert (
+                qual_name is not None
+            ), "Cannot be using onboarding and have a null qual"
+            if worker.is_disqualified(qual_name):
+                AGENT_DETAILS_COUNT.labels(response="not_qualified").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        failure_reason=WorkerFailureReasons.NOT_QUALIFIED,
+                    ).to_dict(),
+                )
+                logger.debug(
+                    f"Worker {worker.db_id} is already disqualified by onboarding "
+                    f"qual {qual_name}."
+                )
+                return
+            elif not worker.is_qualified(qual_name):
+                # Send a packet with onboarding information
+                onboard_data = blueprint.get_onboarding_data(worker.db_id)
+                onboard_agent = OnboardingAgent.new(self.db, worker, task_run)
+                live_run.client_io.associate_agent_with_registration(
+                    onboard_agent.get_agent_id(),
+                    request_id,
+                    crowd_data["agent_registration_id"],
+                )
+                onboard_agent.state.set_init_state(onboard_data)
+                onboard_agent.set_live_run(live_run)
+                onboard_id = onboard_agent.get_agent_id()
+
+                # register onboarding agent
+                self.onboarding_agents[onboard_id] = onboard_agent
+                self.onboarding_infos[onboard_id] = OnboardingInfo(
+                    crowd_data=crowd_data,
+                    request_id=request_id,
+                )
+
+                ONBOARDING_OUTCOMES.labels(outcome="launched").inc()
+                ACTIVE_ONBOARDINGS.inc()
+                AGENT_DETAILS_COUNT.labels(response="assigned_onboarding").inc()
+                live_run.client_io.enqueue_agent_details(
+                    request_id,
+                    AgentDetails(
+                        worker_id=worker.db_id,
+                        agent_id=onboard_id,
+                        init_task_data=onboard_data,
+                    ).to_dict(),
+                )
+                logger.info(
+                    f"{worker} is starting onboarding thread with "
+                    f"onboarding {onboard_agent}."
+                )
+
+                async def cleanup_onboarding():
+                    del self.onboarding_agents[onboard_id]
+                    del self.onboarding_infos[onboard_id]
+                    ACTIVE_ONBOARDINGS.dec()
+
+                # Run the onboarding
+                live_run.task_runner.execute_onboarding(
+                    onboard_agent, cleanup_onboarding
+                )
+                return
+        if isinstance(blueprint, ScreenTaskRequired) and blueprint.use_screening_task:
+            if (
+                blueprint.worker_needs_screening(worker)
+                and blueprint.should_generate_unit()
+            ):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_screening_unit_data"
+                ).time():
+                    screening_data = await loop.run_in_executor(
+                        None, blueprint.get_screening_unit_data
+                    )
+                if screening_data is not None:
+                    launcher = live_run.task_launcher
+                    assert (
+                        launcher is not None
+                    ), "LiveTaskRun must have launcher to use screening tasks"
+                    with EXTERNAL_FUNCTION_LATENCY.labels(
+                        function="launch_screening_unit"
+                    ).time():
+                        screen_unit = await loop.run_in_executor(
+                            None,
+                            partial(
+                                launcher.launch_screening_unit,
+                                screening_data,
+                            ),
+                        )
+                    units = [screen_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(
+                        f"No screening units left for {agent_registration_id}."
+                    )
+                    return
+        if isinstance(blueprint, UseGoldUnit) and blueprint.use_golds:
+            if blueprint.should_produce_gold_for_worker(worker):
+                with EXTERNAL_FUNCTION_LATENCY.labels(
+                    function="get_gold_unit_data_for_worker"
+                ).time():
+                    gold_data = await loop.run_in_executor(
+                        None, partial(blueprint.get_gold_unit_data_for_worker, worker)
+                    )
+                if gold_data is not None:
+                    launcher = live_run.task_launcher
+                    gold_unit = await loop.run_in_executor(
+                        None,
+                        partial(
+                            launcher.launch_gold_unit,
+                            gold_data,
+                        ),
+                    )
+                    units = [gold_unit]
+                else:
+                    AGENT_DETAILS_COUNT.labels(response="no_available_units").inc()
+                    live_run.client_io.enqueue_agent_details(
+                        request_id,
+                        AgentDetails(
+                            worker_id=worker.db_id,
+                            failure_reason=WorkerFailureReasons.NO_AVAILABLE_UNITS,
+                        ).to_dict(),
+                    )
+                    logger.debug(f"No gold units left for {agent_registration_id}...")
+                    return
+
+        # Not onboarding, so just register directly
+        await self._assign_unit_to_agent(crowd_data, worker, request_id, units)
+
+ +
+ +

Process an agent registration packet to register an agent, returning the agent_id

+
+ + +
+
+
#   + + + async def + push_status_update( + self, + agent: Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent] +) -> None: +
+ +
+ View Source +
    async def push_status_update(
+        self, agent: Union["Agent", "OnboardingAgent"]
+    ) -> None:
+        """
+        Force a status update for a specific agent, pushing the db status to
+        the frontend client
+        """
+        status = agent.db_status
+        if isinstance(agent, OnboardingAgent):
+            if status in [AgentState.STATUS_APPROVED, AgentState.STATUS_REJECTED]:
+                # We don't expose the updated status directly to the frontend here
+                # Can be simplified if we improve how bootstrap-chat handles
+                # the transition of onboarding states
+                status = AgentState.STATUS_WAITING
+
+        live_run = self.get_live_run()
+        live_run.client_io.send_status_update(agent.get_agent_id(), status)
+
+ +
+ +

Force a status update for a specific agent, pushing the db status to +the frontend client

+
+ + +
+
+
#   + + + def + handle_updated_agent_status(self, status_map: Dict[str, str]): +
+ +
+ View Source +
    def handle_updated_agent_status(self, status_map: Dict[str, str]):
+        """
+        Handle updating the local statuses for agents based on
+        the previously reported agent statuses.
+
+        Takes as input a mapping from agent_id to server-side status
+        """
+        live_run = self.get_live_run()
+        for agent_id, status in status_map.items():
+            if status not in AgentState.valid():
+                logger.warning(f"Invalid status for agent {agent_id}: {status}")
+                continue
+            agent = self.get_agent_for_id(agent_id)
+            if agent is None:
+                # no longer tracking agent
+                continue
+            db_status = agent.get_status()
+            if status != db_status:
+                if status == AgentState.STATUS_COMPLETED:
+                    # Frontend agent completed but hasn't confirmed yet
+                    continue
+                if status != AgentState.STATUS_DISCONNECT:
+                    # Stale or reconnect, send a status update
+                    live_run.loop_wrap.execute_coro(
+                        self.push_status_update(self.agents[agent_id])
+                    )
+                    continue  # Only DISCONNECT can be marked remotely, rest are mismatch (except STATUS_COMPLETED)
+                agent.update_status(status)
+        pass
+
+ +
+ +

Handle updating the local statuses for agents based on +the previously reported agent statuses.

+ +

Takes as input a mapping from agent_id to server-side status

+
+ + +
+
+
#   + + + def + disconnect_active_agents(self) -> None: +
+ +
+ View Source +
    def disconnect_active_agents(self) -> None:
+        """
+        Under a forced shutdown, set the status of all current agents
+        to disconnected to clear their running tasks
+        """
+        for agent in self.agents.values():
+            agent.update_status(AgentState.STATUS_DISCONNECT)
+        for onboarding_agent in self.onboarding_agents.values():
+            onboarding_agent.update_status(AgentState.STATUS_DISCONNECT)
+
+ +
+ +

Under a forced shutdown, set the status of all current agents +to disconnected to clear their running tasks

+
+ + +
+
+
#   + + + def + shutdown(self) -> None: +
+ +
+ View Source +
    def shutdown(self) -> None:
+        """Mark shut down. Handle resource cleanup if necessary"""
+        self.is_shutdown = True
+
+ +
+ +

Mark shut down. Handle resource cleanup if necessary

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts.html b/docs/web/static/python_api/mephisto/scripts.html new file mode 100644 index 000000000..26d4fecd6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts.html @@ -0,0 +1,269 @@ + + + + + + + + + mephisto.scripts API documentation + + + + + + + + + +
+
+

+mephisto.scripts

+ +

scripts

+ +

This directory is for convenience scripts that all Mephisto users may find useful. They should be runnable, polished, and have some kind of API or user interface, as opposed to being methods or modules like those present in the tools directory.

+ +

Scripts in this directory should be grouped into folders by the abstractions or tasks they relate to.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/heroku.html b/docs/web/static/python_api/mephisto/scripts/heroku.html new file mode 100644 index 000000000..94b6d380e --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/heroku.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.scripts.heroku API documentation + + + + + + + + + +
+
+

+mephisto.scripts.heroku

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/heroku/initialize_heroku.html b/docs/web/static/python_api/mephisto/scripts/heroku/initialize_heroku.html new file mode 100644 index 000000000..34c1433e7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/heroku/initialize_heroku.html @@ -0,0 +1,306 @@ + + + + + + + + + mephisto.scripts.heroku.initialize_heroku API documentation + + + + + + + + + +
+
+

+mephisto.scripts.heroku.initialize_heroku

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.architects.heroku_architect import HerokuArchitect
+
+
+def main():
+    """
+    Force Mephisto to check heroku architect's credentials.
+    If this succeeds, then it's a no-op. If it fails,
+    it will print setup instructions
+    """
+    print(
+        "Assessing if heroku credentials are set. "
+        "If this fails, follow the provided instructions."
+    )
+    path, creds = HerokuArchitect.get_user_identifier()
+    print("Successfully identified a logged in heroku user.")
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    """
+    Force Mephisto to check heroku architect's credentials.
+    If this succeeds, then it's a no-op. If it fails,
+    it will print setup instructions
+    """
+    print(
+        "Assessing if heroku credentials are set. "
+        "If this fails, follow the provided instructions."
+    )
+    path, creds = HerokuArchitect.get_user_identifier()
+    print("Successfully identified a logged in heroku user.")
+
+ +
+ +

Force Mephisto to check heroku architect's credentials. +If this succeeds, then it's a no-op. If it fails, +it will print setup instructions

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/local_db.html b/docs/web/static/python_api/mephisto/scripts/local_db.html new file mode 100644 index 000000000..f141efeac --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/local_db.html @@ -0,0 +1,250 @@ + + + + + + + + + mephisto.scripts.local_db API documentation + + + + + + + + + +
+
+

+mephisto.scripts.local_db

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/local_db/load_data_to_mephisto_db.html b/docs/web/static/python_api/mephisto/scripts/local_db/load_data_to_mephisto_db.html new file mode 100644 index 000000000..a9aaca632 --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/local_db/load_data_to_mephisto_db.html @@ -0,0 +1,570 @@ + + + + + + + + + mephisto.scripts.local_db.load_data_to_mephisto_db API documentation + + + + + + + + + +
+
+

+mephisto.scripts.local_db.load_data_to_mephisto_db

+ +

Utility script that directly loads in data from another place to +the MephistoDB under a specified task run, using MockRequester and +MockWorkers as we don't know where the data actually came from.

+ +

!! Currently in development, not necessarily for use !!

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Utility script that directly loads in data from another place to
+the MephistoDB under a specified task run, using MockRequester and
+MockWorkers as we don't know where the data actually came from.
+
+!! Currently in development, not necessarily for use !!
+"""
+
+from mephisto.abstractions.blueprints.static_react_task.static_react_blueprint import (
+    StaticReactBlueprint,
+    BLUEPRINT_TYPE_STATIC_REACT,
+)
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.abstractions.blueprints.abstract.static_task.static_agent_state import (
+    StaticAgentState,
+)
+from mephisto.abstractions.providers.mock.mock_requester import MockRequester
+from mephisto.abstractions.providers.mock.mock_worker import MockWorker
+from mephisto.abstractions.providers.mock.mock_agent import MockAgent
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.data_model.assignment import Assignment, InitializationData
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.agent import Agent
+from mephisto.tools.data_browser import DataBrowser as MephistoDataBrowser
+from mephisto.data_model.task_run import TaskRun
+
+from typing import List, Dict, Any, cast
+
+import json
+
+
+def main():
+    db = LocalMephistoDB()
+
+    # Get the requester that the run will be requested from
+    all_requesters = db.find_requesters(provider_type="mock")
+
+    print("You have the following requesters available for use on mock:")
+    r_names = [r.requester_name for r in all_requesters]
+    print(sorted(r_names))
+
+    use_name = input("Enter the name of the requester to use, or a new requester:\n>> ")
+    while use_name not in r_names:
+        confirm = input(
+            f"{use_name} is not in the requester list. "
+            f"Would you like to create a new MockRequester with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {r_names} \n >> ")
+        else:
+            MockRequester.new(db, use_name)
+            r_names.append(use_name)
+
+    requester = db.find_requesters(provider_type="mock", requester_name=use_name)[0]
+
+    # Get the worker that will be acting as the worker on this task
+    all_workers = db.find_workers(provider_type="mock")
+    print("You have the following workers available for use on mock:")
+    w_names = [r.worker_name for r in all_workers]
+    print(sorted(w_names))
+
+    use_name = input("Enter the name of the worker to use, or a new worker:\n>> ")
+    while use_name not in w_names:
+        confirm = input(
+            f"{use_name} is not in the worker list. "
+            f"Would you like to create a new MockWorker with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {w_names} \n >> ")
+        else:
+            MockWorker.new(db, use_name)
+            w_names.append(use_name)
+
+    worker = db.find_workers(provider_type="mock", worker_name=use_name)[0]
+
+    # Get or create a task run for this
+    tasks = db.find_tasks()
+    task_names = [
+        t.task_name for t in tasks if t.task_type == BLUEPRINT_TYPE_STATIC_REACT
+    ]
+    print(f"Use an existing run? ")
+
+    print(f"You have the following existing mock runs:")
+    print(sorted(task_names))
+
+    use_name = input("Enter the name of the task_run to use, or make a new one:\n>> ")
+    while use_name not in task_names:
+        confirm = input(
+            f"{use_name} is not in the task name list. "
+            f"Would you like to create a new TaskRun with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {task_names} \n >> ")
+        else:
+            task_id = db.new_task(use_name, BLUEPRINT_TYPE_STATIC_REACT)
+            task_names.append(use_name)
+            task_run_id = db.new_task_run(
+                task_id,
+                requester.db_id,
+                json.dumps({}),
+                "mock",
+                BLUEPRINT_TYPE_STATIC_REACT,
+                requester.is_sandbox(),
+            )
+            task_run = TaskRun.get(db, task_run_id)
+
+    tasks = db.find_tasks(task_name=use_name)
+    valid_tasks = [t for t in tasks if t.task_type == BLUEPRINT_TYPE_STATIC_REACT]
+    task_run = db.find_task_runs(task_id=valid_tasks[0].db_id)[0]
+
+    print(f"Found task run: {task_run}")
+
+    test_annotations: List[Dict[str, Any]] = [
+        {
+            "inputs": {"something": True, "something else": False},
+            "outputs": {"some": "annotations"},
+        }
+    ]
+
+    # Write a new task, and then complete it
+    for annotation in test_annotations:
+        assignment_id = db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        assignment = Assignment.get(db, assignment_id)
+        assignment.write_assignment_data(
+            InitializationData(unit_data=[{}], shared=annotation["inputs"])
+        )
+
+        unit_id = db.new_unit(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            assignment_id,
+            0,  # Unit_index
+            0,  # reward
+            task_run.provider_type,
+            task_run.task_type,
+            task_run.sandbox,
+        )
+
+        unit = Unit.get(db, unit_id)
+        agent = MockAgent.new(db, worker, unit)
+        agent_state = cast("StaticAgentState", agent.state)
+        agent_state.state["inputs"] = annotation["inputs"]
+        agent_state.state["outputs"] = annotation["outputs"]
+        agent.state.save_data()
+        agent.mark_done()
+        agent.update_status(AgentState.STATUS_COMPLETED)
+
+    # Show tasks appear in MephistoDB:
+    mephisto_data_browser = MephistoDataBrowser(db=db)
+    units = mephisto_data_browser.get_units_for_task_name(input("Input task name: "))
+    for unit in units:
+        print(mephisto_data_browser.get_data_from_unit(unit))
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    db = LocalMephistoDB()
+
+    # Get the requester that the run will be requested from
+    all_requesters = db.find_requesters(provider_type="mock")
+
+    print("You have the following requesters available for use on mock:")
+    r_names = [r.requester_name for r in all_requesters]
+    print(sorted(r_names))
+
+    use_name = input("Enter the name of the requester to use, or a new requester:\n>> ")
+    while use_name not in r_names:
+        confirm = input(
+            f"{use_name} is not in the requester list. "
+            f"Would you like to create a new MockRequester with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {r_names} \n >> ")
+        else:
+            MockRequester.new(db, use_name)
+            r_names.append(use_name)
+
+    requester = db.find_requesters(provider_type="mock", requester_name=use_name)[0]
+
+    # Get the worker that will be acting as the worker on this task
+    all_workers = db.find_workers(provider_type="mock")
+    print("You have the following workers available for use on mock:")
+    w_names = [r.worker_name for r in all_workers]
+    print(sorted(w_names))
+
+    use_name = input("Enter the name of the worker to use, or a new worker:\n>> ")
+    while use_name not in w_names:
+        confirm = input(
+            f"{use_name} is not in the worker list. "
+            f"Would you like to create a new MockWorker with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {w_names} \n >> ")
+        else:
+            MockWorker.new(db, use_name)
+            w_names.append(use_name)
+
+    worker = db.find_workers(provider_type="mock", worker_name=use_name)[0]
+
+    # Get or create a task run for this
+    tasks = db.find_tasks()
+    task_names = [
+        t.task_name for t in tasks if t.task_type == BLUEPRINT_TYPE_STATIC_REACT
+    ]
+    print(f"Use an existing run? ")
+
+    print(f"You have the following existing mock runs:")
+    print(sorted(task_names))
+
+    use_name = input("Enter the name of the task_run to use, or make a new one:\n>> ")
+    while use_name not in task_names:
+        confirm = input(
+            f"{use_name} is not in the task name list. "
+            f"Would you like to create a new TaskRun with this name? (y)/n > "
+        )
+        if confirm.lower().startswith("n"):
+            use_name = input(f"Okay, enter another name from {task_names} \n >> ")
+        else:
+            task_id = db.new_task(use_name, BLUEPRINT_TYPE_STATIC_REACT)
+            task_names.append(use_name)
+            task_run_id = db.new_task_run(
+                task_id,
+                requester.db_id,
+                json.dumps({}),
+                "mock",
+                BLUEPRINT_TYPE_STATIC_REACT,
+                requester.is_sandbox(),
+            )
+            task_run = TaskRun.get(db, task_run_id)
+
+    tasks = db.find_tasks(task_name=use_name)
+    valid_tasks = [t for t in tasks if t.task_type == BLUEPRINT_TYPE_STATIC_REACT]
+    task_run = db.find_task_runs(task_id=valid_tasks[0].db_id)[0]
+
+    print(f"Found task run: {task_run}")
+
+    test_annotations: List[Dict[str, Any]] = [
+        {
+            "inputs": {"something": True, "something else": False},
+            "outputs": {"some": "annotations"},
+        }
+    ]
+
+    # Write a new task, and then complete it
+    for annotation in test_annotations:
+        assignment_id = db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        assignment = Assignment.get(db, assignment_id)
+        assignment.write_assignment_data(
+            InitializationData(unit_data=[{}], shared=annotation["inputs"])
+        )
+
+        unit_id = db.new_unit(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            assignment_id,
+            0,  # Unit_index
+            0,  # reward
+            task_run.provider_type,
+            task_run.task_type,
+            task_run.sandbox,
+        )
+
+        unit = Unit.get(db, unit_id)
+        agent = MockAgent.new(db, worker, unit)
+        agent_state = cast("StaticAgentState", agent.state)
+        agent_state.state["inputs"] = annotation["inputs"]
+        agent_state.state["outputs"] = annotation["outputs"]
+        agent.state.save_data()
+        agent.mark_done()
+        agent.update_status(AgentState.STATUS_COMPLETED)
+
+    # Show tasks appear in MephistoDB:
+    mephisto_data_browser = MephistoDataBrowser(db=db)
+    units = mephisto_data_browser.get_units_for_task_name(input("Input task name: "))
+    for unit in units:
+        print(mephisto_data_browser.get_data_from_unit(unit))
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk.html b/docs/web/static/python_api/mephisto/scripts/mturk.html new file mode 100644 index 000000000..ce9481935 --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk.html @@ -0,0 +1,283 @@ + + + + + + + + + mephisto.scripts.mturk API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk

+ +

MTurk Scripts

+ +

This directory contains scripts that may be useful for Mephisto users that use MTurk as a crowd provider. Descriptions of the scripts and what they do can be found here:

+ +

Cleanup

+ +

The cleanup script cleanup.py is to be used when a run exits due to a catastrophic failure, such as a power outage, sudden reboot, or series of eager Ctrl-C presses. It will search through any tasks that seem to be active and running, and allow users to select to take them down.

+ +

Upon run, the script will ask what requester you want to clean up from. It will try to find all of the HITs currently associated with that requester, and see if any of them appear to be broken or active. (If you have an active job running, there's currently no clear way to distinguish between those and ones from a previously failed run). After this the script will ask for whether you want to clean up by title, or just clean up all of the tasks.

+ +

Soft-block Workers by MTurk ID

+ +

The script soft_block_workers_by_mturk_id.py exists to allow a smooth transition into using Mephisto for users that may have blocklists in other locations. Mephisto doesn't directly allow granting Mephisto-backed qualifications to workers that are not in the MephistoDB, but this script can be used to assign such a qualification to MTurk workers just by their ID.

+ +

To use the script, enter the requester name that you would like to assign the block from, the Mephisto qualification name you will be using to block, and then a newline separated list of the MTurk IDs you want to block. After this, entering a blank newline will block all of the given workers.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk/cleanup.html b/docs/web/static/python_api/mephisto/scripts/mturk/cleanup.html new file mode 100644 index 000000000..b58f1416e --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk/cleanup.html @@ -0,0 +1,454 @@ + + + + + + + + + mephisto.scripts.mturk.cleanup API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk.cleanup

+ +

Utility script that finds, expires, and disposes HITs that may not +have been taking down during a run that exited improperly.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Utility script that finds, expires, and disposes HITs that may not
+have been taking down during a run that exited improperly.
+"""
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    get_outstanding_hits,
+    expire_and_dispose_hits,
+)
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+
+from typing import List, Dict, Any, Optional
+
+
+def main():
+    db = LocalMephistoDB()
+
+    all_requesters = db.find_requesters(provider_type="mturk")
+    all_requesters += db.find_requesters(provider_type="mturk_sandbox")
+
+    print("You have the following requesters available for mturk and mturk sandbox:")
+    r_names = [r.requester_name for r in all_requesters]
+    print(sorted(r_names))
+
+    use_name = input("Enter the name of the requester to clear HITs from:\n>> ")
+    while use_name not in r_names:
+        use_name = input(
+            f"Sorry, {use_name} is not in the requester list. "
+            f"The following are valid: {r_names}\n"
+            f"Select one:\n>> "
+        )
+
+    requester = db.find_requesters(requester_name=use_name)[0]
+    assert isinstance(requester, MTurkRequester)
+    client = requester._get_client(requester._requester_name)
+
+    outstanding_hit_types = get_outstanding_hits(client)
+    num_hit_types = len(outstanding_hit_types.keys())
+    sum_hits = sum(
+        [len(outstanding_hit_types[x]) for x in outstanding_hit_types.keys()]
+    )
+
+    all_hits: List[Dict[str, Any]] = []
+    for hit_type in outstanding_hit_types.keys():
+        all_hits += outstanding_hit_types[hit_type]
+
+    broken_hits = [
+        h
+        for h in all_hits
+        if h["NumberOfAssignmentsCompleted"] == 0 and h["HITStatus"] != "Reviewable"
+    ]
+
+    print(
+        f"The requester {use_name} has {num_hit_types} outstanding HIT "
+        f"types, with {len(broken_hits)} suspected active or broken HITs.\n"
+        "This may include tasks that are still in-flight, but also "
+        "tasks that have already expired but have not been disposed of yet."
+    )
+
+    run_type = input(
+        "Would you like to cleanup by (t)itle, or just clean up (a)ll?\n>> "
+    )
+    use_hits: Optional[List[Dict[str, Any]]] = None
+
+    while use_hits is None:
+        if run_type.lower().startswith("t"):
+            use_hits = []
+            for hit_type in outstanding_hit_types.keys():
+                cur_title = outstanding_hit_types[hit_type][0]["Title"]
+                print(f"HIT TITLE: {cur_title}")
+                print(f"HIT COUNT: {len(outstanding_hit_types[hit_type])}")
+                should_clear = input(
+                    "Should we cleanup this hit type? (y)es for yes, anything else for no: "
+                    "\n>> "
+                )
+                if should_clear.lower().startswith("y"):
+                    use_hits += outstanding_hit_types[hit_type]
+        elif run_type.lower().startswith("a"):
+            use_hits = all_hits
+        else:
+            run_type = input("Options are (t)itle, or (a)ll:\n>> ")
+
+    print(f"Disposing {len(use_hits)} HITs.")
+    remaining_hits = expire_and_dispose_hits(client, use_hits)
+
+    if len(remaining_hits) == 0:
+        print("Disposed!")
+    else:
+        print(
+            f"After disposing, {len(remaining_hits)} could not be disposed.\n"
+            f"These may not have been reviewed yet, or are being actively worked on.\n"
+            "They have been expired though, so please try to dispose later."
+            "The first 20 dispose errors are added below:"
+        )
+        print([h["dispose_exception"] for h in remaining_hits[:20]])
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    db = LocalMephistoDB()
+
+    all_requesters = db.find_requesters(provider_type="mturk")
+    all_requesters += db.find_requesters(provider_type="mturk_sandbox")
+
+    print("You have the following requesters available for mturk and mturk sandbox:")
+    r_names = [r.requester_name for r in all_requesters]
+    print(sorted(r_names))
+
+    use_name = input("Enter the name of the requester to clear HITs from:\n>> ")
+    while use_name not in r_names:
+        use_name = input(
+            f"Sorry, {use_name} is not in the requester list. "
+            f"The following are valid: {r_names}\n"
+            f"Select one:\n>> "
+        )
+
+    requester = db.find_requesters(requester_name=use_name)[0]
+    assert isinstance(requester, MTurkRequester)
+    client = requester._get_client(requester._requester_name)
+
+    outstanding_hit_types = get_outstanding_hits(client)
+    num_hit_types = len(outstanding_hit_types.keys())
+    sum_hits = sum(
+        [len(outstanding_hit_types[x]) for x in outstanding_hit_types.keys()]
+    )
+
+    all_hits: List[Dict[str, Any]] = []
+    for hit_type in outstanding_hit_types.keys():
+        all_hits += outstanding_hit_types[hit_type]
+
+    broken_hits = [
+        h
+        for h in all_hits
+        if h["NumberOfAssignmentsCompleted"] == 0 and h["HITStatus"] != "Reviewable"
+    ]
+
+    print(
+        f"The requester {use_name} has {num_hit_types} outstanding HIT "
+        f"types, with {len(broken_hits)} suspected active or broken HITs.\n"
+        "This may include tasks that are still in-flight, but also "
+        "tasks that have already expired but have not been disposed of yet."
+    )
+
+    run_type = input(
+        "Would you like to cleanup by (t)itle, or just clean up (a)ll?\n>> "
+    )
+    use_hits: Optional[List[Dict[str, Any]]] = None
+
+    while use_hits is None:
+        if run_type.lower().startswith("t"):
+            use_hits = []
+            for hit_type in outstanding_hit_types.keys():
+                cur_title = outstanding_hit_types[hit_type][0]["Title"]
+                print(f"HIT TITLE: {cur_title}")
+                print(f"HIT COUNT: {len(outstanding_hit_types[hit_type])}")
+                should_clear = input(
+                    "Should we cleanup this hit type? (y)es for yes, anything else for no: "
+                    "\n>> "
+                )
+                if should_clear.lower().startswith("y"):
+                    use_hits += outstanding_hit_types[hit_type]
+        elif run_type.lower().startswith("a"):
+            use_hits = all_hits
+        else:
+            run_type = input("Options are (t)itle, or (a)ll:\n>> ")
+
+    print(f"Disposing {len(use_hits)} HITs.")
+    remaining_hits = expire_and_dispose_hits(client, use_hits)
+
+    if len(remaining_hits) == 0:
+        print("Disposed!")
+    else:
+        print(
+            f"After disposing, {len(remaining_hits)} could not be disposed.\n"
+            f"These may not have been reviewed yet, or are being actively worked on.\n"
+            "They have been expired though, so please try to dispose later."
+            "The first 20 dispose errors are added below:"
+        )
+        print([h["dispose_exception"] for h in remaining_hits[:20]])
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk/identify_broken_units.html b/docs/web/static/python_api/mephisto/scripts/mturk/identify_broken_units.html new file mode 100644 index 000000000..87b8377ab --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk/identify_broken_units.html @@ -0,0 +1,528 @@ + + + + + + + + + mephisto.scripts.mturk.identify_broken_units API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk.identify_broken_units

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.data_model.task_run import TaskRun
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    get_assignments_for_hit,
+    get_outstanding_hits,
+)
+
+
+def main():
+    """
+    Script to crawl through the database for a specific task run and ensure that
+    all of the states of units and related MTurk data is synced up.
+    """
+    TASK_RUN = input("Enter task run ID to check integrity of: \n")
+    db = LocalMephistoDB()
+    task_run = TaskRun(db, TASK_RUN)
+
+    units = task_run.get_units()
+
+    completed_agentless_units = [
+        u
+        for u in units
+        if u.get_status() in ["completed", "accepted", "soft_rejected"]
+        and u.get_assigned_agent() is None
+    ]
+    completed_agented_units = [
+        u
+        for u in units
+        if u.get_status() in ["completed", "accepted", "soft_rejected"]
+        and u.get_assigned_agent() is not None
+    ]
+    completed_timeout_units = [
+        u
+        for u in completed_agented_units
+        if u.get_assigned_agent().get_status() == "timeout"
+    ]
+
+    if len(completed_agentless_units) == 0 and len(completed_timeout_units) == 0:
+        print("It appears everything is as should be!")
+        return
+
+    print(
+        f"Found {len(completed_agentless_units)} completed units without an agent, and "
+        f"{len(completed_timeout_units)} completed units with a timed out agent.\n"
+        "We'll need to query MTurk HITs to determine where these fall..."
+    )
+    print(completed_timeout_units[-5:])
+
+    agents = db.find_agents(task_run_id=TASK_RUN) + db.find_agents(
+        task_run_id=TASK_RUN - 1
+    )
+    requester = units[0].get_requester()
+    client = requester._get_client(requester._requester_name)
+
+    outstanding = get_outstanding_hits(client)
+    print(
+        f"Found {len(outstanding)} different HIT types in flight for this account. "
+        "Select the relevant one below."
+    )
+    for hit_type_id, hits in outstanding.items():
+        print(f"{hit_type_id}({len(hits)} hits): {hits[0]['Title']}")
+        if input("Is this correct?: y/(n) ").lower().startswith("y"):
+            break
+
+    task_hits = outstanding[hit_type_id]
+
+    print(f"Querying assignments for the {len(hits)} tasks.")
+
+    task_assignments_uf = [
+        get_assignments_for_hit(client, h["HITId"]) for h in task_hits
+    ]
+    task_assignments = [t[0] for t in task_assignments_uf if len(t) != 0]
+
+    print(f"Found {len(task_assignments)} assignments to map.")
+
+    print("Constructing worker-to-agent mapping...")
+    worker_id_to_agents = {}
+    for a in agents:
+        worker_id = a.get_worker().worker_name
+        if worker_id not in worker_id_to_agents:
+            worker_id_to_agents[worker_id] = []
+        worker_id_to_agents[worker_id].append(a)
+
+    print("Constructing hit-id to unit mapping for completed...")
+    hit_ids_to_unit = {
+        u.get_mturk_hit_id(): u for u in units if u.get_mturk_hit_id() is not None
+    }
+
+    unattributed_assignments = [
+        t for t in task_assignments if t["HITId"] not in hit_ids_to_unit
+    ]
+
+    print(f"Found {len(unattributed_assignments)} assignments with no mapping!")
+
+    print(f"Mapping unattributed assignments to workers")
+
+    for assignment in unattributed_assignments:
+        worker_id = assignment["WorkerId"]
+        agents = worker_id_to_agents.get(worker_id)
+        print(f"Worker: {worker_id}. Current agents: {agents}")
+        if agents is not None:
+            for agent in agents:
+                if agent.get_status() != "timeout":
+                    continue
+
+                units_agent = agent.get_unit().get_assigned_agent()
+                if units_agent is None or units_agent.db_id != agent.db_id:
+                    continue
+
+                print(
+                    f"Agent {agent} would be a good candidate to reconcile {assignment['HITId']}"
+                )
+                # TODO(WISH) automate the below
+                print(
+                    "You can do this manually by selecting the best candidate, then "
+                    "updating the MTurk datastore to assign this HITId and assignmentId "
+                    "to the given agent and its associated unit. You can then either "
+                    "approve if you can reconcile the agent state, or soft_reject "
+                    "to pay out properly. "
+                )
+
+    do_cleanup = input(
+        f"If all are reconciled, would you like to clean up remaining timeouts? y/(n)"
+    )
+    if do_cleanup.lower().startswith("y"):
+        for unit in completed_agentless_units:
+            unit.set_db_status("expired")
+        for unit in completed_timeout_units:
+            unit.set_db_status("expired")
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    """
+    Script to crawl through the database for a specific task run and ensure that
+    all of the states of units and related MTurk data is synced up.
+    """
+    TASK_RUN = input("Enter task run ID to check integrity of: \n")
+    db = LocalMephistoDB()
+    task_run = TaskRun(db, TASK_RUN)
+
+    units = task_run.get_units()
+
+    completed_agentless_units = [
+        u
+        for u in units
+        if u.get_status() in ["completed", "accepted", "soft_rejected"]
+        and u.get_assigned_agent() is None
+    ]
+    completed_agented_units = [
+        u
+        for u in units
+        if u.get_status() in ["completed", "accepted", "soft_rejected"]
+        and u.get_assigned_agent() is not None
+    ]
+    completed_timeout_units = [
+        u
+        for u in completed_agented_units
+        if u.get_assigned_agent().get_status() == "timeout"
+    ]
+
+    if len(completed_agentless_units) == 0 and len(completed_timeout_units) == 0:
+        print("It appears everything is as should be!")
+        return
+
+    print(
+        f"Found {len(completed_agentless_units)} completed units without an agent, and "
+        f"{len(completed_timeout_units)} completed units with a timed out agent.\n"
+        "We'll need to query MTurk HITs to determine where these fall..."
+    )
+    print(completed_timeout_units[-5:])
+
+    agents = db.find_agents(task_run_id=TASK_RUN) + db.find_agents(
+        task_run_id=TASK_RUN - 1
+    )
+    requester = units[0].get_requester()
+    client = requester._get_client(requester._requester_name)
+
+    outstanding = get_outstanding_hits(client)
+    print(
+        f"Found {len(outstanding)} different HIT types in flight for this account. "
+        "Select the relevant one below."
+    )
+    for hit_type_id, hits in outstanding.items():
+        print(f"{hit_type_id}({len(hits)} hits): {hits[0]['Title']}")
+        if input("Is this correct?: y/(n) ").lower().startswith("y"):
+            break
+
+    task_hits = outstanding[hit_type_id]
+
+    print(f"Querying assignments for the {len(hits)} tasks.")
+
+    task_assignments_uf = [
+        get_assignments_for_hit(client, h["HITId"]) for h in task_hits
+    ]
+    task_assignments = [t[0] for t in task_assignments_uf if len(t) != 0]
+
+    print(f"Found {len(task_assignments)} assignments to map.")
+
+    print("Constructing worker-to-agent mapping...")
+    worker_id_to_agents = {}
+    for a in agents:
+        worker_id = a.get_worker().worker_name
+        if worker_id not in worker_id_to_agents:
+            worker_id_to_agents[worker_id] = []
+        worker_id_to_agents[worker_id].append(a)
+
+    print("Constructing hit-id to unit mapping for completed...")
+    hit_ids_to_unit = {
+        u.get_mturk_hit_id(): u for u in units if u.get_mturk_hit_id() is not None
+    }
+
+    unattributed_assignments = [
+        t for t in task_assignments if t["HITId"] not in hit_ids_to_unit
+    ]
+
+    print(f"Found {len(unattributed_assignments)} assignments with no mapping!")
+
+    print(f"Mapping unattributed assignments to workers")
+
+    for assignment in unattributed_assignments:
+        worker_id = assignment["WorkerId"]
+        agents = worker_id_to_agents.get(worker_id)
+        print(f"Worker: {worker_id}. Current agents: {agents}")
+        if agents is not None:
+            for agent in agents:
+                if agent.get_status() != "timeout":
+                    continue
+
+                units_agent = agent.get_unit().get_assigned_agent()
+                if units_agent is None or units_agent.db_id != agent.db_id:
+                    continue
+
+                print(
+                    f"Agent {agent} would be a good candidate to reconcile {assignment['HITId']}"
+                )
+                # TODO(WISH) automate the below
+                print(
+                    "You can do this manually by selecting the best candidate, then "
+                    "updating the MTurk datastore to assign this HITId and assignmentId "
+                    "to the given agent and its associated unit. You can then either "
+                    "approve if you can reconcile the agent state, or soft_reject "
+                    "to pay out properly. "
+                )
+
+    do_cleanup = input(
+        f"If all are reconciled, would you like to clean up remaining timeouts? y/(n)"
+    )
+    if do_cleanup.lower().startswith("y"):
+        for unit in completed_agentless_units:
+            unit.set_db_status("expired")
+        for unit in completed_timeout_units:
+            unit.set_db_status("expired")
+
+ +
+ +

Script to crawl through the database for a specific task run and ensure that +all of the states of units and related MTurk data is synced up.

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk/launch_makeup_hits.html b/docs/web/static/python_api/mephisto/scripts/mturk/launch_makeup_hits.html new file mode 100644 index 000000000..5274ce63e --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk/launch_makeup_hits.html @@ -0,0 +1,718 @@ + + + + + + + + + mephisto.scripts.mturk.launch_makeup_hits API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk.launch_makeup_hits

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.data_model.task_run import TaskRun, TaskRunArgs
+from mephisto.abstractions.providers.mturk.mturk_utils import (
+    create_hit_type,
+    email_worker,
+    create_compensation_hit_with_hit_type,
+    give_worker_qualification,
+)
+
+from omegaconf import OmegaConf
+import json
+
+from mephisto.data_model.assignment import (
+    Assignment,
+    InitializationData,
+    AssignmentState,
+)
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.qualification import QUAL_NOT_EXIST
+from mephisto.utils.qualifications import make_qualification_dict
+from mephisto.operations.task_launcher import COMPENSATION_UNIT_INDEX
+from mephisto.abstractions.providers.mturk.mturk_provider import MTurkProviderArgs
+from mephisto.abstractions.blueprints.mock.mock_blueprint import MockBlueprintArgs
+from mephisto.abstractions.architects.mock_architect import MockArchitectArgs
+from mephisto.operations.hydra_config import MephistoConfig
+
+
+def build_task_config(compensation_dict, requester):
+    task_args = TaskRunArgs(
+        task_title="Direct compensation task for requester issue",
+        task_description=compensation_dict["reason"],
+        task_reward=compensation_dict["amount"],
+        task_tags="compensation,issue,repay",
+    )
+
+    provider_args = MTurkProviderArgs(
+        requester_name=requester.requester_name,
+    )
+
+    blueprint_args = MockBlueprintArgs()
+    architect_args = MockArchitectArgs()
+    return MephistoConfig(
+        provider=provider_args,
+        blueprint=blueprint_args,
+        architect=architect_args,
+        task=task_args,
+    )
+
+
+def main():
+    """
+    Script to launch makeup tasks for workers that
+    can't be bonused via other avenues.
+
+    Creates a task for a worker, qualifying them directly,
+    and marks as a soft_rejected HIT for the given task name.
+    """
+    db = LocalMephistoDB()
+
+    task_name = input(
+        "Please enter a task name for bookkeeping. This task name will be tied to "
+        "the additional spend granted through this script, and should be the same "
+        "as the task you originally launched that you now need to compensate for:\n>> "
+    )
+    tasks = db.find_tasks(task_name=task_name)
+    if len(tasks) == 0:
+        print("No tasks found with the given name...")
+        all_tasks = db.find_tasks()
+        all_names = set([t.task_name for t in all_tasks])
+        print(f"Choose an existing task of {all_names} to use this functionality.")
+        print(f"Compensation hits must be tied to an existing task")
+        return 0
+    task = tasks[0]
+
+    req_name = input("Please enter an MTurkRequester name to use to bonus from:\n>> ")
+    requesters = db.find_requesters(requester_name=req_name)
+    if len(requesters) == 0:
+        print("Could not find a requester by that name...")
+        return 0
+    requester = requesters[0]
+    client = requester._get_client(requester._requester_name)
+
+    print(
+        "You can now enter a worker id, amount, and reason for as many compensation tasks "
+        "as you want to launch for this."
+    )
+    compensation_hits = []
+    amount = None
+    reason = None
+    while True:
+        worker_id = input(
+            "Enter a worker id to compensate. Leave blank to move on to launching: \n>> "
+        ).strip()
+        if len(worker_id) == 0:
+            break
+        prev_amount = "" if amount is None else f" (leave blank for ${amount})"
+        next_amount = input(
+            f"Enter the amount in dollars to pay out in this compensation task{prev_amount}:\n>> $"
+        )
+        amount = float(next_amount) if len(next_amount.strip()) != 0 else amount
+        assert amount is not None, "Amount can not be left blank"
+        prev_reason = "" if reason is None else f" (leave blank for '{reason}'"
+        next_reason = input(
+            f"Provide reason for launching this compensation task. This will be sent to the worker{prev_reason}:\n>> "
+        )
+        reason = next_reason if len(next_reason.strip()) != 0 else reason
+        assert reason is not None, "Reason can not be left blank"
+        compensation_hits.append(
+            {
+                "worker_id": worker_id,
+                "amount": amount,
+                "reason": reason,
+            }
+        )
+    if len(compensation_hits) == 0:
+        print("No compensation details provided, exiting")
+        return 0
+
+    print(f"You entered the following tasks:\n{compensation_hits}")
+    input("Input anything to confirm and continue...")
+
+    # Iterate through and launch tasks
+    for comp_dict in compensation_hits:
+        # Create the MTurk qualification for this specific worker
+        worker_id = comp_dict["worker_id"]
+        qual_name = f"compensation-for-{worker_id}-on-{task_name}"
+        print(f"Creating qualification for {worker_id}: {qual_name}....")
+        qualification = make_qualification_dict(qual_name, QUAL_EXISTS, None)
+        qual_map = requester.datastore.get_qualification_mapping(qual_name)
+        if qual_map is None:
+            qualification[
+                "QualificationTypeId"
+            ] = requester._create_new_mturk_qualification(qual_name)
+        else:
+            qualification["QualificationTypeId"] = qual_map["mturk_qualification_id"]
+        give_worker_qualification(
+            client, worker_id, qualification["QualificationTypeId"]
+        )
+
+        # Create the task run for this HIT
+        print(f"Creating task run and data model components for this HIT")
+        config = build_task_config(comp_dict, requester)
+        init_params = OmegaConf.to_yaml(OmegaConf.structured(config))
+        new_run_id = db.new_task_run(
+            task.db_id,
+            requester.db_id,
+            json.dumps(init_params),
+            requester.provider_type,
+            "mock",
+            requester.is_sandbox(),
+        )
+        task_run = TaskRun.get(db, new_run_id)
+
+        # Create an assignment, unit, agent, and mark as assigned
+        # Assignment creation
+        task_args = task_run.get_task_args()
+        assignment_id = db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        data = InitializationData({}, [{}])
+        assignment = Assignment.get(db, assignment_id)
+        assignment.write_assignment_data(data)
+
+        # Unit creation
+        unit_id = db.new_unit(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            assignment_id,
+            COMPENSATION_UNIT_INDEX,
+            task_args.task_reward,
+            task_run.provider_type,
+            task_run.task_type,
+            task_run.sandbox,
+        )
+        compensation_unit = Unit.get(db, unit_id)
+        print(f"Created {task_run}, {assignment}, and {compensation_unit}...")
+
+        # Set up HIT type
+        hit_type_id = create_hit_type(
+            client,
+            task_run.get_task_args(),
+            [qualification],
+            auto_approve_delay=30,
+            skip_locale_qual=True,
+        )
+
+        # Create the task on MTurk, email the worker
+        print("Creating and deploying task on MTurk")
+        duration = 60 * 60 * 24
+        run_id = task_run.db_id
+        hit_link, hit_id, response = create_compensation_hit_with_hit_type(
+            client, comp_dict["reason"], hit_type_id
+        )
+        requester.datastore.new_hit(hit_id, hit_link, duration, task_run.db_id)
+
+        print("Sending email to worker...")
+        result = email_worker(
+            client,
+            worker_id,
+            "Compensation HIT Launched",
+            (
+                "Hello Worker,\n We've launched a compensation hit for a task that you've worked on "
+                f"for us in the past. The reason supplied for this task was: {reason}. This task is "
+                f"only doable by you, and should reward ${comp_dict['amount']}. Thanks for being a valued "
+                "contributor to our tasks, and for allowing us to try and resolve the issue.\n\n"
+                f"Your task can be accessed at the following link: {hit_link}."
+            ),
+        )
+
+        if not result[0]:
+            print(
+                f"Email send failed, for reason {result[1]}\n"
+                f"Please send {hit_link} to {worker_id} yourself if they reached out about this issue."
+            )
+
+        # Mark the agent as soft_rejected, such that we've "paid" it
+        compensation_unit.set_db_status(AssignmentState.SOFT_REJECTED)
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + build_task_config(compensation_dict, requester): +
+ +
+ View Source +
def build_task_config(compensation_dict, requester):
+    task_args = TaskRunArgs(
+        task_title="Direct compensation task for requester issue",
+        task_description=compensation_dict["reason"],
+        task_reward=compensation_dict["amount"],
+        task_tags="compensation,issue,repay",
+    )
+
+    provider_args = MTurkProviderArgs(
+        requester_name=requester.requester_name,
+    )
+
+    blueprint_args = MockBlueprintArgs()
+    architect_args = MockArchitectArgs()
+    return MephistoConfig(
+        provider=provider_args,
+        blueprint=blueprint_args,
+        architect=architect_args,
+        task=task_args,
+    )
+
+ +
+ + + +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    """
+    Script to launch makeup tasks for workers that
+    can't be bonused via other avenues.
+
+    Creates a task for a worker, qualifying them directly,
+    and marks as a soft_rejected HIT for the given task name.
+    """
+    db = LocalMephistoDB()
+
+    task_name = input(
+        "Please enter a task name for bookkeeping. This task name will be tied to "
+        "the additional spend granted through this script, and should be the same "
+        "as the task you originally launched that you now need to compensate for:\n>> "
+    )
+    tasks = db.find_tasks(task_name=task_name)
+    if len(tasks) == 0:
+        print("No tasks found with the given name...")
+        all_tasks = db.find_tasks()
+        all_names = set([t.task_name for t in all_tasks])
+        print(f"Choose an existing task of {all_names} to use this functionality.")
+        print(f"Compensation hits must be tied to an existing task")
+        return 0
+    task = tasks[0]
+
+    req_name = input("Please enter an MTurkRequester name to use to bonus from:\n>> ")
+    requesters = db.find_requesters(requester_name=req_name)
+    if len(requesters) == 0:
+        print("Could not find a requester by that name...")
+        return 0
+    requester = requesters[0]
+    client = requester._get_client(requester._requester_name)
+
+    print(
+        "You can now enter a worker id, amount, and reason for as many compensation tasks "
+        "as you want to launch for this."
+    )
+    compensation_hits = []
+    amount = None
+    reason = None
+    while True:
+        worker_id = input(
+            "Enter a worker id to compensate. Leave blank to move on to launching: \n>> "
+        ).strip()
+        if len(worker_id) == 0:
+            break
+        prev_amount = "" if amount is None else f" (leave blank for ${amount})"
+        next_amount = input(
+            f"Enter the amount in dollars to pay out in this compensation task{prev_amount}:\n>> $"
+        )
+        amount = float(next_amount) if len(next_amount.strip()) != 0 else amount
+        assert amount is not None, "Amount can not be left blank"
+        prev_reason = "" if reason is None else f" (leave blank for '{reason}'"
+        next_reason = input(
+            f"Provide reason for launching this compensation task. This will be sent to the worker{prev_reason}:\n>> "
+        )
+        reason = next_reason if len(next_reason.strip()) != 0 else reason
+        assert reason is not None, "Reason can not be left blank"
+        compensation_hits.append(
+            {
+                "worker_id": worker_id,
+                "amount": amount,
+                "reason": reason,
+            }
+        )
+    if len(compensation_hits) == 0:
+        print("No compensation details provided, exiting")
+        return 0
+
+    print(f"You entered the following tasks:\n{compensation_hits}")
+    input("Input anything to confirm and continue...")
+
+    # Iterate through and launch tasks
+    for comp_dict in compensation_hits:
+        # Create the MTurk qualification for this specific worker
+        worker_id = comp_dict["worker_id"]
+        qual_name = f"compensation-for-{worker_id}-on-{task_name}"
+        print(f"Creating qualification for {worker_id}: {qual_name}....")
+        qualification = make_qualification_dict(qual_name, QUAL_EXISTS, None)
+        qual_map = requester.datastore.get_qualification_mapping(qual_name)
+        if qual_map is None:
+            qualification[
+                "QualificationTypeId"
+            ] = requester._create_new_mturk_qualification(qual_name)
+        else:
+            qualification["QualificationTypeId"] = qual_map["mturk_qualification_id"]
+        give_worker_qualification(
+            client, worker_id, qualification["QualificationTypeId"]
+        )
+
+        # Create the task run for this HIT
+        print(f"Creating task run and data model components for this HIT")
+        config = build_task_config(comp_dict, requester)
+        init_params = OmegaConf.to_yaml(OmegaConf.structured(config))
+        new_run_id = db.new_task_run(
+            task.db_id,
+            requester.db_id,
+            json.dumps(init_params),
+            requester.provider_type,
+            "mock",
+            requester.is_sandbox(),
+        )
+        task_run = TaskRun.get(db, new_run_id)
+
+        # Create an assignment, unit, agent, and mark as assigned
+        # Assignment creation
+        task_args = task_run.get_task_args()
+        assignment_id = db.new_assignment(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            task_run.task_type,
+            task_run.provider_type,
+            task_run.sandbox,
+        )
+        data = InitializationData({}, [{}])
+        assignment = Assignment.get(db, assignment_id)
+        assignment.write_assignment_data(data)
+
+        # Unit creation
+        unit_id = db.new_unit(
+            task_run.task_id,
+            task_run.db_id,
+            task_run.requester_id,
+            assignment_id,
+            COMPENSATION_UNIT_INDEX,
+            task_args.task_reward,
+            task_run.provider_type,
+            task_run.task_type,
+            task_run.sandbox,
+        )
+        compensation_unit = Unit.get(db, unit_id)
+        print(f"Created {task_run}, {assignment}, and {compensation_unit}...")
+
+        # Set up HIT type
+        hit_type_id = create_hit_type(
+            client,
+            task_run.get_task_args(),
+            [qualification],
+            auto_approve_delay=30,
+            skip_locale_qual=True,
+        )
+
+        # Create the task on MTurk, email the worker
+        print("Creating and deploying task on MTurk")
+        duration = 60 * 60 * 24
+        run_id = task_run.db_id
+        hit_link, hit_id, response = create_compensation_hit_with_hit_type(
+            client, comp_dict["reason"], hit_type_id
+        )
+        requester.datastore.new_hit(hit_id, hit_link, duration, task_run.db_id)
+
+        print("Sending email to worker...")
+        result = email_worker(
+            client,
+            worker_id,
+            "Compensation HIT Launched",
+            (
+                "Hello Worker,\n We've launched a compensation hit for a task that you've worked on "
+                f"for us in the past. The reason supplied for this task was: {reason}. This task is "
+                f"only doable by you, and should reward ${comp_dict['amount']}. Thanks for being a valued "
+                "contributor to our tasks, and for allowing us to try and resolve the issue.\n\n"
+                f"Your task can be accessed at the following link: {hit_link}."
+            ),
+        )
+
+        if not result[0]:
+            print(
+                f"Email send failed, for reason {result[1]}\n"
+                f"Please send {hit_link} to {worker_id} yourself if they reached out about this issue."
+            )
+
+        # Mark the agent as soft_rejected, such that we've "paid" it
+        compensation_unit.set_db_status(AssignmentState.SOFT_REJECTED)
+
+ +
+ +

Script to launch makeup tasks for workers that +can't be bonused via other avenues.

+ +

Creates a task for a worker, qualifying them directly, +and marks as a soft_rejected HIT for the given task name.

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk/print_outstanding_hit_status.html b/docs/web/static/python_api/mephisto/scripts/mturk/print_outstanding_hit_status.html new file mode 100644 index 000000000..aba8a9b2e --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk/print_outstanding_hit_status.html @@ -0,0 +1,337 @@ + + + + + + + + + mephisto.scripts.mturk.print_outstanding_hit_status API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk.print_outstanding_hit_status

+ +

Utility script that finds, HITs associated with a specific task run, +and tries to get their information

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Utility script that finds, HITs associated with a specific task run,
+and tries to get their information
+"""
+
+from mephisto.abstractions.providers.mturk.mturk_datastore import MTurkDatastore
+from mephisto.abstractions.providers.mturk.mturk_requester import MTurkRequester
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.data_model.task_run import TaskRun
+
+from typing import cast
+
+
+def main():
+    task_run_id = input("Please enter the task_run_id you'd like to check: ")
+    db = LocalMephistoDB()
+    task_run = TaskRun.get(db, task_run_id)
+    requester = task_run.get_requester()
+    if not isinstance(requester, MTurkRequester):
+        print(
+            "Must be checking a task launched on MTurk, this one uses the following requester:"
+        )
+        print(requester)
+        exit(0)
+
+    turk_db = db.get_datastore_for_provider("mturk")
+    hits = turk_db.get_unassigned_hit_ids(task_run_id)
+
+    print(f"Found the following HIT ids unassigned: {hits}")
+
+    # print all of the HITs found above
+    from mephisto.abstractions.providers.mturk.mturk_utils import get_hit
+
+    for hit_id in hits:
+        hit_info = get_hit(requester._get_client(requester._requester_name), hits[0])
+        print(f"MTurk HIT data for {hit_id}:\n{hit_info}\n")
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    task_run_id = input("Please enter the task_run_id you'd like to check: ")
+    db = LocalMephistoDB()
+    task_run = TaskRun.get(db, task_run_id)
+    requester = task_run.get_requester()
+    if not isinstance(requester, MTurkRequester):
+        print(
+            "Must be checking a task launched on MTurk, this one uses the following requester:"
+        )
+        print(requester)
+        exit(0)
+
+    turk_db = db.get_datastore_for_provider("mturk")
+    hits = turk_db.get_unassigned_hit_ids(task_run_id)
+
+    print(f"Found the following HIT ids unassigned: {hits}")
+
+    # print all of the HITs found above
+    from mephisto.abstractions.providers.mturk.mturk_utils import get_hit
+
+    for hit_id in hits:
+        hit_info = get_hit(requester._get_client(requester._requester_name), hits[0])
+        print(f"MTurk HIT data for {hit_id}:\n{hit_info}\n")
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/scripts/mturk/soft_block_workers_by_mturk_id.html b/docs/web/static/python_api/mephisto/scripts/mturk/soft_block_workers_by_mturk_id.html new file mode 100644 index 000000000..fc6d1ead5 --- /dev/null +++ b/docs/web/static/python_api/mephisto/scripts/mturk/soft_block_workers_by_mturk_id.html @@ -0,0 +1,320 @@ + + + + + + + + + mephisto.scripts.mturk.soft_block_workers_by_mturk_id API documentation + + + + + + + + + +
+
+

+mephisto.scripts.mturk.soft_block_workers_by_mturk_id

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.providers.mturk.utils.script_utils import (
+    direct_soft_block_mturk_workers,
+)
+
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+
+
+def main():
+    db = LocalMephistoDB()
+    reqs = db.find_requesters(provider_type="mturk")
+    names = [r.requester_name for r in reqs]
+    print("Available Requesters: ", names)
+
+    requester_name = input("Select a requester to soft block from: ")
+    soft_block_qual_name = input("Provide a soft blocking qualification name: ")
+
+    workers_to_block = []
+    while True:
+        new_id = input("MTurk Worker Id to soft block (blank to block all entered): ")
+        if len(new_id.strip()) == 0:
+            break
+        workers_to_block.append(new_id)
+
+    direct_soft_block_mturk_workers(
+        db, workers_to_block, soft_block_qual_name, requester_name
+    )
+
+
+if __name__ == "__main__":
+    main()
+
+ +
+ +
+
+
#   + + + def + main(): +
+ +
+ View Source +
def main():
+    db = LocalMephistoDB()
+    reqs = db.find_requesters(provider_type="mturk")
+    names = [r.requester_name for r in reqs]
+    print("Available Requesters: ", names)
+
+    requester_name = input("Select a requester to soft block from: ")
+    soft_block_qual_name = input("Provide a soft blocking qualification name: ")
+
+    workers_to_block = []
+    while True:
+        new_id = input("MTurk Worker Id to soft block (blank to block all entered): ")
+        if len(new_id.strip()) == 0:
+            break
+        workers_to_block.append(new_id)
+
+    direct_soft_block_mturk_workers(
+        db, workers_to_block, soft_block_qual_name, requester_name
+    )
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/tools.html b/docs/web/static/python_api/mephisto/tools.html new file mode 100644 index 000000000..928707968 --- /dev/null +++ b/docs/web/static/python_api/mephisto/tools.html @@ -0,0 +1,314 @@ + + + + + + + + + mephisto.tools API documentation + + + + + + + + + +
+
+

+mephisto.tools

+ +

Tools

+ +

The tools directory contains helper methods and modules that allow for lower-level access to the Mephisto data model than the clients provide. These may be useful for creating custom workflows and scripts that are built on Mephisto.

+ +

At the moment this folder contains the following:

+ +
    +
  • MephistoDataBrowser: The MephistoDataBrowser is a convenience tool for accessing all of the units and data associated with a specific task run or task name. It is generally used when reviewing or compiling data.
  • +
  • scripts.py: The methods available in scripts.py are to be used in user scripts that rely on Mephisto. At the moment, these scripts allow for easy configuration of a database as well as augmentation of a script config for use in a Mephisto TaskRun.
  • +
+ +

MephistoDataBrowser

+ +

The MephistoDataBrowser at the moment can handle the job of getting all Units that are associated with a given task or task run. They can also retrieve the relevant data about a Unit, including the work done for that Unit, if the Unit is completed.

+ +

It has three usable methods at the moment:

+ +
    +
  • get_units_for_run_id: This will return a list of all final Unit's associated with the given task_run_id. These will all be in a terminal state, such as COMPLETED, ACCEPTED or REJECTED. Units that are still in flight will not appear using this method.
  • +
  • get_units_for_task_name: This will go through all task runs that share the given task_name, and collect their units in the same manner as get_units_for_run_id.
  • +
  • get_data_from_unit: When given a Unit that is in a terminal state, this method will return data about that Unit, including the Mephisto id of the worker, the status of the work, the data saved by this Unit, and the start and end times for when the worker produced the data.
  • +
+ +

examine_utils.py

+ +

This file contains a number of helper functions that are useful for running reviews over Mephisto data. We provide a high-level script for doing a 'review-by-worker' style evaluation, as well as breakout helper functions that could be useful in alternate review flows.

+ +
    +
  • run_examine_by_worker: This function takes a function format_data_for_printing that consumes the result of MephistoDataBrowser.get_data_from_unit, and should print out to terminal a reviewable format. It optionally takes in task_name, block_qualification, and approve_qualification arguments. If task_name is provided, the script will be run in review mode without querying the user for anything.
  • +
  • print_results: This function takes a task name and display function format_data_for_printing, and an optional int limit, and prints up to limit results to stdout.
  • +
  • format_worker_stats: Takes in a worker id and set of previous worker stats, and returns the previous stats in the format (accepted_count | total_rejected_count (soft_rejected_count) / total count)
  • +
  • prompt_for_options: Prompts the user for task_name, block_qualification, and approve_qualification. If provided as an argument, skips. Returns these values after confirming with the user, and if blank uses None.
  • +
+ +

scripts.py

+ +

This file contains a few helper methods for running scripts relying on the MephistoDB. They are as follows:

+ +
    +
  • get_db_from_config: This method takes in a hydra-produced DictConfig containing a MephistoConfig (such as a TaskConfig), and returns an initialized MephistoDB compatible with the configuration. Right now this exclusively leverages the LocalMephistoDB.
  • +
  • augment_config_from_db: This method takes in a TaskConfig and a MephistoDB, parses the content to ensure that a valid requester and architect setup exists, and then updates the config. It also has validation steps that require user confirmation for live runs. It returns the updated config.
  • +
  • load_db_and_process_config: This is a convenience method that wraps the above two methods, loading in the appropriate MephistoDB and using it to process the script. It returns the db and a valid config.
  • +
  • process_config_and_get_operator: A convenience wrapper of the above method that _also_ creates an Operator too.
  • +
  • task_script: This decorator is used to register a Mephisto script for launching task runs. It takes in either a config (TaskConfig) or default_config_file (yaml filename without the .yaml) argument to specify how the script is configured, and wraps a main that takes in an Operator and DictConfig as arguments.
  • +
+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/tools/data_browser.html b/docs/web/static/python_api/mephisto/tools/data_browser.html new file mode 100644 index 000000000..278b4b5f3 --- /dev/null +++ b/docs/web/static/python_api/mephisto/tools/data_browser.html @@ -0,0 +1,651 @@ + + + + + + + + + mephisto.tools.data_browser API documentation + + + + + + + + + +
+
+

+mephisto.tools.data_browser

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from mephisto.abstractions.database import MephistoDB
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.task_run import TaskRun
+from mephisto.abstractions.blueprint import AgentState
+from mephisto.data_model.agent import Agent
+from mephisto.data_model.worker import Worker
+
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.data_model.constants.assignment_state import AssignmentState
+
+from typing import List, Optional, Any, Dict
+
+
+class DataBrowser:
+    """
+    Class with convenience methods for getting completed data
+    back from runs to parse and manage with other scripts
+    """
+
+    def __init__(self, db=None):
+        if db is None:
+            db = LocalMephistoDB()
+        self.db = db
+
+    def _get_units_for_task_runs(self, task_runs: List[TaskRun]) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from all
+        the provided TaskRuns.
+        """
+        units = []
+        for task_run in task_runs:
+            assignments = task_run.get_assignments()
+            for assignment in assignments:
+                found_units = assignment.get_units()
+                for unit in found_units:
+                    if unit.get_status() in [
+                        AssignmentState.COMPLETED,
+                        AssignmentState.ACCEPTED,
+                        AssignmentState.REJECTED,
+                        AssignmentState.SOFT_REJECTED,
+                    ]:
+                        units.append(unit)
+        return units
+
+    def get_task_name_list(self) -> List[str]:
+        return [task.task_name for task in self.db.find_tasks()]
+
+    def get_units_for_task_name(self, task_name: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from all
+        task runs with the given task_name
+        """
+        tasks = self.db.find_tasks(task_name=task_name)
+        assert len(tasks) >= 1, f"No task found under name {task_name}"
+        task_runs = self.db.find_task_runs(task_id=tasks[0].db_id)
+        return self._get_units_for_task_runs(task_runs)
+
+    def get_units_for_run_id(self, run_id: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from the
+        task run with the given run_id
+        """
+        task_run = TaskRun.get(self.db, run_id)
+        return self._get_units_for_task_runs([task_run])
+
+    def get_data_from_unit(self, unit: Unit) -> Dict[str, Any]:
+        """
+        Return a dict containing all data associated with the given
+        unit, including its status, data, and start and end time.
+
+        Also includes the DB ids for the worker, the unit, and the
+        relevant assignment this unit was a part of.
+        """
+        agent = unit.get_assigned_agent()
+        assert (
+            agent is not None
+        ), f"Trying to get completed data from unassigned unit {unit}"
+        return {
+            "worker_id": agent.worker_id,
+            "unit_id": unit.db_id,
+            "assignment_id": unit.assignment_id,
+            "status": agent.db_status,
+            "data": agent.state.get_parsed_data(),
+            "task_start": agent.state.get_task_start(),
+            "task_end": agent.state.get_task_end(),
+        }
+
+    def get_workers_with_qualification(self, qualification_name: str) -> List[Worker]:
+        """
+        Returns a list of 'Worker's for workers who are qualified wrt `qualification_name`.
+        """
+        qual_list = self.db.find_qualifications(qualification_name=qualification_name)
+        assert len(qual_list) >= 1, f"No qualification found named {qualification_name}"
+        qualification_id = qual_list[0].db_id
+        qualifieds = self.db.check_granted_qualifications(
+            qualification_id=qualification_id, value=1
+        )
+        return [Worker.get(self.db, qual.worker_id) for qual in qualifieds]
+
+ +
+ +
+
+
+ #   + + + class + DataBrowser: +
+ +
+ View Source +
class DataBrowser:
+    """
+    Class with convenience methods for getting completed data
+    back from runs to parse and manage with other scripts
+    """
+
+    def __init__(self, db=None):
+        if db is None:
+            db = LocalMephistoDB()
+        self.db = db
+
+    def _get_units_for_task_runs(self, task_runs: List[TaskRun]) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from all
+        the provided TaskRuns.
+        """
+        units = []
+        for task_run in task_runs:
+            assignments = task_run.get_assignments()
+            for assignment in assignments:
+                found_units = assignment.get_units()
+                for unit in found_units:
+                    if unit.get_status() in [
+                        AssignmentState.COMPLETED,
+                        AssignmentState.ACCEPTED,
+                        AssignmentState.REJECTED,
+                        AssignmentState.SOFT_REJECTED,
+                    ]:
+                        units.append(unit)
+        return units
+
+    def get_task_name_list(self) -> List[str]:
+        return [task.task_name for task in self.db.find_tasks()]
+
+    def get_units_for_task_name(self, task_name: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from all
+        task runs with the given task_name
+        """
+        tasks = self.db.find_tasks(task_name=task_name)
+        assert len(tasks) >= 1, f"No task found under name {task_name}"
+        task_runs = self.db.find_task_runs(task_id=tasks[0].db_id)
+        return self._get_units_for_task_runs(task_runs)
+
+    def get_units_for_run_id(self, run_id: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from the
+        task run with the given run_id
+        """
+        task_run = TaskRun.get(self.db, run_id)
+        return self._get_units_for_task_runs([task_run])
+
+    def get_data_from_unit(self, unit: Unit) -> Dict[str, Any]:
+        """
+        Return a dict containing all data associated with the given
+        unit, including its status, data, and start and end time.
+
+        Also includes the DB ids for the worker, the unit, and the
+        relevant assignment this unit was a part of.
+        """
+        agent = unit.get_assigned_agent()
+        assert (
+            agent is not None
+        ), f"Trying to get completed data from unassigned unit {unit}"
+        return {
+            "worker_id": agent.worker_id,
+            "unit_id": unit.db_id,
+            "assignment_id": unit.assignment_id,
+            "status": agent.db_status,
+            "data": agent.state.get_parsed_data(),
+            "task_start": agent.state.get_task_start(),
+            "task_end": agent.state.get_task_end(),
+        }
+
+    def get_workers_with_qualification(self, qualification_name: str) -> List[Worker]:
+        """
+        Returns a list of 'Worker's for workers who are qualified wrt `qualification_name`.
+        """
+        qual_list = self.db.find_qualifications(qualification_name=qualification_name)
+        assert len(qual_list) >= 1, f"No qualification found named {qualification_name}"
+        qualification_id = qual_list[0].db_id
+        qualifieds = self.db.check_granted_qualifications(
+            qualification_id=qualification_id, value=1
+        )
+        return [Worker.get(self.db, qual.worker_id) for qual in qualifieds]
+
+ +
+ +

Class with convenience methods for getting completed data +back from runs to parse and manage with other scripts

+
+ + +
+
#   + + + DataBrowser(db=None) +
+ +
+ View Source +
    def __init__(self, db=None):
+        if db is None:
+            db = LocalMephistoDB()
+        self.db = db
+
+ +
+ + + +
+
+
#   + + + def + get_task_name_list(self) -> List[str]: +
+ +
+ View Source +
    def get_task_name_list(self) -> List[str]:
+        return [task.task_name for task in self.db.find_tasks()]
+
+ +
+ + + +
+
+
#   + + + def + get_units_for_task_name(self, task_name: str) -> List[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    def get_units_for_task_name(self, task_name: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from all
+        task runs with the given task_name
+        """
+        tasks = self.db.find_tasks(task_name=task_name)
+        assert len(tasks) >= 1, f"No task found under name {task_name}"
+        task_runs = self.db.find_task_runs(task_id=tasks[0].db_id)
+        return self._get_units_for_task_runs(task_runs)
+
+ +
+ +

Return a list of all Units in a terminal completed state from all +task runs with the given task_name

+
+ + +
+
+
#   + + + def + get_units_for_run_id(self, run_id: str) -> List[mephisto.data_model.unit.Unit]: +
+ +
+ View Source +
    def get_units_for_run_id(self, run_id: str) -> List[Unit]:
+        """
+        Return a list of all Units in a terminal completed state from the
+        task run with the given run_id
+        """
+        task_run = TaskRun.get(self.db, run_id)
+        return self._get_units_for_task_runs([task_run])
+
+ +
+ +

Return a list of all Units in a terminal completed state from the +task run with the given run_id

+
+ + +
+
+
#   + + + def + get_data_from_unit(self, unit: mephisto.data_model.unit.Unit) -> Dict[str, Any]: +
+ +
+ View Source +
    def get_data_from_unit(self, unit: Unit) -> Dict[str, Any]:
+        """
+        Return a dict containing all data associated with the given
+        unit, including its status, data, and start and end time.
+
+        Also includes the DB ids for the worker, the unit, and the
+        relevant assignment this unit was a part of.
+        """
+        agent = unit.get_assigned_agent()
+        assert (
+            agent is not None
+        ), f"Trying to get completed data from unassigned unit {unit}"
+        return {
+            "worker_id": agent.worker_id,
+            "unit_id": unit.db_id,
+            "assignment_id": unit.assignment_id,
+            "status": agent.db_status,
+            "data": agent.state.get_parsed_data(),
+            "task_start": agent.state.get_task_start(),
+            "task_end": agent.state.get_task_end(),
+        }
+
+ +
+ +

Return a dict containing all data associated with the given +unit, including its status, data, and start and end time.

+ +

Also includes the DB ids for the worker, the unit, and the +relevant assignment this unit was a part of.

+
+ + +
+
+
#   + + + def + get_workers_with_qualification( + self, + qualification_name: str +) -> List[mephisto.data_model.worker.Worker]: +
+ +
+ View Source +
    def get_workers_with_qualification(self, qualification_name: str) -> List[Worker]:
+        """
+        Returns a list of 'Worker's for workers who are qualified wrt `qualification_name`.
+        """
+        qual_list = self.db.find_qualifications(qualification_name=qualification_name)
+        assert len(qual_list) >= 1, f"No qualification found named {qualification_name}"
+        qualification_id = qual_list[0].db_id
+        qualifieds = self.db.check_granted_qualifications(
+            qualification_id=qualification_id, value=1
+        )
+        return [Worker.get(self.db, qual.worker_id) for qual in qualifieds]
+
+ +
+ +

Returns a list of 'Worker's for workers who are qualified wrt qualification_name.

+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/tools/examine_utils.html b/docs/web/static/python_api/mephisto/tools/examine_utils.html new file mode 100644 index 000000000..d306a68dc --- /dev/null +++ b/docs/web/static/python_api/mephisto/tools/examine_utils.html @@ -0,0 +1,935 @@ + + + + + + + + + mephisto.tools.examine_utils API documentation + + + + + + + + + +
+
+

+mephisto.tools.examine_utils

+ +

Utilities specifically for running examine scripts. Example usage can be +seen in the examine results scripts in the examples directory.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+"""
+Utilities specifically for running examine scripts. Example usage can be
+seen in the examine results scripts in the examples directory.
+"""
+
+from mephisto.tools.data_browser import DataBrowser
+from mephisto.data_model.worker import Worker
+from mephisto.utils.qualifications import find_or_create_qualification
+import traceback
+
+from typing import TYPE_CHECKING, Optional, Tuple, Callable, Dict, Any, List
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.unit import Unit
+
+
+def _get_and_format_data(
+    data_browser: "DataBrowser",
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+    unit: "Unit",
+) -> str:
+    """
+    Safetly wrapped function to extract the display data string for a specific unit.
+    Catches and prints any exceptions.
+    """
+    formatted = "Error formatting data, see above..."
+    try:
+        data = data_browser.get_data_from_unit(unit)
+        try:
+            formatted = format_data_for_printing(data)
+        except Exception as e:
+            print(f"Unexpected error formatting data for {unit}: {e}")
+            # Print the full exception, as this could be user error on the
+            # formatting function
+            traceback.print_exc()
+    except Exception as e:
+        print(f"Unexpected error getting data for {unit}: {e}")
+    return formatted
+
+
+def print_results(
+    db: "MephistoDB",
+    task_name: str,
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+    start: Optional[int] = None,
+    end: Optional[int] = None,
+) -> None:
+    """
+    Script to write out to stdout from start to end results from the task with the given task name
+    """
+    data_browser = DataBrowser(db=db)
+    units = data_browser.get_units_for_task_name(task_name)
+    if end is None:
+        end = len(units)
+    if start is None:
+        start = 0
+    units.reverse()
+    for unit in units[start:end]:
+        print(_get_and_format_data(data_browser, format_data_for_printing, unit))
+
+
+def prompt_for_options(
+    task_name: Optional[str] = None,
+    block_qualification: Optional[str] = None,
+    approve_qualification: Optional[str] = None,
+) -> Tuple[str, Optional[str], Optional[str]]:
+    """
+    Utility to request common user options for examine scripts.
+    Leave `block_qualification` or `approve_qualification` as empty strings
+    to skip their respective prompt.
+    """
+    if task_name is None:
+        task_name = input("Input task name: ")
+    if block_qualification is None:
+        block_qualification = input(
+            "If you'd like to soft-block workers, you'll need a block qualification. "
+            "Leave blank otherwise.\nEnter block qualification: "
+        )
+    if approve_qualification is None:
+        approve_qualification = input(
+            "If you'd like to qualify high-quality workers, you'll need an approve "
+            "qualification. Leave blank otherwise.\nEnter approve qualification: "
+        )
+    if len(block_qualification.strip()) == 0:
+        block_qualification = None
+    if len(approve_qualification.strip()) == 0:
+        approve_qualification = None
+    input(
+        "Starting review with following params:\n"
+        f"Task name: {task_name}\n"
+        f"Blocking qualification: {block_qualification}\n"
+        f"Approve qualification: {approve_qualification}\n"
+        "Press enter to continue... "
+    )
+    return task_name, block_qualification, approve_qualification
+
+
+def get_worker_stats(units: List["Unit"]) -> Dict[str, Dict[str, List["Unit"]]]:
+    """
+    Traverse a list of units and create a mapping from worker id
+    to their units, grouped by their current status
+    """
+    previous_work_by_worker: Dict[str, Dict[str, List["Unit"]]] = {}
+    for unit in units:
+        w_id = unit.worker_id
+        if w_id not in previous_work_by_worker:
+            previous_work_by_worker[w_id] = {
+                "accepted": [],
+                "soft_rejected": [],
+                "rejected": [],
+            }
+        previous_work_by_worker[w_id][unit.get_status()].append(unit)
+    return previous_work_by_worker
+
+
+def format_worker_stats(
+    worker_id: str, previous_work_by_worker: Dict[str, Dict[str, List["Unit"]]]
+) -> str:
+    """
+    When given a worker id and a list of worker stats, return a string
+    containing the proportion of accepted to rejected work.
+    """
+    prev_work = previous_work_by_worker.get(worker_id)
+    if prev_work is None:
+        return "(First time worker!)"
+    accepted_work = len(prev_work["accepted"])
+    soft_rejected_work = len(prev_work["soft_rejected"])
+    rejected_work = len(prev_work["rejected"])
+    return f"({accepted_work} | {rejected_work + soft_rejected_work}({soft_rejected_work}) / {accepted_work + soft_rejected_work + rejected_work})"
+
+
+def run_examine_by_worker(
+    db: "MephistoDB",
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+    task_name: Optional[str] = None,
+    block_qualification: Optional[str] = None,
+    approve_qualification: Optional[str] = None,
+):
+    """
+    Basic script for reviewing work, grouped by worker for convenience. First gets
+    the required information to run a review, then
+    """
+    data_browser = DataBrowser(db=db)
+
+    # Get initial arguments
+    if task_name is None:
+        task_name, block_qualification, approve_qualification = prompt_for_options(
+            task_name, block_qualification, approve_qualification
+        )
+
+    tasks = db.find_tasks(task_name=task_name)
+    assert len(tasks) >= 1, f"No task found under name {task_name}"
+
+    print(
+        "You will be reviewing actual tasks with this flow. Tasks that you either Accept or Pass "
+        "will be paid out to the worker, while rejected tasks will not. Passed tasks will be "
+        "specially marked such that you can leave them out of your dataset. \n"
+        "You may enter the option in caps to apply it to the rest of the units for a given worker."
+    )
+    if block_qualification is not None:
+        created_block_qual = find_or_create_qualification(db, block_qualification)
+        print(
+            "When you pass or reject a task, the script gives you an option to disqualify the worker "
+            "from future tasks by assigning a qualification. If provided, this worker will no "
+            "longer be able to work on tasks where the set --block-qualification shares the same name "
+            f"you provided above: {block_qualification}\n"
+        )
+    if approve_qualification is not None:
+        created_approve_qual = find_or_create_qualification(db, approve_qualification)
+        print(
+            "You may use this script to establish a qualified worker pool by granting the provided "
+            f"approve qualification {approve_qualification} to workers you think understand the task "
+            "well. This will be provided as an option for workers you (A)pprove all on. "
+            "Future tasks can use this qual as a required qualification, as described in the "
+            "common qualification flows document."
+        )
+    print(
+        "**************\n"
+        "You should only reject tasks when it is clear the worker has acted in bad faith, and "
+        "didn't actually do the task. Prefer to pass on tasks that were misunderstandings.\n"
+        "**************\n"
+    )
+
+    units = data_browser.get_units_for_task_name(task_name)
+
+    others = [u for u in units if u.get_status() != "completed"]
+    units = [u for u in units if u.get_status() == "completed"]
+    reviews_left = len(units)
+    previous_work_by_worker = get_worker_stats(others)
+
+    # Determine allowed options
+    options = ["a", "p", "r"]
+    options_string = "Do you want to accept this work? (a)ccept, (r)eject, (p)ass:"
+
+    units_by_worker: Dict[str, List["Unit"]] = {}
+
+    for u in units:
+        w_id = u.worker_id
+        if w_id not in units_by_worker:
+            units_by_worker[w_id] = []
+        units_by_worker[w_id].append(u)
+
+    # Run the review
+    for w_id, w_units in units_by_worker.items():
+        worker = Worker.get(db, w_id)
+        worker_name = worker.worker_name
+        apply_all_decision = None
+        reason = None
+        for idx, unit in enumerate(w_units):
+
+            print(
+                f"Reviewing for worker {worker_name}, ({idx+1}/{len(w_units)}), "
+                f"Previous {format_worker_stats(w_id, previous_work_by_worker)} "
+                f"(total remaining: {reviews_left})"
+            )
+            reviews_left -= 1
+            print(format_data_for_printing(data_browser.get_data_from_unit(unit)))
+            if apply_all_decision is not None:
+                decision = apply_all_decision
+            else:
+                decision = input(
+                    "Do you want to accept this work? (a)ccept, (r)eject, (p)ass: "
+                )
+            while decision.lower() not in options:
+                decision = input(
+                    "Decision must be one of a, p, r. Use CAPS to apply to all remaining for worker: "
+                )
+
+            agent = unit.get_assigned_agent()
+            assert (
+                agent is not None
+            ), f"Can't make decision on None agent... issue with {unit}"
+            if decision.lower() == "a":
+                agent.approve_work()
+                if decision == "A" and approve_qualification is not None:
+                    should_special_qualify = input(
+                        "Do you want to approve qualify this worker? (y)es/(n)o: "
+                    )
+                    if should_special_qualify.lower() in ["y", "yes"]:
+                        worker.grant_qualification(approve_qualification, 1)
+            elif decision.lower() == "p":
+                agent.soft_reject_work()
+                if apply_all_decision is None and block_qualification is not None:
+                    should_soft_block = input(
+                        "Do you want to soft block this worker? (y)es/(n)o: "
+                    )
+                    if should_soft_block.lower() in ["y", "yes"]:
+                        worker.grant_qualification(block_qualification, 1)
+            else:  # decision = 'r'
+                if apply_all_decision is None:
+                    reason = input("Why are you rejecting this work? ")
+                    should_block = input(
+                        "Do you want to hard block this worker? (y)es/(n)o: "
+                    )
+                    if should_block.lower() in ["y", "yes"]:
+                        block_reason = input("Why permanently block this worker? ")
+                        worker.block_worker(block_reason)
+                agent.reject_work(reason)
+
+            if decision.lower() != decision:
+                apply_all_decision = decision.lower()
+
+
+def run_examine_or_review(
+    db: "MephistoDB",
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+) -> None:
+    do_review = input(
+        "Do you want to (r)eview, or (e)xamine data? Default "
+        "examine. Can put e <end> or e <start> <end> to choose "
+        "how many to view\n"
+    )
+
+    if do_review.lower().startswith("r"):
+        run_examine_by_worker(db, format_data_for_printing)
+    else:
+        start = 0
+        end = 15
+        opts = do_review.split(" ")
+        if len(opts) == 2:
+            end = int(opts[1])
+        elif len(opts) == 3:
+            start = int(opts[1])
+            end = int(opts[2])
+        task_name = input("Input task name: ")
+        print_results(db, task_name, format_data_for_printing, start=start, end=end)
+
+ +
+ +
+ +
+
#   + + + def + prompt_for_options( + task_name: Union[str, NoneType] = None, + block_qualification: Union[str, NoneType] = None, + approve_qualification: Union[str, NoneType] = None +) -> Tuple[str, Union[str, NoneType], Union[str, NoneType]]: +
+ +
+ View Source +
def prompt_for_options(
+    task_name: Optional[str] = None,
+    block_qualification: Optional[str] = None,
+    approve_qualification: Optional[str] = None,
+) -> Tuple[str, Optional[str], Optional[str]]:
+    """
+    Utility to request common user options for examine scripts.
+    Leave `block_qualification` or `approve_qualification` as empty strings
+    to skip their respective prompt.
+    """
+    if task_name is None:
+        task_name = input("Input task name: ")
+    if block_qualification is None:
+        block_qualification = input(
+            "If you'd like to soft-block workers, you'll need a block qualification. "
+            "Leave blank otherwise.\nEnter block qualification: "
+        )
+    if approve_qualification is None:
+        approve_qualification = input(
+            "If you'd like to qualify high-quality workers, you'll need an approve "
+            "qualification. Leave blank otherwise.\nEnter approve qualification: "
+        )
+    if len(block_qualification.strip()) == 0:
+        block_qualification = None
+    if len(approve_qualification.strip()) == 0:
+        approve_qualification = None
+    input(
+        "Starting review with following params:\n"
+        f"Task name: {task_name}\n"
+        f"Blocking qualification: {block_qualification}\n"
+        f"Approve qualification: {approve_qualification}\n"
+        "Press enter to continue... "
+    )
+    return task_name, block_qualification, approve_qualification
+
+ +
+ +

Utility to request common user options for examine scripts. +Leave block_qualification or approve_qualification as empty strings +to skip their respective prompt.

+
+ + +
+
+
#   + + + def + get_worker_stats( + units: list[mephisto.data_model.unit.Unit] +) -> dict[str, dict[str, list[mephisto.data_model.unit.Unit]]]: +
+ +
+ View Source +
def get_worker_stats(units: List["Unit"]) -> Dict[str, Dict[str, List["Unit"]]]:
+    """
+    Traverse a list of units and create a mapping from worker id
+    to their units, grouped by their current status
+    """
+    previous_work_by_worker: Dict[str, Dict[str, List["Unit"]]] = {}
+    for unit in units:
+        w_id = unit.worker_id
+        if w_id not in previous_work_by_worker:
+            previous_work_by_worker[w_id] = {
+                "accepted": [],
+                "soft_rejected": [],
+                "rejected": [],
+            }
+        previous_work_by_worker[w_id][unit.get_status()].append(unit)
+    return previous_work_by_worker
+
+ +
+ +

Traverse a list of units and create a mapping from worker id +to their units, grouped by their current status

+
+ + +
+
+
#   + + + def + format_worker_stats( + worker_id: str, + previous_work_by_worker: dict[str, dict[str, list[mephisto.data_model.unit.Unit]]] +) -> str: +
+ +
+ View Source +
def format_worker_stats(
+    worker_id: str, previous_work_by_worker: Dict[str, Dict[str, List["Unit"]]]
+) -> str:
+    """
+    When given a worker id and a list of worker stats, return a string
+    containing the proportion of accepted to rejected work.
+    """
+    prev_work = previous_work_by_worker.get(worker_id)
+    if prev_work is None:
+        return "(First time worker!)"
+    accepted_work = len(prev_work["accepted"])
+    soft_rejected_work = len(prev_work["soft_rejected"])
+    rejected_work = len(prev_work["rejected"])
+    return f"({accepted_work} | {rejected_work + soft_rejected_work}({soft_rejected_work}) / {accepted_work + soft_rejected_work + rejected_work})"
+
+ +
+ +

When given a worker id and a list of worker stats, return a string +containing the proportion of accepted to rejected work.

+
+ + +
+
+
#   + + + def + run_examine_by_worker( + db: mephisto.abstractions.database.MephistoDB, + format_data_for_printing: Callable[[Dict[str, Any]], str], + task_name: Union[str, NoneType] = None, + block_qualification: Union[str, NoneType] = None, + approve_qualification: Union[str, NoneType] = None +): +
+ +
+ View Source +
def run_examine_by_worker(
+    db: "MephistoDB",
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+    task_name: Optional[str] = None,
+    block_qualification: Optional[str] = None,
+    approve_qualification: Optional[str] = None,
+):
+    """
+    Basic script for reviewing work, grouped by worker for convenience. First gets
+    the required information to run a review, then
+    """
+    data_browser = DataBrowser(db=db)
+
+    # Get initial arguments
+    if task_name is None:
+        task_name, block_qualification, approve_qualification = prompt_for_options(
+            task_name, block_qualification, approve_qualification
+        )
+
+    tasks = db.find_tasks(task_name=task_name)
+    assert len(tasks) >= 1, f"No task found under name {task_name}"
+
+    print(
+        "You will be reviewing actual tasks with this flow. Tasks that you either Accept or Pass "
+        "will be paid out to the worker, while rejected tasks will not. Passed tasks will be "
+        "specially marked such that you can leave them out of your dataset. \n"
+        "You may enter the option in caps to apply it to the rest of the units for a given worker."
+    )
+    if block_qualification is not None:
+        created_block_qual = find_or_create_qualification(db, block_qualification)
+        print(
+            "When you pass or reject a task, the script gives you an option to disqualify the worker "
+            "from future tasks by assigning a qualification. If provided, this worker will no "
+            "longer be able to work on tasks where the set --block-qualification shares the same name "
+            f"you provided above: {block_qualification}\n"
+        )
+    if approve_qualification is not None:
+        created_approve_qual = find_or_create_qualification(db, approve_qualification)
+        print(
+            "You may use this script to establish a qualified worker pool by granting the provided "
+            f"approve qualification {approve_qualification} to workers you think understand the task "
+            "well. This will be provided as an option for workers you (A)pprove all on. "
+            "Future tasks can use this qual as a required qualification, as described in the "
+            "common qualification flows document."
+        )
+    print(
+        "**************\n"
+        "You should only reject tasks when it is clear the worker has acted in bad faith, and "
+        "didn't actually do the task. Prefer to pass on tasks that were misunderstandings.\n"
+        "**************\n"
+    )
+
+    units = data_browser.get_units_for_task_name(task_name)
+
+    others = [u for u in units if u.get_status() != "completed"]
+    units = [u for u in units if u.get_status() == "completed"]
+    reviews_left = len(units)
+    previous_work_by_worker = get_worker_stats(others)
+
+    # Determine allowed options
+    options = ["a", "p", "r"]
+    options_string = "Do you want to accept this work? (a)ccept, (r)eject, (p)ass:"
+
+    units_by_worker: Dict[str, List["Unit"]] = {}
+
+    for u in units:
+        w_id = u.worker_id
+        if w_id not in units_by_worker:
+            units_by_worker[w_id] = []
+        units_by_worker[w_id].append(u)
+
+    # Run the review
+    for w_id, w_units in units_by_worker.items():
+        worker = Worker.get(db, w_id)
+        worker_name = worker.worker_name
+        apply_all_decision = None
+        reason = None
+        for idx, unit in enumerate(w_units):
+
+            print(
+                f"Reviewing for worker {worker_name}, ({idx+1}/{len(w_units)}), "
+                f"Previous {format_worker_stats(w_id, previous_work_by_worker)} "
+                f"(total remaining: {reviews_left})"
+            )
+            reviews_left -= 1
+            print(format_data_for_printing(data_browser.get_data_from_unit(unit)))
+            if apply_all_decision is not None:
+                decision = apply_all_decision
+            else:
+                decision = input(
+                    "Do you want to accept this work? (a)ccept, (r)eject, (p)ass: "
+                )
+            while decision.lower() not in options:
+                decision = input(
+                    "Decision must be one of a, p, r. Use CAPS to apply to all remaining for worker: "
+                )
+
+            agent = unit.get_assigned_agent()
+            assert (
+                agent is not None
+            ), f"Can't make decision on None agent... issue with {unit}"
+            if decision.lower() == "a":
+                agent.approve_work()
+                if decision == "A" and approve_qualification is not None:
+                    should_special_qualify = input(
+                        "Do you want to approve qualify this worker? (y)es/(n)o: "
+                    )
+                    if should_special_qualify.lower() in ["y", "yes"]:
+                        worker.grant_qualification(approve_qualification, 1)
+            elif decision.lower() == "p":
+                agent.soft_reject_work()
+                if apply_all_decision is None and block_qualification is not None:
+                    should_soft_block = input(
+                        "Do you want to soft block this worker? (y)es/(n)o: "
+                    )
+                    if should_soft_block.lower() in ["y", "yes"]:
+                        worker.grant_qualification(block_qualification, 1)
+            else:  # decision = 'r'
+                if apply_all_decision is None:
+                    reason = input("Why are you rejecting this work? ")
+                    should_block = input(
+                        "Do you want to hard block this worker? (y)es/(n)o: "
+                    )
+                    if should_block.lower() in ["y", "yes"]:
+                        block_reason = input("Why permanently block this worker? ")
+                        worker.block_worker(block_reason)
+                agent.reject_work(reason)
+
+            if decision.lower() != decision:
+                apply_all_decision = decision.lower()
+
+ +
+ +

Basic script for reviewing work, grouped by worker for convenience. First gets +the required information to run a review, then

+
+ + +
+
+
#   + + + def + run_examine_or_review( + db: mephisto.abstractions.database.MephistoDB, + format_data_for_printing: Callable[[Dict[str, Any]], str] +) -> None: +
+ +
+ View Source +
def run_examine_or_review(
+    db: "MephistoDB",
+    format_data_for_printing: Callable[[Dict[str, Any]], str],
+) -> None:
+    do_review = input(
+        "Do you want to (r)eview, or (e)xamine data? Default "
+        "examine. Can put e <end> or e <start> <end> to choose "
+        "how many to view\n"
+    )
+
+    if do_review.lower().startswith("r"):
+        run_examine_by_worker(db, format_data_for_printing)
+    else:
+        start = 0
+        end = 15
+        opts = do_review.split(" ")
+        if len(opts) == 2:
+            end = int(opts[1])
+        elif len(opts) == 3:
+            start = int(opts[1])
+            end = int(opts[2])
+        task_name = input("Input task name: ")
+        print_results(db, task_name, format_data_for_printing, start=start, end=end)
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/tools/scripts.html b/docs/web/static/python_api/mephisto/tools/scripts.html new file mode 100644 index 000000000..2122f53d1 --- /dev/null +++ b/docs/web/static/python_api/mephisto/tools/scripts.html @@ -0,0 +1,905 @@ + + + + + + + + + mephisto.tools.scripts API documentation + + + + + + + + + +
+
+

+mephisto.tools.scripts

+ +

Utilities that are useful for Mephisto-related scripts.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+"""
+Utilities that are useful for Mephisto-related scripts.
+"""
+
+from mephisto.abstractions.databases.local_database import LocalMephistoDB
+from mephisto.operations.operator import Operator
+from mephisto.abstractions.databases.local_singleton_database import MephistoSingletonDB
+from mephisto.utils.testing import get_mock_requester
+from mephisto.utils.dirs import get_root_data_dir, get_run_file_dir
+from mephisto.operations.hydra_config import (
+    build_default_task_config,
+    register_script_config,
+    TaskConfig,
+)
+
+from omegaconf import DictConfig, OmegaConf
+
+import functools
+import hydra
+import argparse
+import subprocess
+from typing import (
+    Tuple,
+    Dict,
+    Any,
+    Type,
+    TypeVar,
+    Callable,
+    Optional,
+    cast,
+    TYPE_CHECKING,
+)
+import os
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+
+
+def load_db_and_process_config(
+    cfg: DictConfig, print_config=False
+) -> Tuple["MephistoDB", DictConfig]:
+    """
+    Using a Hydra DictConfig built from a TaskConfig,
+    load the desired MephistoDB and
+    validate the config against the database contents, then
+    return the database and validated config.
+
+    Takes in an option to print out the configuration before returning
+    """
+    db = get_db_from_config(cfg)
+    valid_config = augment_config_from_db(cfg, db)
+    if print_config:
+        print(OmegaConf.to_yaml(valid_config))
+    return db, valid_config
+
+
+def process_config_and_get_operator(
+    cfg: DictConfig, print_config=False
+) -> Tuple["Operator", DictConfig]:
+    """
+    Using a Hydra DictConfig built from a TaskConfig,
+    return an operator for that task as well as a validated config.
+
+    Takes in an option to print out the configuration before returning
+    """
+    db, valid_config = load_db_and_process_config(cfg, print_config=print_config)
+    return Operator(db), valid_config
+
+
+TaskFunction = TypeVar("TaskFunction", bound=Callable[..., Any])
+
+
+def task_script(
+    config: Optional[Type[TaskConfig]] = None,
+    default_config_file: Optional[str] = None,
+    config_path: str = "hydra_configs",  # Override if using a different dir
+) -> Callable[[TaskFunction], Any]:
+    """
+    Create a decorator for the main of a Mephisto task script
+
+    Must provide one of config (a TaskConfig dataclass) or default_config_file
+    (the location of a default task config hydra yaml), the former
+    will be preferred.
+
+    May specify a config_path override if not using `hydra_configs` at the
+    run script location.
+    """
+    if config is not None:
+        used_config = config
+    else:
+        assert (
+            default_config_file is not None
+        ), "Must provide one of config or default_config_file"
+        used_config = build_default_task_config(default_config_file)
+    register_script_config(name="taskconfig", module=used_config)
+
+    def task_script_wrapper(script_func: TaskFunction) -> TaskFunction:
+        @functools.wraps(script_func)
+        def process_config_and_run_main(cfg: "DictConfig"):
+            operator, cfg = process_config_and_get_operator(cfg)
+            try:
+                ret_val = script_func(operator, cfg)
+            except Exception as e:
+                raise e
+            finally:
+                if not operator.is_shutdown:
+                    operator.shutdown()
+            return ret_val
+
+        absolute_config_path = os.path.abspath(
+            os.path.join(get_run_file_dir(), config_path)
+        )
+        hydra_wrapper = hydra.main(
+            config_path=absolute_config_path, config_name="taskconfig"
+        )
+        return cast(TaskFunction, hydra_wrapper(process_config_and_run_main))
+
+    return task_script_wrapper
+
+
+def get_db_from_config(cfg: DictConfig) -> "MephistoDB":
+    """
+    Get a MephistoDB from the given configuration. As of now
+    this defaults to a LocalMephistoDB
+    """
+    datapath = cfg.mephisto.get("datapath", None)
+
+    if datapath is None:
+        datapath = get_root_data_dir()
+
+    database_path = os.path.join(datapath, "database.db")
+
+    database_type = cfg.mephisto.database._database_type
+
+    if database_type == "local":
+        return LocalMephistoDB(database_path=database_path)
+    elif database_type == "singleton":
+        return MephistoSingletonDB(database_path=database_path)
+    else:
+        raise AssertionError(f"Provided database_type {database_type} is not valid")
+
+
+def augment_config_from_db(script_cfg: DictConfig, db: "MephistoDB") -> DictConfig:
+    """
+    Check the database for validity of the incoming MephistoConfig, ensure
+    that the config has all the necessary fields set.
+    """
+    cfg = script_cfg.mephisto
+    requester_name = cfg.provider.get("requester_name", None)
+    provider_type = cfg.provider.get("_provider_type", None)
+    architect_type = cfg.architect.get("_architect_type", None)
+
+    if requester_name is None:
+        if provider_type is None:
+            print("No requester specified, defaulting to mock")
+            provider_type = "mock"
+        if provider_type == "mock":
+            req = get_mock_requester(db)
+            requester_name = req.requester_name
+        else:
+            reqs = db.find_requesters(provider_type=provider_type)
+            if len(reqs) == 0:
+                print(
+                    f"No requesters found for provider type {provider_type}, please "
+                    f"register one. You can register with `mephisto register {provider_type}`, "
+                    f"or `python mephisto/client/cli.py register {provider_type}` if you haven't "
+                    "installed Mephisto using poetry."
+                )
+                exit(1)
+            elif len(reqs) == 1:
+                req = reqs[0]
+                requester_name = req.requester_name
+                print(
+                    f"Found one `{provider_type}` requester to launch with: {requester_name}"
+                )
+            else:
+                req = reqs[-1]
+                requester_name = req.requester_name
+                print(
+                    f"Found many `{provider_type}` requesters to launch with, "
+                    f"choosing the most recent: {requester_name}"
+                )
+    else:
+        # Ensure provided requester exists
+        reqs = db.find_requesters(requester_name=requester_name)
+        if len(reqs) == 0:
+            print(
+                f"No requesters found under name {requester_name}, "
+                "have you registered with `mephisto register`?"
+            )
+            exit(1)
+        provider_type = reqs[0].provider_type
+
+    if provider_type in ["mturk"]:
+        input(
+            f"This task is going to launch live on {provider_type}, press enter to continue: "
+        )
+    if provider_type in ["mturk_sandbox", "mturk"] and architect_type not in [
+        "heroku",
+        "ec2",
+    ]:
+        input(
+            f"This task is going to launch live on {provider_type}, but your "
+            f"provided architect is {architect_type}, are you sure you "
+            "want to do this? : "
+        )
+
+    cfg.provider.requester_name = requester_name
+    cfg.provider._provider_type = provider_type
+    return script_cfg
+
+
+def build_custom_bundle(custom_src_dir):
+    """Locate all of the custom files used for a custom build, create
+    a prebuild directory containing all of them, then build the
+    custom source.
+
+    Check dates to only go through this build process when files have changes
+    """
+    IGNORE_FOLDERS = {"node_modules", "build"}
+
+    prebuild_path = os.path.join(custom_src_dir, "webapp")
+
+    IGNORE_FOLDERS = {os.path.join(prebuild_path, f) for f in IGNORE_FOLDERS}
+    build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+    # see if we need to rebuild
+    if os.path.exists(build_path):
+        created_date = os.path.getmtime(build_path)
+        up_to_date = True
+
+        for root, dirs, files in os.walk(prebuild_path):
+            for igf in IGNORE_FOLDERS:
+                should_ignore = False
+                if igf in root:
+                    should_ignore = True
+            if should_ignore:
+                continue
+            if not up_to_date:
+                break
+            for fname in files:
+                path = os.path.join(root, fname)
+                if os.path.getmtime(path) > created_date:
+                    up_to_date = False
+                    break
+        if up_to_date:
+            return build_path
+
+    # navigate and build
+    return_dir = os.getcwd()
+    os.chdir(prebuild_path)
+    packages_installed = subprocess.call(["npm", "install"])
+    if packages_installed != 0:
+        raise Exception(
+            "please make sure npm is installed, otherwise view "
+            "the above error for more info."
+        )
+
+    webpack_complete = subprocess.call(["npm", "run", "dev"])
+    if webpack_complete != 0:
+        raise Exception(
+            "Webpack appears to have failed to build your "
+            "frontend. See the above error for more information."
+        )
+
+    # cleanup and return
+    os.chdir(return_dir)
+    return build_path
+
+ +
+ +
+
+
#   + + + def + load_db_and_process_config( + cfg: omegaconf.dictconfig.DictConfig, + print_config=False +) -> tuple[mephisto.abstractions.database.MephistoDB, omegaconf.dictconfig.DictConfig]: +
+ +
+ View Source +
def load_db_and_process_config(
+    cfg: DictConfig, print_config=False
+) -> Tuple["MephistoDB", DictConfig]:
+    """
+    Using a Hydra DictConfig built from a TaskConfig,
+    load the desired MephistoDB and
+    validate the config against the database contents, then
+    return the database and validated config.
+
+    Takes in an option to print out the configuration before returning
+    """
+    db = get_db_from_config(cfg)
+    valid_config = augment_config_from_db(cfg, db)
+    if print_config:
+        print(OmegaConf.to_yaml(valid_config))
+    return db, valid_config
+
+ +
+ +

Using a Hydra DictConfig built from a TaskConfig, +load the desired MephistoDB and +validate the config against the database contents, then +return the database and validated config.

+ +

Takes in an option to print out the configuration before returning

+
+ + +
+
+
#   + + + def + process_config_and_get_operator( + cfg: omegaconf.dictconfig.DictConfig, + print_config=False +) -> tuple[mephisto.operations.operator.Operator, omegaconf.dictconfig.DictConfig]: +
+ +
+ View Source +
def process_config_and_get_operator(
+    cfg: DictConfig, print_config=False
+) -> Tuple["Operator", DictConfig]:
+    """
+    Using a Hydra DictConfig built from a TaskConfig,
+    return an operator for that task as well as a validated config.
+
+    Takes in an option to print out the configuration before returning
+    """
+    db, valid_config = load_db_and_process_config(cfg, print_config=print_config)
+    return Operator(db), valid_config
+
+ +
+ +

Using a Hydra DictConfig built from a TaskConfig, +return an operator for that task as well as a validated config.

+ +

Takes in an option to print out the configuration before returning

+
+ + +
+
+
#   + + + def + task_script( + config: Union[Type[mephisto.operations.hydra_config.TaskConfig], NoneType] = None, + default_config_file: Union[str, NoneType] = None, + config_path: str = 'hydra_configs' +) -> Callable[[~TaskFunction], Any]: +
+ +
+ View Source +
def task_script(
+    config: Optional[Type[TaskConfig]] = None,
+    default_config_file: Optional[str] = None,
+    config_path: str = "hydra_configs",  # Override if using a different dir
+) -> Callable[[TaskFunction], Any]:
+    """
+    Create a decorator for the main of a Mephisto task script
+
+    Must provide one of config (a TaskConfig dataclass) or default_config_file
+    (the location of a default task config hydra yaml), the former
+    will be preferred.
+
+    May specify a config_path override if not using `hydra_configs` at the
+    run script location.
+    """
+    if config is not None:
+        used_config = config
+    else:
+        assert (
+            default_config_file is not None
+        ), "Must provide one of config or default_config_file"
+        used_config = build_default_task_config(default_config_file)
+    register_script_config(name="taskconfig", module=used_config)
+
+    def task_script_wrapper(script_func: TaskFunction) -> TaskFunction:
+        @functools.wraps(script_func)
+        def process_config_and_run_main(cfg: "DictConfig"):
+            operator, cfg = process_config_and_get_operator(cfg)
+            try:
+                ret_val = script_func(operator, cfg)
+            except Exception as e:
+                raise e
+            finally:
+                if not operator.is_shutdown:
+                    operator.shutdown()
+            return ret_val
+
+        absolute_config_path = os.path.abspath(
+            os.path.join(get_run_file_dir(), config_path)
+        )
+        hydra_wrapper = hydra.main(
+            config_path=absolute_config_path, config_name="taskconfig"
+        )
+        return cast(TaskFunction, hydra_wrapper(process_config_and_run_main))
+
+    return task_script_wrapper
+
+ +
+ +

Create a decorator for the main of a Mephisto task script

+ +

Must provide one of config (a TaskConfig dataclass) or default_config_file +(the location of a default task config hydra yaml), the former +will be preferred.

+ +

May specify a config_path override if not using hydra_configs at the +run script location.

+
+ + +
+
+
#   + + + def + get_db_from_config( + cfg: omegaconf.dictconfig.DictConfig +) -> mephisto.abstractions.database.MephistoDB: +
+ +
+ View Source +
def get_db_from_config(cfg: DictConfig) -> "MephistoDB":
+    """
+    Get a MephistoDB from the given configuration. As of now
+    this defaults to a LocalMephistoDB
+    """
+    datapath = cfg.mephisto.get("datapath", None)
+
+    if datapath is None:
+        datapath = get_root_data_dir()
+
+    database_path = os.path.join(datapath, "database.db")
+
+    database_type = cfg.mephisto.database._database_type
+
+    if database_type == "local":
+        return LocalMephistoDB(database_path=database_path)
+    elif database_type == "singleton":
+        return MephistoSingletonDB(database_path=database_path)
+    else:
+        raise AssertionError(f"Provided database_type {database_type} is not valid")
+
+ +
+ +

Get a MephistoDB from the given configuration. As of now +this defaults to a LocalMephistoDB

+
+ + +
+
+
#   + + + def + augment_config_from_db( + script_cfg: omegaconf.dictconfig.DictConfig, + db: mephisto.abstractions.database.MephistoDB +) -> omegaconf.dictconfig.DictConfig: +
+ +
+ View Source +
def augment_config_from_db(script_cfg: DictConfig, db: "MephistoDB") -> DictConfig:
+    """
+    Check the database for validity of the incoming MephistoConfig, ensure
+    that the config has all the necessary fields set.
+    """
+    cfg = script_cfg.mephisto
+    requester_name = cfg.provider.get("requester_name", None)
+    provider_type = cfg.provider.get("_provider_type", None)
+    architect_type = cfg.architect.get("_architect_type", None)
+
+    if requester_name is None:
+        if provider_type is None:
+            print("No requester specified, defaulting to mock")
+            provider_type = "mock"
+        if provider_type == "mock":
+            req = get_mock_requester(db)
+            requester_name = req.requester_name
+        else:
+            reqs = db.find_requesters(provider_type=provider_type)
+            if len(reqs) == 0:
+                print(
+                    f"No requesters found for provider type {provider_type}, please "
+                    f"register one. You can register with `mephisto register {provider_type}`, "
+                    f"or `python mephisto/client/cli.py register {provider_type}` if you haven't "
+                    "installed Mephisto using poetry."
+                )
+                exit(1)
+            elif len(reqs) == 1:
+                req = reqs[0]
+                requester_name = req.requester_name
+                print(
+                    f"Found one `{provider_type}` requester to launch with: {requester_name}"
+                )
+            else:
+                req = reqs[-1]
+                requester_name = req.requester_name
+                print(
+                    f"Found many `{provider_type}` requesters to launch with, "
+                    f"choosing the most recent: {requester_name}"
+                )
+    else:
+        # Ensure provided requester exists
+        reqs = db.find_requesters(requester_name=requester_name)
+        if len(reqs) == 0:
+            print(
+                f"No requesters found under name {requester_name}, "
+                "have you registered with `mephisto register`?"
+            )
+            exit(1)
+        provider_type = reqs[0].provider_type
+
+    if provider_type in ["mturk"]:
+        input(
+            f"This task is going to launch live on {provider_type}, press enter to continue: "
+        )
+    if provider_type in ["mturk_sandbox", "mturk"] and architect_type not in [
+        "heroku",
+        "ec2",
+    ]:
+        input(
+            f"This task is going to launch live on {provider_type}, but your "
+            f"provided architect is {architect_type}, are you sure you "
+            "want to do this? : "
+        )
+
+    cfg.provider.requester_name = requester_name
+    cfg.provider._provider_type = provider_type
+    return script_cfg
+
+ +
+ +

Check the database for validity of the incoming MephistoConfig, ensure +that the config has all the necessary fields set.

+
+ + +
+
+
#   + + + def + build_custom_bundle(custom_src_dir): +
+ +
+ View Source +
def build_custom_bundle(custom_src_dir):
+    """Locate all of the custom files used for a custom build, create
+    a prebuild directory containing all of them, then build the
+    custom source.
+
+    Check dates to only go through this build process when files have changes
+    """
+    IGNORE_FOLDERS = {"node_modules", "build"}
+
+    prebuild_path = os.path.join(custom_src_dir, "webapp")
+
+    IGNORE_FOLDERS = {os.path.join(prebuild_path, f) for f in IGNORE_FOLDERS}
+    build_path = os.path.join(prebuild_path, "build", "bundle.js")
+
+    # see if we need to rebuild
+    if os.path.exists(build_path):
+        created_date = os.path.getmtime(build_path)
+        up_to_date = True
+
+        for root, dirs, files in os.walk(prebuild_path):
+            for igf in IGNORE_FOLDERS:
+                should_ignore = False
+                if igf in root:
+                    should_ignore = True
+            if should_ignore:
+                continue
+            if not up_to_date:
+                break
+            for fname in files:
+                path = os.path.join(root, fname)
+                if os.path.getmtime(path) > created_date:
+                    up_to_date = False
+                    break
+        if up_to_date:
+            return build_path
+
+    # navigate and build
+    return_dir = os.getcwd()
+    os.chdir(prebuild_path)
+    packages_installed = subprocess.call(["npm", "install"])
+    if packages_installed != 0:
+        raise Exception(
+            "please make sure npm is installed, otherwise view "
+            "the above error for more info."
+        )
+
+    webpack_complete = subprocess.call(["npm", "run", "dev"])
+    if webpack_complete != 0:
+        raise Exception(
+            "Webpack appears to have failed to build your "
+            "frontend. See the above error for more information."
+        )
+
+    # cleanup and return
+    os.chdir(return_dir)
+    return build_path
+
+ +
+ +

Locate all of the custom files used for a custom build, create +a prebuild directory containing all of them, then build the +custom source.

+ +

Check dates to only go through this build process when files have changes

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils.html b/docs/web/static/python_api/mephisto/utils.html new file mode 100644 index 000000000..91b54e3b7 --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils.html @@ -0,0 +1,296 @@ + + + + + + + + + mephisto.utils API documentation + + + + + + + + + +
+
+

+mephisto.utils

+ +

Utils

+ +

Contains classes and utility functions that are generally useful for Mephisto classes to rely on and which don't better belong in a specific subfolder. These are differ from tools, which are more likely to be used directly by external Mephisto users rather than internal Mephisto classes.

+ +

metrics.py

+ +

This file contains useful functionality for managing the prometheus and grafana servers associated with Mephisto.

+ +

logger_core.py

+ +

This module contains helpers to simplify the process of generating unique loggers and logging configuration for various parts of Mephisto. At the moment this only outlines the basic logging style that Mephisto uses, though much is still to be done in order to set up logging throughout Mephisto, simplified controls for getting debug information across certain files, and user configuration of Mephisto logs.

+ +

dirs.py

+ +

This file contains number of helper utils that (at the moment) rely on the local-storage implementation of Mephisto. These utils help navigate the files present in the mephisto architecture, identify task files, link classes, etc. Docstrings in this class explain in more detail.

+ +

testing.py

+ +

This file contains functions that are specifically useful for setting up mock data in tests.

+ +

qualifications.py

+ +

This file contains helpers that are used for interfacing with or creating Mephisto qualifications.

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+"""
+.. include:: README.md
+"""
+__docformat__ = "restructuredtext"
+
+ +
+ +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils/dirs.html b/docs/web/static/python_api/mephisto/utils/dirs.html new file mode 100644 index 000000000..c1b64dec9 --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils/dirs.html @@ -0,0 +1,711 @@ + + + + + + + + + mephisto.utils.dirs API documentation + + + + + + + + + +
+
+

+mephisto.utils.dirs

+ +

Contains centralized accessors for default Mephisto directories

+
+ +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Contains centralized accessors for default Mephisto directories
+"""
+
+import os
+import sys
+
+from distutils.dir_util import copy_tree
+from mephisto.data_model.constants import NO_PROJECT_NAME
+from mephisto.operations.config_handler import (
+    add_config_arg,
+    get_config_arg,
+    CORE_SECTION,
+    DATA_STORAGE_KEY,
+    DEFAULT_CONFIG_FILE,
+)
+from typing import Optional, TYPE_CHECKING
+
+
+if TYPE_CHECKING:
+    from mephisto.data_model.task_run import TaskRun
+
+
+loaded_data_dir = None
+
+
+def get_root_dir() -> str:
+    """Return the currently configured root mephisto directory"""
+    # This file is at ROOT/mephisto/utils/dirs.py
+    return os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
+def get_provider_dir() -> str:
+    """
+    Return the path to the mephisto providers diroctory
+    """
+    return os.path.join(get_root_dir(), "mephisto/abstractions/providers")
+
+
+def get_tasks_dir() -> str:
+    """
+    Return the directory where the mephisto user has configured their personal tasks
+    to exist in
+    """
+    return os.path.join(get_root_dir(), "mephisto/tasks")
+
+
+def get_dir_for_task(task_name: str, not_exists_ok: bool = False) -> Optional[str]:
+    """
+    Return the directory for the given task, if it exists. Check the user's task
+    dir first and then the gallery second.
+    """
+    dir_path = os.path.join(get_tasks_dir(), task_name)
+    if os.path.exists(dir_path) or not_exists_ok:
+        return dir_path
+    return None
+
+
+def get_root_data_dir() -> str:
+    """
+    Return the directory where the mephisto data is expected to go
+    """
+    global loaded_data_dir
+    if loaded_data_dir is None:
+        default_data_dir = os.path.join(get_root_dir(), "data")
+        actual_data_dir = get_config_arg(CORE_SECTION, DATA_STORAGE_KEY)
+        if actual_data_dir is None:
+            data_dir_location = input(
+                "Please enter the full path to a location to store Mephisto run data. By default this "
+                f"would be at '{default_data_dir}'. This dir should NOT be on a distributed file "
+                "store. Press enter to use the default: "
+            ).strip()
+            if len(data_dir_location) == 0:
+                data_dir_location = default_data_dir
+            data_dir_location = os.path.expanduser(data_dir_location)
+            os.makedirs(data_dir_location, exist_ok=True)
+            # Check to see if there is existing data to possibly move to the data dir:
+            database_loc = os.path.join(default_data_dir, "database.db")
+            if os.path.exists(database_loc) and data_dir_location != default_data_dir:
+                should_migrate = (
+                    input(
+                        "We have found an existing database in the default data directory, do you want to "
+                        f"copy any existing data from the default location to {data_dir_location}? (y)es/no: "
+                    )
+                    .lower()
+                    .strip()
+                )
+                if len(should_migrate) == 0 or should_migrate[0] == "y":
+                    copy_tree(default_data_dir, data_dir_location)
+                    print(
+                        "Mephisto data successfully copied, once you've confirmed the migration worked, "
+                        "feel free to remove all of the contents in "
+                        f"{default_data_dir} EXCEPT for `README.md`."
+                    )
+            add_config_arg(CORE_SECTION, DATA_STORAGE_KEY, data_dir_location)
+
+        loaded_data_dir = get_config_arg(CORE_SECTION, DATA_STORAGE_KEY)
+
+        if not os.path.isdir(loaded_data_dir):
+            raise NotADirectoryError(
+                f"The provided Mephisto data directory {loaded_data_dir} as set in "
+                f"{DEFAULT_CONFIG_FILE} is not a directory! Please locate your Mephisto "
+                f"data directory and update {DEFAULT_CONFIG_FILE} to point to it."
+            )
+
+    return loaded_data_dir
+
+
+def get_data_dir(root_dir: Optional[str] = None) -> str:
+    """
+    Return the directory where the mephisto data is expected to go
+    """
+    if root_dir is None:
+        return get_root_data_dir()
+    return os.path.join(root_dir, "data")
+
+
+def get_mephisto_tmp_dir() -> str:
+    """
+    Return the directory where the mephisto temporary build files go
+    """
+    return os.path.join(get_root_dir(), "tmp")
+
+
+def get_dir_for_run(task_run: "TaskRun", project_name: str = NO_PROJECT_NAME) -> str:
+    """
+    Return the directory where the mephisto run data is expected to go
+    """
+    run_id = task_run.db_id
+    root_dir = task_run.db.db_root
+    return os.path.join(get_data_dir(root_dir), "runs", project_name, run_id)
+
+
+def get_run_file_dir() -> str:
+    """
+    Utility function to get the directory that a particular
+    python run file is contained in, even when run from
+    a different directory.
+
+    Useful as configuration information for a task is generally
+    kept within the same directory as the run script
+    """
+    if len(sys.argv) == 0:
+        return os.getcwd()
+    ran_file = sys.argv[0]
+    return os.path.abspath(os.path.dirname(ran_file))
+
+ +
+ +
+
+
#   + + + def + get_root_dir() -> str: +
+ +
+ View Source +
def get_root_dir() -> str:
+    """Return the currently configured root mephisto directory"""
+    # This file is at ROOT/mephisto/utils/dirs.py
+    return os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+ +
+ +

Return the currently configured root mephisto directory

+
+ + +
+
+
#   + + + def + get_provider_dir() -> str: +
+ +
+ View Source +
def get_provider_dir() -> str:
+    """
+    Return the path to the mephisto providers diroctory
+    """
+    return os.path.join(get_root_dir(), "mephisto/abstractions/providers")
+
+ +
+ +

Return the path to the mephisto providers diroctory

+
+ + +
+
+
#   + + + def + get_tasks_dir() -> str: +
+ +
+ View Source +
def get_tasks_dir() -> str:
+    """
+    Return the directory where the mephisto user has configured their personal tasks
+    to exist in
+    """
+    return os.path.join(get_root_dir(), "mephisto/tasks")
+
+ +
+ +

Return the directory where the mephisto user has configured their personal tasks +to exist in

+
+ + +
+
+
#   + + + def + get_dir_for_task(task_name: str, not_exists_ok: bool = False) -> Union[str, NoneType]: +
+ +
+ View Source +
def get_dir_for_task(task_name: str, not_exists_ok: bool = False) -> Optional[str]:
+    """
+    Return the directory for the given task, if it exists. Check the user's task
+    dir first and then the gallery second.
+    """
+    dir_path = os.path.join(get_tasks_dir(), task_name)
+    if os.path.exists(dir_path) or not_exists_ok:
+        return dir_path
+    return None
+
+ +
+ +

Return the directory for the given task, if it exists. Check the user's task +dir first and then the gallery second.

+
+ + +
+
+
#   + + + def + get_root_data_dir() -> str: +
+ +
+ View Source +
def get_root_data_dir() -> str:
+    """
+    Return the directory where the mephisto data is expected to go
+    """
+    global loaded_data_dir
+    if loaded_data_dir is None:
+        default_data_dir = os.path.join(get_root_dir(), "data")
+        actual_data_dir = get_config_arg(CORE_SECTION, DATA_STORAGE_KEY)
+        if actual_data_dir is None:
+            data_dir_location = input(
+                "Please enter the full path to a location to store Mephisto run data. By default this "
+                f"would be at '{default_data_dir}'. This dir should NOT be on a distributed file "
+                "store. Press enter to use the default: "
+            ).strip()
+            if len(data_dir_location) == 0:
+                data_dir_location = default_data_dir
+            data_dir_location = os.path.expanduser(data_dir_location)
+            os.makedirs(data_dir_location, exist_ok=True)
+            # Check to see if there is existing data to possibly move to the data dir:
+            database_loc = os.path.join(default_data_dir, "database.db")
+            if os.path.exists(database_loc) and data_dir_location != default_data_dir:
+                should_migrate = (
+                    input(
+                        "We have found an existing database in the default data directory, do you want to "
+                        f"copy any existing data from the default location to {data_dir_location}? (y)es/no: "
+                    )
+                    .lower()
+                    .strip()
+                )
+                if len(should_migrate) == 0 or should_migrate[0] == "y":
+                    copy_tree(default_data_dir, data_dir_location)
+                    print(
+                        "Mephisto data successfully copied, once you've confirmed the migration worked, "
+                        "feel free to remove all of the contents in "
+                        f"{default_data_dir} EXCEPT for `README.md`."
+                    )
+            add_config_arg(CORE_SECTION, DATA_STORAGE_KEY, data_dir_location)
+
+        loaded_data_dir = get_config_arg(CORE_SECTION, DATA_STORAGE_KEY)
+
+        if not os.path.isdir(loaded_data_dir):
+            raise NotADirectoryError(
+                f"The provided Mephisto data directory {loaded_data_dir} as set in "
+                f"{DEFAULT_CONFIG_FILE} is not a directory! Please locate your Mephisto "
+                f"data directory and update {DEFAULT_CONFIG_FILE} to point to it."
+            )
+
+    return loaded_data_dir
+
+ +
+ +

Return the directory where the mephisto data is expected to go

+
+ + +
+
+
#   + + + def + get_data_dir(root_dir: Union[str, NoneType] = None) -> str: +
+ +
+ View Source +
def get_data_dir(root_dir: Optional[str] = None) -> str:
+    """
+    Return the directory where the mephisto data is expected to go
+    """
+    if root_dir is None:
+        return get_root_data_dir()
+    return os.path.join(root_dir, "data")
+
+ +
+ +

Return the directory where the mephisto data is expected to go

+
+ + +
+
+
#   + + + def + get_mephisto_tmp_dir() -> str: +
+ +
+ View Source +
def get_mephisto_tmp_dir() -> str:
+    """
+    Return the directory where the mephisto temporary build files go
+    """
+    return os.path.join(get_root_dir(), "tmp")
+
+ +
+ +

Return the directory where the mephisto temporary build files go

+
+ + +
+
+
#   + + + def + get_dir_for_run( + task_run: mephisto.data_model.task_run.TaskRun, + project_name: str = 'NO_PROJECT' +) -> str: +
+ +
+ View Source +
def get_dir_for_run(task_run: "TaskRun", project_name: str = NO_PROJECT_NAME) -> str:
+    """
+    Return the directory where the mephisto run data is expected to go
+    """
+    run_id = task_run.db_id
+    root_dir = task_run.db.db_root
+    return os.path.join(get_data_dir(root_dir), "runs", project_name, run_id)
+
+ +
+ +

Return the directory where the mephisto run data is expected to go

+
+ + +
+
+
#   + + + def + get_run_file_dir() -> str: +
+ +
+ View Source +
def get_run_file_dir() -> str:
+    """
+    Utility function to get the directory that a particular
+    python run file is contained in, even when run from
+    a different directory.
+
+    Useful as configuration information for a task is generally
+    kept within the same directory as the run script
+    """
+    if len(sys.argv) == 0:
+        return os.getcwd()
+    ran_file = sys.argv[0]
+    return os.path.abspath(os.path.dirname(ran_file))
+
+ +
+ +

Utility function to get the directory that a particular +python run file is contained in, even when run from +a different directory.

+ +

Useful as configuration information for a task is generally +kept within the same directory as the run script

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils/logger_core.html b/docs/web/static/python_api/mephisto/utils/logger_core.html new file mode 100644 index 000000000..b67125ec6 --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils/logger_core.html @@ -0,0 +1,572 @@ + + + + + + + + + mephisto.utils.logger_core API documentation + + + + + + + + + +
+
+

+mephisto.utils.logger_core

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+from logging.handlers import RotatingFileHandler
+from typing import Optional, Dict, Set
+
+loggers: Dict[str, logging.Logger] = {}
+global_log_level = logging.INFO
+_seen_logs: Set[str] = set()
+
+
+def warn_once(msg: str) -> None:
+    """
+    Log a warning, but only once.
+
+    :param str msg: Message to display
+    """
+    global _seen_logs
+    if msg not in _seen_logs:
+        _seen_logs.add(msg)
+        logging.warn(msg)
+
+
+def set_mephisto_log_level(verbose: Optional[bool] = None, level: Optional[str] = None):
+    """
+    Set the global level for Mephisto logging, from
+    which all other classes will set their logging.
+
+    Verbose sets an option between DEBUG and INFO, while level allows setting
+    a specific level, and takes precedence.
+
+    Calling this function will override the desired log levels from individual files,
+    and if you want to enable a specific level for a specific logger, you'll need
+    to get that logger from the loggers dict and call setLevel
+    """
+    global global_log_level
+
+    if verbose is None and level is None:
+        raise ValueError("Must provide one of verbose or level")
+
+    if verbose is not None:
+        global_log_level = logging.DEBUG if verbose else logging.INFO
+
+    if level is not None:
+        global_log_level = logging.getLevelName(level.upper())
+
+    for logger in loggers.values():
+        logger.setLevel(global_log_level)
+
+
+def get_logger(
+    name: str,
+    verbose: Optional[bool] = None,
+    log_file: Optional[str] = None,
+    level: Optional[str] = None,
+) -> logging.Logger:
+    """
+    Gets the logger corresponds to each module
+            Parameters:
+                    name (string): the module name (__name__).
+                    verbose (bool): INFO level activated if True.
+                    log_file (string): path for saving logs locally.
+                    level (string): logging level. Values options: [info, debug, warning, error, critical].
+
+            Returns:
+                    logger (logging.Logger): the corresponding logger to the given module name.
+    """
+
+    global loggers
+    found_logger = loggers.get(name)
+    if found_logger is not None:
+        return found_logger
+    else:
+        logger = logging.getLogger(name)
+
+        level_dict = {
+            "debug": logging.DEBUG,
+            "info": logging.INFO,
+            "warning": logging.WARNING,
+            "error": logging.ERROR,
+            "critical": logging.CRITICAL,
+        }
+
+        if level is not None:
+            logger.setLevel(level_dict[level.lower()])
+        elif verbose is not None:
+            logger.setLevel(logging.DEBUG if verbose else logging.INFO)
+        else:
+            logger.setLevel(global_log_level)
+        if log_file is not None:
+            handler = RotatingFileHandler(log_file)
+            formatter = logging.Formatter(
+                "[%(asctime)s] p%(process)s {%(filename)s:%(lineno)d} %(levelname)5s - %(message)s",
+                "%m-%d %H:%M:%S",
+            )
+
+            handler.setFormatter(formatter)
+            logger.addHandler(handler)
+
+        loggers[name] = logger
+        return logger
+
+
+BOLD_RED = "\u001b[31;1m"
+RESET = "\u001b[0m"
+
+
+def format_loud(target_text: str):
+    return f"{BOLD_RED}{target_text}{RESET}"
+
+ +
+ +
+
+
#   + + loggers: Dict[str, logging.Logger] = {'mephisto.abstractions._subcomponents.task_builder': <Logger mephisto.abstractions._subcomponents.task_builder (INFO)>, 'mephisto.data_model.qualification': <Logger mephisto.data_model.qualification (INFO)>, 'mephisto.utils.qualifications': <Logger mephisto.utils.qualifications (INFO)>, 'mephisto.abstractions._subcomponents.agent_state': <Logger mephisto.abstractions._subcomponents.agent_state (INFO)>, 'mephisto.abstractions._subcomponents.task_runner': <Logger mephisto.abstractions._subcomponents.task_runner (INFO)>, 'mephisto.abstractions.blueprint': <Logger mephisto.abstractions.blueprint (INFO)>, 'mephisto.data_model.requester': <Logger mephisto.data_model.requester (INFO)>, 'mephisto.data_model.task_run': <Logger mephisto.data_model.task_run (INFO)>, 'mephisto.data_model.worker': <Logger mephisto.data_model.worker (INFO)>, 'mephisto.data_model.agent': <Logger mephisto.data_model.agent (INFO)>, 'mephisto.data_model.unit': <Logger mephisto.data_model.unit (INFO)>, 'mephisto.operations.hydra_config': <Logger mephisto.operations.hydra_config (INFO)>, 'mephisto.abstractions.providers.mock.mock_unit': <Logger mephisto.abstractions.providers.mock.mock_unit (INFO)>, 'mephisto.data_model.assignment': <Logger mephisto.data_model.assignment (INFO)>, 'mephisto.abstractions.databases.local_database': <Logger mephisto.abstractions.databases.local_database (INFO)>, 'mephisto.abstractions.providers.mturk.mturk_datastore': <Logger mephisto.abstractions.providers.mturk.mturk_datastore (INFO)>, 'mephisto.abstractions.providers.mturk.mturk_utils': <Logger mephisto.abstractions.providers.mturk.mturk_utils (INFO)>, 'mephisto.abstractions.providers.mturk.mturk_agent': <Logger mephisto.abstractions.providers.mturk.mturk_agent (INFO)>, 'mephisto.abstractions.providers.mturk.mturk_unit': <Logger mephisto.abstractions.providers.mturk.mturk_unit (INFO)>, 'mephisto.abstractions.providers.mturk.mturk_worker': <Logger mephisto.abstractions.providers.mturk.mturk_worker (INFO)>, 'mephisto.abstractions.architects.channels.websocket_channel': <Logger mephisto.abstractions.architects.channels.websocket_channel (INFO)>, 'mephisto.abstractions.architects.heroku_architect': <Logger mephisto.abstractions.architects.heroku_architect (INFO)>, 'mephisto.abstractions.architects.ec2.ec2_helpers': <Logger mephisto.abstractions.architects.ec2.ec2_helpers (INFO)>, 'mephisto.abstractions.architects.ec2.ec2_architect': <Logger mephisto.abstractions.architects.ec2.ec2_architect (INFO)>, 'mephisto.abstractions.blueprints.abstract.static_task.static_agent_state': <Logger mephisto.abstractions.blueprints.abstract.static_task.static_agent_state (INFO)>, 'mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name': <Logger mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name (INFO)>, 'mephisto.operations.task_launcher': <Logger mephisto.operations.task_launcher (INFO)>, 'mephisto.abstractions.blueprints.mixins.use_gold_unit': <Logger mephisto.abstractions.blueprints.mixins.use_gold_unit (INFO)>, 'mephisto.abstractions.databases.local_singleton_database': <Logger mephisto.abstractions.databases.local_singleton_database (INFO)>, 'mephisto.operations.client_io_handler': <Logger mephisto.operations.client_io_handler (INFO)>, 'mephisto.operations.worker_pool': <Logger mephisto.operations.worker_pool (INFO)>, 'mephisto.utils.metrics': <Logger mephisto.utils.metrics (INFO)>, 'mephisto.operations.operator': <Logger mephisto.operations.operator (INFO)>} +
+ + + + +
+
+
#   + + + def + warn_once(msg: str) -> None: +
+ +
+ View Source +
def warn_once(msg: str) -> None:
+    """
+    Log a warning, but only once.
+
+    :param str msg: Message to display
+    """
+    global _seen_logs
+    if msg not in _seen_logs:
+        _seen_logs.add(msg)
+        logging.warn(msg)
+
+ +
+ +

Log a warning, but only once.

+ +

:param str msg: Message to display

+
+ + +
+
+
#   + + + def + set_mephisto_log_level( + verbose: Union[bool, NoneType] = None, + level: Union[str, NoneType] = None +): +
+ +
+ View Source +
def set_mephisto_log_level(verbose: Optional[bool] = None, level: Optional[str] = None):
+    """
+    Set the global level for Mephisto logging, from
+    which all other classes will set their logging.
+
+    Verbose sets an option between DEBUG and INFO, while level allows setting
+    a specific level, and takes precedence.
+
+    Calling this function will override the desired log levels from individual files,
+    and if you want to enable a specific level for a specific logger, you'll need
+    to get that logger from the loggers dict and call setLevel
+    """
+    global global_log_level
+
+    if verbose is None and level is None:
+        raise ValueError("Must provide one of verbose or level")
+
+    if verbose is not None:
+        global_log_level = logging.DEBUG if verbose else logging.INFO
+
+    if level is not None:
+        global_log_level = logging.getLevelName(level.upper())
+
+    for logger in loggers.values():
+        logger.setLevel(global_log_level)
+
+ +
+ +

Set the global level for Mephisto logging, from +which all other classes will set their logging.

+ +

Verbose sets an option between DEBUG and INFO, while level allows setting +a specific level, and takes precedence.

+ +

Calling this function will override the desired log levels from individual files, +and if you want to enable a specific level for a specific logger, you'll need +to get that logger from the loggers dict and call setLevel

+
+ + +
+
+
#   + + + def + get_logger( + name: str, + verbose: Union[bool, NoneType] = None, + log_file: Union[str, NoneType] = None, + level: Union[str, NoneType] = None +) -> logging.Logger: +
+ +
+ View Source +
def get_logger(
+    name: str,
+    verbose: Optional[bool] = None,
+    log_file: Optional[str] = None,
+    level: Optional[str] = None,
+) -> logging.Logger:
+    """
+    Gets the logger corresponds to each module
+            Parameters:
+                    name (string): the module name (__name__).
+                    verbose (bool): INFO level activated if True.
+                    log_file (string): path for saving logs locally.
+                    level (string): logging level. Values options: [info, debug, warning, error, critical].
+
+            Returns:
+                    logger (logging.Logger): the corresponding logger to the given module name.
+    """
+
+    global loggers
+    found_logger = loggers.get(name)
+    if found_logger is not None:
+        return found_logger
+    else:
+        logger = logging.getLogger(name)
+
+        level_dict = {
+            "debug": logging.DEBUG,
+            "info": logging.INFO,
+            "warning": logging.WARNING,
+            "error": logging.ERROR,
+            "critical": logging.CRITICAL,
+        }
+
+        if level is not None:
+            logger.setLevel(level_dict[level.lower()])
+        elif verbose is not None:
+            logger.setLevel(logging.DEBUG if verbose else logging.INFO)
+        else:
+            logger.setLevel(global_log_level)
+        if log_file is not None:
+            handler = RotatingFileHandler(log_file)
+            formatter = logging.Formatter(
+                "[%(asctime)s] p%(process)s {%(filename)s:%(lineno)d} %(levelname)5s - %(message)s",
+                "%m-%d %H:%M:%S",
+            )
+
+            handler.setFormatter(formatter)
+            logger.addHandler(handler)
+
+        loggers[name] = logger
+        return logger
+
+ +
+ +

Gets the logger corresponds to each module + Parameters: + name (string): the module name (__name__). + verbose (bool): INFO level activated if True. + log_file (string): path for saving logs locally. + level (string): logging level. Values options: [info, debug, warning, error, critical].

+ +
    Returns:
+            logger (logging.Logger): the corresponding logger to the given module name.
+
+
+ + +
+
+
#   + + + def + format_loud(target_text: str): +
+ +
+ View Source +
def format_loud(target_text: str):
+    return f"{BOLD_RED}{target_text}{RESET}"
+
+ +
+ + + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils/metrics.html b/docs/web/static/python_api/mephisto/utils/metrics.html new file mode 100644 index 000000000..4bd51c024 --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils/metrics.html @@ -0,0 +1,920 @@ + + + + + + + + + mephisto.utils.metrics API documentation + + + + + + + + + +
+
+

+mephisto.utils.metrics

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+# Note, all of the functions in this file take an `args` option which currently
+# goes unused, but is planned for making the system more configurable in 1.1
+
+import os
+import errno
+import requests
+from requests.auth import HTTPBasicAuth
+import subprocess
+import sys
+import time
+
+
+from mephisto.utils.dirs import get_mephisto_tmp_dir, get_root_dir
+from mephisto.utils.logger_core import get_logger, warn_once
+from prometheus_client import start_http_server
+from omegaconf import DictConfig
+from typing import Optional
+
+
+logger = get_logger(name=__name__)
+
+
+PROMETHEUS_PID_FILE = os.path.join(get_mephisto_tmp_dir(), "PROMETHEUS_PID.txt")
+GRAFANA_PID_FILE = os.path.join(get_mephisto_tmp_dir(), "GRAFANA_PID.txt")
+METRICS_DIR = os.path.join(get_root_dir(), "metrics")
+PROMETHEUS_DIR = os.path.join(METRICS_DIR, "prometheus")
+PROMETHEUS_EXECUTABLE = os.path.join(PROMETHEUS_DIR, "prometheus")
+PROMETHEUS_CONFIG = os.path.join(PROMETHEUS_DIR, "prometheus.yml")
+GRAFANA_DIR = os.path.join(METRICS_DIR, "grafana")
+GRAFANA_EXECUTABLE = os.path.join(GRAFANA_DIR, "bin", "grafana-server")
+
+
+def _server_process_running(pid):
+    """Check on the existing process id"""
+    try:
+        os.kill(pid, 0)
+    except OSError as err:
+        if err.errno == errno.ESRCH:
+            # ESRCH == No such process
+            return False
+        elif err.errno == errno.EPERM:
+            # EPERM clearly means there's a process to deny access to
+            return True
+        else:
+            return False
+    else:
+        return True
+
+
+def _get_pid_from_file(fn):
+    """Get the PID from the given file"""
+    with open(fn) as pid_file:
+        pid = int(pid_file.read().strip())
+    return pid
+
+
+def run_install_script() -> bool:
+    """Run the install script from METRICS_DIR"""
+    res = subprocess.check_call(
+        [
+            "sh",
+            f"./install_metrics.sh",
+        ],
+        cwd=f"{METRICS_DIR}",
+    )
+    return res == 0
+
+
+def metrics_are_installed():
+    """Return whether metrics are installed"""
+    return os.path.exists(PROMETHEUS_EXECUTABLE) and os.path.exists(GRAFANA_EXECUTABLE)
+
+
+def launch_servers_and_wait():
+    """
+    Run a prometheus and grafana server, then suspend the thread
+    (ensuring prometheus remains up in case a task shuts it down).
+    Closes resources on Ctrl-C
+    """
+    try:
+        print("Servers launching...")
+        if not launch_grafana_server():
+            print("Issue launching grafana, see above")
+            return
+        if not launch_prometheus_server():
+            print("Issue launching prometheus, see above")
+            return
+        print(f"Waiting for grafana server to come up.")
+        time.sleep(3)
+        dash_url = get_dash_url()
+        print(f"Dashboard is now running, you can access it at http://{dash_url}")
+        print(f"Default user: admin, pass: admin")
+        while True:
+            # Relaunch the server in case it's shut down by a
+            # task thread
+            time.sleep(5)
+            if not os.path.exists(PROMETHEUS_PID_FILE):
+                launch_prometheus_server()
+    except KeyboardInterrupt:
+        print("Caught Ctrl-C, shutting down servers")
+    finally:
+        shutdown_grafana_server()
+        shutdown_prometheus_server()
+
+
+def start_metrics_server(args: Optional["DictConfig"] = None):
+    """
+    Launch a metrics server for the current job. At the moment, defaults to launching on port 3031.
+
+    Unfortunately this means we are only able to check metrics on one job at a time for now.
+    Future work will extend our metrics logging configuration.
+    """
+    try:
+        start_http_server(3031)
+    except Exception as e:
+        logger.exception(
+            "Could not launch prometheus metrics client, perhaps a process is already running on 3031? "
+            "Mephisto metrics currently only supports one Operator class at a time at the moment",
+            exc_info=True,
+        )
+
+
+def launch_prometheus_server(args: Optional["DictConfig"] = None) -> bool:
+    """
+    Launch a prometheus server if one is not already running (based on having an expected PID)
+
+    Returns success or failure
+    """
+    if os.path.exists(PROMETHEUS_PID_FILE):
+        try:
+            r = requests.get("http://localhost:9090/")
+            is_ok = r.ok
+        except requests.exceptions.ConnectionError:
+            is_ok = False
+        if not is_ok:
+            logger.warning(
+                "Prometheus PID existed, but server doesn't appear to be up."
+            )
+            if _server_process_running(_get_pid_from_file(PROMETHEUS_PID_FILE)):
+                logger.warning(
+                    "Prometheus server appears to be running though! exiting as unsure what to do..."
+                )
+                raise Exception("Prometheus server running but inaccessible")
+            else:
+                logger.warning(
+                    "Clearing prometheus pid as the server isn't running. "
+                    "Use `shutdown_prometheus_server` in the future for proper cleanup."
+                )
+        else:
+            logger.debug("Prometheus server appears to be running at 9090")
+            return True
+    if not os.path.exists(PROMETHEUS_EXECUTABLE):
+        warn_once(
+            f"Mephisto supports rich run-time metrics visualization through Prometheus and Grafana. "
+            f"If you'd like to use this feature, use `mephisto metrics install` to install."
+            f"(Current install dir is '{METRICS_DIR}')'"
+        )
+        return False
+    proc = subprocess.Popen(
+        [
+            f"./prometheus",
+            f"--config.file={PROMETHEUS_CONFIG}",
+        ],
+        stdout=subprocess.DEVNULL,
+        stderr=subprocess.DEVNULL,
+        cwd=f"{PROMETHEUS_DIR}",
+    )
+    with open(PROMETHEUS_PID_FILE, "w+") as pid_file:
+        pid_file.write(str(proc.pid))
+
+    logger.info(f"Prometheus server launched at process {proc.pid}")
+    return True
+
+
+def launch_grafana_server(args: Optional["DictConfig"] = None) -> bool:
+    """
+    Launch a grafana server if one is not already running (based on having an expected PID)
+    """
+    if os.path.exists(GRAFANA_PID_FILE):
+        try:
+            r = requests.get("http://localhost:3032/")
+            is_ok = r.ok
+        except requests.exceptions.ConnectionError:
+            is_ok = False
+        if not is_ok:
+            logger.warning("Grafana PID existed, but server doesn't appear to be up.")
+            if _server_process_running(_get_pid_from_file(GRAFANA_PID_FILE)):
+                logger.warning(
+                    "Grafana server appears to be running though! exiting as unsure what to do..."
+                )
+                raise Exception("Grafana server running but inaccessible")
+            else:
+                logger.warning(
+                    "Clearing grafana pid as the server isn't running. "
+                    "Use `shutdown_grafana_server` in the future for proper cleanup."
+                )
+        else:
+            logger.debug("Grafana server appears to be running at 3032")
+            return True
+    if not os.path.exists(GRAFANA_EXECUTABLE):
+        warn_once(
+            f"Mephisto supports rich run-time metrics visualization through Prometheus and Grafana. "
+            f"If you'd like to use this feature, use `mephisto metrics install` to install."
+            f"(Current install dir is '{METRICS_DIR}')'"
+        )
+        return False
+    proc = subprocess.Popen(
+        [f"./bin/grafana-server"],
+        stdout=subprocess.DEVNULL,
+        stderr=subprocess.DEVNULL,
+        cwd=f"{GRAFANA_DIR}",
+    )
+    with open(GRAFANA_PID_FILE, "w+") as pid_file:
+        pid_file.write(str(proc.pid))
+
+    logger.info(f"Grafana server launched at process {proc.pid}")
+    return True
+
+
+def get_dash_url(args: Optional["DictConfig"] = None):
+    """
+    Return the url to the default Mephisto dashboard. Requires a running grafana server
+    """
+    headers_dict = {"Accept": "application/json"}
+    r = requests.get(
+        "http://localhost:3032/api/search?query=Default%20Mephisto%20Monitoring",
+        headers=headers_dict,
+        auth=HTTPBasicAuth("admin", "admin"),
+    )
+    output = r.json()
+    return f"localhost:3032{output[0]['url']}"
+
+
+def shutdown_prometheus_server(
+    args: Optional["DictConfig"] = None, expect_exists=False
+):
+    """
+    Shutdown the prometheus server
+    """
+    if os.path.exists(PROMETHEUS_PID_FILE):
+        os.kill(_get_pid_from_file(PROMETHEUS_PID_FILE), 9)
+        logger.info("Prometheus server shut down")
+        os.unlink(PROMETHEUS_PID_FILE)
+    elif expect_exists:
+        logger.warning(
+            f"No PID file at {PROMETHEUS_PID_FILE}... Check lsof -i :9090 to find the "
+            "process if it still exists and interrupt it yourself."
+        )
+
+
+def shutdown_grafana_server(args: Optional["DictConfig"] = None, expect_exists=False):
+    """
+    Shutdown the grafana server
+    """
+    if os.path.exists(GRAFANA_PID_FILE):
+        os.kill(_get_pid_from_file(GRAFANA_PID_FILE), 9)
+        logger.info("grafana server shut down")
+        os.unlink(GRAFANA_PID_FILE)
+    elif expect_exists:
+        logger.warning(
+            f"No PID file at {GRAFANA_PID_FILE}... Check lsof -i :3032 to find the "
+            "process if it still exists and interrupt it yourself."
+        )
+
+ +
+ +
+
+
#   + + + def + run_install_script() -> bool: +
+ +
+ View Source +
def run_install_script() -> bool:
+    """Run the install script from METRICS_DIR"""
+    res = subprocess.check_call(
+        [
+            "sh",
+            f"./install_metrics.sh",
+        ],
+        cwd=f"{METRICS_DIR}",
+    )
+    return res == 0
+
+ +
+ +

Run the install script from METRICS_DIR

+
+ + +
+
+
#   + + + def + metrics_are_installed(): +
+ +
+ View Source +
def metrics_are_installed():
+    """Return whether metrics are installed"""
+    return os.path.exists(PROMETHEUS_EXECUTABLE) and os.path.exists(GRAFANA_EXECUTABLE)
+
+ +
+ +

Return whether metrics are installed

+
+ + +
+
+
#   + + + def + launch_servers_and_wait(): +
+ +
+ View Source +
def launch_servers_and_wait():
+    """
+    Run a prometheus and grafana server, then suspend the thread
+    (ensuring prometheus remains up in case a task shuts it down).
+    Closes resources on Ctrl-C
+    """
+    try:
+        print("Servers launching...")
+        if not launch_grafana_server():
+            print("Issue launching grafana, see above")
+            return
+        if not launch_prometheus_server():
+            print("Issue launching prometheus, see above")
+            return
+        print(f"Waiting for grafana server to come up.")
+        time.sleep(3)
+        dash_url = get_dash_url()
+        print(f"Dashboard is now running, you can access it at http://{dash_url}")
+        print(f"Default user: admin, pass: admin")
+        while True:
+            # Relaunch the server in case it's shut down by a
+            # task thread
+            time.sleep(5)
+            if not os.path.exists(PROMETHEUS_PID_FILE):
+                launch_prometheus_server()
+    except KeyboardInterrupt:
+        print("Caught Ctrl-C, shutting down servers")
+    finally:
+        shutdown_grafana_server()
+        shutdown_prometheus_server()
+
+ +
+ +

Run a prometheus and grafana server, then suspend the thread +(ensuring prometheus remains up in case a task shuts it down). +Closes resources on Ctrl-C

+
+ + +
+
+
#   + + + def + start_metrics_server(args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None): +
+ +
+ View Source +
def start_metrics_server(args: Optional["DictConfig"] = None):
+    """
+    Launch a metrics server for the current job. At the moment, defaults to launching on port 3031.
+
+    Unfortunately this means we are only able to check metrics on one job at a time for now.
+    Future work will extend our metrics logging configuration.
+    """
+    try:
+        start_http_server(3031)
+    except Exception as e:
+        logger.exception(
+            "Could not launch prometheus metrics client, perhaps a process is already running on 3031? "
+            "Mephisto metrics currently only supports one Operator class at a time at the moment",
+            exc_info=True,
+        )
+
+ +
+ +

Launch a metrics server for the current job. At the moment, defaults to launching on port 3031.

+ +

Unfortunately this means we are only able to check metrics on one job at a time for now. +Future work will extend our metrics logging configuration.

+
+ + +
+
+
#   + + + def + launch_prometheus_server( + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> bool: +
+ +
+ View Source +
def launch_prometheus_server(args: Optional["DictConfig"] = None) -> bool:
+    """
+    Launch a prometheus server if one is not already running (based on having an expected PID)
+
+    Returns success or failure
+    """
+    if os.path.exists(PROMETHEUS_PID_FILE):
+        try:
+            r = requests.get("http://localhost:9090/")
+            is_ok = r.ok
+        except requests.exceptions.ConnectionError:
+            is_ok = False
+        if not is_ok:
+            logger.warning(
+                "Prometheus PID existed, but server doesn't appear to be up."
+            )
+            if _server_process_running(_get_pid_from_file(PROMETHEUS_PID_FILE)):
+                logger.warning(
+                    "Prometheus server appears to be running though! exiting as unsure what to do..."
+                )
+                raise Exception("Prometheus server running but inaccessible")
+            else:
+                logger.warning(
+                    "Clearing prometheus pid as the server isn't running. "
+                    "Use `shutdown_prometheus_server` in the future for proper cleanup."
+                )
+        else:
+            logger.debug("Prometheus server appears to be running at 9090")
+            return True
+    if not os.path.exists(PROMETHEUS_EXECUTABLE):
+        warn_once(
+            f"Mephisto supports rich run-time metrics visualization through Prometheus and Grafana. "
+            f"If you'd like to use this feature, use `mephisto metrics install` to install."
+            f"(Current install dir is '{METRICS_DIR}')'"
+        )
+        return False
+    proc = subprocess.Popen(
+        [
+            f"./prometheus",
+            f"--config.file={PROMETHEUS_CONFIG}",
+        ],
+        stdout=subprocess.DEVNULL,
+        stderr=subprocess.DEVNULL,
+        cwd=f"{PROMETHEUS_DIR}",
+    )
+    with open(PROMETHEUS_PID_FILE, "w+") as pid_file:
+        pid_file.write(str(proc.pid))
+
+    logger.info(f"Prometheus server launched at process {proc.pid}")
+    return True
+
+ +
+ +

Launch a prometheus server if one is not already running (based on having an expected PID)

+ +

Returns success or failure

+
+ + +
+
+
#   + + + def + launch_grafana_server( + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None +) -> bool: +
+ +
+ View Source +
def launch_grafana_server(args: Optional["DictConfig"] = None) -> bool:
+    """
+    Launch a grafana server if one is not already running (based on having an expected PID)
+    """
+    if os.path.exists(GRAFANA_PID_FILE):
+        try:
+            r = requests.get("http://localhost:3032/")
+            is_ok = r.ok
+        except requests.exceptions.ConnectionError:
+            is_ok = False
+        if not is_ok:
+            logger.warning("Grafana PID existed, but server doesn't appear to be up.")
+            if _server_process_running(_get_pid_from_file(GRAFANA_PID_FILE)):
+                logger.warning(
+                    "Grafana server appears to be running though! exiting as unsure what to do..."
+                )
+                raise Exception("Grafana server running but inaccessible")
+            else:
+                logger.warning(
+                    "Clearing grafana pid as the server isn't running. "
+                    "Use `shutdown_grafana_server` in the future for proper cleanup."
+                )
+        else:
+            logger.debug("Grafana server appears to be running at 3032")
+            return True
+    if not os.path.exists(GRAFANA_EXECUTABLE):
+        warn_once(
+            f"Mephisto supports rich run-time metrics visualization through Prometheus and Grafana. "
+            f"If you'd like to use this feature, use `mephisto metrics install` to install."
+            f"(Current install dir is '{METRICS_DIR}')'"
+        )
+        return False
+    proc = subprocess.Popen(
+        [f"./bin/grafana-server"],
+        stdout=subprocess.DEVNULL,
+        stderr=subprocess.DEVNULL,
+        cwd=f"{GRAFANA_DIR}",
+    )
+    with open(GRAFANA_PID_FILE, "w+") as pid_file:
+        pid_file.write(str(proc.pid))
+
+    logger.info(f"Grafana server launched at process {proc.pid}")
+    return True
+
+ +
+ +

Launch a grafana server if one is not already running (based on having an expected PID)

+
+ + +
+
+
#   + + + def + get_dash_url(args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None): +
+ +
+ View Source +
def get_dash_url(args: Optional["DictConfig"] = None):
+    """
+    Return the url to the default Mephisto dashboard. Requires a running grafana server
+    """
+    headers_dict = {"Accept": "application/json"}
+    r = requests.get(
+        "http://localhost:3032/api/search?query=Default%20Mephisto%20Monitoring",
+        headers=headers_dict,
+        auth=HTTPBasicAuth("admin", "admin"),
+    )
+    output = r.json()
+    return f"localhost:3032{output[0]['url']}"
+
+ +
+ +

Return the url to the default Mephisto dashboard. Requires a running grafana server

+
+ + +
+
+
#   + + + def + shutdown_prometheus_server( + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None, + expect_exists=False +): +
+ +
+ View Source +
def shutdown_prometheus_server(
+    args: Optional["DictConfig"] = None, expect_exists=False
+):
+    """
+    Shutdown the prometheus server
+    """
+    if os.path.exists(PROMETHEUS_PID_FILE):
+        os.kill(_get_pid_from_file(PROMETHEUS_PID_FILE), 9)
+        logger.info("Prometheus server shut down")
+        os.unlink(PROMETHEUS_PID_FILE)
+    elif expect_exists:
+        logger.warning(
+            f"No PID file at {PROMETHEUS_PID_FILE}... Check lsof -i :9090 to find the "
+            "process if it still exists and interrupt it yourself."
+        )
+
+ +
+ +

Shutdown the prometheus server

+
+ + +
+
+
#   + + + def + shutdown_grafana_server( + args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None, + expect_exists=False +): +
+ +
+ View Source +
def shutdown_grafana_server(args: Optional["DictConfig"] = None, expect_exists=False):
+    """
+    Shutdown the grafana server
+    """
+    if os.path.exists(GRAFANA_PID_FILE):
+        os.kill(_get_pid_from_file(GRAFANA_PID_FILE), 9)
+        logger.info("grafana server shut down")
+        os.unlink(GRAFANA_PID_FILE)
+    elif expect_exists:
+        logger.warning(
+            f"No PID file at {GRAFANA_PID_FILE}... Check lsof -i :3032 to find the "
+            "process if it still exists and interrupt it yourself."
+        )
+
+ +
+ +

Shutdown the grafana server

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils/qualifications.html b/docs/web/static/python_api/mephisto/utils/qualifications.html new file mode 100644 index 000000000..3e5c1a15a --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils/qualifications.html @@ -0,0 +1,612 @@ + + + + + + + + + mephisto.utils.qualifications API documentation + + + + + + + + + +
+
+

+mephisto.utils.qualifications

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Dict, TYPE_CHECKING, Any
+from mephisto.data_model.qualification import (
+    QUAL_EXISTS,
+    QUAL_NOT_EXIST,
+    COMPARATOR_OPERATIONS,
+    SUPPORTED_COMPARATORS,
+    QUAL_GREATER,
+    QUAL_LESS,
+    QUAL_GREATER_EQUAL,
+    QUAL_LESS_EQUAL,
+    QUAL_IN_LIST,
+    QUAL_NOT_IN_LIST,
+)
+
+if TYPE_CHECKING:
+    from mephisto.abstractions.database import MephistoDB
+    from mephisto.data_model.worker import Worker
+
+from mephisto.utils.logger_core import get_logger
+
+logger = get_logger(name=__name__)
+
+
+def worker_is_qualified(worker: "Worker", qualifications: List[Dict[str, Any]]):
+    db = worker.db
+    for qualification in qualifications:
+        qual_name = qualification["qualification_name"]
+        qual_objs = db.find_qualifications(qual_name)
+        if len(qual_objs) == 0:
+            logger.warning(
+                f"Expected to create qualification for {qual_name}, but none found... skipping."
+            )
+            continue
+        qual_obj = qual_objs[0]
+        granted_quals = db.check_granted_qualifications(
+            qualification_id=qual_obj.db_id, worker_id=worker.db_id
+        )
+        comp = qualification["comparator"]
+        compare_value = qualification["value"]
+        if comp == QUAL_EXISTS and len(granted_quals) == 0:
+            return False
+        elif comp == QUAL_NOT_EXIST and len(granted_quals) != 0:
+            return False
+        elif comp in [QUAL_EXISTS, QUAL_NOT_EXIST]:
+            continue
+        else:
+            granted_qual = granted_quals[0]
+            if not COMPARATOR_OPERATIONS[comp](granted_qual.value, compare_value):
+                return False
+    return True
+
+
+def as_valid_qualification_dict(qual_dict: Dict[str, Any]) -> Dict[str, Any]:
+    """
+    Check to ensure that a qualification dict properly checks
+    against a Mephisto qualification
+    """
+    required_keys = [
+        "qualification_name",
+        "comparator",
+        "value",
+        "applicable_providers",
+    ]
+    for key in required_keys:
+        if key not in qual_dict:
+            raise AssertionError(
+                f"Required key {key} not in qualification dict {qual_dict}"
+            )
+
+    qual_name = qual_dict["qualification_name"]
+    if type(qual_name) is not str or len(qual_name) == 0:
+        raise AssertionError(
+            f"Qualification name '{qual_name}' is not a string with length > 0"
+        )
+
+    comparator = qual_dict["comparator"]
+    if comparator not in SUPPORTED_COMPARATORS:
+        raise AssertionError(
+            f"Qualification comparator '{comparator}' not in supported list: {SUPPORTED_COMPARATORS}'"
+        )
+
+    value = qual_dict["value"]
+
+    if (
+        comparator in [QUAL_GREATER, QUAL_LESS, QUAL_GREATER_EQUAL, QUAL_LESS_EQUAL]
+        and type(value) != int
+    ):
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be an int"
+        )
+
+    if comparator in [QUAL_EXISTS, QUAL_NOT_EXIST] and value is not None:
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be None"
+        )
+
+    if comparator in [QUAL_IN_LIST, QUAL_NOT_IN_LIST] and type(value) != list:
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be a list"
+        )
+
+    if qual_dict["applicable_providers"] is not None:
+        from mephisto.operations.registry import get_valid_provider_types
+
+        assert (
+            type(qual_dict["applicable_providers"]) == list
+        ), "Applicable providers must be a string list of providers or none."
+        valid_providers = get_valid_provider_types()
+        for provider_name in qual_dict["applicable_providers"]:
+            assert (
+                provider_name in valid_providers
+            ), f"Noted applicable provider name {provider_name} not in list of usable providers: {valid_providers}"
+
+    return qual_dict
+
+
+def make_qualification_dict(
+    qualification_name: str,
+    comparator: str,
+    value: Any,
+    applicable_providers: Optional[List[str]] = None,
+) -> Dict[str, Any]:
+    """
+    Create a qualification dict to pass to an operator as part
+    of extra_args
+    """
+    qual_dict = {
+        "qualification_name": qualification_name,
+        "comparator": comparator,
+        "value": value,
+        "applicable_providers": applicable_providers,
+    }
+    return as_valid_qualification_dict(qual_dict)
+
+
+def find_or_create_qualification(db: "MephistoDB", qualification_name: str) -> str:
+    """
+    Ensure the given qualification exists in the db,
+    creating it if it doesn't already. Returns the id
+    """
+    found_qualifications = db.find_qualifications(qualification_name)
+    if len(found_qualifications) == 0:
+        return db.make_qualification(qualification_name)
+    else:
+        return found_qualifications[0].db_id
+
+ +
+ +
+
+
#   + + + def + worker_is_qualified( + worker: mephisto.data_model.worker.Worker, + qualifications: List[Dict[str, Any]] +): +
+ +
+ View Source +
def worker_is_qualified(worker: "Worker", qualifications: List[Dict[str, Any]]):
+    db = worker.db
+    for qualification in qualifications:
+        qual_name = qualification["qualification_name"]
+        qual_objs = db.find_qualifications(qual_name)
+        if len(qual_objs) == 0:
+            logger.warning(
+                f"Expected to create qualification for {qual_name}, but none found... skipping."
+            )
+            continue
+        qual_obj = qual_objs[0]
+        granted_quals = db.check_granted_qualifications(
+            qualification_id=qual_obj.db_id, worker_id=worker.db_id
+        )
+        comp = qualification["comparator"]
+        compare_value = qualification["value"]
+        if comp == QUAL_EXISTS and len(granted_quals) == 0:
+            return False
+        elif comp == QUAL_NOT_EXIST and len(granted_quals) != 0:
+            return False
+        elif comp in [QUAL_EXISTS, QUAL_NOT_EXIST]:
+            continue
+        else:
+            granted_qual = granted_quals[0]
+            if not COMPARATOR_OPERATIONS[comp](granted_qual.value, compare_value):
+                return False
+    return True
+
+ +
+ + + +
+
+
#   + + + def + as_valid_qualification_dict(qual_dict: Dict[str, Any]) -> Dict[str, Any]: +
+ +
+ View Source +
def as_valid_qualification_dict(qual_dict: Dict[str, Any]) -> Dict[str, Any]:
+    """
+    Check to ensure that a qualification dict properly checks
+    against a Mephisto qualification
+    """
+    required_keys = [
+        "qualification_name",
+        "comparator",
+        "value",
+        "applicable_providers",
+    ]
+    for key in required_keys:
+        if key not in qual_dict:
+            raise AssertionError(
+                f"Required key {key} not in qualification dict {qual_dict}"
+            )
+
+    qual_name = qual_dict["qualification_name"]
+    if type(qual_name) is not str or len(qual_name) == 0:
+        raise AssertionError(
+            f"Qualification name '{qual_name}' is not a string with length > 0"
+        )
+
+    comparator = qual_dict["comparator"]
+    if comparator not in SUPPORTED_COMPARATORS:
+        raise AssertionError(
+            f"Qualification comparator '{comparator}' not in supported list: {SUPPORTED_COMPARATORS}'"
+        )
+
+    value = qual_dict["value"]
+
+    if (
+        comparator in [QUAL_GREATER, QUAL_LESS, QUAL_GREATER_EQUAL, QUAL_LESS_EQUAL]
+        and type(value) != int
+    ):
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be an int"
+        )
+
+    if comparator in [QUAL_EXISTS, QUAL_NOT_EXIST] and value is not None:
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be None"
+        )
+
+    if comparator in [QUAL_IN_LIST, QUAL_NOT_IN_LIST] and type(value) != list:
+        raise AssertionError(
+            f"Value {value} is not valid for comparator {comparator}, must be a list"
+        )
+
+    if qual_dict["applicable_providers"] is not None:
+        from mephisto.operations.registry import get_valid_provider_types
+
+        assert (
+            type(qual_dict["applicable_providers"]) == list
+        ), "Applicable providers must be a string list of providers or none."
+        valid_providers = get_valid_provider_types()
+        for provider_name in qual_dict["applicable_providers"]:
+            assert (
+                provider_name in valid_providers
+            ), f"Noted applicable provider name {provider_name} not in list of usable providers: {valid_providers}"
+
+    return qual_dict
+
+ +
+ +

Check to ensure that a qualification dict properly checks +against a Mephisto qualification

+
+ + +
+
+
#   + + + def + make_qualification_dict( + qualification_name: str, + comparator: str, + value: Any, + applicable_providers: Union[List[str], NoneType] = None +) -> Dict[str, Any]: +
+ +
+ View Source +
def make_qualification_dict(
+    qualification_name: str,
+    comparator: str,
+    value: Any,
+    applicable_providers: Optional[List[str]] = None,
+) -> Dict[str, Any]:
+    """
+    Create a qualification dict to pass to an operator as part
+    of extra_args
+    """
+    qual_dict = {
+        "qualification_name": qualification_name,
+        "comparator": comparator,
+        "value": value,
+        "applicable_providers": applicable_providers,
+    }
+    return as_valid_qualification_dict(qual_dict)
+
+ +
+ +

Create a qualification dict to pass to an operator as part +of extra_args

+
+ + +
+
+
#   + + + def + find_or_create_qualification( + db: mephisto.abstractions.database.MephistoDB, + qualification_name: str +) -> str: +
+ +
+ View Source +
def find_or_create_qualification(db: "MephistoDB", qualification_name: str) -> str:
+    """
+    Ensure the given qualification exists in the db,
+    creating it if it doesn't already. Returns the id
+    """
+    found_qualifications = db.find_qualifications(qualification_name)
+    if len(found_qualifications) == 0:
+        return db.make_qualification(qualification_name)
+    else:
+        return found_qualifications[0].db_id
+
+ +
+ +

Ensure the given qualification exists in the db, +creating it if it doesn't already. Returns the id

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/mephisto/utils/testing.html b/docs/web/static/python_api/mephisto/utils/testing.html new file mode 100644 index 000000000..5dd6c3585 --- /dev/null +++ b/docs/web/static/python_api/mephisto/utils/testing.html @@ -0,0 +1,774 @@ + + + + + + + + + mephisto.utils.testing API documentation + + + + + + + + + +
+
+

+mephisto.utils.testing

+ + +
+ View Source +
#!/usr/bin/env python3
+
+# Copyright (c) Meta Platforms and its affiliates.
+# This source code is licensed under the MIT license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Tuple
+
+from mephisto.abstractions.database import (
+    MephistoDB,
+    MephistoDBException,
+    EntryAlreadyExistsException,
+    EntryDoesNotExistException,
+)
+
+from mephisto.data_model.agent import Agent
+from mephisto.data_model.unit import Unit
+from mephisto.data_model.assignment import Assignment
+from mephisto.data_model.requester import Requester
+from mephisto.data_model.task import Task
+from mephisto.data_model.task_run import TaskRun, TaskRunArgs
+from omegaconf import OmegaConf
+import json
+
+from mephisto.abstractions.providers.mock.mock_provider import MockProviderArgs
+from mephisto.abstractions.blueprints.mock.mock_blueprint import MockBlueprintArgs
+from mephisto.abstractions.architects.mock_architect import MockArchitectArgs
+from mephisto.operations.hydra_config import MephistoConfig
+
+MOCK_TASK_ARGS = TaskRunArgs(
+    task_title="title",
+    task_description="This is a description",
+    task_reward=0.3,
+    task_tags="1,2,3",
+)
+
+MOCK_PROVIDER_ARGS = MockProviderArgs()
+MOCK_ARCHITECT_ARGS = MockArchitectArgs()
+MOCK_BLUEPRINT_ARGS = MockBlueprintArgs()
+
+MOCK_CONFIG = MephistoConfig(
+    provider=MOCK_PROVIDER_ARGS,
+    blueprint=MOCK_BLUEPRINT_ARGS,
+    architect=MOCK_ARCHITECT_ARGS,
+    task=MOCK_TASK_ARGS,
+)
+
+
+def get_test_project(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a project for tests"""
+    project_name = "test_project"
+    project_id = db.new_project(project_name)
+    return project_name, project_id
+
+
+def get_test_worker(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a worker for tests"""
+    worker_name = "test_worker"
+    provider_type = "mock"
+    worker_id = db.new_worker(worker_name, provider_type)
+    return worker_name, worker_id
+
+
+def get_test_requester(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a requester for tests"""
+    requester_name = "test_requester"
+    provider_type = "mock"
+    requester_id = db.new_requester(requester_name, provider_type)
+    return requester_name, requester_id
+
+
+def get_mock_requester(db) -> "Requester":
+    """Get or create a mock requester to use for test tasks"""
+    mock_requesters = db.find_requesters(provider_type="mock")
+    if len(mock_requesters) == 0:
+        db.new_requester("MOCK_REQUESTER", "mock")
+    mock_requesters = db.find_requesters(provider_type="mock")
+    return mock_requesters[0]
+
+
+def get_test_task(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a task for tests"""
+    task_name = "test_task"
+    task_type = "mock"
+    task_id = db.new_task(task_name, task_type)
+    return task_name, task_id
+
+
+def get_test_task_run(db: MephistoDB) -> str:
+    """Helper to create a task run for tests"""
+    task_name, task_id = get_test_task(db)
+    requester_name, requester_id = get_test_requester(db)
+    init_params = OmegaConf.to_yaml(OmegaConf.structured(MOCK_CONFIG))
+    return db.new_task_run(
+        task_id, requester_id, json.dumps(init_params), "mock", "mock"
+    )
+
+
+def get_test_assignment(db: MephistoDB) -> str:
+    """Helper to create an assignment for tests"""
+    task_run_id = get_test_task_run(db)
+    task_run = TaskRun.get(db, task_run_id)
+    return db.new_assignment(
+        task_run.task_id,
+        task_run_id,
+        task_run.requester_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+
+
+def get_test_unit(db: MephistoDB, unit_index=0) -> str:
+    # Check creation and retrieval of a unit
+    assignment_id = get_test_assignment(db)
+    pay_amount = 15.0
+    assignment = Assignment.get(db, assignment_id)
+    return db.new_unit(
+        assignment.task_id,
+        assignment.task_run_id,
+        assignment.requester_id,
+        assignment.db_id,
+        0,
+        pay_amount,
+        assignment.provider_type,
+        assignment.task_type,
+    )
+
+
+def get_test_agent(db: MephistoDB, unit_id=None) -> str:
+    # Check creation and retrieval of a agent
+    worker_name, worker_id = get_test_worker(db)
+    if unit_id is None:
+        unit_id = get_test_unit(db)
+    provider_type = "mock"
+    task_type = "mock"
+    unit = Unit.get(db, unit_id)
+    return db.new_agent(
+        worker_id,
+        unit.db_id,
+        unit.task_id,
+        unit.task_run_id,
+        unit.assignment_id,
+        unit.task_type,
+        unit.provider_type,
+    )
+
+
+def make_completed_unit(db: MephistoDB) -> str:
+    """
+    Creates a completed unit for the most recently created task run
+    using some worker. Assumes
+    """
+    workers = db.find_workers()
+    assert len(workers) > 0, "Must have at least one worker in database"
+    worker = workers[-1]
+    task_runs = db.find_task_runs(is_completed=False)
+    assert len(task_runs) > 0, "Must be at least one incomplete task run"
+    task_run = task_runs[-1]
+    assign_id = db.new_assignment(
+        task_run.task_id,
+        task_run.db_id,
+        task_run.requester_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+    unit_id = db.new_unit(
+        task_run.task_id,
+        task_run.db_id,
+        task_run.requester_id,
+        assign_id,
+        0,
+        0.2,
+        task_run.provider_type,
+        task_run.task_type,
+    )
+    agent_id = db.new_agent(
+        worker.db_id,
+        unit_id,
+        task_run.task_id,
+        task_run.db_id,
+        assign_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+    agent = Agent.get(db, agent_id)
+    agent.mark_done()
+    unit = Unit.get(db, unit_id)
+    unit.sync_status()
+    return unit.db_id
+
+ +
+ +
+
+
#   + + + def + get_test_project(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]: +
+ +
+ View Source +
def get_test_project(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a project for tests"""
+    project_name = "test_project"
+    project_id = db.new_project(project_name)
+    return project_name, project_id
+
+ +
+ +

Helper to create a project for tests

+
+ + +
+
+
#   + + + def + get_test_worker(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]: +
+ +
+ View Source +
def get_test_worker(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a worker for tests"""
+    worker_name = "test_worker"
+    provider_type = "mock"
+    worker_id = db.new_worker(worker_name, provider_type)
+    return worker_name, worker_id
+
+ +
+ +

Helper to create a worker for tests

+
+ + +
+
+
#   + + + def + get_test_requester(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]: +
+ +
+ View Source +
def get_test_requester(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a requester for tests"""
+    requester_name = "test_requester"
+    provider_type = "mock"
+    requester_id = db.new_requester(requester_name, provider_type)
+    return requester_name, requester_id
+
+ +
+ +

Helper to create a requester for tests

+
+ + +
+
+
#   + + + def + get_mock_requester(db) -> mephisto.data_model.requester.Requester: +
+ +
+ View Source +
def get_mock_requester(db) -> "Requester":
+    """Get or create a mock requester to use for test tasks"""
+    mock_requesters = db.find_requesters(provider_type="mock")
+    if len(mock_requesters) == 0:
+        db.new_requester("MOCK_REQUESTER", "mock")
+    mock_requesters = db.find_requesters(provider_type="mock")
+    return mock_requesters[0]
+
+ +
+ +

Get or create a mock requester to use for test tasks

+
+ + +
+
+
#   + + + def + get_test_task(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]: +
+ +
+ View Source +
def get_test_task(db: MephistoDB) -> Tuple[str, str]:
+    """Helper to create a task for tests"""
+    task_name = "test_task"
+    task_type = "mock"
+    task_id = db.new_task(task_name, task_type)
+    return task_name, task_id
+
+ +
+ +

Helper to create a task for tests

+
+ + +
+
+
#   + + + def + get_test_task_run(db: mephisto.abstractions.database.MephistoDB) -> str: +
+ +
+ View Source +
def get_test_task_run(db: MephistoDB) -> str:
+    """Helper to create a task run for tests"""
+    task_name, task_id = get_test_task(db)
+    requester_name, requester_id = get_test_requester(db)
+    init_params = OmegaConf.to_yaml(OmegaConf.structured(MOCK_CONFIG))
+    return db.new_task_run(
+        task_id, requester_id, json.dumps(init_params), "mock", "mock"
+    )
+
+ +
+ +

Helper to create a task run for tests

+
+ + +
+
+
#   + + + def + get_test_assignment(db: mephisto.abstractions.database.MephistoDB) -> str: +
+ +
+ View Source +
def get_test_assignment(db: MephistoDB) -> str:
+    """Helper to create an assignment for tests"""
+    task_run_id = get_test_task_run(db)
+    task_run = TaskRun.get(db, task_run_id)
+    return db.new_assignment(
+        task_run.task_id,
+        task_run_id,
+        task_run.requester_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+
+ +
+ +

Helper to create an assignment for tests

+
+ + +
+
+
#   + + + def + get_test_unit(db: mephisto.abstractions.database.MephistoDB, unit_index=0) -> str: +
+ +
+ View Source +
def get_test_unit(db: MephistoDB, unit_index=0) -> str:
+    # Check creation and retrieval of a unit
+    assignment_id = get_test_assignment(db)
+    pay_amount = 15.0
+    assignment = Assignment.get(db, assignment_id)
+    return db.new_unit(
+        assignment.task_id,
+        assignment.task_run_id,
+        assignment.requester_id,
+        assignment.db_id,
+        0,
+        pay_amount,
+        assignment.provider_type,
+        assignment.task_type,
+    )
+
+ +
+ + + +
+
+
#   + + + def + get_test_agent(db: mephisto.abstractions.database.MephistoDB, unit_id=None) -> str: +
+ +
+ View Source +
def get_test_agent(db: MephistoDB, unit_id=None) -> str:
+    # Check creation and retrieval of a agent
+    worker_name, worker_id = get_test_worker(db)
+    if unit_id is None:
+        unit_id = get_test_unit(db)
+    provider_type = "mock"
+    task_type = "mock"
+    unit = Unit.get(db, unit_id)
+    return db.new_agent(
+        worker_id,
+        unit.db_id,
+        unit.task_id,
+        unit.task_run_id,
+        unit.assignment_id,
+        unit.task_type,
+        unit.provider_type,
+    )
+
+ +
+ + + +
+
+
#   + + + def + make_completed_unit(db: mephisto.abstractions.database.MephistoDB) -> str: +
+ +
+ View Source +
def make_completed_unit(db: MephistoDB) -> str:
+    """
+    Creates a completed unit for the most recently created task run
+    using some worker. Assumes
+    """
+    workers = db.find_workers()
+    assert len(workers) > 0, "Must have at least one worker in database"
+    worker = workers[-1]
+    task_runs = db.find_task_runs(is_completed=False)
+    assert len(task_runs) > 0, "Must be at least one incomplete task run"
+    task_run = task_runs[-1]
+    assign_id = db.new_assignment(
+        task_run.task_id,
+        task_run.db_id,
+        task_run.requester_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+    unit_id = db.new_unit(
+        task_run.task_id,
+        task_run.db_id,
+        task_run.requester_id,
+        assign_id,
+        0,
+        0.2,
+        task_run.provider_type,
+        task_run.task_type,
+    )
+    agent_id = db.new_agent(
+        worker.db_id,
+        unit_id,
+        task_run.task_id,
+        task_run.db_id,
+        assign_id,
+        task_run.task_type,
+        task_run.provider_type,
+    )
+    agent = Agent.get(db, agent_id)
+    agent.mark_done()
+    unit = Unit.get(db, unit_id)
+    unit.sync_status()
+    return unit.db_id
+
+ +
+ +

Creates a completed unit for the most recently created task run +using some worker. Assumes

+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/web/static/python_api/search.js b/docs/web/static/python_api/search.js new file mode 100644 index 000000000..9ff1554b8 --- /dev/null +++ b/docs/web/static/python_api/search.js @@ -0,0 +1,52 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +window.pdocSearch = (function(){ +/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oMephisto\n\n

This is the main package directory, containing all of the core workings of Mephisto. They roughly follow the divisions noted in the architecture overview doc. The breakdown is as following:

\n\n
    \n
  • abstractions: Contains the interface classes for the core abstractions in Mephisto, as well as implementations of those interfaces. These are the Architects, Blueprints, Crowd Providers, and Databases.
  • \n
  • client: Contains user interfaces for using Mephisto at a very high level. Primarily comprised of the python code for the cli and the web views.
  • \n
  • data_model: Contains the data model components as described in the architecture document. These are the relevant data structures that build upon the underlying MephistoDB, and are utilized throughout the Mephisto codebase.
  • \n
  • operations: Contains low-level operational code that performs more complex functionality on top of the Mephisto data model.
  • \n
  • scripts: Contains commonly executed convenience scripts for Mephisto users.
  • \n
  • tools: Contains helper methods and modules that allow for lower-level access to the Mephisto data model than the clients provide. Useful for creating custom workflows and scripts that are built on Mephisto.
  • \n
\n"}, "mephisto.abstractions": {"fullname": "mephisto.abstractions", "modulename": "mephisto.abstractions", "type": "module", "doc": "

Mephisto Core Abstractions

\n\n

This directory contains the interfaces for the four core Mephisto abstractions (as well as subcomponents of those abstractions). Those abstractions are discussed at a high level in the architecture overvierw doc.

\n\n

Specific implementations can be made to extend the Mephisto data model to work with new crowd providers, new task types, and new backend server architectures. These four primary abstractions are summarized below, but other sections go more in-depth.

\n\n

Architect

\n\n

An Architect is an abstraction that allows Mephisto to manage setup and maintenance of task servers for you. When launching a task, Mephisto uses an Architect to build required server files, launch that server, deploy the task files, and then later shut it down when the task is complete. More details are found in the abstractions/architects folder, along with the existing Architects.

\n\n

Architects also require a Channel to allow the ClientIOHandler to communicate with the server, and are expected to define their own or select a compatible one from the ones already present.

\n\n

Blueprint

\n\n

A Blueprint is the essential formula for running a task on Mephisto. It accepts some number of parameters and input data, and that should be sufficient content to be able to display a frontend to the crowdworker, process their responses, and then save them somewhere. It comprises of extensions of the AgentState (data storage), TaskRunner (actual steps to complete the task), and TaskBuilder (resources to display a frontend) classes. More details are provided in the abstractions/blueprints folder, where all the existing Blueprints live.

\n\n

CrowdProvider

\n\n

A CrowdProvider is a wrapper around any of the required functionality that Mephisto will need to utilize to accept work from workers on a specific service. Ultimately it comprises of an extension of each of Worker, Agent, Unit, and Requester. More details can be found in the abstractions/providers folder, where all of the existing CrowdProviders live.

\n\n

MephistoDB

\n\n

The MephistoDB is an abstraction around the storage for the Mephisto data model, such that it could be possible to create alternate methods for storing and loading the kind of data that mephisto requires without breaking functionality.

\n"}, "mephisto.abstractions.architect": {"fullname": "mephisto.abstractions.architect", "modulename": "mephisto.abstractions.architect", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architect.ArchitectArgs": {"fullname": "mephisto.abstractions.architect.ArchitectArgs", "modulename": "mephisto.abstractions.architect", "qualname": "ArchitectArgs", "type": "class", "doc": "

Base class for arguments to configure architects

\n"}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"fullname": "mephisto.abstractions.architect.ArchitectArgs.__init__", "modulename": "mephisto.abstractions.architect", "qualname": "ArchitectArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _architect_type: str = '???',\n server_type: str = 'node',\n server_source_path: str = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"fullname": "mephisto.abstractions.architect.ArchitectArgs.server_type", "modulename": "mephisto.abstractions.architect", "qualname": "ArchitectArgs.server_type", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'node'"}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"fullname": "mephisto.abstractions.architect.ArchitectArgs.server_source_path", "modulename": "mephisto.abstractions.architect", "qualname": "ArchitectArgs.server_source_path", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.architect.Architect": {"fullname": "mephisto.abstractions.architect.Architect", "modulename": "mephisto.abstractions.architect", "qualname": "Architect", "type": "class", "doc": "

Provides methods for setting up a server somewhere and deploying tasks\nonto that server.

\n", "bases": "abc.ABC"}, "mephisto.abstractions.architect.Architect.__init__": {"fullname": "mephisto.abstractions.architect.Architect.__init__", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.__init__", "type": "function", "doc": "

Initialize this architect with whatever options are provided given\nArgsClass. Parse whatever additional options may be required\nfor the specific task_run.

\n\n

Also set up any required database/memory into the MephistoDB so that\nthis data can be stored long-term.

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n task_run: mephisto.data_model.task_run.TaskRun,\n build_dir_root: str\n)", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.ArgsClass": {"fullname": "mephisto.abstractions.architect.Architect.ArgsClass", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.ArgsClass", "type": "class", "doc": "

Base class for arguments to configure architects

\n"}, "mephisto.abstractions.architect.Architect.assert_task_args": {"fullname": "mephisto.abstractions.architect.Architect.assert_task_args", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.assert_task_args", "type": "function", "doc": "

Assert that the provided arguments are valid. Should\nfail if a task launched with these arguments would\nnot work.

\n\n

This should include throwing an exception if the architect\nneeds login details or something similar given the\narguments passed in.

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.get_channels": {"fullname": "mephisto.abstractions.architect.Architect.get_channels", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.get_channels", "type": "function", "doc": "

Return a list of all relevant channels that the ClientIOHandler\nwill need to register to in order to function

\n", "signature": "(\n self,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType]\n) -> list[mephisto.abstractions._subcomponents.channel.Channel]", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.download_file": {"fullname": "mephisto.abstractions.architect.Architect.download_file", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.download_file", "type": "function", "doc": "

Save the file that is noted as stored on the server to\nthe desired save location.

\n", "signature": "(self, filename: str, save_dir: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.prepare": {"fullname": "mephisto.abstractions.architect.Architect.prepare", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.prepare", "type": "function", "doc": "

Produce the server files that will be deployed to the server

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.deploy": {"fullname": "mephisto.abstractions.architect.Architect.deploy", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.deploy", "type": "function", "doc": "

Launch the server, and push the task files to the server. Return\nthe server URL

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.cleanup": {"fullname": "mephisto.abstractions.architect.Architect.cleanup", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.cleanup", "type": "function", "doc": "

Remove any files that were used for the deployment process that\nno longer need to be kept track of now that the task has\nbeen launched.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architect.Architect.shutdown": {"fullname": "mephisto.abstractions.architect.Architect.shutdown", "modulename": "mephisto.abstractions.architect", "qualname": "Architect.shutdown", "type": "function", "doc": "

Shut down the server launched by this Surveyor, as stored\nin the db.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects": {"fullname": "mephisto.abstractions.architects", "modulename": "mephisto.abstractions.architects", "type": "module", "doc": "

architects

\n\n

This folder contains all of the current official Architect implementations.

\n\n

Architect's contain the logic surrounding deploying a server that workers will be able to access. In many cases Mephisto is being run on compute clusters that aren't directly addressable, or in different configurations between collaborators. Mephisto should be able to run a task from start to finish regardless of the server configuration a user would like to use, and Architect's provide this capability.

\n\n

Architect

\n\n

The Architect class is responsible for providing Mephisto with lifecycle functions for preparing, deploying, and shutting down a given server. It's also responsible with providing access to the user via a Channel, which defines an interface of callbacks for incoming messages and a function for outgoing messages. It should define the following things in order to operate properly:

\n\n
    \n
  • ArgsClass: A dataclass that implements ArchitectArgs, specifying all of the configuration arguments that the Architect uses in order to properly initialize.
  • \n
  • get_channels: A method that will return a list of initialized Channel's that the ClientIOHandler will need to communicate with to manage running a task. Returns a list to handle cases where an Architect is communicating with multiple servers in a distributed setup.
  • \n
  • prepare: Prepare any files that will be used in the deploy process. Should return the location of the prepared server files.
  • \n
  • deploy: Launch the server (if necessary) and deploy the prepared task files such that the server will be able to serve them. Return the server URL for this task, such that Mephisto can point workers to it.
  • \n
  • cleanup: Clean up any files that were used in the deploy process that aren't necessarily useful for later
  • \n
  • shutdown: Shut down the server (if necessary) or otherwise take the specific task url expected to point to this Mephisto task run offline.
  • \n
  • download_file: Save the file that is stored on the server with a given filename to the local save directory provided. Only required by Architect's that aren't able to pass a file through the Channel directly.
  • \n
\n\n

Lifecycle

\n\n

During initialization, Mephisto calls assert_task_args and expects the ArchitectClass to be able to pass through any arguments specified by the ArgsClass, raising an exception if there are any configuration problems. After this point, Mephisto will initialize the Architect with the validated config.

\n\n

Initially Mephisto will call prepare to give the Architect a chance to collect any relevant files required to run the server. It will give the Blueprint a chance to add additional files to this folder before the deploy.

\n\n

Next, Mephisto will call deploy and then get_channels. This should ensure that there is an external server, and that Mephisto has a way to communicate with it through a Channel. Only after this is met, it will publish tasks to the crowd provider.

\n\n

Once the task is done, or if it is cancelled or an error occurs, Mephisto will call shutdown, which is the signal for the Architect to clean up both local resources and remote resources related to this task.

\n\n

Implementations

\n\n

LocalArchitect

\n\n

The LocalArchitect implementation works by running a node server on the local machine at the given port in a background process. It communicates over websockets with the WebsocketChannel, and requires that there's a directory where node is actively running in. The particular node server is the baseline router implementation available in the router/node folder.

\n\n

HerokuArchitect

\n\n

The HerokuArchitect implementation works by getting access to the heroku cli, preparing a directory of what to deploy on that server, and then pushing it along. It communicates over the WebsocketChannel. This also relies on the node server implementation available in the router/node folder.

\n\n

You can specify Heroku configuration variables in hydra using your config file:

\n\n
#@package _global_\nmephisto:\n  architect:\n    heroku_config_args:\n      ONE_ARGUMENT: something\n      ANOTHER_ARGUMENT: something else\n
\n\n

MockArchitect

\n\n

The MockArchitect is an Architect used primarily for testing. To test Mephisto lifecycle, you can choose should_run_server=False, which just leads to the lifecycle functions marking if they've been called. Setting should_run_server=True can be used to automatically test certain flows, as it launches a Tornado server for which every packet and action sent through it can be scripted.

\n\n

Discussions

\n\n

Currently the abstraction around prepare and deploy should be a little more rigid, defining the kinds of files that tasks should be able to deploy, where to expect to find them, etc. At the moment, this API is somewhat unclear, and while this is okay with the current set of Architect's, future ones may not be as clear on this capability.

\n\n

It's unclear if cleanup should be called immediately when the server is deployed (freeing space) or only after a task has been fully reviewed and archived following the review flow. It's possible that the deciding factor should be based on if the Blueprint is even registered to use the review flow at all.

\n"}, "mephisto.abstractions.architects.channels": {"fullname": "mephisto.abstractions.architects.channels", "modulename": "mephisto.abstractions.architects.channels", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.channels.websocket_channel": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel", "type": "class", "doc": "

Channel for communicating with a server via websockets.

\n", "bases": "mephisto.abstractions._subcomponents.channel.Channel"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.__init__", "type": "function", "doc": "

Create a channel by the given name, and initialize any resources that\nwill later be required during the open call.

\n\n

Requires a socket_url to connect with.

\n", "signature": "(\n self,\n channel_id: str,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: Callable[[str, mephisto.data_model.packet.Packet], NoneType],\n socket_url: str\n)", "funcdef": "def"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.is_closed", "type": "function", "doc": "

Return whether or not this connection has been explicitly closed\nby the ClientIOHandler or another source.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.close", "type": "function", "doc": "

Close this channel, and ensure that all threads and surrounding\nresources are cleaned up

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.is_alive", "type": "function", "doc": "

Return if this channel is actively able to send/recieve messages.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.open", "type": "function", "doc": "

Set up a socket handling thread.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"fullname": "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send", "modulename": "mephisto.abstractions.architects.channels.websocket_channel", "qualname": "WebsocketChannel.enqueue_send", "type": "function", "doc": "

Send the packet given to the intended recipient.\nReturn True on success and False on failure.

\n", "signature": "(self, packet: mephisto.data_model.packet.Packet) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2": {"fullname": "mephisto.abstractions.architects.ec2", "modulename": "mephisto.abstractions.architects.ec2", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"fullname": "mephisto.abstractions.architects.ec2.cleanup_ec2_resources", "modulename": "mephisto.abstractions.architects.ec2.cleanup_ec2_resources", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"fullname": "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main", "modulename": "mephisto.abstractions.architects.ec2.cleanup_ec2_resources", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"fullname": "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name", "modulename": "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"fullname": "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main", "modulename": "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "url_safe_string", "type": "function", "doc": "

Produces a domain string that is safe for use\nin ec2 resources

\n", "signature": "(in_string: str) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2ArchitectArgs", "type": "class", "doc": "

Additional arguments for configuring a heroku architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2ArchitectArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _architect_type: str = 'ec2',\n server_type: str = 'node',\n server_source_path: str = '???',\n instance_type: str = 't2.micro',\n subdomain: str = '${mephisto.task.task_name}',\n profile_name: str = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2ArchitectArgs.instance_type", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 't2.micro'"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2ArchitectArgs.subdomain", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '${mephisto.task.task_name}'"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2ArchitectArgs.profile_name", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect", "type": "class", "doc": "

Sets up a server on heroku and deploys the task on that server

\n", "bases": "mephisto.abstractions.architect.Architect"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.__init__", "type": "function", "doc": "

Create an architect with all required parameters for launch loaded

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n task_run: mephisto.data_model.task_run.TaskRun,\n build_dir_root: str\n)", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.ArgsClass", "type": "class", "doc": "

Additional arguments for configuring a heroku architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.ARCHITECT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'ec2'"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.get_channels", "type": "function", "doc": "

Return a list of all relevant channels that the ClientIOHandler\nwill need to register to in order to function

\n", "signature": "(\n self,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType]\n) -> list[mephisto.abstractions._subcomponents.channel.Channel]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.download_file", "type": "function", "doc": "

Download the file from local storage

\n", "signature": "(self, target_filename: str, save_dir: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.check_domain_unused_locally", "type": "function", "doc": "

Checks to see if we have an active local record for the given subdomain

\n", "signature": "(self, subdomain: str)", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.assert_task_args", "type": "function", "doc": "

Assert that the given profile is already ready, that a fallback exists\nand that all the configuration is ready

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.server_is_running", "type": "function", "doc": "

Utility function to check if the given heroku app (by app-name) is\nstill running

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.build_is_clean", "type": "function", "doc": "

Utility function to see if the build has been cleaned up

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.prepare", "type": "function", "doc": "

Produce the server files that will be deployed to the server

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.deploy", "type": "function", "doc": "

Launch the server, and push the task files to the server. Return\nthe server URL

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.cleanup", "type": "function", "doc": "

Remove any files that were used for the deployment process that\nno longer need to be kept track of now that the task has\nbeen launched.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"fullname": "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown", "modulename": "mephisto.abstractions.architects.ec2.ec2_architect", "qualname": "EC2Architect.shutdown", "type": "function", "doc": "

Shut down the server launched by this Architect, as stored\nin the db.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "get_owner_tag", "type": "function", "doc": "

Creates a tag with the user's username\nas the owner for the given resource

\n", "signature": "() -> Dict[str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "check_aws_credentials", "type": "function", "doc": "

\n", "signature": "(profile_name: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "setup_ec2_credentials", "type": "function", "doc": "

\n", "signature": "(\n profile_name: str,\n register_args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "get_domain_if_available", "type": "function", "doc": "

Attempt to register the given domain with Route53, return\nTrue if registration is successful, False otherwise.

\n\n

Details on valid domains can be found here:\nhttps://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar-tld-list.html

\n\n

Pricing is available on amazon

\n", "signature": "(session: boto3.session.Session, domain_name: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "find_hosted_zone", "type": "function", "doc": "

search for a hosted zone with the given name, return its id\nif found and None otherwise

\n", "signature": "(\n session: boto3.session.Session,\n domain_name: str\n) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_hosted_zone", "type": "function", "doc": "

Given a domain name, tries to create a hosted zone\nfor that domain. Returns the hosted zone id

\n", "signature": "(session: boto3.session.Session, domain_name: str) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "find_certificate_arn", "type": "function", "doc": "

Finds the certificate for the given domain if it exists, and returns\nthe certification arn.

\n", "signature": "(\n session: boto3.session.Session,\n domain_name: str\n) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "get_certificate", "type": "function", "doc": "

Gets the certificate for the given domain name, and returns\nthe dns validation name and target and cert arn ('Name' and 'Value', 'arn')

\n", "signature": "(session: boto3.session.Session, domain_name: str) -> Dict[str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "register_zone_records", "type": "function", "doc": "

Creates the required zone records for this mephisto hosted zone. Requires\nthe load balancer target, and the ACM certificate addresses

\n\n

Returns the change id

\n", "signature": "(\n session: boto3.session.Session,\n zone_id: str,\n domain_name: str,\n load_balancer_arn: str,\n acm_valid_name: str,\n acm_valid_target: str\n) -> int", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_mephisto_vpc", "type": "function", "doc": "

Create the required vpc with two subnets, an associated\ninternet gateway, and routing tables.

\n\n

Currently sets up using US-east for both subnets

\n", "signature": "(session: boto3.session.Session) -> Dict[str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_security_group", "type": "function", "doc": "

Create a security group with public access\nfor 80 and 443, but only access from ssh_ip (comma-separated) for 22

\n", "signature": "(session: boto3.session.Session, vpc_id: str, ssh_ip: str) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_key_pair", "type": "function", "doc": "

creates a key pair by the given name, and writes it to file

\n", "signature": "(\n session: boto3.session.Session,\n key_name: str,\n key_pair_dir: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/keypairs'\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_instance", "type": "function", "doc": "

Create an instance, return the instance id, allocation id, and association id

\n", "signature": "(\n session: boto3.session.Session,\n key_pair_name: str,\n security_group_id: str,\n subnet_id: str,\n instance_name: str,\n volume_size: int = 8,\n instance_type: str = 'm2.micro'\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_target_group", "type": "function", "doc": "

Create a target group for the given instance

\n", "signature": "(\n session: boto3.session.Session,\n vpc_id: str,\n instance_id: str,\n group_name='mephisto-fallback'\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "rule_is_new", "type": "function", "doc": "

Check to see if a rule already exists with the given subdomain

\n", "signature": "(\n session: boto3.session.Session,\n subdomain: str,\n listener_arn: str\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "register_instance_to_listener", "type": "function", "doc": "

Creates a rule for this specific redirect case,\nand returns the target group id and rule arn

\n", "signature": "(\n session: boto3.session.Session,\n instance_id: str,\n vpc_id: str,\n listener_arn: str,\n domain: str\n) -> Tuple[str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "create_load_balancer", "type": "function", "doc": "

Creates a load balancer and returns the balancer's arn

\n", "signature": "(\n session: boto3.session.Session,\n subnet_ids: List[str],\n security_group_id: str,\n vpc_id: str\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "configure_base_balancer", "type": "function", "doc": "

Configure the default rules for this load balancer. Return the id\nof the listener to add rules to for redirecting to specified target groups

\n", "signature": "(\n session: boto3.session.Session,\n balancer_arn: str,\n certificate_arn: str,\n target_group_arn: str\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "get_instance_address", "type": "function", "doc": "

Create a temporary publicly accessible IP for the given instance.\nReturn the IP address, the allocation id, and the association id.

\n", "signature": "(\n session: boto3.session.Session,\n instance_id: str\n) -> Tuple[str, str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "detete_instance_address", "type": "function", "doc": "

Removes the public ip described by the given allocation and association ids

\n", "signature": "(\n session: boto3.session.Session,\n allocation_id: str,\n association_id: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "try_server_push", "type": "function", "doc": "

Try to execute the server push provided in subprocess args

\n", "signature": "(subprocess_args: List[str], retries=5, sleep_time=10.0)", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "deploy_fallback_server", "type": "function", "doc": "

Deploy the fallback server to the given instance,\nreturn True if successful

\n", "signature": "(\n session: boto3.session.Session,\n instance_id: str,\n key_pair: str,\n log_access_pass: str\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "deploy_to_routing_server", "type": "function", "doc": "

\n", "signature": "(\n session: boto3.session.Session,\n instance_id: str,\n key_pair: str,\n push_directory: str\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "delete_rule", "type": "function", "doc": "

Remove the given rule and the target group for this rule

\n", "signature": "(\n session: boto3.session.Session,\n rule_arn: str,\n target_group_arn: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "delete_instance", "type": "function", "doc": "

Remove the given instance and the associated elastic ip

\n", "signature": "(session: boto3.session.Session, instance_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "remove_instance_and_cleanup", "type": "function", "doc": "

Cleanup for a launched server, removing the redirect rule\nclearing the target group, and then shutting down the instance.

\n", "signature": "(session: boto3.session.Session, server_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "delete_listener", "type": "function", "doc": "

\n", "signature": "(session: boto3.session.Session, listener_arn: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"fullname": "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server", "modulename": "mephisto.abstractions.architects.ec2.ec2_helpers", "qualname": "cleanup_fallback_server", "type": "function", "doc": "

Cleans up all of the resources for the given iam profile,\nassuming that the details are stored in the given\nserver_details_file.

\n\n

Optionally includes deleting the hosted zone, which remains\nan option due to the DNS changes required

\n", "signature": "(\n iam_profile: str,\n delete_hosted_zone: bool = False,\n server_details_file: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/servers/fallback.json'\n) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"fullname": "mephisto.abstractions.architects.ec2.prepare_ec2_servers", "modulename": "mephisto.abstractions.architects.ec2.prepare_ec2_servers", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"fullname": "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details", "modulename": "mephisto.abstractions.architects.ec2.prepare_ec2_servers", "qualname": "update_details", "type": "function", "doc": "

Overwrite the contents of the open file with the given data.

\n", "signature": "(open_file, new_data: Dict[str, Any])", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"fullname": "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback", "modulename": "mephisto.abstractions.architects.ec2.prepare_ec2_servers", "qualname": "launch_ec2_fallback", "type": "function", "doc": "

This function is used to set up a mephisto\nvpc and fallback server for the AWS setup. At the moment\nit requires that you already have a domain registered,\nand it is up to you to delegate the domain to the\namazon nameservers created by this function. This\nfunction will request the ssl certificate from amazon

\n\n

At the moment, it only works on the us-east region.\nFeel free to open a PR to extend this functionality\nif you need another region!

\n", "signature": "(\n iam_profile: str,\n domain_name: str,\n ssh_ip_block: str,\n access_logs_key: str,\n key_pair_name: str = 'mephisto-server-key',\n server_details_file: str = '/Users/jju/mephisto/mephisto/abstractions/architects/ec2/servers/fallback.json',\n instance_type: str = 't2.nano'\n) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"fullname": "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main", "modulename": "mephisto.abstractions.architects.ec2.prepare_ec2_servers", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect": {"fullname": "mephisto.abstractions.architects.heroku_architect", "modulename": "mephisto.abstractions.architects.heroku_architect", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitectArgs", "type": "class", "doc": "

Additional arguments for configuring a heroku architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitectArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _architect_type: str = 'heroku',\n server_type: str = 'node',\n server_source_path: str = '???',\n use_hobby: bool = False,\n heroku_team: Union[str, NoneType] = '???',\n heroku_app_name: Union[str, NoneType] = '???',\n heroku_config_args: Dict[str, str] = \n)", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitectArgs.use_hobby", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitectArgs.heroku_team", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = '???'"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitectArgs.heroku_app_name", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = '???'"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect", "type": "class", "doc": "

Sets up a server on heroku and deploys the task on that server

\n", "bases": "mephisto.abstractions.architect.Architect"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.__init__", "type": "function", "doc": "

Ensure heroku credentials are setup, then prepare the necessary files\nfor launching for this task.

\n\n

All necessary paths should be built in the init or stored in the database\nsuch that a re-init on the same task run can pull the server information.

\n\n

This means that we can shutdown a server that is still running after a\ncatastrophic failure.

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n task_run: mephisto.data_model.task_run.TaskRun,\n build_dir_root: str\n)", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.ArgsClass", "type": "class", "doc": "

Additional arguments for configuring a heroku architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.ARCHITECT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'heroku'"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.get_channels", "type": "function", "doc": "

Return a list of all relevant channels that the ClientIOHandler\nwill need to register to in order to function

\n", "signature": "(\n self,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType]\n) -> list[mephisto.abstractions._subcomponents.channel.Channel]", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.download_file", "type": "function", "doc": "

Heroku architects need to download the file

\n", "signature": "(self, target_filename: str, save_dir: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.assert_task_args", "type": "function", "doc": "

Assert that the provided arguments are valid. Should\nfail if a task launched with these arguments would\nnot work.

\n\n

This should include throwing an exception if the architect\nneeds login details or something similar given the\narguments passed in.

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.get_heroku_client_path", "type": "function", "doc": "

Get the path to the heroku executable client, download a new one if it\ndoesnt exist.

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.get_user_identifier", "type": "function", "doc": "

Get heroku credentials for the current logged-in user

\n", "signature": "() -> Tuple[str, str]", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.server_is_running", "type": "function", "doc": "

Utility function to check if the given heroku app (by app-name) is\nstill running

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.build_is_clean", "type": "function", "doc": "

Utility function to see if the build has been cleaned up

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.prepare", "type": "function", "doc": "

Produce the server files that will be deployed to the server

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.deploy", "type": "function", "doc": "

Launch the server, and push the task files to the server. Return\nthe server URL

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.cleanup", "type": "function", "doc": "

Remove any files that were used for the deployment process that\nno longer need to be kept track of now that the task has\nbeen launched.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"fullname": "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown", "modulename": "mephisto.abstractions.architects.heroku_architect", "qualname": "HerokuArchitect.shutdown", "type": "function", "doc": "

Shut down the server launched by this Architect, as stored\nin the db.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect": {"fullname": "mephisto.abstractions.architects.local_architect", "modulename": "mephisto.abstractions.architects.local_architect", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitectArgs", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitectArgs", "type": "class", "doc": "

Additional arguments for configuring a local architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitectArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _architect_type: str = 'local',\n server_type: str = 'node',\n server_source_path: str = '???',\n hostname: str = 'localhost',\n port: str = '3000'\n)", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitectArgs.hostname", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'localhost'"}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitectArgs.port", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '3000'"}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect", "type": "class", "doc": "

Provides methods for setting up a server locally and deploying tasks\nonto that server.

\n", "bases": "mephisto.abstractions.architect.Architect"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.__init__", "type": "function", "doc": "

Create an architect for use in testing

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n task_run: mephisto.data_model.task_run.TaskRun,\n build_dir_root: str\n)", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.ArgsClass", "type": "class", "doc": "

Additional arguments for configuring a local architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.ARCHITECT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'local'"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.get_channels", "type": "function", "doc": "

Return a list of all relevant channels that the ClientIOHandler\nwill need to register to in order to function

\n", "signature": "(\n self,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType]\n) -> list[mephisto.abstractions._subcomponents.channel.Channel]", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.download_file", "type": "function", "doc": "

Local architects can just move from the local directory

\n", "signature": "(self, target_filename: str, save_dir: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.prepare", "type": "function", "doc": "

Mark the preparation call

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.deploy", "type": "function", "doc": "

Deploy the server from a local folder for this task

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.cleanup", "type": "function", "doc": "

Cleanup the built directory

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"fullname": "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown", "modulename": "mephisto.abstractions.architects.local_architect", "qualname": "LocalArchitect.shutdown", "type": "function", "doc": "

Find the server process, shut it down, then remove the build directory

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect": {"fullname": "mephisto.abstractions.architects.mock_architect", "modulename": "mephisto.abstractions.architects.mock_architect", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"fullname": "mephisto.abstractions.architects.mock_architect.get_rand_id", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "get_rand_id", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitectArgs", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitectArgs", "type": "class", "doc": "

Additional arguments for configuring a mock architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitectArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _architect_type: str = 'mock',\n server_type: str = 'node',\n server_source_path: str = '???',\n should_run_server: bool = False,\n port: str = '3000'\n)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitectArgs.should_run_server", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitectArgs.port", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '3000'"}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler", "type": "class", "doc": "

Subclass this class to create a basic WebSocket handler.

\n\n

Override on_message to handle incoming messages, and use\nwrite_message to send messages to the client. You can also\noverride open and on_close to handle opened and closed\nconnections.

\n\n

Custom upgrade response headers can be sent by overriding\n~tornado.web.RequestHandler.set_default_headers or\n~tornado.web.RequestHandler.prepare.

\n\n

See http://dev.w3.org/html5/websockets/ for details on the\nJavaScript interface. The protocol is specified at\nhttp://tools.ietf.org/html/rfc6455.

\n\n

Here is an example WebSocket handler that echos back all received messages\nback to the client:

\n\n

.. testcode::

\n\n

class EchoWebSocket(tornado.websocket.WebSocketHandler):\n def open(self):\n print(\"WebSocket opened\")

\n\n
  def on_message(self, message):\n      self.write_message(u\"You said: \" + message)\n\n  def on_close(self):\n      print(\"WebSocket closed\")\n
\n\n

.. testoutput::\n :hide:

\n\n

WebSockets are not standard HTTP connections. The \"handshake\" is\nHTTP, but after the handshake, the protocol is\nmessage-based. Consequently, most of the Tornado HTTP facilities\nare not available in handlers of this type. The only communication\nmethods available to you are write_message(), ping(), and\nclose(). Likewise, your request handler class should implement\nopen() method rather than get() or post().

\n\n

If you map the handler above to /websocket in your application, you can\ninvoke it in JavaScript with::

\n\n

var ws = new WebSocket(\"ws://localhost:8888/websocket\");\n ws.onopen = function() {\n ws.send(\"Hello, world\");\n };\n ws.onmessage = function (evt) {\n alert(evt.data);\n };

\n\n

This script pops up an alert box that says \"You said: Hello, world\".

\n\n

Web browsers allow any site to open a websocket connection to any other,\ninstead of using the same-origin policy that governs other network\naccess from javascript. This can be surprising and is a potential\nsecurity hole, so since Tornado 4.0 WebSocketHandler requires\napplications that wish to receive cross-origin websockets to opt in\nby overriding the ~WebSocketHandler.check_origin method (see that\nmethod's docs for details). Failure to do so is the most likely\ncause of 403 errors when making a websocket connection.

\n\n

When using a secure websocket connection (wss://) with a self-signed\ncertificate, the connection from a browser may fail because it wants\nto show the \"accept this certificate\" dialog but has nowhere to show it.\nYou must first visit a regular HTML page using the same certificate\nto accept it before the websocket connection will succeed.

\n\n

If the application setting websocket_ping_interval has a non-zero\nvalue, a ping will be sent periodically, and the connection will be\nclosed if a response is not received before the websocket_ping_timeout.

\n\n

Messages larger than the websocket_max_message_size application setting\n(default 10MiB) will not be accepted.

\n\n

.. versionchanged:: 4.5\n Added websocket_ping_interval, websocket_ping_timeout, and\n websocket_max_message_size.

\n", "bases": "tornado.websocket.WebSocketHandler"}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler.__init__", "type": "function", "doc": "

\n", "signature": "(self, *args, **kwargs)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler.open", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler.open", "type": "function", "doc": "

Opens a websocket and assigns a random UUID that is stored in the class-level\nsubs variable.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler.on_close", "type": "function", "doc": "

Runs when a socket is closed.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler.on_message", "type": "function", "doc": "

Callback that runs when a new message is received from a client See the\nchat_service README for the resultant message structure.\nArgs:\n message_text: A stringified JSON object with a text or attachment key.\n text should contain a string message and attachment is a dict.\n See WebsocketAgent.put_data for more information about the\n attachment dict structure.

\n", "signature": "(self, message_text)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"fullname": "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "SocketHandler.check_origin", "type": "function", "doc": "

Override to enable support for allowing alternate origins.

\n\n

The origin argument is the value of the Origin HTTP\nheader, the url responsible for initiating this request. This\nmethod is not called for clients that do not send this header;\nsuch requests are always allowed (because all browsers that\nimplement WebSockets support this header, and non-browser\nclients do not have the same cross-site security concerns).

\n\n

Should return True to accept the request or False to\nreject it. By default, rejects all requests with an origin on\na host other than this one.

\n\n

This is a security protection against cross site scripting attacks on\nbrowsers, since WebSockets are allowed to bypass the usual same-origin\npolicies and don't use CORS headers.

\n\n

.. warning::

\n\n

This is an important security measure; don't disable it\n without understanding the security implications. In\n particular, if your authentication is cookie-based, you\n must either restrict the origins allowed by\n check_origin() or implement your own XSRF-like\n protection for websocket connections. See these\n <https://www.christian-schneider.net/CrossSiteWebSocketHijacking.html>_\n articles\n <https://devcenter.heroku.com/articles/websocket-security>_\n for more.

\n\n

To accept all cross-origin traffic (which was the default prior to\nTornado 4.0), simply override this method to always return True::

\n\n
def check_origin(self, origin):\n    return True\n
\n\n

To allow connections from any subdomain of your site, you might\ndo something like::

\n\n
def check_origin(self, origin):\n    parsed_origin = urllib.parse.urlparse(origin)\n    return parsed_origin.netloc.endswith(\".mydomain.com\")\n
\n\n

.. versionadded:: 4.0

\n", "signature": "(self, origin)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"fullname": "mephisto.abstractions.architects.mock_architect.AliveHandler", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "AliveHandler", "type": "class", "doc": "

Simple handler for is_alive

\n", "bases": "tornado.web.RequestHandler"}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"fullname": "mephisto.abstractions.architects.mock_architect.AliveHandler.get", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "AliveHandler.get", "type": "function", "doc": "

\n", "signature": "(self, eids)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer", "type": "class", "doc": "

Tornado-based server that with hooks for sending specific\nmessages through socket connections and such

\n", "bases": "tornado.web.Application"}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.__init__", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.__init__", "type": "function", "doc": "

\n", "signature": "(self, port)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.send_agent_act", "type": "function", "doc": "

Send a packet from the given agent with\nthe given content

\n", "signature": "(self, agent_id, act_content)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.register_mock_agent", "type": "function", "doc": "

Send a packet asking to register a mock agent.

\n", "signature": "(self, worker_name, agent_details)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.submit_mock_unit", "type": "function", "doc": "

Send a packet asking to submit data.

\n", "signature": "(self, agent_id, submit_data)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.register_mock_agent_after_onboarding", "type": "function", "doc": "

Send a packet asking to register a mock agent.

\n", "signature": "(self, worker_id, agent_id, onboard_data)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.disconnect_mock_agent", "type": "function", "doc": "

Mark a mock agent as disconnected.

\n", "signature": "(self, agent_id)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.launch_mock", "type": "function", "doc": "

Start the primary loop for this application

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"fullname": "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockServer.shutdown_mock", "type": "function", "doc": "

Defined to shutown the tornado application.

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect", "type": "class", "doc": "

The MockArchitect runs a mock server on the localhost so that\nwe can send special packets and assert connections have been made

\n", "bases": "mephisto.abstractions.architect.Architect"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.__init__", "type": "function", "doc": "

Create an architect for use in testing

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n task_run: mephisto.data_model.task_run.TaskRun,\n build_dir_root: str\n)", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.ArgsClass", "type": "class", "doc": "

Additional arguments for configuring a mock architect

\n", "bases": "mephisto.abstractions.architect.ArchitectArgs"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.ARCHITECT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'mock'"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.get_channels", "type": "function", "doc": "

Return a list of all relevant channels that the ClientIOHandler\nwill need to register to in order to function

\n", "signature": "(\n self,\n on_channel_open: Callable[[str], NoneType],\n on_catastrophic_disconnect: Callable[[str], NoneType],\n on_message: collections.abc.Callable[str, mephisto.data_model.packet.Packet, NoneType]\n) -> list[mephisto.abstractions._subcomponents.channel.Channel]", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.download_file", "type": "function", "doc": "

Mock architects can just pretend to write a file

\n", "signature": "(self, target_filename: str, save_dir: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.prepare", "type": "function", "doc": "

Mark the preparation call

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.deploy", "type": "function", "doc": "

Mock a deploy or deploy a mock server, depending on settings

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.cleanup", "type": "function", "doc": "

Mark the cleanup call

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"fullname": "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown", "modulename": "mephisto.abstractions.architects.mock_architect", "qualname": "MockArchitect.shutdown", "type": "function", "doc": "

Mark the shutdown call

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.router": {"fullname": "mephisto.abstractions.architects.router", "modulename": "mephisto.abstractions.architects.router", "type": "module", "doc": "

router

\n\n

This directory contains all of the Mephisto code regarding setting up and deploying and endpoint that can handle interfacing with the mephisto-task package. As of now there are two implementations, a node server in deploy and a Flask server in flask. Each of these can be extended upon such that you can deploy your own server (with whatever logic you may need) but still have mephisto routing functionality.

\n\n

build_router.py

\n\n

This file contains code to be able to initialize the required build files for a server, assuming that they're set up properly. With the routers available in this directory, they should work out-of-the-box, but more configuration. If you want to specify your own build, you should start from the given servers, then provide the architect.server_source_root and architect.server_type arguments as appropriate with your server directory and the kind of server you're running.

\n\n

Router Types

\n\n

node

\n\n

This folder contains a node-based server that meets the specification for being a Mephisto Router. Additional files are served via /static/ and uploaded files from the user are temporarily available from /tmp/.

\n\n

flask

\n\n

This folder contains a Flask Blueprint (not to be confused with a Mephisto Blueprint) in mephisto_flask_blueprint.py. It also has example usage of this within the app.py file. The app.py file is what we actually deploy by default, and the contents demonstrate some important usage requirements for deploying a Mephisto router within an arbitrary Flask app.

\n\n

Key notes: you'll need to import the blueprint and the websocket server, and register the app alongside the websocket server. You'll also need to use monkey.patch_all() to ensure that the threading of the websockets and the main Flask server are able to interleave.

\n\n

Routing implementation, functionality, and gotchas

\n\n

In short, the Mephisto protocol for routing requests from clients down to the Mephisto main server is somewhat complicated. There are a number of endpoints that need to retain the behavior that's captured in the comments of the Flask implementation's mephisto_flask_blueprint.py file. These should be enumerated further here.

\n\n

TODO Document the requirements for a Mephisto Router to be running properly, including keeping track of local agent states, converting HTTP POST requests to websocket messages, and the heartbeat protocols.

\n"}, "mephisto.abstractions.architects.router.build_router": {"fullname": "mephisto.abstractions.architects.router.build_router", "modulename": "mephisto.abstractions.architects.router.build_router", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.router.build_router.can_build": {"fullname": "mephisto.abstractions.architects.router.build_router.can_build", "modulename": "mephisto.abstractions.architects.router.build_router", "qualname": "can_build", "type": "function", "doc": "

Determine if the build dir is properly formatted for\nbeing able to have the router built within. This is a\nvalidation step that should be run before build_router.

\n", "signature": "(\n build_dir: str,\n task_run: mephisto.data_model.task_run.TaskRun\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"fullname": "mephisto.abstractions.architects.router.build_router.install_router_files", "modulename": "mephisto.abstractions.architects.router.build_router", "qualname": "install_router_files", "type": "function", "doc": "

Create a new build including the node_modules

\n", "signature": "() -> None", "funcdef": "def"}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"fullname": "mephisto.abstractions.architects.router.build_router.build_node_router", "modulename": "mephisto.abstractions.architects.router.build_router", "qualname": "build_node_router", "type": "function", "doc": "

Build requirements for the NPM router

\n", "signature": "(\n build_dir: str,\n task_run: mephisto.data_model.task_run.TaskRun\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"fullname": "mephisto.abstractions.architects.router.build_router.build_flask_router", "modulename": "mephisto.abstractions.architects.router.build_router", "qualname": "build_flask_router", "type": "function", "doc": "

\n", "signature": "(\n build_dir: str,\n task_run: mephisto.data_model.task_run.TaskRun\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.router.build_router.build_router": {"fullname": "mephisto.abstractions.architects.router.build_router.build_router", "modulename": "mephisto.abstractions.architects.router.build_router", "qualname": "build_router", "type": "function", "doc": "

Copy expected files from the router source into the build dir,\nusing existing files in the build dir as replacements for the\ndefaults if available

\n", "signature": "(\n build_dir: str,\n task_run: mephisto.data_model.task_run.TaskRun,\n version: str = 'node',\n server_source_path: Union[str, NoneType] = None\n) -> str", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask": {"fullname": "mephisto.abstractions.architects.router.flask", "modulename": "mephisto.abstractions.architects.router.flask", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.router.flask.app": {"fullname": "mephisto.abstractions.architects.router.flask.app", "modulename": "mephisto.abstractions.architects.router.flask.app", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "debug_log", "type": "function", "doc": "

Log only if debugging is enabled

\n\n

Explicitly does not use the regular Mephisto logging framework as we\nmay want to deploy this on a server that doesn't have Mephisto installed,\nand we can keep package size low this way.

\n", "signature": "(*args)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "js_time", "type": "function", "doc": "

Convert python time to js time, as the mephisto-task package expects

\n", "signature": "(python_time: float) -> int", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "LocalAgentState", "type": "class", "doc": "

Keeps track of a connected agent over their lifecycle interacting with the router

\n"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "LocalAgentState.__init__", "type": "function", "doc": "

Initialize an object to track the lifecycle of a connection

\n", "signature": "(self, agent_id: str)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouterState", "type": "class", "doc": "

\n"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouterState.__init__", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "mephisto_router_app", "type": "variable", "doc": "

\n", "annotation": ": Union[mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter, NoneType]", "default_value": " = None"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "mephisto_router_state", "type": "variable", "doc": "

\n", "annotation": ": Union[mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState, NoneType]", "default_value": " = None"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "register_router_application", "type": "function", "doc": "

Register a routing application with the global state,\nsuch that HTTP requests can access it and so that\nall websocket routers share the same state.

\n\n

Returns the global router state

\n", "signature": "(\n router: mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter\n) -> mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter", "type": "class", "doc": "

Base implementation of a websocket server that handles\nall of the socket based IO for mephisto-task

\n", "bases": "geventwebsocket.resource.WebSocketApplication"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter.__init__", "type": "function", "doc": "

Initialize with the gloabl state of MephistoRouters

\n", "signature": "(self, *args, **kwargs)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter.on_open", "type": "function", "doc": "

Initialize a new client connection, and give them a uuid to refer to

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter.on_message", "type": "function", "doc": "

Determine the type of message, and then handle via the correct handler

\n", "signature": "(self, message: str) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter.on_close", "type": "function", "doc": "

Mark a socket dead for a LocalAgentState, give time to reconnect

\n", "signature": "(self, reason: Any) -> None", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "MephistoRouter.make_agent_request", "type": "function", "doc": "

Make a request to the core Mephisto server, and then await the response

\n", "signature": "(\n self,\n request_packet: Dict[str, Any]\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "request_agent", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "submit_onboarding", "type": "function", "doc": "

Parse onboarding as if it were a request sent from the\nactive agent, rather than coming as a request from the router.

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "submit_task", "type": "function", "doc": "

Parse task submission as if it were an act

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "log_error", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "is_alive", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "get_timestamp", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "download_file", "type": "function", "doc": "

\n", "signature": "(filename)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "show_index", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "get_task_config", "type": "function", "doc": "

\n", "signature": "(res)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "get_static", "type": "function", "doc": "

\n", "signature": "(res)", "funcdef": "def"}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"fullname": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header", "modulename": "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint", "qualname": "add_header", "type": "function", "doc": "

Add headers to prevent caching, as this server may be used in local\ndevelopment or with the same address but different contents

\n", "signature": "(r)", "funcdef": "def"}, "mephisto.abstractions.blueprint": {"fullname": "mephisto.abstractions.blueprint", "modulename": "mephisto.abstractions.blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprint.BlueprintArgs": {"fullname": "mephisto.abstractions.blueprint.BlueprintArgs", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintArgs", "type": "class", "doc": "

BlueprintArgs(_blueprint_type: str = '???', block_qualification: str = '???')

\n"}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprint.BlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, _blueprint_type: str = '???', block_qualification: str = '???')", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"fullname": "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintArgs.block_qualification", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprint.SharedTaskState": {"fullname": "mephisto.abstractions.blueprint.SharedTaskState", "modulename": "mephisto.abstractions.blueprint", "qualname": "SharedTaskState", "type": "class", "doc": "

Base class for specifying additional state that can't just\nbe passed as Hydra args, like functions and objects

\n"}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"fullname": "mephisto.abstractions.blueprint.SharedTaskState.__init__", "modulename": "mephisto.abstractions.blueprint", "qualname": "SharedTaskState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_config: Dict[str, Any] = ,\n qualifications: List[Any] = ,\n worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = ,\n on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintMixin": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin", "type": "class", "doc": "

Base class for compositional mixins for blueprints

\n\n

We expect mixins that subclass other mixins to handle subinitialization\nwork, such that only the highest class needs to be called.

\n", "bases": "abc.ABC"}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin.extract_unique_mixins", "type": "function", "doc": "

Return the unique mixin classes that are used in the given blueprint class

\n", "signature": "(blueprint_class: type[mephisto.abstractions.blueprint.Blueprint])", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin.init_mixin_config", "type": "function", "doc": "

Method to initialize any required attributes to make this mixin function

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin.assert_mixin_args", "type": "function", "doc": "

Method to validate the incoming args and throw if something won't work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin.get_mixin_qualifications", "type": "function", "doc": "

Method to provide any required qualifications to make this mixin function

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"fullname": "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state", "modulename": "mephisto.abstractions.blueprint", "qualname": "BlueprintMixin.mixin_args_and_state", "type": "function", "doc": "

Magic utility decorator that can be used to inject mixin configurations\n(BlueprintArgs and SharedTaskState) without the user needing to define new\nclasses for these. Should only be used by tasks that aren't already specifying\nnew versions of these, which should just inherit otherwise.

\n\n

Usage:\n @register_mephisto_abstraction()\n @ABlueprintMixin.mixin_args_and_state\n class MyBlueprint(ABlueprintMixin, Blueprint):\n pass

\n", "signature": "(\n mixin_cls: type[mephisto.abstractions.blueprint.BlueprintMixin],\n target_cls: type[mephisto.abstractions.blueprint.Blueprint]\n)", "funcdef": "def"}, "mephisto.abstractions.blueprint.Blueprint": {"fullname": "mephisto.abstractions.blueprint.Blueprint", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint", "type": "class", "doc": "

Configuration class for the various parts of building, launching,\nand running a task of a specific task. Provides utility functions\nfor managing between the three main components, which are separated\ninto separate classes in acknowledgement that some tasks may have\nparticularly complicated processes for them

\n", "bases": "abc.ABC"}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"fullname": "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.OnboardingAgentStateClass", "type": "class", "doc": "

Class for holding state information about work by an Agent on a Unit, currently\nstored as current task work into a json file.

\n\n

Specific state implementations will need to be created for different Task Types,\nas different tasks store and load differing data.

\n", "bases": "abc.ABC"}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprint.Blueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.ArgsClass", "type": "class", "doc": "

BlueprintArgs(_blueprint_type: str = '???', block_qualification: str = '???')

\n"}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"fullname": "mephisto.abstractions.blueprint.Blueprint.SharedStateClass", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.SharedStateClass", "type": "class", "doc": "

Base class for specifying additional state that can't just\nbe passed as Hydra args, like functions and objects

\n"}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"fullname": "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.get_required_qualifications", "type": "function", "doc": "

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprint.Blueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.assert_task_args", "type": "function", "doc": "

Assert that the provided arguments are valid. Should\nfail if a task launched with these arguments would\nnot work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"fullname": "mephisto.abstractions.blueprint.Blueprint.get_frontend_args", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.get_frontend_args", "type": "function", "doc": "

Specifies what options should be fowarded\nto the client for use by the task's frontend

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"fullname": "mephisto.abstractions.blueprint.Blueprint.get_initialization_data", "modulename": "mephisto.abstractions.blueprint", "qualname": "Blueprint.get_initialization_data", "type": "function", "doc": "

Get all of the data used to initialize tasks from this blueprint.\nCan either be a simple iterable if all the assignments can\nbe processed at once, or a Generator if the number\nof tasks is unknown or changes based on something running\nconcurrently with the job.

\n", "signature": "(\n self\n) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]", "funcdef": "def"}, "mephisto.abstractions.blueprints": {"fullname": "mephisto.abstractions.blueprints", "modulename": "mephisto.abstractions.blueprints", "type": "module", "doc": "

Blueprints

\n\n

Overview

\n\n

Blueprints serve to package tasks (and groups of similar tasks) into a reusable format. They can be used to work through piloting tasks, collecting data, testing different formats, etc. They're also used by the architecture to simplify the data accumulation and review processes. The StaticBlueprint is a good starting example of how to implement a blueprint.

\n\n

Implementation Details

\n\n

AgentState

\n\n

The agent state is responsible for defining the data that is important to store for a specific Unit, as well as methods for writing that locally to disk. To abstract this, it must implement the following methods:

\n\n
    \n
  • set_init_state(data): given data provided by the get_init_data_for_agent method, initialize this agent state to whatever starting state is relevant for this Unit.
  • \n
  • get_init_state(): Return the initial state to be sent to the agent for use in the frontend.
  • \n
  • load_data(): Load data that is saved to file to re-initialize the state for this AgentState. Generally data should be stored in self.agent.get_data_dir(), however any storage solution will work as long as it remains consistent.
  • \n
  • get_data(): Return the stored data for this task in the format containing everything the frontend needs to render and run the task.
  • \n
  • get_parsed_data(): Return the stored data for this task in the format that is relevant for review or packaging the data.
  • \n
  • save_data(): Save data to a file such that it can be re-initialized later. Generally data should be stored in self.agent.get_data_dir(), however any storage solution will work as long as it remains consistent, and load_data() will be able to find it.
  • \n
  • update_data(): Update the local state stored in this AgentState given the data sent from the frontend. Given your frontend is what packages data to send, this is entirely customizable by the task creator.
  • \n
\n\n

TaskBuilder

\n\n

TaskBuilders exist to abstract away the portion of building a frontend to however one would want to, allowing Mephisto users to design tasks however they'd like. They also can take build options to customize what ends up built. They must implement the following:

\n\n
    \n
  • build_in_dir(build_dir): Take any important source files and put them into the given build dir. This directory will be deployed to the frontend and will become the static target for completing the task.
  • \n
  • get_extra_options(): Return the specific task options that are relevant to customize the frontend when build_in_dir is called.
  • \n
\n\n

TaskRunner

\n\n

The TaskRunner component of a blueprint is responsible for actually stepping Agents through the task when it is live. It is, in short, able to set up task control. A TaskRunner needs to implement the following:

\n\n
    \n
  • get_init_data_for_agent: Provide initial data for an assignment. If this agent is reconnecting (and as such attached to an existing task), update that task to point to the new agent (as the old agent object will no longer receive data from the frontend).
  • \n
  • run_assignment: Handle setup for any resources required to get this assignment running. It will be launched in a background thread, and should be tolerant to being interrupted by cleanup_assignment.
  • \n
  • cleanup_assignment: Send any signals to the required thread for the given assignment to tell it to terminate, then clean up any resources that were set within it.
  • \n
  • get_data_for_assignment (optional): Get the data that an assignment is going to use when run. By default, this pulls from assignment.get_assignment_data() however if a task has a special storage mechanism or data type, the assignment data can be fetched here.
  • \n
\n\n

SharedTaskState

\n\n

A blueprint is able to create a container that handles any shared data that is initialized during a task or modified between tasks, or for function hooks that are used across a run. The following hooks are already provided in the base:

\n\n
    \n
  • validate_onboarding: A function that takes in an onboarding agent's AgentState.get_data() call, and should always return a boolean of if that state represents a successful onboarding completion.
  • \n
  • worker_can_do_unit: A function that takes in a Worker and a Unit, and should return a boolean representing if the worker is eligible to work on that particular unit.
  • \n
  • on_unit_submitted: A function that takes in a Unit after a TaskRunner ends, and is able to do any automatic post-processing operations on that unit that a Mephisto user may want.
  • \n
\n\n

Blueprint Mixins

\n\n

Blueprints sometimes share some component functionality that may be useful across a multitude of tasks. We capture these in mixins. Mephisto is able to recognize certain mixins in order to complete additional operations, however custom mixins may help cut down on boiler plate in common run_task.py scripts. As your tasks mature, we suggest utilizing blueprint mixins to share common workflows and design patterns you observe.

\n\n

OnboardingRequired

\n\n

This mixin allows for blueprints that require people to complete an onboarding task _before_ they're even able to start on their first task. Usually this is useful for providing task context, and then quizzing workers to see if they understand what's provided. Tasks using this mixin will activate onboarding mode for new Workers whenever the mephisto.blueprint.onboarding_qualification hydra argument is provided.

\n\n

ScreenTaskRequired

\n\n

This mixin allows for blueprints that require people to complete a _test_ version of the real task the first time a worker does the task. This allows you to validate workers on a run of the real task, either on your actual data (when providing SharedTaskState.screening_data_factory=False) or on test data that you may more easily validate using (when providing a generator to SharedTaskState.screening_data_factory). The tasks should be the same as your standard task, just able to be easily validated. You do pay for screening tasks, and as such we ask you set mephisto.blueprint.max_screening_units to put a cap on how many screening units you want to launch.

\n\n

Implementations

\n\n

StaticBlueprint

\n\n

The StaticBlueprint class allows a replication of the interface that MTurk provides, being able to take a snippet of HTML and a .csv file and deploy tasks that fill templates of the HTML with values from the .csv.

\n\n

You can also specify the task data in a .json file, or by passing the data array or a generator to SharedStaticTaskState.static_task_data.

\n\n

MockBlueprint

\n\n

The MockBlueprint exists to test other parts of the Mephisto architecture, and doesn't actually provide a real task.

\n"}, "mephisto.abstractions.blueprints.abstract": {"fullname": "mephisto.abstractions.blueprints.abstract", "modulename": "mephisto.abstractions.blueprints.abstract", "type": "module", "doc": "

Abstract blueprints

\n\n

The blueprints present in this folder provide a set of common underlying blueprint infrastructure, but are incomplete in some form or other. They are not registered as blueprints because they aren't intended to be launched, but rather to be extended upon.

\n"}, "mephisto.abstractions.blueprints.abstract.static_task": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task", "modulename": "mephisto.abstractions.blueprints.abstract.static_task", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder", "qualname": "EmptyStaticTaskBuilder", "type": "class", "doc": "

Abstract class for a task builder for static tasks

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder", "qualname": "EmptyStaticTaskBuilder.build_in_dir", "type": "function", "doc": "

Build the frontend if it doesn't exist, then copy into the server directory

\n", "signature": "(self, build_dir: str)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState", "type": "class", "doc": "

Agent state for static tasks.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.__init__", "type": "function", "doc": "

Static agent states should store\ninput dict -> output dict pairs to disc

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.set_init_state", "type": "function", "doc": "

Set the initial state for this agent

\n", "signature": "(self, data: Any) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.get_init_state", "type": "function", "doc": "

Return the initial state for this agent,\nNone if no such state exists

\n", "signature": "(self) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.load_data", "type": "function", "doc": "

Load data for this agent from disk

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.get_data", "type": "function", "doc": "

Return dict of this agent's state

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.save_data", "type": "function", "doc": "

Save static agent data to disk

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.update_data", "type": "function", "doc": "

Process the incoming data packet, and handle updating the state

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.update_submit", "type": "function", "doc": "

Move the submitted output to the local dict

\n", "signature": "(self, submission_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.get_task_start", "type": "function", "doc": "

Extract out and return the start time recorded for this task.

\n", "signature": "(self) -> Union[float, NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state", "qualname": "StaticAgentState.get_task_end", "type": "function", "doc": "

Extract out and return the end time recorded for this task.

\n", "signature": "(self) -> Union[float, NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "SharedStaticTaskState", "type": "class", "doc": "

SharedStaticTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , static_task_data: Iterable[Any] = )

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "SharedStaticTaskState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_config: Dict[str, Any] = ,\n qualifications: List[Any] = ,\n worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = ,\n on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = ,\n onboarding_data: Dict[str, Any] = ,\n validate_onboarding: Callable[[Any], bool] = ,\n static_task_data: Iterable[Any] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs", "type": "class", "doc": "

StaticBlueprintArgs(_blueprint_type: str = 'abstract_static', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'StaticBlueprint', units_per_assignment: int = 1, extra_source_dir: str = '???', data_json: str = '???', data_jsonl: str = '???', data_csv: str = '???')

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _blueprint_type: str = 'abstract_static',\n block_qualification: str = '???',\n onboarding_qualification: str = '???',\n _group: str = 'StaticBlueprint',\n units_per_assignment: int = 1,\n extra_source_dir: str = '???',\n data_json: str = '???',\n data_jsonl: str = '???',\n data_csv: str = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.units_per_assignment", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 1"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.extra_source_dir", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.data_json", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.data_jsonl", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprintArgs.data_csv", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint", "type": "class", "doc": "

Abstract blueprint for a task that runs without any extensive backend.\nThese are generally one-off tasks sending data to the frontend and then\nawaiting a response.

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired, mephisto.abstractions.blueprint.Blueprint"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.AgentStateClass", "type": "class", "doc": "

Agent state for static tasks.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.OnboardingAgentStateClass", "type": "class", "doc": "

Agent state for static tasks.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.TaskBuilderClass", "type": "class", "doc": "

Abstract class for a task builder for static tasks

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.TaskRunnerClass", "type": "class", "doc": "

Task runner for a static task

\n\n

Static tasks always assume single unit assignments,\nas only one person can work on them at a time

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.ArgsClass", "type": "class", "doc": "

StaticBlueprintArgs(_blueprint_type: str = 'abstract_static', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'StaticBlueprint', units_per_assignment: int = 1, extra_source_dir: str = '???', data_json: str = '???', data_jsonl: str = '???', data_csv: str = '???')

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.SharedStateClass", "type": "class", "doc": "

SharedStaticTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , static_task_data: Iterable[Any] = )

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.assert_task_args", "type": "function", "doc": "

Ensure that the data can be properly loaded

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint", "qualname": "StaticBlueprint.get_initialization_data", "type": "function", "doc": "

Return the InitializationData retrieved from the specified stream

\n", "signature": "(\n self\n) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner", "type": "class", "doc": "

Task runner for a static task

\n\n

Static tasks always assume single unit assignments,\nas only one person can work on them at a time

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.__init__", "type": "function", "doc": "

Get the correct TaskRunner for this task run

\n", "signature": "(\n cls,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.get_init_data_for_agent", "type": "function", "doc": "

Return the data for an agent already assigned to a particular unit

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.run_onboarding", "type": "function", "doc": "

Static onboarding flows exactly like a regular task, waiting for\nthe submit to come through

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.cleanup_onboarding", "type": "function", "doc": "

Nothing to clean up in a static onboarding

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.run_unit", "type": "function", "doc": "

Static runners will get the task data, send it to the user, then\nwait for the agent to act (the data to be completed)

\n", "signature": "(\n self,\n unit: mephisto.data_model.unit.Unit,\n agent: mephisto.data_model.agent.Agent\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"fullname": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit", "modulename": "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner", "qualname": "StaticTaskRunner.cleanup_unit", "type": "function", "doc": "

There is currently no cleanup associated with killing an incomplete task

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins": {"fullname": "mephisto.abstractions.blueprints.mixins", "modulename": "mephisto.abstractions.blueprints.mixins", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequiredArgs", "type": "class", "doc": "

OnboardingRequiredArgs(onboarding_qualification: str = '???')

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequiredArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, onboarding_qualification: str = '???')", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequiredArgs.onboarding_qualification", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingSharedState", "type": "class", "doc": "

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingSharedState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n onboarding_data: Dict[str, Any] = ,\n validate_onboarding: Callable[[Any], bool] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired", "type": "class", "doc": "

Compositional class for blueprints that may have an onboarding step

\n", "bases": "mephisto.abstractions.blueprint.BlueprintMixin"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.ArgsMixin", "type": "class", "doc": "

OnboardingRequiredArgs(onboarding_qualification: str = '???')

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.SharedStateMixin", "type": "class", "doc": "

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

\n"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.init_mixin_config", "type": "function", "doc": "

Method to initialize any required attributes to make this mixin function

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.assert_mixin_args", "type": "function", "doc": "

Method to validate the incoming args and throw if something won't work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.get_mixin_qualifications", "type": "function", "doc": "

Method to provide any required qualifications to make this mixin function

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.get_failed_qual", "type": "function", "doc": "

Returns the wrapper for a qualification to represent failing an onboarding

\n", "signature": "(qual_name: str) -> str", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.init_onboarding_config", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.get_onboarding_data", "type": "function", "doc": "

If the onboarding task on the frontend requires any specialized data, the blueprint\nshould provide it for the user.

\n\n

As onboarding qualifies a worker for all tasks from this blueprint, this should\ngenerally be static data that can later be evaluated against.

\n", "signature": "(self, worker_id: str) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"fullname": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding", "modulename": "mephisto.abstractions.blueprints.mixins.onboarding_required", "qualname": "OnboardingRequired.validate_onboarding", "type": "function", "doc": "

Check the incoming onboarding data and evaluate if the worker\nhas passed the qualification or not. Return True if the worker\nhas qualified.

\n\n

By default we use the validate_onboarding provided in a run_task,\nand all onboarding tasks should allow run_task to specify additional\nor entirely override what's provided in a blueprint.

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker,\n onboarding_agent: mephisto.data_model.agent.OnboardingAgent\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequiredArgs", "type": "class", "doc": "

ScreenTaskRequiredArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False)

\n"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequiredArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n passed_qualification_name: str = '???',\n max_screening_units: int = '???',\n use_screening_task: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequiredArgs.passed_qualification_name", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequiredArgs.max_screening_units", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequiredArgs.use_screening_task", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "blank_generator", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskSharedState", "type": "class", "doc": "

ScreenTaskSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = )

\n"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskSharedState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired", "type": "class", "doc": "

Compositional class for blueprints that may have a first task to\nqualify workers who have never attempted the task before

\n", "bases": "mephisto.abstractions.blueprint.BlueprintMixin"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.ArgsMixin", "type": "class", "doc": "

ScreenTaskRequiredArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False)

\n"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.SharedStateMixin", "type": "class", "doc": "

ScreenTaskSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = )

\n"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.init_mixin_config", "type": "function", "doc": "

Method to initialize any required attributes to make this mixin function

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.init_screening_config", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.assert_mixin_args", "type": "function", "doc": "

Method to validate the incoming args and throw if something won't work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.worker_needs_screening", "type": "function", "doc": "

Workers that are able to access the task (not blocked) but are not passed need qualification

\n", "signature": "(self, worker: mephisto.data_model.worker.Worker) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.should_generate_unit", "type": "function", "doc": "

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.get_screening_unit_data", "type": "function", "doc": "

\n", "signature": "(self) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.create_validation_function", "type": "function", "doc": "

Takes in a validator function to determine if validation units are\npassable, and returns a on_unit_submitted function to be used\nin the SharedTaskState

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n screen_unit: collections.abc.Callable[mephisto.data_model.unit.Unit, bool]\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"fullname": "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications", "modulename": "mephisto.abstractions.blueprints.mixins.screen_task_required", "qualname": "ScreenTaskRequired.get_mixin_qualifications", "type": "function", "doc": "

Creates the relevant task qualifications for this task

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs", "type": "class", "doc": "

UseGoldUnitArgs(gold_qualification_base: str = '???', use_golds: bool = False, min_golds: int = 1, max_incorrect_golds: int = 0)

\n"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n gold_qualification_base: str = '???',\n use_golds: bool = False,\n min_golds: int = 1,\n max_incorrect_golds: int = 0\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs.gold_qualification_base", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs.use_golds", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs.min_golds", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 1"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnitArgs.max_incorrect_golds", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 0"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "get_gold_factory", "type": "function", "doc": "

Returns a gold factory that can be used to distribute golds to workers\nUsage of golds only persists within a single TaskRun, so golds may repeat\non future task runs.

\n", "signature": "(\n golds: List[Dict[str, Any]]\n) -> collections.abc.Callable[mephisto.data_model.worker.Worker, typing.Dict[str, typing.Any]]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "worker_needs_gold", "type": "function", "doc": "

Return a bool of whether or not a worker needs to be shown a gold unit in the current slot.\nGenerally we show a lot of of golds to begin with, (up until min_golds), and then scale down.

\n", "signature": "(\n units_completed: int,\n num_correct: int,\n num_incorrect: int,\n min_golds: int\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "worker_qualifies", "type": "function", "doc": "

Return a bool of whether or not a worker is qualified to continue working on these tasks.

\n", "signature": "(\n units_completed: int,\n num_correct: int,\n num_incorrect: int,\n max_incorrect_golds: int\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "GoldUnitSharedState", "type": "class", "doc": "

GoldUnitSharedState(get_gold_for_worker: Callable[[ForwardRef('Worker')], Dict[str, Any]] = , worker_needs_gold: Callable[[int, int, int, int], bool] = , worker_qualifies: Callable[[int, int, int, int], bool] = )

\n"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "GoldUnitSharedState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n get_gold_for_worker: collections.abc.Callable[mephisto.data_model.worker.Worker, typing.Dict[str, typing.Any]] = ,\n worker_needs_gold: Callable[[int, int, int, int], bool] = ,\n worker_qualifies: Callable[[int, int, int, int], bool] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit", "type": "class", "doc": "

Compositional class for blueprints that want to inject gold units\ninto worker queues.

\n\n

TODO(#97) add support for adding gold subunits

\n", "bases": "mephisto.abstractions.blueprint.BlueprintMixin"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.ArgsMixin", "type": "class", "doc": "

UseGoldUnitArgs(gold_qualification_base: str = '???', use_golds: bool = False, min_golds: int = 1, max_incorrect_golds: int = 0)

\n"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.SharedStateMixin", "type": "class", "doc": "

GoldUnitSharedState(get_gold_for_worker: Callable[[ForwardRef('Worker')], Dict[str, Any]] = , worker_needs_gold: Callable[[int, int, int, int], bool] = , worker_qualifies: Callable[[int, int, int, int], bool] = )

\n"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.init_mixin_config", "type": "function", "doc": "

Method to initialize any required attributes to make this mixin function

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.init_gold_config", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.assert_mixin_args", "type": "function", "doc": "

Method to validate the incoming args and throw if something won't work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.get_current_qual_or_default", "type": "function", "doc": "

Return the qualification of this name for the worker, or the default value

\n", "signature": "(\n worker: mephisto.data_model.worker.Worker,\n qual_name: str,\n default_val: Any = 0\n) -> Any", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.get_completion_stats_for_worker", "type": "function", "doc": "

Return the correct and incorrect gold counts, as well as the total count for a worker

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker\n) -> Tuple[int, int, int]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.should_produce_gold_for_worker", "type": "function", "doc": "

Workers that can access the task should be evaluated to do a gold

\n", "signature": "(self, worker: mephisto.data_model.worker.Worker) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.update_qualified_status", "type": "function", "doc": "

Workers qualification status may change after failing a unit

\n", "signature": "(self, worker: mephisto.data_model.worker.Worker) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.get_gold_unit_data_for_worker", "type": "function", "doc": "

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.create_validation_function", "type": "function", "doc": "

Takes in a validator function to determine if validation units are\npassable, and returns a on_unit_submitted function to be used\nin the SharedTaskState

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n screen_unit: collections.abc.Callable[mephisto.data_model.unit.Unit, bool]\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"fullname": "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications", "modulename": "mephisto.abstractions.blueprints.mixins.use_gold_unit", "qualname": "UseGoldUnit.get_mixin_qualifications", "type": "function", "doc": "

Creates the relevant task qualifications for this task

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock": {"fullname": "mephisto.abstractions.blueprints.mock", "modulename": "mephisto.abstractions.blueprints.mock", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState", "type": "class", "doc": "

Mock agent state that is to be used for testing

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.__init__", "type": "function", "doc": "

Mock agent states keep everything in local memory

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.set_init_state", "type": "function", "doc": "

Set the initial state for this agent

\n", "signature": "(self, data: Any) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.get_init_state", "type": "function", "doc": "

Return the initial state for this agent,\nNone if no such state exists

\n", "signature": "(self) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.load_data", "type": "function", "doc": "

Mock agent states have no data stored

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.get_data", "type": "function", "doc": "

Return dict of this agent's state

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.save_data", "type": "function", "doc": "

Mock agents don't save data (yet)

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.update_data", "type": "function", "doc": "

Put new data into this mock state

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"fullname": "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit", "modulename": "mephisto.abstractions.blueprints.mock.mock_agent_state", "qualname": "MockAgentState.update_submit", "type": "function", "doc": "

Move the submitted data into the live state

\n", "signature": "(self, submitted_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs", "type": "class", "doc": "

MockBlueprintArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False, onboarding_qualification: str = '???', _blueprint_type: str = 'mock', block_qualification: str = '???', num_assignments: int = '???', use_onboarding: bool = False, timeout_time: int = 0, is_concurrent: bool = True)

\n", "bases": "mephisto.abstractions.blueprint.BlueprintArgs, mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n passed_qualification_name: str = '???',\n max_screening_units: int = '???',\n use_screening_task: bool = False,\n onboarding_qualification: str = '???',\n _blueprint_type: str = 'mock',\n block_qualification: str = '???',\n num_assignments: int = '???',\n use_onboarding: bool = False,\n timeout_time: int = 0,\n is_concurrent: bool = True\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs.num_assignments", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs.use_onboarding", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs.timeout_time", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 0"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprintArgs.is_concurrent", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = True"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockSharedState", "type": "class", "doc": "

MockSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = )

\n", "bases": "mephisto.abstractions.blueprint.SharedTaskState, mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockSharedState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = ,\n onboarding_data: Dict[str, Any] = ,\n validate_onboarding: Callable[[Any], bool] = ,\n task_config: Dict[str, Any] = ,\n qualifications: List[Any] = ,\n worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = ,\n on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint", "type": "class", "doc": "

Mock of a task type, for use in testing

\n", "bases": "mephisto.abstractions.blueprint.Blueprint, mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired, mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.AgentStateClass", "type": "class", "doc": "

Mock agent state that is to be used for testing

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.OnboardingAgentStateClass", "type": "class", "doc": "

Mock agent state that is to be used for testing

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.TaskBuilderClass", "type": "class", "doc": "

Builder for a mock task, for use in testing

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.TaskRunnerClass", "type": "class", "doc": "

Mock of a task runner, for use in testing

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.ArgsClass", "type": "class", "doc": "

MockBlueprintArgs(passed_qualification_name: str = '???', max_screening_units: int = '???', use_screening_task: bool = False, onboarding_qualification: str = '???', _blueprint_type: str = 'mock', block_qualification: str = '???', num_assignments: int = '???', use_onboarding: bool = False, timeout_time: int = 0, is_concurrent: bool = True)

\n", "bases": "mephisto.abstractions.blueprint.BlueprintArgs, mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.SharedStateClass", "type": "class", "doc": "

MockSharedState(screening_data_factory: Tuple[bool, Generator[Dict[str, Any], NoneType, NoneType]] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = )

\n", "bases": "mephisto.abstractions.blueprint.SharedTaskState, mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.BLUEPRINT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'mock'"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.ArgsMixin", "type": "class", "doc": "

OnboardingRequiredArgs(onboarding_qualification: str = '???')

\n"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.SharedStateMixin", "type": "class", "doc": "

OnboardingSharedState(onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = )

\n"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.get_initialization_data", "type": "function", "doc": "

Return the number of empty assignments specified in --num-assignments

\n", "signature": "(self) -> Iterable[mephisto.data_model.assignment.InitializationData]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"fullname": "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding", "modulename": "mephisto.abstractions.blueprints.mock.mock_blueprint", "qualname": "MockBlueprint.validate_onboarding", "type": "function", "doc": "

Onboarding validation for MockBlueprints just returns the 'should_pass' field

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker,\n onboarding_agent: mephisto.data_model.agent.OnboardingAgent\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_builder", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_builder", "qualname": "MockTaskBuilder", "type": "class", "doc": "

Builder for a mock task, for use in testing

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_builder", "qualname": "MockTaskBuilder.BUILT_FILE", "type": "variable", "doc": "

\n", "default_value": " = 'done.built'"}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_builder", "qualname": "MockTaskBuilder.BUILT_MESSAGE", "type": "variable", "doc": "

\n", "default_value": " = 'built!'"}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_builder", "qualname": "MockTaskBuilder.build_in_dir", "type": "function", "doc": "

Mock tasks don't really build anything (yet)

\n", "signature": "(self, build_dir: str)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner", "type": "class", "doc": "

Mock of a task runner, for use in testing

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.__init__", "type": "function", "doc": "

Get the correct TaskRunner for this task run

\n", "signature": "(\n cls,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.get_mock_assignment_data", "type": "function", "doc": "

\n", "signature": "() -> mephisto.data_model.assignment.InitializationData", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.get_data_for_assignment", "type": "function", "doc": "

Mock tasks have no data unless given during testing

\n", "signature": "(\n assignment: mephisto.data_model.assignment.Assignment\n) -> mephisto.data_model.assignment.InitializationData", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.get_init_data_for_agent", "type": "function", "doc": "

Return the data for an agent already assigned to a particular unit

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.run_onboarding", "type": "function", "doc": "

Mock runners simply wait for an act to come in with whether\nor not onboarding is complete

\n", "signature": "(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.run_unit", "type": "function", "doc": "

Mock runners will pass the agents for the given assignment\nall of the required messages to finish a task.

\n", "signature": "(\n self,\n unit: mephisto.data_model.unit.Unit,\n agent: mephisto.data_model.agent.Agent\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.run_assignment", "type": "function", "doc": "

Mock runners will pass the agents for the given assignment\nall of the required messages to finish a task.

\n", "signature": "(\n self,\n assignment: mephisto.data_model.assignment.Assignment,\n agents: list[mephisto.data_model.agent.Agent]\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.cleanup_assignment", "type": "function", "doc": "

No cleanup required yet for ending mock runs

\n", "signature": "(self, assignment: mephisto.data_model.assignment.Assignment)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.cleanup_unit", "type": "function", "doc": "

No cleanup required yet for ending mock runs

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit)", "funcdef": "def"}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"fullname": "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding", "modulename": "mephisto.abstractions.blueprints.mock.mock_task_runner", "qualname": "MockTaskRunner.cleanup_onboarding", "type": "function", "doc": "

No cleanup required yet for ending onboarding in mocks

\n", "signature": "(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat": {"fullname": "mephisto.abstractions.blueprints.parlai_chat", "modulename": "mephisto.abstractions.blueprints.parlai_chat", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState", "type": "class", "doc": "

Holds information about ParlAI-style chat. Data is stored in json files\ncontaining every act from the ParlAI world.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.__init__", "type": "function", "doc": "

Create an AgentState to track the state of an agent's work on a Unit

\n\n

Initialize with an existing file if it exists.

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.set_init_state", "type": "function", "doc": "

Set the initial state for this agent

\n", "signature": "(self, data: Any) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.get_init_state", "type": "function", "doc": "

Return the initial state for this agent,\nNone if no such state exists

\n", "signature": "(self) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.load_data", "type": "function", "doc": "

Load stored data from a file to this object

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.get_data", "type": "function", "doc": "

Return dict with the messages of this agent

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.get_parsed_data", "type": "function", "doc": "

Return properly parsed data from this task

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.get_task_start", "type": "function", "doc": "

Return the start time for this task, the timestamp of the very first message.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.get_task_end", "type": "function", "doc": "

Return the end time for this task, the timestamp of the very final message.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.save_data", "type": "function", "doc": "

Save all messages from this agent to

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.update_data", "type": "function", "doc": "

Append the incoming packet as well as its arrival time

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state", "qualname": "ParlAIChatAgentState.update_submit", "type": "function", "doc": "

Append any final submission to this state

\n", "signature": "(self, submitted_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "SharedParlAITaskState", "type": "class", "doc": "

SharedParlAITaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , frontend_task_opts: Dict[str, Any] = , world_opt: Dict[str, Any] = , onboarding_world_opt: Dict[str, Any] = , world_module: Union[Any, NoneType] = None)

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "SharedParlAITaskState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_config: Dict[str, Any] = ,\n qualifications: List[Any] = ,\n worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = ,\n on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = ,\n onboarding_data: Dict[str, Any] = ,\n validate_onboarding: Callable[[Any], bool] = ,\n frontend_task_opts: Dict[str, Any] = ,\n world_opt: Dict[str, Any] = ,\n onboarding_world_opt: Dict[str, Any] = ,\n world_module: Union[Any, NoneType] = None\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "SharedParlAITaskState.world_module", "type": "variable", "doc": "

\n", "annotation": ": Union[Any, NoneType]", "default_value": " = None"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs", "type": "class", "doc": "

ParlAIChatBlueprintArgs(_blueprint_type: str = 'parlai_chat', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'ParlAIChatBlueprint', world_file: str = '???', preview_source: str = '???', task_description_file: str = '???', custom_source_bundle: str = '???', custom_source_dir: str = '???', extra_source_dir: str = '???', context_csv: str = '???', context_jsonl: str = '???', num_conversations: int = '???')

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _blueprint_type: str = 'parlai_chat',\n block_qualification: str = '???',\n onboarding_qualification: str = '???',\n _group: str = 'ParlAIChatBlueprint',\n world_file: str = '???',\n preview_source: str = '???',\n task_description_file: str = '???',\n custom_source_bundle: str = '???',\n custom_source_dir: str = '???',\n extra_source_dir: str = '???',\n context_csv: str = '???',\n context_jsonl: str = '???',\n num_conversations: int = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.world_file", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.preview_source", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.task_description_file", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.custom_source_bundle", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.custom_source_dir", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.extra_source_dir", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.context_csv", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.context_jsonl", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprintArgs.num_conversations", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint", "type": "class", "doc": "

Blueprint for a task that runs a parlai chat

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired, mephisto.abstractions.blueprint.Blueprint"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.AgentStateClass", "type": "class", "doc": "

Holds information about ParlAI-style chat. Data is stored in json files\ncontaining every act from the ParlAI world.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.OnboardingAgentStateClass", "type": "class", "doc": "

Holds information about ParlAI-style chat. Data is stored in json files\ncontaining every act from the ParlAI world.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.TaskBuilderClass", "type": "class", "doc": "

Builder for a parlai chat task, pulls the appropriate html,\nbuilds the frontend (if a build doesn't already exist),\nthen puts the file into the server directory

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.TaskRunnerClass", "type": "class", "doc": "

Task runner for a parlai chat task

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.ArgsClass", "type": "class", "doc": "

ParlAIChatBlueprintArgs(_blueprint_type: str = 'parlai_chat', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'ParlAIChatBlueprint', world_file: str = '???', preview_source: str = '???', task_description_file: str = '???', custom_source_bundle: str = '???', custom_source_dir: str = '???', extra_source_dir: str = '???', context_csv: str = '???', context_jsonl: str = '???', num_conversations: int = '???')

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.SharedStateClass", "type": "class", "doc": "

SharedParlAITaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , frontend_task_opts: Dict[str, Any] = , world_opt: Dict[str, Any] = , onboarding_world_opt: Dict[str, Any] = , world_module: Union[Any, NoneType] = None)

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.BLUEPRINT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'parlai_chat'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.assert_task_args", "type": "function", "doc": "

Ensure that arguments are properly configured to launch this task

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.get_frontend_args", "type": "function", "doc": "

Specifies what options within a task_config should be fowarded\nto the client for use by the task's frontend

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.get_initialization_data", "type": "function", "doc": "

Return the InitializationData retrieved from the specified stream

\n", "signature": "(\n self\n) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint", "qualname": "ParlAIChatBlueprint.validate_onboarding", "type": "function", "doc": "

Check the incoming onboarding data and evaluate if the worker\nhas passed the qualification or not. Return True if the worker\nhas qualified.

\n\n

By default we use the validate_onboarding provided in a run_task,\nand all onboarding tasks should allow run_task to specify additional\nor entirely override what's provided in a blueprint.

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker,\n onboarding_agent: mephisto.data_model.agent.OnboardingAgent\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder", "type": "class", "doc": "

Builder for a parlai chat task, pulls the appropriate html,\nbuilds the frontend (if a build doesn't already exist),\nthen puts the file into the server directory

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder.BUILT_FILE", "type": "variable", "doc": "

\n", "default_value": " = 'done.built'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder.BUILT_MESSAGE", "type": "variable", "doc": "

\n", "default_value": " = 'built!'"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder.rebuild_core", "type": "function", "doc": "

Rebuild the frontend for this task

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder.build_custom_bundle", "type": "function", "doc": "

Locate all of the custom files used for a custom build, create\na prebuild directory containing all of them, then build the\ncustom source.

\n\n

Check dates to only go through this build process when files have changes

\n", "signature": "(self, custom_src_dir)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder", "qualname": "ParlAIChatTaskBuilder.build_in_dir", "type": "function", "doc": "

Build the frontend if it doesn't exist, then copy into the server directory

\n", "signature": "(self, build_dir: str)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper", "type": "class", "doc": "

Class that wraps a mephisto agent to be used as an\nagent in ParlAI worlds

\n", "bases": "parlai.core.agents.Agent"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n agent: Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent]\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper.id", "type": "variable", "doc": "

Alias for agent_id

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper.agent_id", "type": "variable", "doc": "

Agent IDs in ParlAI are used to identify the speaker,\nand often are a label like \"teacher\"

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper.act", "type": "function", "doc": "

ParlAI Agents send an act dict, we must convert this

\n", "signature": "(self, timeout=None)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "MephistoAgentWrapper.observe", "type": "function", "doc": "

We can simply add a message id if not already provided to these

\n", "signature": "(self, act)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner", "type": "class", "doc": "

Task runner for a parlai chat task

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.__init__", "type": "function", "doc": "

Get the correct TaskRunner for this task run

\n", "signature": "(\n cls,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.get_init_data_for_agent", "type": "function", "doc": "

Return the data for an agent already assigned to a particular unit

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.get_world_id", "type": "function", "doc": "

Get a world id specific to the given world type

\n", "signature": "(self, world_type: str, extra_id: str) -> str", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.run_onboarding", "type": "function", "doc": "

ParlAI Onboarding will initialize an onboarding\nworld, then run it to completion if possible

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.cleanup_onboarding", "type": "function", "doc": "

Shutdown the world

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.run_assignment", "type": "function", "doc": "

ParlAI runners will initialize a task world, then run them to completion\nif possible

\n", "signature": "(\n self,\n assignment: mephisto.data_model.assignment.Assignment,\n agents: list[mephisto.data_model.agent.Agent]\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.cleanup_assignment", "type": "function", "doc": "

Handle cleanup for a specific assignment

\n", "signature": "(self, assignment: mephisto.data_model.assignment.Assignment) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.run_unit", "type": "function", "doc": "

ParlAI runners will initialize a task world, then run them to completion\nif possible

\n", "signature": "(\n self,\n unit: mephisto.data_model.unit.Unit,\n agent: mephisto.data_model.agent.Agent\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner", "qualname": "ParlAIChatTaskRunner.cleanup_unit", "type": "function", "doc": "

Handle cleanup for a specific unit

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "qualname": "ParlAIAgent", "type": "class", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "qualname": "ParlAIAgent.__init__", "type": "function", "doc": "

\n", "signature": "(self, *args, **kwargs)", "funcdef": "def"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "qualname": "Message", "type": "class", "doc": "

\n"}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"fullname": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__", "modulename": "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed", "qualname": "Message.__init__", "type": "function", "doc": "

\n", "signature": "(self, *args, **kwargs)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure": {"fullname": "mephisto.abstractions.blueprints.remote_procedure", "modulename": "mephisto.abstractions.blueprints.remote_procedure", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteRequest", "type": "class", "doc": "

RemoteRequest(uuid: str, target: str, args_json: Union[str, NoneType], response_json: Union[str, NoneType], timestamp: float)

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteRequest.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n uuid: str,\n target: str,\n args_json: Union[str, NoneType],\n response_json: Union[str, NoneType],\n timestamp: float\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteRequest.to_dict", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState", "type": "class", "doc": "

Holds information about tasks with live interactions in a remote query model.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.__init__", "type": "function", "doc": "

Create an agent state that keeps track of incoming actions from the frontend client\nInitialize with an existing file if it exists.

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.set_init_state", "type": "function", "doc": "

Set the initial state for this agent

\n", "signature": "(self, data: Any) -> bool", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.get_init_state", "type": "function", "doc": "

Return the initial state for this agent,\nNone if no such state exists

\n", "signature": "(self) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.load_data", "type": "function", "doc": "

Load stored data from a file to this object

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.get_data", "type": "function", "doc": "

Return dict with the messages of this agent

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.get_parsed_data", "type": "function", "doc": "

Return the formatted content

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.get_task_start", "type": "function", "doc": "

Return the start time for this task

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.get_task_end", "type": "function", "doc": "

Return the end time for this task

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.save_data", "type": "function", "doc": "

Save all messages from this agent to

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.update_data", "type": "function", "doc": "

Append the incoming packet as well as who it came from

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state", "qualname": "RemoteProcedureAgentState.update_submit", "type": "function", "doc": "

Append any final submission to this state

\n", "signature": "(self, submitted_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "SharedRemoteProcedureTaskState", "type": "class", "doc": "

SharedRemoteProcedureTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , function_registry: Union[Mapping[str, Callable[[str, Dict[str, Any], ForwardRef('RemoteProcedureAgentState')], Union[Dict[str, Any], NoneType]]], NoneType] = None, static_task_data: Iterable[Any] = )

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "SharedRemoteProcedureTaskState.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_config: Dict[str, Any] = ,\n qualifications: List[Any] = ,\n worker_can_do_unit: collections.abc.Callable[mephisto.data_model.worker.Worker, mephisto.data_model.unit.Unit, bool] = ,\n on_unit_submitted: collections.abc.Callable[mephisto.data_model.unit.Unit, NoneType] = ,\n onboarding_data: Dict[str, Any] = ,\n validate_onboarding: Callable[[Any], bool] = ,\n function_registry: Union[collections.abc.Mapping[str, collections.abc.Callable[str, Dict[str, Any], mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState, Union[Dict[str, Any], NoneType]]], NoneType] = None,\n static_task_data: Iterable[Any] = \n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "SharedRemoteProcedureTaskState.function_registry", "type": "variable", "doc": "

\n", "annotation": ": Union[collections.abc.Mapping[str, collections.abc.Callable[str, Dict[str, Any], mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState, Union[Dict[str, Any], NoneType]]], NoneType]", "default_value": " = None"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprintArgs", "type": "class", "doc": "

RemoteProcedureBlueprintArgs(_blueprint_type: str = 'remote_procedure', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'RemoteProcedureBlueprintArgs', task_source: str = '???', link_task_source: bool = False, units_per_assignment: int = 1)

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _blueprint_type: str = 'remote_procedure',\n block_qualification: str = '???',\n onboarding_qualification: str = '???',\n _group: str = 'RemoteProcedureBlueprintArgs',\n task_source: str = '???',\n link_task_source: bool = False,\n units_per_assignment: int = 1\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprintArgs.task_source", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprintArgs.link_task_source", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprintArgs.units_per_assignment", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 1"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint", "type": "class", "doc": "

Blueprint for a task that runs a parlai chat

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired, mephisto.abstractions.blueprint.Blueprint"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.AgentStateClass", "type": "class", "doc": "

Holds information about tasks with live interactions in a remote query model.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.OnboardingAgentStateClass", "type": "class", "doc": "

Holds information about tasks with live interactions in a remote query model.

\n", "bases": "mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.TaskBuilderClass", "type": "class", "doc": "

Builder for a \"static task\" that has access to remote queries.\nAt the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks\nin the same way.

\n", "bases": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.TaskRunnerClass", "type": "class", "doc": "

Task runner for a task with live remote queries on the local machine

\n\n

TODO this is pretty gross, and would be better as a series of worker

\n\n

threads that handle commands, as the functions all have direct access

\n\n

to the full worker state.

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.ArgsClass", "type": "class", "doc": "

RemoteProcedureBlueprintArgs(_blueprint_type: str = 'remote_procedure', block_qualification: str = '???', onboarding_qualification: str = '???', _group: str = 'RemoteProcedureBlueprintArgs', task_source: str = '???', link_task_source: bool = False, units_per_assignment: int = 1)

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs, mephisto.abstractions.blueprint.BlueprintArgs"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.SharedStateClass", "type": "class", "doc": "

SharedRemoteProcedureTaskState(task_config: Dict[str, Any] = , qualifications: List[Any] = , worker_can_do_unit: Callable[[ForwardRef('Worker'), ForwardRef('Unit')], bool] = , on_unit_submitted: Callable[[ForwardRef('Unit')], NoneType] = , onboarding_data: Dict[str, Any] = , validate_onboarding: Callable[[Any], bool] = , function_registry: Union[Mapping[str, Callable[[str, Dict[str, Any], ForwardRef('RemoteProcedureAgentState')], Union[Dict[str, Any], NoneType]]], NoneType] = None, static_task_data: Iterable[Any] = )

\n", "bases": "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState, mephisto.abstractions.blueprint.SharedTaskState"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.BLUEPRINT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'remote_procedure'"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.assert_task_args", "type": "function", "doc": "

Ensure that arguments are properly configured to launch this task

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint", "qualname": "RemoteProcedureBlueprint.get_initialization_data", "type": "function", "doc": "

Return the InitializationData retrieved from the specified stream

\n", "signature": "(\n self\n) -> collections.abc.Iterable[mephisto.data_model.assignment.InitializationData]", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder", "qualname": "RemoteProcedureTaskBuilder", "type": "class", "doc": "

Builder for a \"static task\" that has access to remote queries.\nAt the moment, simply a StaticReactTaskBuilder, as we will be using static react tasks\nin the same way.

\n", "bases": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner", "type": "class", "doc": "

Task runner for a task with live remote queries on the local machine

\n\n

TODO this is pretty gross, and would be better as a series of worker

\n\n

threads that handle commands, as the functions all have direct access

\n\n

to the full worker state.

\n", "bases": "mephisto.abstractions._subcomponents.task_runner.TaskRunner"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.__init__", "type": "function", "doc": "

Get the correct TaskRunner for this task run

\n", "signature": "(\n cls,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.get_init_data_for_agent", "type": "function", "doc": "

Return the data for an agent already assigned to a particular unit

\n", "signature": "(self, agent: mephisto.data_model.agent.Agent) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.run_onboarding", "type": "function", "doc": "

Running onboarding with access to remote queries

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.cleanup_onboarding", "type": "function", "doc": "

Shutdown onboarding resources

\n", "signature": "(self, agent: mephisto.data_model.agent.OnboardingAgent) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.run_unit", "type": "function", "doc": "

Running a task with access to remote queries

\n", "signature": "(\n self,\n unit: mephisto.data_model.unit.Unit,\n agent: mephisto.data_model.agent.Agent\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"fullname": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit", "modulename": "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner", "qualname": "RemoteProcedureTaskRunner.cleanup_unit", "type": "function", "doc": "

Handle cleanup for a specific unit

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_html_task": {"fullname": "mephisto.abstractions.blueprints.static_html_task", "modulename": "mephisto.abstractions.blueprints.static_html_task", "type": "module", "doc": "

StaticHTMLBlueprint

\n\n

Overview

\n\n

The StaticHTMLBlueprint exists to create a simple transition stand-in to allow users of other platforms (which generally push for customization with HTML) to begin using Mephisto with minimal changes. This generally exists in the form of specifying a templated HTML file and providing assignment data that fills the templates.

\n\n

There are no plans to extend the StaticHTMLBlueprint, or provide other HTML support, as we believe this to be more an onboarding ramp rather than a fully fleshed out feature. The React-based codebase contains better features and cleaner, reusable modules, and as such our focus is on tasks in that area.

\n\n

Usage

\n\n

An example usage case is available here. General usage for this Blueprint type can be summed up as copying that directory structure, providing your own templated HTML in the server_files, and then providng the data.csv or other data to post those templates to workers. More in-depth descriptions can be seen there.

\n\n

Implementation Details

\n\n

At a high level, this is a deeper implementation of the abstract StaticArchitect, which contains all of the logic for deploying arbitrary tasks where the worker is given some content, and we ask for one response, as a complete Unit. This module adds the logic to ensure that the frontend where the worker is given content is able to render arbitrary HTML.

\n\n

app.jsx

\n\n

The app.jsx file contains most of the logic to ensure we can render HTML, including being able to attach and execute the arbitrary scripts that are included or linked in the given HTML file. It creates a react application using the mephisto-task package, and creates an empty form with a submit button. It then populates the inner form using two primary methods:

\n\n
    \n
  • handleUpdatingRemainingScripts: This method walks through the list of scripts that are given in the attached HTML, either loading the external script and putting it into the head, or directly evaluating the content of local scripts. As the page has already loaded by the time we are loading in the remaining scripts, this all must be injected in an asynchronous manner. _Ultimately_ this isn't incredibly safe if you don't trust the attached scripts.
  • \n
  • interpolateHtml: This method injects the values for the specific task into their template variable slots. These template variables are specified in the InitializationData for an assignment, and populate fields as noted in the Template Variables section below.
  • \n
\n\n

Upon submit, the data in the form (as marked by the name fields of any inputs) will be sent to the backend and stored in the agent_data.json file.

\n\n

Template Variables

\n\n

You can provide template variables when running your task, generally in the form of template variables that are given names. When you specify these (either via .csv or directly providing a parsed array of dicts for this data), any named variable my_special_variable will be filled into the frontend in all locations containing ${my_special_variable}.

\n\n

Mephisto-specific Template Variables

\n\n

As of now, we also make available the following variables to the HTML via templating:

\n\n
    \n
  • ${mephisto_agent_id}: The agent ID that Mephisto has associated with the current worker and task.
  • \n
  • ${provider_worker_id}: The worker id that the provider uses locally to identify the worker.
  • \n
\n\n

StaticHTMLBlueprint

\n\n

The Blueprint here extends on the abstract StaticBlueprint, adding HTML-specific requirements to outline the task that ends up visualized. The added arguments are as follows:

\n\n
    \n
  • task_source: The path to the (templated) HTML that should be displayed for the task.
  • \n
  • preview_source: The path to the HTML that should be displayed while previewing a task.
  • \n
  • onboarding_source: The path to the HTML that should be displayed during onboarding.
  • \n
\n\n

Providing an onboarding_source requires also providing an onboarding_qualification in order to trigger onboarding for your task. You should also specify a validate_onboarding in your SharedTaskState to ensure that the onboarding is completed properly.

\n\n

StaticHTMLTaskBuilder

\n\n

This TaskBuilder class primarily seeks to copy the source files as linked in the StaticHTMLBlueprint and include them in what gets deployed on the server. As these are primarily static files, the builder is fairly straightforward. Regardless of the files that are provided, the onboarding html ends up at onboarding.html on the server and the preview html ends up on the server at preview.html. The task html retains its name, as this is specified as the html arg parsed on the frontend.

\n"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprintArgs", "type": "class", "doc": "

Adds required options for StaticBlueprints.\ntask_source points to the file intending to be deployed for this task\ndata_csv has the data to be deployed for this task.

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _blueprint_type: str = 'static_task',\n block_qualification: str = '???',\n onboarding_qualification: str = '???',\n _group: str = 'StaticBlueprint',\n units_per_assignment: int = 1,\n extra_source_dir: str = '???',\n data_json: str = '???',\n data_jsonl: str = '???',\n data_csv: str = '???',\n task_source: str = '???',\n preview_source: Union[str, NoneType] = '???',\n onboarding_source: Union[str, NoneType] = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprintArgs.task_source", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprintArgs.preview_source", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprintArgs.onboarding_source", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint", "type": "class", "doc": "

Blueprint for a task that runs off of a built react javascript bundle

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint.TaskBuilderClass", "type": "class", "doc": "

Builder for a static task, pulls the appropriate html,\nbuilds the frontend (if a build doesn't already exist),\nthen puts the file into the server directory

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint.ArgsClass", "type": "class", "doc": "

Adds required options for StaticBlueprints.\ntask_source points to the file intending to be deployed for this task\ndata_csv has the data to be deployed for this task.

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint.BLUEPRINT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'static_task'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint", "qualname": "StaticHTMLBlueprint.assert_task_args", "type": "function", "doc": "

Ensure that the data can be properly loaded

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "qualname": "StaticHTMLTaskBuilder", "type": "class", "doc": "

Builder for a static task, pulls the appropriate html,\nbuilds the frontend (if a build doesn't already exist),\nthen puts the file into the server directory

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "qualname": "StaticHTMLTaskBuilder.BUILT_FILE", "type": "variable", "doc": "

\n", "default_value": " = 'done.built'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "qualname": "StaticHTMLTaskBuilder.BUILT_MESSAGE", "type": "variable", "doc": "

\n", "default_value": " = 'built!'"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "qualname": "StaticHTMLTaskBuilder.rebuild_core", "type": "function", "doc": "

Rebuild the frontend for this task

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"fullname": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir", "modulename": "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder", "qualname": "StaticHTMLTaskBuilder.build_in_dir", "type": "function", "doc": "

Build the frontend if it doesn't exist, then copy into the server directory

\n", "signature": "(self, build_dir: str)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_react_task": {"fullname": "mephisto.abstractions.blueprints.static_react_task", "modulename": "mephisto.abstractions.blueprints.static_react_task", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprintArgs", "type": "class", "doc": "

StaticReactBlueprint: Tasks launched from static blueprints need\na prebuilt javascript bundle containing the task. We suggest building\nwith our provided useMephistoTask hook.

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprintArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _blueprint_type: str = 'static_react_task',\n block_qualification: str = '???',\n onboarding_qualification: str = '???',\n _group: str = 'StaticReactBlueprint',\n units_per_assignment: int = 1,\n extra_source_dir: str = '???',\n data_json: str = '???',\n data_jsonl: str = '???',\n data_csv: str = '???',\n task_source: str = '???',\n link_task_source: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprintArgs.task_source", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprintArgs.link_task_source", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint", "type": "class", "doc": "

Blueprint for a task that runs off of a built react javascript bundle

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint.TaskBuilderClass", "type": "class", "doc": "

Builder for a static task, puts required files into\nthe server directory for deployment.

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint.ArgsClass", "type": "class", "doc": "

StaticReactBlueprint: Tasks launched from static blueprints need\na prebuilt javascript bundle containing the task. We suggest building\nwith our provided useMephistoTask hook.

\n", "bases": "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint.BLUEPRINT_TYPE", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'static_react_task'"}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint", "qualname": "StaticReactBlueprint.assert_task_args", "type": "function", "doc": "

Ensure that static requirements are fulfilled, and source file exists

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n) -> None", "funcdef": "def"}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "type": "module", "doc": "

\n"}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "qualname": "StaticReactTaskBuilder", "type": "class", "doc": "

Builder for a static task, puts required files into\nthe server directory for deployment.

\n", "bases": "mephisto.abstractions._subcomponents.task_builder.TaskBuilder"}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "qualname": "StaticReactTaskBuilder.BUILT_FILE", "type": "variable", "doc": "

\n", "default_value": " = 'done.built'"}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "qualname": "StaticReactTaskBuilder.BUILT_MESSAGE", "type": "variable", "doc": "

\n", "default_value": " = 'built!'"}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"fullname": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir", "modulename": "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder", "qualname": "StaticReactTaskBuilder.build_in_dir", "type": "function", "doc": "

Build the frontend if it doesn't exist, then copy into the server directory

\n", "signature": "(self, build_dir: str)", "funcdef": "def"}, "mephisto.abstractions.crowd_provider": {"fullname": "mephisto.abstractions.crowd_provider", "modulename": "mephisto.abstractions.crowd_provider", "type": "module", "doc": "

\n"}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"fullname": "mephisto.abstractions.crowd_provider.ProviderArgs", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "ProviderArgs", "type": "class", "doc": "

Base class for arguments to configure Crowd Providers

\n"}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"fullname": "mephisto.abstractions.crowd_provider.ProviderArgs.__init__", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "ProviderArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, _provider_type: str = '???', requester_name: str = '???')", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"fullname": "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "ProviderArgs.requester_name", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider", "type": "class", "doc": "

Base class that defines the required functionality for\nthe mephisto system to be able to interface with an\nexternal crowdsourcing vendor.

\n\n

Implementing the methods within, as well as supplying\nwrapped Unit, Requester, Worker, and Agent classes\nshould ensure support for a vendor.

\n", "bases": "abc.ABC"}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.__init__", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.__init__", "type": "function", "doc": "

Crowd provider classes should keep as much of their state\nas possible in their non-python datastore. This way\nthe system can work even after shutdowns, and the\nstate of the system can be managed or observed from\nother processes.

\n\n

In order to set up a datastore, init should check to see\nif one is already set (using get_datastore_for_provider)\nand use that one if available, otherwise make a new one\nand register it with the database.

\n", "signature": "(self, db: mephisto.abstractions.database.MephistoDB)", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = '__PROVIDER_BASE_CLASS__'"}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.UnitClass", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n\n

It should be extended for usage with a specific crowd provider

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.RequesterClass", "type": "class", "doc": "

High level class representing a requester on some kind of crowd provider. Sets some default\ninitializations, but mostly should be extended by the specific requesters for crowd providers\nwith whatever implementation details are required to get those to work.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.WorkerClass", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.AgentClass", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.ArgsClass", "type": "class", "doc": "

Base class for arguments to configure Crowd Providers

\n"}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.is_sandbox", "type": "function", "doc": "

Determine if the given crowd provider is a sandbox provider

\n", "signature": "(cls) -> bool", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.assert_task_args", "type": "function", "doc": "

Assert that the provided arguments are valid. Should\nfail if a task launched with these arguments would\nnot work

\n", "signature": "(\n cls,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState\n)", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.get_wrapper_js_path", "type": "function", "doc": "

Return the path to the wrap_crowd_source.js file for this\nprovider to be deployed to the server

\n", "signature": "(cls)", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.initialize_provider_datastore", "type": "function", "doc": "

Do whatever is required to initialize this provider insofar\nas setting up local or external state is required to ensure\nthat this vendor is usable.

\n\n

Local data storage should be put into the given root path.

\n\n

This method should return the local data storage component that\nis required to do any object initialization, as it will be available\nfrom the MephistoDB in a db.get_provider_datastore(PROVIDER_TYPE).

\n", "signature": "(self, storage_path: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.setup_resources_for_task_run", "type": "function", "doc": "

Setup any required resources for managing any additional resources\nsurrounding a specific task run.

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.cleanup_resources_from_task_run", "type": "function", "doc": "

Destroy any resources set up specifically for this task run

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"fullname": "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification", "modulename": "mephisto.abstractions.crowd_provider", "qualname": "CrowdProvider.cleanup_qualification", "type": "function", "doc": "

Remove the linked qualification from the crowdprovider if it exists

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.database": {"fullname": "mephisto.abstractions.database", "modulename": "mephisto.abstractions.database", "type": "module", "doc": "

\n"}, "mephisto.abstractions.database.MephistoDBException": {"fullname": "mephisto.abstractions.database.MephistoDBException", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDBException", "type": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"fullname": "mephisto.abstractions.database.EntryAlreadyExistsException", "modulename": "mephisto.abstractions.database", "qualname": "EntryAlreadyExistsException", "type": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "MephistoDBException"}, "mephisto.abstractions.database.EntryDoesNotExistException": {"fullname": "mephisto.abstractions.database.EntryDoesNotExistException", "modulename": "mephisto.abstractions.database", "qualname": "EntryDoesNotExistException", "type": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "MephistoDBException"}, "mephisto.abstractions.database.MephistoDB": {"fullname": "mephisto.abstractions.database.MephistoDB", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB", "type": "class", "doc": "

Provides the interface for all queries that are necessary for the Mephisto\narchitecture to run as expected. All other databases should implement\nthese methods to be used as the database that backs Mephisto.

\n\n

By default, we use a LocalMesphistoDB located at mephisto/data/database.db

\n", "bases": "abc.ABC"}, "mephisto.abstractions.database.MephistoDB.__init__": {"fullname": "mephisto.abstractions.database.MephistoDB.__init__", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.__init__", "type": "function", "doc": "

Ensure the database is set up and ready to handle data

\n", "signature": "(self, database_path=None)", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"fullname": "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_db_path_for_provider", "type": "function", "doc": "

Get the path to store data for a specific provider in

\n", "signature": "(self, provider_type) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"fullname": "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.has_datastore_for_provider", "type": "function", "doc": "

Determine if a datastore has been registered for the given provider

\n", "signature": "(self, provider_type: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"fullname": "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_datastore_for_provider", "type": "function", "doc": "

Get the provider datastore registered with this db

\n", "signature": "(self, provider_type: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"fullname": "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.set_datastore_for_provider", "type": "function", "doc": "

Set the provider datastore registered with this db

\n", "signature": "(self, provider_type: str, datastore: Any) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"fullname": "mephisto.abstractions.database.MephistoDB.optimized_load", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.optimized_load", "type": "function", "doc": "

Load the given class in an optimized fashion, if this DB has a more\nefficient way of storing and managing the data

\n", "signature": "(\n self,\n target_cls,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None\n)", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.cache_result": {"fullname": "mephisto.abstractions.database.MephistoDB.cache_result", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.cache_result", "type": "function", "doc": "

Opportunity to store the result class from a load

\n", "signature": "(self, target_cls, value) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.shutdown": {"fullname": "mephisto.abstractions.database.MephistoDB.shutdown", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.shutdown", "type": "function", "doc": "

Do whatever is required to close this database's resources

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.init_tables": {"fullname": "mephisto.abstractions.database.MephistoDB.init_tables", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.init_tables", "type": "function", "doc": "

Initialize any tables that may be required to run this database. If this is an expensive\noperation, check to see if they already exist before trying to initialize

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_project": {"fullname": "mephisto.abstractions.database.MephistoDB.new_project", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_project", "type": "function", "doc": "

Create a new project with the given project name. Raise EntryAlreadyExistsException if a project\nwith this name has already been created.

\n\n

Project names are permanent, as changing directories later is painful.

\n", "signature": "(self, project_name: str) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_project": {"fullname": "mephisto.abstractions.database.MephistoDB.get_project", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_project", "type": "function", "doc": "

Return project's fields by the given project_id, raise EntryDoesNotExistException if no id exists\nin projects

\n\n

See Project for the expected returned mapping's fields

\n", "signature": "(self, project_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_projects": {"fullname": "mephisto.abstractions.database.MephistoDB.find_projects", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_projects", "type": "function", "doc": "

Try to find any project that matches the above. When called with no arguments,\nreturn all projects.

\n", "signature": "(\n self,\n project_name: Union[str, NoneType] = None\n) -> List[mephisto.data_model.project.Project]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_task": {"fullname": "mephisto.abstractions.database.MephistoDB.new_task", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_task", "type": "function", "doc": "

Create a new task with the given task name. Raise EntryAlreadyExistsException if a task\nwith this name has already been created.

\n", "signature": "(\n self,\n task_name: str,\n task_type: str,\n project_id: Union[str, NoneType] = None\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_task": {"fullname": "mephisto.abstractions.database.MephistoDB.get_task", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_task", "type": "function", "doc": "

Return task's fields by task_id, raise EntryDoesNotExistException if no id exists\nin tasks

\n\n

See Task for the expected fields for the returned mapping

\n", "signature": "(self, task_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"fullname": "mephisto.abstractions.database.MephistoDB.find_tasks", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_tasks", "type": "function", "doc": "

Try to find any task that matches the above. When called with no arguments,\nreturn all tasks.

\n", "signature": "(\n self,\n task_name: Union[str, NoneType] = None,\n project_id: Union[str, NoneType] = None\n) -> List[mephisto.data_model.task.Task]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.update_task": {"fullname": "mephisto.abstractions.database.MephistoDB.update_task", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.update_task", "type": "function", "doc": "

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

\n\n

Should only be runable if no runs have been created for this task

\n", "signature": "(\n self,\n task_id: str,\n task_name: Union[str, NoneType] = None,\n project_id: Union[str, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"fullname": "mephisto.abstractions.database.MephistoDB.new_task_run", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_task_run", "type": "function", "doc": "

Create a new task_run for the given task.

\n\n

Once a run is created, it should no longer be altered. The assignments and\nsubassignments depend on the data set up within, as the launched task\ncannot be replaced and the requester can not be swapped mid-run.

\n", "signature": "(\n self,\n task_id: str,\n requester_id: str,\n init_params: str,\n provider_type: str,\n task_type: str,\n sandbox: bool = True\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"fullname": "mephisto.abstractions.database.MephistoDB.get_task_run", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_task_run", "type": "function", "doc": "

Return the given task_run's fields by task_run_id, raise EntryDoesNotExistException if no id exists\nin task_runs.

\n\n

See TaskRun for the expected fields to populate in the returned mapping

\n", "signature": "(self, task_run_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"fullname": "mephisto.abstractions.database.MephistoDB.find_task_runs", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_task_runs", "type": "function", "doc": "

Try to find any task_run that matches the above. When called with no arguments,\nreturn all task_runs.

\n", "signature": "(\n self,\n task_id: Union[str, NoneType] = None,\n requester_id: Union[str, NoneType] = None,\n is_completed: Union[bool, NoneType] = None\n) -> List[mephisto.data_model.task_run.TaskRun]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"fullname": "mephisto.abstractions.database.MephistoDB.update_task_run", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.update_task_run", "type": "function", "doc": "

Update a task run. At the moment, can only update completion status

\n", "signature": "(self, task_run_id: str, is_completed: bool)", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"fullname": "mephisto.abstractions.database.MephistoDB.new_assignment", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_assignment", "type": "function", "doc": "

Create a new assignment for the given task

\n\n

Assignments should not be edited or altered once created

\n", "signature": "(\n self,\n task_id: str,\n task_run_id: str,\n requester_id: str,\n task_type: str,\n provider_type: str,\n sandbox: bool = True\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"fullname": "mephisto.abstractions.database.MephistoDB.get_assignment", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_assignment", "type": "function", "doc": "

Return assignment's fields by assignment_id, raise EntryDoesNotExistException if\nno id exists in tasks

\n\n

See Assignment for the expected fields for the returned mapping

\n", "signature": "(self, assignment_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"fullname": "mephisto.abstractions.database.MephistoDB.find_assignments", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_assignments", "type": "function", "doc": "

Try to find any task that matches the above. When called with no arguments,\nreturn all tasks.

\n", "signature": "(\n self,\n task_run_id: Union[str, NoneType] = None,\n task_id: Union[str, NoneType] = None,\n requester_id: Union[str, NoneType] = None,\n task_type: Union[str, NoneType] = None,\n provider_type: Union[str, NoneType] = None,\n sandbox: Union[bool, NoneType] = None\n) -> List[mephisto.data_model.assignment.Assignment]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_unit": {"fullname": "mephisto.abstractions.database.MephistoDB.new_unit", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_unit", "type": "function", "doc": "

Create a new unit with the given index. Raises EntryAlreadyExistsException\nif there is already a unit for the given assignment with the given index.

\n", "signature": "(\n self,\n task_id: str,\n task_run_id: str,\n requester_id: str,\n assignment_id: str,\n unit_index: int,\n pay_amount: float,\n provider_type: str,\n task_type: str,\n sandbox: bool = True\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_unit": {"fullname": "mephisto.abstractions.database.MephistoDB.get_unit", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_unit", "type": "function", "doc": "

Return unit's fields by unit_id, raise EntryDoesNotExistException\nif no id exists in units

\n\n

See unit for the expected fields for the returned mapping

\n", "signature": "(self, unit_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_units": {"fullname": "mephisto.abstractions.database.MephistoDB.find_units", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_units", "type": "function", "doc": "

Try to find any unit that matches the above. When called with no arguments,\nreturn all units.

\n", "signature": "(\n self,\n task_id: Union[str, NoneType] = None,\n task_run_id: Union[str, NoneType] = None,\n requester_id: Union[str, NoneType] = None,\n assignment_id: Union[str, NoneType] = None,\n unit_index: Union[int, NoneType] = None,\n provider_type: Union[str, NoneType] = None,\n task_type: Union[str, NoneType] = None,\n agent_id: Union[str, NoneType] = None,\n worker_id: Union[str, NoneType] = None,\n sandbox: Union[bool, NoneType] = None,\n status: Union[str, NoneType] = None\n) -> List[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"fullname": "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.clear_unit_agent_assignment", "type": "function", "doc": "

Update the given unit by removing the agent that is assigned to it, thus updating\nthe status to assignable.

\n", "signature": "(self, unit_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.update_unit": {"fullname": "mephisto.abstractions.database.MephistoDB.update_unit", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.update_unit", "type": "function", "doc": "

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

\n", "signature": "(\n self,\n unit_id: str,\n agent_id: Union[str, NoneType] = None,\n status: Union[str, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_requester": {"fullname": "mephisto.abstractions.database.MephistoDB.new_requester", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_requester", "type": "function", "doc": "

Create a new requester with the given name and provider type.\nRaises EntryAlreadyExistsException\nif there is already a requester with this name

\n", "signature": "(self, requester_name: str, provider_type: str) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_requester": {"fullname": "mephisto.abstractions.database.MephistoDB.get_requester", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_requester", "type": "function", "doc": "

Return requester's fields by requester_id, raise EntryDoesNotExistException\nif no id exists in requesters

\n\n

See requester for the expected fields for the returned mapping

\n", "signature": "(self, requester_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"fullname": "mephisto.abstractions.database.MephistoDB.find_requesters", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_requesters", "type": "function", "doc": "

Try to find any requester that matches the above. When called with no arguments,\nreturn all requesters.

\n", "signature": "(\n self,\n requester_name: Union[str, NoneType] = None,\n provider_type: Union[str, NoneType] = None\n) -> List[mephisto.data_model.requester.Requester]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_worker": {"fullname": "mephisto.abstractions.database.MephistoDB.new_worker", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_worker", "type": "function", "doc": "

Create a new worker with the given name and provider type.\nRaises EntryAlreadyExistsException\nif there is already a worker with this name

\n\n

worker_name should be the unique identifier by which the crowd provider\nis using to keep track of this worker

\n", "signature": "(self, worker_name: str, provider_type: str) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_worker": {"fullname": "mephisto.abstractions.database.MephistoDB.get_worker", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_worker", "type": "function", "doc": "

Return worker's fields by worker_id, raise EntryDoesNotExistException\nif no id exists in workers

\n\n

See worker for the expected fields for the returned mapping

\n", "signature": "(self, worker_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_workers": {"fullname": "mephisto.abstractions.database.MephistoDB.find_workers", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_workers", "type": "function", "doc": "

Try to find any worker that matches the above. When called with no arguments,\nreturn all workers.

\n", "signature": "(\n self,\n worker_name: Union[str, NoneType] = None,\n provider_type: Union[str, NoneType] = None\n) -> List[mephisto.data_model.worker.Worker]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.new_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_agent", "type": "function", "doc": "

Create a new agent for the given worker id to assign to the given unit\nRaises EntryAlreadyExistsException

\n\n

Should update the unit's status to ASSIGNED and the assigned agent to\nthis one.

\n", "signature": "(\n self,\n worker_id: str,\n unit_id: str,\n task_id: str,\n task_run_id: str,\n assignment_id: str,\n task_type: str,\n provider_type: str\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.get_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_agent", "type": "function", "doc": "

Return agent's fields by agent_id, raise EntryDoesNotExistException\nif no id exists in agents

\n\n

See Agent for the expected fields for the returned mapping

\n", "signature": "(self, agent_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.update_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.update_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.update_agent", "type": "function", "doc": "

Update the given task with the given parameters if possible, raise appropriate exception otherwise.

\n", "signature": "(self, agent_id: str, status: Union[str, NoneType] = None) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_agents": {"fullname": "mephisto.abstractions.database.MephistoDB.find_agents", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_agents", "type": "function", "doc": "

Try to find any agent that matches the above. When called with no arguments,\nreturn all agents.

\n", "signature": "(\n self,\n status: Union[str, NoneType] = None,\n unit_id: Union[str, NoneType] = None,\n worker_id: Union[str, NoneType] = None,\n task_id: Union[str, NoneType] = None,\n task_run_id: Union[str, NoneType] = None,\n assignment_id: Union[str, NoneType] = None,\n task_type: Union[str, NoneType] = None,\n provider_type: Union[str, NoneType] = None\n) -> List[mephisto.data_model.agent.Agent]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.new_onboarding_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.new_onboarding_agent", "type": "function", "doc": "

Create a new agent for the given worker id to assign to the given unit\nRaises EntryAlreadyExistsException

\n\n

Should update the unit's status to ASSIGNED and the assigned agent to\nthis one.

\n", "signature": "(\n self,\n worker_id: str,\n task_id: str,\n task_run_id: str,\n task_type: str\n) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.get_onboarding_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_onboarding_agent", "type": "function", "doc": "

Return onboarding agent's fields by onboarding_agent_id, raise\nEntryDoesNotExistException if no id exists in onboarding_agents

\n\n

See OnboardingAgent for the expected fields for the returned mapping

\n", "signature": "(self, onboarding_agent_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"fullname": "mephisto.abstractions.database.MephistoDB.update_onboarding_agent", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.update_onboarding_agent", "type": "function", "doc": "

Update the given onboarding agent with the given parameters if possible,\nraise appropriate exception otherwise.

\n", "signature": "(\n self,\n onboarding_agent_id: str,\n status: Union[str, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"fullname": "mephisto.abstractions.database.MephistoDB.find_onboarding_agents", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_onboarding_agents", "type": "function", "doc": "

Try to find any onboarding agent that matches the above. When called with no arguments,\nreturn all onboarding agents.

\n", "signature": "(\n self,\n status: Union[str, NoneType] = None,\n worker_id: Union[str, NoneType] = None,\n task_id: Union[str, NoneType] = None,\n task_run_id: Union[str, NoneType] = None,\n task_type: Union[str, NoneType] = None\n) -> List[mephisto.data_model.agent.OnboardingAgent]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.make_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.make_qualification", "type": "function", "doc": "

Make a new qualification, throws an error if a qualification by the given name\nalready exists. Return the id for the qualification.

\n", "signature": "(self, qualification_name: str) -> str", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"fullname": "mephisto.abstractions.database.MephistoDB.find_qualifications", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.find_qualifications", "type": "function", "doc": "

Find a qualification. If no name is supplied, returns all qualifications.

\n", "signature": "(\n self,\n qualification_name: Union[str, NoneType] = None\n) -> List[mephisto.data_model.qualification.Qualification]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.get_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_qualification", "type": "function", "doc": "

Return qualification's fields by qualification_id, raise\nEntryDoesNotExistException if no id exists in qualifications

\n\n

See Qualification for the expected fields for the returned mapping

\n", "signature": "(self, qualification_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.delete_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.delete_qualification", "type": "function", "doc": "

Remove this qualification from all workers that have it, then delete the qualification

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.grant_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.grant_qualification", "type": "function", "doc": "

Grant a worker the given qualification. Update the qualification value if it\nalready exists

\n", "signature": "(self, qualification_id: str, worker_id: str, value: int = 1) -> None", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"fullname": "mephisto.abstractions.database.MephistoDB.check_granted_qualifications", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.check_granted_qualifications", "type": "function", "doc": "

Find granted qualifications that match the given specifications

\n", "signature": "(\n self,\n qualification_id: Union[str, NoneType] = None,\n worker_id: Union[str, NoneType] = None,\n value: Union[int, NoneType] = None\n) -> List[mephisto.data_model.qualification.GrantedQualification]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.get_granted_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.get_granted_qualification", "type": "function", "doc": "

Return the granted qualification in the database between the given\nworker and qualification id

\n\n

See GrantedQualification for the expected fields for the returned mapping

\n", "signature": "(self, qualification_id: str, worker_id: str) -> Mapping[str, Any]", "funcdef": "def"}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"fullname": "mephisto.abstractions.database.MephistoDB.revoke_qualification", "modulename": "mephisto.abstractions.database", "qualname": "MephistoDB.revoke_qualification", "type": "function", "doc": "

Remove the given qualification from the given worker

\n", "signature": "(self, qualification_id: str, worker_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.databases": {"fullname": "mephisto.abstractions.databases", "modulename": "mephisto.abstractions.databases", "type": "module", "doc": "

MephistoDB implementations

\n\n

This folder contains implementations of the MephistoDB abstraction. Databases can currently be configured using the mephisto.database._database_type flag.

\n\n

LocalMephistoDB

\n\n

Activated with mephisto.database._database_type=local. An implementation of the Mephisto Data Model outlined in MephistoDB. This database stores all of the information locally via SQLite. Some helper functions are included to make the implementation cleaner by abstracting away SQLite error parsing and string formatting, however it's pretty straightforward from the requirements of MephistoDB.

\n\n

SingletonMephistoDB

\n\n

This database is best used for high performance runs on a single machine, where direct access to the underlying database isn't necessary during the runtime. It makes no guarantees on the rate of writing state or status to disk, as much of it is stored locally and in caches to keep IO locks down. Using this, you'll likely be able to get up on max_num_concurrent_units to 150-300 on live tasks, and upwards from 500 on static tasks.

\n\n

At the moment this DB acts as a wrapper around the LocalMephistoDB, and trades off Mephisto memory consumption for writing time. All of the data model accesses that occur are cached into a library of singletons, so large enough tasks may have memory risks. This allows us to make clearer assertions about the synced nature of the data model members, but obviously requires active memory to do so.

\n"}, "mephisto.abstractions.databases.local_database": {"fullname": "mephisto.abstractions.databases.local_database", "modulename": "mephisto.abstractions.databases.local_database", "type": "module", "doc": "

\n"}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"fullname": "mephisto.abstractions.databases.local_database.nonesafe_int", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "nonesafe_int", "type": "function", "doc": "

Cast input to an int or None

\n", "signature": "(in_string: Union[str, NoneType]) -> Union[int, NoneType]", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"fullname": "mephisto.abstractions.databases.local_database.assert_valid_provider", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "assert_valid_provider", "type": "function", "doc": "

Throw an assertion error if the given provider type is not valid

\n", "signature": "(provider_type: str) -> None", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.is_key_failure": {"fullname": "mephisto.abstractions.databases.local_database.is_key_failure", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "is_key_failure", "type": "function", "doc": "

Return if the given error is representing a foreign key\nfailure, where an insertion was expecting something to\nexist already in the DB but it didn't.

\n", "signature": "(e: sqlite3.IntegrityError) -> bool", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"fullname": "mephisto.abstractions.databases.local_database.is_unique_failure", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "is_unique_failure", "type": "function", "doc": "

Return if the given error is representing a foreign key\nfailure, where an insertion was expecting something to\nexist already in the DB but it didn't.

\n", "signature": "(e: sqlite3.IntegrityError) -> bool", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.StringIDRow": {"fullname": "mephisto.abstractions.databases.local_database.StringIDRow", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "StringIDRow", "type": "class", "doc": "

\n", "bases": "sqlite3.Row"}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"fullname": "mephisto.abstractions.databases.local_database.StringIDRow.__init__", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "StringIDRow.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"fullname": "mephisto.abstractions.databases.local_database.LocalMephistoDB", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "LocalMephistoDB", "type": "class", "doc": "

Local database for core Mephisto data storage, the LocalMephistoDatabase handles\ngrounding all of the python interactions with the Mephisto architecture to\nlocal files and a database.

\n", "bases": "mephisto.abstractions.database.MephistoDB"}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"fullname": "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "LocalMephistoDB.__init__", "type": "function", "doc": "

Ensure the database is set up and ready to handle data

\n", "signature": "(self, database_path=None)", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"fullname": "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "LocalMephistoDB.shutdown", "type": "function", "doc": "

Close all open connections

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"fullname": "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables", "modulename": "mephisto.abstractions.databases.local_database", "qualname": "LocalMephistoDB.init_tables", "type": "function", "doc": "

Run all the table creation SQL queries to ensure the expected tables exist

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.databases.local_singleton_database": {"fullname": "mephisto.abstractions.databases.local_singleton_database", "modulename": "mephisto.abstractions.databases.local_singleton_database", "type": "module", "doc": "

\n"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB", "type": "class", "doc": "

Class that creates a singleton storage for all accessed data.

\n\n

Tries to keep the data usage down with weak references, but it's\nstill subject to memory leaks.

\n\n

This is a tradeoff to have more speed for not making db queries from disk

\n", "bases": "mephisto.abstractions.databases.local_database.LocalMephistoDB"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB.__init__", "type": "function", "doc": "

Ensure the database is set up and ready to handle data

\n", "signature": "(self, database_path=None)", "funcdef": "def"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB.shutdown", "type": "function", "doc": "

Close all open connections

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB.optimized_load", "type": "function", "doc": "

Load the given class in an optimized fashion, if this DB has a more\nefficient way of storing and managing the data

\n", "signature": "(\n self,\n target_cls,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None\n)", "funcdef": "def"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB.cache_result", "type": "function", "doc": "

Store the result of a load for caching reasons

\n", "signature": "(self, target_cls, value) -> None", "funcdef": "def"}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"fullname": "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit", "modulename": "mephisto.abstractions.databases.local_singleton_database", "qualname": "MephistoSingletonDB.new_unit", "type": "function", "doc": "

Create a new unit with the given index. Raises EntryAlreadyExistsException\nif there is already a unit for the given assignment with the given index.

\n", "signature": "(\n self,\n task_id: str,\n task_run_id: str,\n requester_id: str,\n assignment_id: str,\n unit_index: int,\n pay_amount: float,\n provider_type: str,\n task_type: str,\n sandbox: bool = True\n) -> str", "funcdef": "def"}, "mephisto.abstractions.providers": {"fullname": "mephisto.abstractions.providers", "modulename": "mephisto.abstractions.providers", "type": "module", "doc": "

CrowdProviders

\n\n

The providers directory is home to the existing providers for Mephisto. This file describes high level what crowd providers do, important details on existing providers, and how to create a new CrowdProvider for an existing crowdsourcing service.

\n\n

Implementation Details

\n\n

CrowdProviders in short exist to be an abstraction layer between Mephisto and wherever we're sourcing the crowdwork from. Using CrowdProviders lets Mephisto launch the same tasks all over the place using the same code. The primary abstractions that need a little bit of wrapping are the Worker, Agent, Unit, and Requester. These requirements and high level abstraction reasoning are included below, while explicit implementation requirements are provided in the \"How to make a new CrowdProvider\" section.

\n\n

Worker

\n\n

The Worker is responsible for keeping long-term track of a worker's individual identity as displayed by a crowd provider. Keeping the worker lets us report statistics about individual workers, as well as set up qualifications that might be more relevant than a provider could have preset. From the CrowdProvider perspective, different crowd providers may have different methods for identifying their workers. They may also have different methods for blocking, unblocking, qualifying, and bonusing workers. In order for Mephisto to be able to handle these actions, the <Crowd>Worker must abstract these.

\n\n

If the crowd provider is capable of assigning qualifications to a worker to prevent them from working on tasks they are not eligible for, you can implement grant_crowd_qualification and revoke_crowd_qualification to sync qualifications between the crowd provider and Mephisto. You'll also need to implement the delete_qualification method in the base <Crowd>Provider class if you want to be able to cleanup qualifications you've removed from Mephisto. Depending on the provider, setup_resources_for_task_run or <Crowd>Unit are the correct locations to actually register required qualifications for a task.

\n\n

Agent

\n\n

The Agent is responsible for keeping track of a Worker's work on a specific Unit. As such, it's used for approving, rejecting, and keeping track of status. Furthermore, it may be required that Mephisto tells a CrowdProvider that a worker has completed the task, so this must be captured as well. <Crowd>Agent handles all of these abstractions.

\n\n

Unit

\n\n

The Unit is responsible for keeping track of portions of an Assignment that need to be assigned, through the entire process of them being assigned and worked on. From a high level, they are the Assignment-side point of entry into finding work. For the purpose of abstraction, the Unit needs to be able to keep track of it's remote counterpart (whatever thing we assign the worker from the crowd provider's perspective). It also needs to be able to actually _deploy_ the task to be made available through the crowd provider, and potentially expire it when it should be taken offline. <Crowd>Unit handles these abstractions.

\n\n

Requester

\n\n

The Requester is responsible for providing the account access to be able to launch tasks. As such, any credential creation and management needs to be hidden behind the <Crowd>Requester so that Mephisto doesn't need to know the implementation details.

\n\n

Existing Providers

\n\n

The providers we currently support are listed below:

\n\n

MTurkProvider

\n\n

Provides an interface for launching tasks on MTurk and keeping track of workers and work there.

\n\n

SandboxMTurkProvider

\n\n

A specific interface for launching tasks on the MTurk sandbox

\n\n

(TODO) Can we bundle this into the MTurkProvider and make it so that providers have a TEST/SANDBOX mode bundled in? This would clarify how the testing utilities work, without needing to publish real tasks.

\n\n

LocalProvider (TODO)

\n\n

An interface that allows for launching tasks on your local machine, allowing for ip-address based workers to submit work.

\n\n

MockProvider

\n\n

An implementation of a provider that allows for robust testing by exposing all of the underlying state to a user.

\n\n

How to make a new CrowdProvider

\n\n

Both the MockProvider and MTurkProvider are strong examples of implementing a provider. Important implementation details are captured below.

\n\n

<Crowd>Provider

\n\n

The CrowdProvider implementation is mostly a place to centralize all of the components for this provider, and as such it should set UnitClass, RequesterClass, WorkerClass, and AgentClass. Beyond this it should implement the following:

\n\n
    \n
  • initialize_provider_datastore: This method should return a connection to any of the data required to keep tabs on the crowd provider. Ideally it should store important information to disk somehow (such as in a SQL database).
  • \n
  • setup_resources_for_task_run: This method is called prior to launching a task run, and should setup any kind of details with the provider that are required. For instance, this might register the task before requesting instances, find and register required qualifications, or do any other required prep work such as setting up listeners.
  • \n
\n\n

<Crowd>Worker

\n\n

The <Crowd>Worker implementation needs to handle worker interactions, generally from the perspective of a requester:

\n\n
    \n
  • bonus_worker: Provide the worker a bonus for the given reason, optionally attached to a unit. Return a tuple of False with an error reason if the operation can't be performed, and (True, \"\") otherwise.
  • \n
  • block_worker: Block the given worker, optionally based on their work on a unit, and from a specific requester. Return a tuple of False with an error reason if the operation can't be performed, and (True, \"\") otherwise.
  • \n
  • unblock_worker: Unblock the worker from a specific requester. Return a tuple of False with an error reason if the operation can't be performed, and (True, \"\") otherwise.
  • \n
  • is_blocked: Provide whether or not this worker is blocked by the given Requester.
  • \n
  • is_eligible: Determine if the worker is eligible to work on the given TaskRun.
  • \n
\n\n

<Crowd>Agent

\n\n

The <Crowd>Agent implementation needs to be able to handle the following interactions:

\n\n
    \n
  • new_from_provider_data: As different providers may give different information upon the creation of an agent (which occurs when a worker accepts a unit), this information is sent through from the server via whatever is packaged in wrap_crowd_source.js. You can then store this into the provider datastore and return an Agent.
  • \n
  • approve_work: Tell the crowd provider that this work is accepted. (If allowed)
  • \n
  • reject_work: Tell the crowd provider that this work is rejected (if allowed), with the provided feedback reason.
  • \n
  • get_status: Return the current agent's status according to the crowd provider (if this state is automatically tracked by the crowd provider, and can be queried). Defaults to whatever status updates the WorkerPool can provide.
  • \n
  • mark_done: Tell the crowd provider that the task this agent is working on is now complete (if required). Otherwise just mark it as so in the local database.
  • \n
\n\n

<Crowd>Unit

\n\n

The <Crowd>Unit implementation needs to be able to handle the following interactions:

\n\n
    \n
  • get_status: Return the status for this unit, as known by the provider.
  • \n
  • launch: Given the url of the server to point people to for this task, launch the task and make it available for crowd workers to claim.
  • \n
  • expire: Submit a request to expire the HIT, and return the time that will need to be waited in order for that request to be fulfilled (in case it is not immediate).
  • \n
\n\n

<Crowd>Requester

\n\n

The <Crowd>Requester mostly just needs to abstract the registration process, but the full list of functions are below:

\n\n
    \n
  • register: Given arguments, register this requester
  • \n
  • get_register_args: Return the arguments required to register one of these requesters.
  • \n
  • is_registered: Determine if the current credentials for a Requester are valid.
  • \n
  • get_available_budget (Optional): return the available budget for this requester.
  • \n
\n\n

(TODO) maybe refactor budget? As not all requesters have budgets? Or perhaps have a few kinds of metadata?

\n\n

wrap_crowd_source.js

\n\n

A few frontend functions are required to be sure that the backend is able to interface with frontend interactions:

\n\n
    \n
  • getWorkerName(): Return the worker name, as will be provided to as the identifier for mephisto to know who is attempting the task
  • \n
  • getAssignmentId(): Return an identifier for the specific task as represented by the provider.
  • \n
  • getAgentRegistration(): Return the data that is going to be passed to the <Crowd>Agent's new_from_provider method. Currently the worker_name field is required to also set up the <Crowd>Worker.
  • \n
  • handleSubmitToProvider(): Tell the provider that the task is done from the frontend. Often amounts to hitting some kind of submit button after populating form data.
  • \n
\n\n

This file may also contain additional logic for handling things like error handling in a crowd provider-specific manner.

\n"}, "mephisto.abstractions.providers.mock": {"fullname": "mephisto.abstractions.providers.mock", "modulename": "mephisto.abstractions.providers.mock", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_agent": {"fullname": "mephisto.abstractions.providers.mock.mock_agent", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model.agent.Agent"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Agent class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Agent\nas you will instead be returned the correct Agent class according to\nthe crowdprovider associated with this Agent.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.observe", "type": "function", "doc": "

Put observations into this mock agent's observation list

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.enqueue_mock_live_update", "type": "function", "doc": "

Add a fake observation to pull off on the next act call

\n", "signature": "(self, data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.enqueue_mock_submit_event", "type": "function", "doc": "

Add a final submit event to put in the queue for this agent\nto be called on completion

\n", "signature": "(self, data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.get_live_update", "type": "function", "doc": "

Either take an act from this mock agent's act queue (for use\nby tests and other mock purposes) or request a regular act\n(for use in manual testing).

\n", "signature": "(self, timeout=None) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.approve_work", "type": "function", "doc": "

Approve the work done on this specific Unit

\n\n

Mock Units

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.reject_work", "type": "function", "doc": "

Reject the work done on this specific Unit

\n", "signature": "(self, reason) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.mark_done", "type": "function", "doc": "

No need to tell mock crowd provider about doneness

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.mark_disconnected", "type": "function", "doc": "

Mark this mock agent as having disconnected

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.await_submit", "type": "function", "doc": "

Check the submission status of this agent, first popping off\nand triggering a local submit if there is one on a timeout submit

\n", "signature": "(self, timeout: Union[int, NoneType] = None) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"fullname": "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new", "modulename": "mephisto.abstractions.providers.mock.mock_agent", "qualname": "MockAgent.new", "type": "function", "doc": "

Create an agent for this worker to be used for work on the given Unit.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore", "type": "class", "doc": "

Handles storing mock results and statuses across processes for use\nin unit testing and manual experimentation.

\n"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.__init__", "type": "function", "doc": "

Initialize local storage of active agents, connect to the database

\n", "signature": "(self, datastore_root: str)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.init_tables", "type": "function", "doc": "

Run all the table creation SQL queries to ensure the expected tables exist

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.ensure_requester_exists", "type": "function", "doc": "

Create a record of this requester if it doesn't exist

\n", "signature": "(self, requester_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.set_requester_registered", "type": "function", "doc": "

Set the requester registration status for the given id

\n", "signature": "(self, requester_id: str, val: bool) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.get_requester_registered", "type": "function", "doc": "

Get the registration status of a requester

\n", "signature": "(self, requester_id: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.ensure_worker_exists", "type": "function", "doc": "

Create a record of this worker if it doesn't exist

\n", "signature": "(self, worker_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.set_worker_blocked", "type": "function", "doc": "

Set the worker registration status for the given id

\n", "signature": "(self, worker_id: str, val: bool) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.get_worker_blocked", "type": "function", "doc": "

Get the registration status of a worker

\n", "signature": "(self, worker_id: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.ensure_unit_exists", "type": "function", "doc": "

Create a record of this unit if it doesn't exist

\n", "signature": "(self, unit_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.set_unit_expired", "type": "function", "doc": "

Set the unit registration status for the given id

\n", "signature": "(self, unit_id: str, val: bool) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"fullname": "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired", "modulename": "mephisto.abstractions.providers.mock.mock_datastore", "qualname": "MockDatastore.get_unit_expired", "type": "function", "doc": "

Get the registration status of a unit

\n", "signature": "(self, unit_id: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_provider": {"fullname": "mephisto.abstractions.providers.mock.mock_provider", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProviderArgs", "type": "class", "doc": "

Base class for arguments to configure Crowd Providers

\n", "bases": "mephisto.abstractions.crowd_provider.ProviderArgs"}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProviderArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, _provider_type: str = 'mock', requester_name: str = '???')", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider", "type": "class", "doc": "

Mock implementation of a CrowdProvider that stores everything\nin a local state in the class for use in tests.

\n", "bases": "mephisto.abstractions.crowd_provider.CrowdProvider"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.UnitClass", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n\n

It should be extended for usage with a specific crowd provider

\n", "bases": "mephisto.data_model.unit.Unit"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.RequesterClass", "type": "class", "doc": "

High level class representing a requester on some kind of crowd provider. Sets some default\ninitializations, but mostly should be extended by the specific requesters for crowd providers\nwith whatever implementation details are required to get those to work.

\n", "bases": "mephisto.data_model.requester.Requester"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.WorkerClass", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model.worker.Worker"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.AgentClass", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model.agent.Agent"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.ArgsClass", "type": "class", "doc": "

Base class for arguments to configure Crowd Providers

\n", "bases": "mephisto.abstractions.crowd_provider.ProviderArgs"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mock'"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.initialize_provider_datastore", "type": "function", "doc": "

Mocks don't need any initialization

\n", "signature": "(self, storage_path: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.setup_resources_for_task_run", "type": "function", "doc": "

Mocks don't do any initialization

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.cleanup_resources_from_task_run", "type": "function", "doc": "

Mocks don't do any initialization

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"fullname": "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path", "modulename": "mephisto.abstractions.providers.mock.mock_provider", "qualname": "MockProvider.get_wrapper_js_path", "type": "function", "doc": "

Return the path to the wrap_crowd_source.js file for this\nprovider to be deployed to the server

\n", "signature": "(cls)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester": {"fullname": "mephisto.abstractions.providers.mock.mock_requester", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequesterArgs", "type": "class", "doc": "

MockRequesterArgs(name: str = 'MOCK_REQUESTER', force_fail: bool = False)

\n", "bases": "mephisto.data_model.requester.RequesterArgs"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequesterArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, name: str = 'MOCK_REQUESTER', force_fail: bool = False)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequesterArgs.name", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'MOCK_REQUESTER'"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequesterArgs.force_fail", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester", "type": "class", "doc": "

High level class representing a requester on some kind of crowd provider. Sets some default\ninitializations, but mostly should be extended by the specific requesters for crowd providers\nwith whatever implementation details are required to get those to work.

\n", "bases": "mephisto.data_model.requester.Requester"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Requester class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Requester\nas you will instead be returned the correct Requester class according to\nthe crowdprovider associated with this Requester.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.ArgsClass", "type": "class", "doc": "

MockRequesterArgs(name: str = 'MOCK_REQUESTER', force_fail: bool = False)

\n", "bases": "mephisto.data_model.requester.RequesterArgs"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.register", "type": "function", "doc": "

Mock requesters don't actually register credentials

\n", "signature": "(\n self,\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.is_registered", "type": "function", "doc": "

Return the registration status

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.get_available_budget", "type": "function", "doc": "

MockRequesters have $100000 to spend

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.is_sandbox", "type": "function", "doc": "

MockRequesters are for testing only, and are thus treated as sandbox

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"fullname": "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new", "modulename": "mephisto.abstractions.providers.mock.mock_requester", "qualname": "MockRequester.new", "type": "function", "doc": "

Try to create a new requester by this name, raise an exception if\nthe name already exists.

\n\n

Implementation should call _register_requester(db, requester_id) when sure the requester\ncan be successfully created to have it put into the db and return the result.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n requester_name: str\n) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_unit": {"fullname": "mephisto.abstractions.providers.mock.mock_unit", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n\n

It should be extended for usage with a specific crowd provider

\n", "bases": "mephisto.data_model.unit.Unit"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Unit class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a Unit\nas you will instead be returned the correct Unit class according to\nthe crowdprovider associated with this Unit.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit.launch", "type": "function", "doc": "

Mock launches do nothing right now beyond updating state

\n", "signature": "(self, task_url: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit.expire", "type": "function", "doc": "

Expiration is immediate on Mocks

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit.is_expired", "type": "function", "doc": "

Determine if this unit is expired as according to the vendor.

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"fullname": "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new", "modulename": "mephisto.abstractions.providers.mock.mock_unit", "qualname": "MockUnit.new", "type": "function", "doc": "

Create a Unit for the given assignment

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n assignment: mephisto.data_model.assignment.Assignment,\n index: int,\n pay_amount: float\n) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker": {"fullname": "mephisto.abstractions.providers.mock.mock_worker", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model.worker.Worker"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Worker class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Worker\nas you will instead be returned the correct Worker class according to\nthe crowdprovider associated with this Worker.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.bonus_worker", "type": "function", "doc": "

Bonus this worker for work any reason. Return success of bonus

\n", "signature": "(\n self,\n amount: float,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.block_worker", "type": "function", "doc": "

Block this worker for a specified reason. Return success of block

\n", "signature": "(\n self,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None,\n requester: Union[mephisto.data_model.requester.Requester, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.unblock_worker", "type": "function", "doc": "

unblock a blocked worker for the specified reason. Return success of unblock

\n", "signature": "(\n self,\n reason: str,\n requester: mephisto.data_model.requester.Requester\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.is_blocked", "type": "function", "doc": "

Determine if a worker is blocked

\n", "signature": "(self, requester: mephisto.data_model.requester.Requester) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.is_eligible", "type": "function", "doc": "

Determine if this worker is eligible for the given task run

\n", "signature": "(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"fullname": "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new", "modulename": "mephisto.abstractions.providers.mock.mock_worker", "qualname": "MockWorker.new", "type": "function", "doc": "

Create a new worker attached to the given identifier, assuming it doesn't already\nexist in the database.

\n\n

Implementation should return the result of _register_worker when sure the worker\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker_id: str\n) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.abstractions.providers.mock.provider_type": {"fullname": "mephisto.abstractions.providers.mock.provider_type", "modulename": "mephisto.abstractions.providers.mock.provider_type", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk": {"fullname": "mephisto.abstractions.providers.mturk", "modulename": "mephisto.abstractions.providers.mturk", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_agent": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model.agent.Agent"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Agent class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Agent\nas you will instead be returned the correct Agent class according to\nthe crowdprovider associated with this Agent.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk'"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.new_from_provider_data", "type": "function", "doc": "

Wrapper around the new method that allows registering additional\nbookkeeping information from a crowd provider for this agent

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit,\n provider_data: Dict[str, Any]\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.attempt_to_reconcile_submitted_data", "type": "function", "doc": "

Hacky attempt to load the data directly from MTurk to handle\ndata submitted that we missed somehow. Chance of failure is\ncertainly non-zero.

\n", "signature": "(self, mturk_hit_id: str)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.approve_work", "type": "function", "doc": "

Approve the work done on this specific Unit

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.reject_work", "type": "function", "doc": "

Reject the work done on this specific Unit

\n", "signature": "(self, reason) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.mark_done", "type": "function", "doc": "

MTurk agents are marked as done on the side of MTurk, so if this agent\nis marked as done there's nothing else we need to do as the task has been\nsubmitted.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"fullname": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new", "modulename": "mephisto.abstractions.providers.mturk.mturk_agent", "qualname": "MTurkAgent.new", "type": "function", "doc": "

Create an agent for this worker to be used for work on the given Unit.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore", "type": "class", "doc": "

Handles storing multiple sessions for different requesters\nacross a single mephisto thread (locked to a MephistoDB).\nAlso creates a relevant tables for mapping between MTurk\nand mephisto.

\n"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.__init__", "type": "function", "doc": "

Initialize the session storage to empty, initialize tables if needed

\n", "signature": "(self, datastore_root: str)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.init_tables", "type": "function", "doc": "

Run all the table creation SQL queries to ensure the expected tables exist

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.is_hit_mapping_in_sync", "type": "function", "doc": "

Determine if a cached value from the given compare time is still valid

\n", "signature": "(self, unit_id: str, compare_time: float)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.new_hit", "type": "function", "doc": "

Register a new HIT mapping in the table

\n", "signature": "(self, hit_id: str, hit_link: str, duration: int, run_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_unassigned_hit_ids", "type": "function", "doc": "

Return a list of all HIT ids that haven't been assigned

\n", "signature": "(self, run_id: str)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.register_assignment_to_hit", "type": "function", "doc": "

Register a specific assignment and hit to the given unit,\nor clear the assignment after a return

\n", "signature": "(\n self,\n hit_id: str,\n unit_id: Union[str, NoneType] = None,\n assignment_id: Union[str, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.clear_hit_from_unit", "type": "function", "doc": "

Clear the hit mapping that maps the given unit,\nif such a unit-hit map exists

\n", "signature": "(self, unit_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_hit_mapping", "type": "function", "doc": "

Get the mapping between Mephisto IDs and MTurk ids

\n", "signature": "(self, unit_id: str) -> sqlite3.Row", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.register_run", "type": "function", "doc": "

Register a new task run in the mturk table

\n", "signature": "(\n self,\n run_id: str,\n hit_type_id: str,\n hit_config_path: str,\n frame_height: int = 0\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_run", "type": "function", "doc": "

Get the details for a run by task_run_id

\n", "signature": "(self, run_id: str) -> sqlite3.Row", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.create_qualification_mapping", "type": "function", "doc": "

Create a mapping between mephisto qualification name and mturk\nqualification details in the local datastore.

\n\n

Repeat entries with the same qualification_name will be idempotent

\n", "signature": "(\n self,\n qualification_name: str,\n requester_id: str,\n mturk_qualification_name: str,\n mturk_qualification_id: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_qualification_mapping", "type": "function", "doc": "

Get the mapping between Mephisto qualifications and MTurk qualifications

\n", "signature": "(self, qualification_name: str) -> Union[sqlite3.Row, NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_session_for_requester", "type": "function", "doc": "

Either create a new session for the given requester or return\nthe existing one if it has already been created

\n", "signature": "(self, requester_name: str) -> boto3.session.Session", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_client_for_requester", "type": "function", "doc": "

Return the client for the given requester, which should allow\ndirect calls to the mturk surface

\n", "signature": "(self, requester_name: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester", "modulename": "mephisto.abstractions.providers.mturk.mturk_datastore", "qualname": "MTurkDatastore.get_sandbox_client_for_requester", "type": "function", "doc": "

Return the client for the given requester, which should allow\ndirect calls to the mturk surface

\n", "signature": "(self, requester_name: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProviderArgs", "type": "class", "doc": "

Provider args for an MTurk provider

\n", "bases": "mephisto.abstractions.crowd_provider.ProviderArgs"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProviderArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, _provider_type: str = 'mturk', requester_name: str = '???')", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider", "type": "class", "doc": "

Implementation of a crowdprovider that interfaces with MTurk

\n", "bases": "mephisto.abstractions.crowd_provider.CrowdProvider"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk'"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.UnitClass", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n", "bases": "mephisto.data_model.unit.Unit"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.RequesterClass", "type": "class", "doc": "

Wrapper for requester behavior as provided by MTurk. Makes\nall requests directly to MTurk through boto3.

\n", "bases": "mephisto.data_model.requester.Requester"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.WorkerClass", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model.worker.Worker"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.AgentClass", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model.agent.Agent"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.ArgsClass", "type": "class", "doc": "

Provider args for an MTurk provider

\n", "bases": "mephisto.abstractions.crowd_provider.ProviderArgs"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.initialize_provider_datastore", "type": "function", "doc": "

MTurk itself is the source of truth for most data required to run\ntasks on MTurk. The datastore holds sessions to connect with\nMTurk as well as mappings between MTurk ids and Mephisto ids

\n", "signature": "(self, storage_path: str) -> Any", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.setup_resources_for_task_run", "type": "function", "doc": "

Produce the HIT type for this task run.

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n args: omegaconf.dictconfig.DictConfig,\n shared_state: mephisto.abstractions.blueprint.SharedTaskState,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.cleanup_resources_from_task_run", "type": "function", "doc": "

No cleanup necessary for task type

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n server_url: str\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.get_wrapper_js_path", "type": "function", "doc": "

Return the path to the wrap_crowd_source.js file for this\nprovider to be deployed to the server

\n", "signature": "(cls)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_provider", "qualname": "MTurkProvider.cleanup_qualification", "type": "function", "doc": "

Remove the qualification from the sandbox server, if it exists

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequesterArgs", "type": "class", "doc": "

MTurkRequesterArgs(name: str = '???', _group: str = 'MTurkRequester', access_key_id: str = '???', secret_access_key: str = '???')

\n", "bases": "mephisto.data_model.requester.RequesterArgs"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequesterArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n name: str = '???',\n _group: str = 'MTurkRequester',\n access_key_id: str = '???',\n secret_access_key: str = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequesterArgs.access_key_id", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequesterArgs.secret_access_key", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester", "type": "class", "doc": "

Wrapper for requester behavior as provided by MTurk. Makes\nall requests directly to MTurk through boto3.

\n", "bases": "mephisto.data_model.requester.Requester"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Requester class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Requester\nas you will instead be returned the correct Requester class according to\nthe crowdprovider associated with this Requester.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk'"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.ArgsClass", "type": "class", "doc": "

MTurkRequesterArgs(name: str = '???', _group: str = 'MTurkRequester', access_key_id: str = '???', secret_access_key: str = '???')

\n", "bases": "mephisto.data_model.requester.RequesterArgs"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.register", "type": "function", "doc": "

Register this requester with the crowd provider by providing any required credentials\nor such. If no args are provided, assume the registration is already made and try\nto assert it as such.

\n", "signature": "(\n self,\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.is_registered", "type": "function", "doc": "

Return whether or not this requester has registered yet

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.get_available_budget", "type": "function", "doc": "

Get the available budget from MTurk

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"fullname": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new", "modulename": "mephisto.abstractions.providers.mturk.mturk_requester", "qualname": "MTurkRequester.new", "type": "function", "doc": "

Try to create a new requester by this name, raise an exception if\nthe name already exists.

\n\n

Implementation should call _register_requester(db, requester_id) when sure the requester\ncan be successfully created to have it put into the db and return the result.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n requester_name: str\n) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n", "bases": "mephisto.data_model.unit.Unit"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Unit class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a Unit\nas you will instead be returned the correct Unit class according to\nthe crowdprovider associated with this Unit.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk'"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.register_from_provider_data", "type": "function", "doc": "

Update the datastore and local information from this registration

\n", "signature": "(self, hit_id: str, mturk_assignment_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.get_mturk_assignment_id", "type": "function", "doc": "

Return the MTurk assignment id associated with this unit

\n", "signature": "(self) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.get_mturk_hit_id", "type": "function", "doc": "

Return the MTurk hit id associated with this unit

\n", "signature": "(self) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.get_requester", "type": "function", "doc": "

Wrapper around regular Requester as this will be MTurkRequesters

\n", "signature": "(\n self\n) -> mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.set_db_status", "type": "function", "doc": "

Set the status reflected in the database for this Unit

\n", "signature": "(self, status: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.clear_assigned_agent", "type": "function", "doc": "

Additionally to clearing the agent, we also need to dissociate the\nhit_id from this unit in the MTurkDatastore

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.get_status", "type": "function", "doc": "

Get status for this unit directly from MTurk, fall back on local info

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.launch", "type": "function", "doc": "

Create this HIT on MTurk (making it availalbe) and register the ids in the local db

\n", "signature": "(self, task_url: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.expire", "type": "function", "doc": "

Send a request to expire the HIT, and if it's not assigned return,\notherwise just return the maximum assignment duration

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.is_expired", "type": "function", "doc": "

Determine if this unit is expired as according to the vendor.

\n\n

In this case, we keep track of the expiration locally by refreshing\nthe hit's status and seeing if we've expired.

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"fullname": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new", "modulename": "mephisto.abstractions.providers.mturk.mturk_unit", "qualname": "MTurkUnit.new", "type": "function", "doc": "

Create a Unit for the given assignment

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n assignment: mephisto.data_model.assignment.Assignment,\n index: int,\n pay_amount: float\n) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "client_is_sandbox", "type": "function", "doc": "

Determine if the given client is communicating with\nthe live server or a sandbox

\n", "signature": "(client: Any) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "check_aws_credentials", "type": "function", "doc": "

\n", "signature": "(profile_name: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "setup_aws_credentials", "type": "function", "doc": "

\n", "signature": "(\n profile_name: str,\n register_args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "calculate_mturk_task_fee", "type": "function", "doc": "

MTurk Pricing: https://requester.mturk.com/pricing\n20% fee on the reward and bonus amount (if any) you pay Workers.

\n", "signature": "(task_amount: float) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "calculate_mturk_bonus_fee", "type": "function", "doc": "

MTurk Pricing: https://requester.mturk.com/pricing\n20% fee on the reward and bonus amount (if any) you pay Workers.

\n", "signature": "(bonus_amount: float) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "get_requester_balance", "type": "function", "doc": "

Get the balance for the requester associated with this client

\n", "signature": "(client: Any) -> float", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "check_mturk_balance", "type": "function", "doc": "

Checks to see if there is at least balance_needed amount in the\nrequester account, returns True if the balance is greater than\nbalance_needed

\n", "signature": "(client: Any, balance_needed: float)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "create_hit_config", "type": "function", "doc": "

Writes a HIT config to file

\n", "signature": "(\n opt: Dict[str, Any],\n task_description: str,\n unique_worker: bool,\n is_sandbox: bool\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "delete_qualification", "type": "function", "doc": "

Deletes a qualification by id

\n", "signature": "(client: Any, qualification_id: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "find_qualification", "type": "function", "doc": "

Query amazon to find the existing qualification name, return the Id,\notherwise return none.\nIf must_be_owned is true, it only returns qualifications owned by the user.\nWill return False if it finds another's qualification

\n\n

The return format is (meets_owner_constraint, qual_id)

\n", "signature": "(\n client: Any,\n qualification_name: str,\n must_be_owned: bool = True\n) -> Tuple[bool, Union[str, NoneType]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "find_or_create_qualification", "type": "function", "doc": "

Query amazon to find the existing qualification name, return the Id. If\nit exists and must_be_owned is true but we don't own it, this returns none.\nIf it doesn't exist, the qualification is created

\n", "signature": "(\n client: Any,\n qualification_name: str,\n description: str,\n must_be_owned: bool = True\n) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "give_worker_qualification", "type": "function", "doc": "

Give a qualification to the given worker

\n", "signature": "(\n client: Any,\n worker_id: str,\n qualification_id: str,\n value: Union[int, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "remove_worker_qualification", "type": "function", "doc": "

Give a qualification to the given worker

\n", "signature": "(\n client: Any,\n worker_id: str,\n qualification_id: str,\n reason: str = ''\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "convert_mephisto_qualifications", "type": "function", "doc": "

Convert qualifications from mephisto's format to MTurk's

\n", "signature": "(client: Any, qualifications: List[Dict[str, Any]])", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "create_hit_type", "type": "function", "doc": "

Create a HIT type to be used to generate HITs of the requested params

\n", "signature": "(\n client: Any,\n task_args: omegaconf.dictconfig.DictConfig,\n qualifications: List[Dict[str, Any]],\n auto_approve_delay: Union[int, NoneType] = 604800,\n skip_locale_qual=False\n) -> str", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "create_compensation_hit_with_hit_type", "type": "function", "doc": "

Creates a simple compensation HIT to direct workers to submit

\n", "signature": "(\n client: Any,\n reason: str,\n hit_type_id: str,\n num_assignments: int = 1\n) -> Tuple[str, str, Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "create_hit_with_hit_type", "type": "function", "doc": "

Creates the actual HIT given the type and page to direct clients to

\n", "signature": "(\n client: Any,\n frame_height: int,\n page_url: str,\n hit_type_id: str,\n num_assignments: int = 1\n) -> Tuple[str, str, Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "expire_hit", "type": "function", "doc": "

\n", "signature": "(client: Any, hit_id: str)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.get_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "get_hit", "type": "function", "doc": "

Get hit from mturk by hit_id

\n", "signature": "(client: Any, hit_id: str) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "get_assignment", "type": "function", "doc": "

Gets assignment from mturk by assignment_id. Only works if the\nassignment is in a completed state

\n", "signature": "(client: Any, assignment_id: str) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "get_assignments_for_hit", "type": "function", "doc": "

Get completed assignments for a hit

\n", "signature": "(client: Any, hit_id: str) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.approve_work", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "approve_work", "type": "function", "doc": "

approve work for a given assignment through the mturk client

\n", "signature": "(\n client: Any,\n assignment_id: str,\n override_rejection: bool = False\n) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.reject_work", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "reject_work", "type": "function", "doc": "

reject work for a given assignment through the mturk client

\n", "signature": "(client: Any, assignment_id: str, reason: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "approve_assignments_for_hit", "type": "function", "doc": "

Approve work for assignments associated with a given hit, through\nmturk client

\n", "signature": "(client: Any, hit_id: str, override_rejection: bool = False)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.block_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "block_worker", "type": "function", "doc": "

Block a worker by id using the mturk client, passes reason along

\n", "signature": "(client: Any, worker_id: str, reason: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "unblock_worker", "type": "function", "doc": "

Remove a block on the given worker

\n", "signature": "(client: Any, worker_id: str, reason: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "is_worker_blocked", "type": "function", "doc": "

Determine if the given worker is blocked by this client

\n", "signature": "(client: Any, worker_id: str) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "pay_bonus", "type": "function", "doc": "

Handles paying bonus to a Turker, fails for insufficient funds.\nReturns True on success and False on failure

\n", "signature": "(\n client: Any,\n worker_id: str,\n bonus_amount: float,\n assignment_id: str,\n reason: str,\n unique_request_token: str\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.email_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "email_worker", "type": "function", "doc": "

Send an email to a worker through the mturk client

\n", "signature": "(\n client: Any,\n worker_id: str,\n subject: str,\n message_text: str\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "get_outstanding_hits", "type": "function", "doc": "

Return the HITs sorted by HITTypeId that are still on the MTurk Server

\n", "signature": "(client: Any) -> Dict[str, List[Dict[str, Any]]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"fullname": "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits", "modulename": "mephisto.abstractions.providers.mturk.mturk_utils", "qualname": "expire_and_dispose_hits", "type": "function", "doc": "

Loops over attempting to expire and dispose any hits in the hits list that can be disposed\nReturns any HITs that could not be disposed of

\n", "signature": "(\n client: Any,\n hits: List[Dict[str, Any]],\n quiet: bool = False\n) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model.worker.Worker"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Worker class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Worker\nas you will instead be returned the correct Worker class according to\nthe crowdprovider associated with this Worker.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk'"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.get_from_mturk_worker_id", "type": "function", "doc": "

Get the MTurkWorker from the given worker_id

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n mturk_worker_id: str\n) -> Union[mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker, NoneType]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.get_mturk_worker_id", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.grant_crowd_qualification", "type": "function", "doc": "

Grant a qualification by the given name to this worker. Check the local\nMTurk db to find the matching MTurk qualification to grant, and pass\nthat. If no qualification exists, try to create one.

\n\n

In creating a new qualification, Mephisto resolves the ambiguity over which\nrequester to associate that qualification with by using the FIRST requester\nof the given account type (either mturk or mturk_sandbox)

\n", "signature": "(self, qualification_name: str, value: int = 1) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.revoke_crowd_qualification", "type": "function", "doc": "

Revoke the qualification by the given name from this worker. Check the local\nMTurk db to find the matching MTurk qualification to revoke, pass if\nno such qualification exists.

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.bonus_worker", "type": "function", "doc": "

Bonus this worker for work any reason. Return tuple of success and failure message

\n", "signature": "(\n self,\n amount: float,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.block_worker", "type": "function", "doc": "

Block this worker for a specified reason. Return success of block

\n", "signature": "(\n self,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None,\n requester: Union[mephisto.data_model.requester.Requester, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.unblock_worker", "type": "function", "doc": "

unblock a blocked worker for the specified reason. Return success of unblock

\n", "signature": "(\n self,\n reason: str,\n requester: mephisto.data_model.requester.Requester\n) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.is_blocked", "type": "function", "doc": "

Determine if a worker is blocked

\n", "signature": "(self, requester: mephisto.data_model.requester.Requester) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.is_eligible", "type": "function", "doc": "

Qualifications are handled primarily by MTurk, so if a worker is able to get\nthrough to be able to access the task, they should be eligible

\n", "signature": "(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"fullname": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new", "modulename": "mephisto.abstractions.providers.mturk.mturk_worker", "qualname": "MTurkWorker.new", "type": "function", "doc": "

Create a new worker attached to the given identifier, assuming it doesn't already\nexist in the database.

\n\n

Implementation should return the result of _register_worker when sure the worker\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker_id: str\n) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.provider_type": {"fullname": "mephisto.abstractions.providers.mturk.provider_type", "modulename": "mephisto.abstractions.providers.mturk.provider_type", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.utils": {"fullname": "mephisto.abstractions.providers.mturk.utils", "modulename": "mephisto.abstractions.providers.mturk.utils", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"fullname": "mephisto.abstractions.providers.mturk.utils.script_utils", "modulename": "mephisto.abstractions.providers.mturk.utils.script_utils", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"fullname": "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers", "modulename": "mephisto.abstractions.providers.mturk.utils.script_utils", "qualname": "direct_soft_block_mturk_workers", "type": "function", "doc": "

Directly assign the soft blocking MTurk qualification that Mephisto\nassociates with soft_block_qual_name to all of the MTurk worker ids\nin worker_list. If requester_name is not provided, it will use the\nmost recently registered mturk requester in the database.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker_list: List[str],\n soft_block_qual_name: str,\n requester_name: Union[str, NoneType] = None\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"fullname": "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id", "modulename": "mephisto.abstractions.providers.mturk.utils.script_utils", "qualname": "get_mturk_ids_from_unit_id", "type": "function", "doc": "

Find the relevant mturk ids from the given mephisto unit id

\n", "signature": "(db, unit_id: str) -> Dict[str, Union[str, NoneType]]", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox": {"fullname": "mephisto.abstractions.providers.mturk_sandbox", "modulename": "mephisto.abstractions.providers.mturk_sandbox", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.provider_type", "modulename": "mephisto.abstractions.providers.mturk_sandbox.provider_type", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent", "qualname": "SandboxMTurkAgent", "type": "class", "doc": "

Wrapper for a regular MTurk agent that will only communicate with sandbox

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent", "qualname": "SandboxMTurkAgent.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk_sandbox'"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent", "qualname": "SandboxMTurkAgent.new", "type": "function", "doc": "

Create an agent for this worker to be used for work on the given Unit.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProviderArgs", "type": "class", "doc": "

Provider args for a sandbox MTurk provider

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProviderArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n _provider_type: str = 'mturk_sandbox',\n requester_name: str = '???'\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider", "type": "class", "doc": "

Mock implementation of a CrowdProvider that stores everything\nin a local state in the class for use in tests.

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk_sandbox'"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.UnitClass", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.RequesterClass", "type": "class", "doc": "

Wrapper around regular requester that handles removing the appended \"sandbox\" name

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.WorkerClass", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.AgentClass", "type": "class", "doc": "

Wrapper for a regular MTurk agent that will only communicate with sandbox

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.ArgsClass", "type": "class", "doc": "

Provider args for a sandbox MTurk provider

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.get_wrapper_js_path", "type": "function", "doc": "

Return the path to the wrap_crowd_source.js file for this\nprovider to be deployed to the server

\n", "signature": "(cls)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider", "qualname": "SandboxMTurkProvider.cleanup_qualification", "type": "function", "doc": "

Remove the qualification from the sandbox server

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "qualname": "SandboxMTurkRequester", "type": "class", "doc": "

Wrapper around regular requester that handles removing the appended \"sandbox\" name

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "qualname": "SandboxMTurkRequester.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Requester class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Requester\nas you will instead be returned the correct Requester class according to\nthe crowdprovider associated with this Requester.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "qualname": "SandboxMTurkRequester.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk_sandbox'"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "qualname": "SandboxMTurkRequester.is_sandbox", "type": "function", "doc": "

Determine if this is a requester on sandbox

\n", "signature": "(cls) -> bool", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester", "qualname": "SandboxMTurkRequester.new", "type": "function", "doc": "

Try to create a new requester by this name, raise an exception if\nthe name already exists.

\n\n

Implementation should call _register_requester(db, requester_id) when sure the requester\ncan be successfully created to have it put into the db and return the result.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n requester_name: str\n) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit", "qualname": "SandboxMTurkUnit", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit", "qualname": "SandboxMTurkUnit.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk_sandbox'"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit", "qualname": "SandboxMTurkUnit.new", "type": "function", "doc": "

Create a Unit for the given assignment

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n assignment: mephisto.data_model.assignment.Assignment,\n index: int,\n pay_amount: float\n) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "type": "module", "doc": "

\n"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Worker class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Worker\nas you will instead be returned the correct Worker class according to\nthe crowdprovider associated with this Worker.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker.PROVIDER_TYPE", "type": "variable", "doc": "

\n", "default_value": " = 'mturk_sandbox'"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker.grant_crowd_qualification", "type": "function", "doc": "

Grant a qualification by the given name to this worker. Check the local\nMTurk db to find the matching MTurk qualification to grant, and pass\nthat. If no qualification exists, try to create one.

\n", "signature": "(self, qualification_name: str, value: int = 1) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker.revoke_crowd_qualification", "type": "function", "doc": "

Revoke the qualification by the given name from this worker. Check the local\nMTurk db to find the matching MTurk qualification to revoke, pass if\nno such qualification exists.

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"fullname": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new", "modulename": "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker", "qualname": "SandboxMTurkWorker.new", "type": "function", "doc": "

Create a new worker attached to the given identifier, assuming it doesn't already\nexist in the database.

\n\n

Implementation should return the result of _register_worker when sure the worker\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker_id: str\n) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.client": {"fullname": "mephisto.client", "modulename": "mephisto.client", "type": "module", "doc": "

API specifications

\n\n

All of the endpoints below are GET unless specified otherwise.

\n\n

These specs are to be implemented in mephisto/client/api.py.

\n\n

Key: \ud83d\udc9a - Data Complete / \ud83d\udc9b - Data Mocked / \ud83d\udc9c - Consumed by UI / \ud83d\udda4 - Not consumed by UI

\n\n

WIP Endpoints / Backlog

\n\n
    \n
  • Endpoints for actions to modify the review state of a Unit
  • \n
  • Endpoint for getting the URL of a task and it's data to show
  • \n
  • Make error reponse format more consistent across all endpoints / types of errors. Some stuff from the wild:\n
      \n
    • https://stripe.com/docs/api/errors
    • \n
    • https://cloud.google.com/apis/design/errors#http_mapping
    • \n
  • \n
\n\n
\n\n

\ud83d\udd75\ufe0f\u200d\u2640\ufe0f Requesters

\n\n

/requesters

\n\n

\ud83d\udc9a\ud83d\udc9c Shows a list of all the requesters that are available on the local system

\n\n

Sample response:

\n\n
{\n  \"requesters\": [\n    {\n      \"provider_type\": \"mturk\",\n      \"registered\": false,\n      \"requester_id\": \"1\",\n      \"requester_name\": \"Bob\"\n    },\n    {\n      \"provider_type\": \"mturk\",\n      \"registered\": true,\n      \"requester_id\": \"2\",\n      \"requester_name\": \"sally\"\n    }\n  ]\n}\n
\n\n

/requester/<type>

\n\n

\ud83d\udc9a\ud83d\udc9c Provides information on what params to provide if you'd like to set up a requester.

\n\n

Sample response:

\n\n
[\n  {\n    \"args\": {\n      \"access_key_id\": {\n        \"choices\": null,\n        \"default\": null,\n        \"dest\": \"access_key_id\",\n        \"help\": \"IAM Access Key ID\",\n        \"option_string\": \"--access-key-id\",\n        \"type\": \"str\"\n      },\n      // ...\n    },\n    \"desc\": \"\\n            MTurkRequester: AWS are required to create a new Requester.\\n            Please create an IAM user with programmatic access and\\n            AmazonMechanicalTurkFullAccess policy at\\n            'https://console.aws.amazon.com/iam/ (On the \\\"Set permissions\\\"\\n            page, choose \\\"Attach existing policies directly\\\" and then select\\n            \\\"AmazonMechanicalTurkFullAccess\\\" policy). After creating\\n            the IAM user, you should get an Access Key ID\\n            and Secret Access Key.\\n        \"\n  }\n]\n
\n\n

/<requester_name>/get_balance - TODO: Change to /requester/balance/<requester_name>

\n\n

\ud83d\udc9a\ud83d\udc9c

\n\n

[Discussion] Instead of balance should we make the endpoint a bit more generic, e.g. info or metadata instead? [Yes] This is because perhaps not every requester may have the concept of having a budget, although most might.

\n\n

Sample response:

\n\n
# Success:\n\n{ \"balance\": 3000 }\n\n# Error:\n\n{ message: \"Could not find the requester\" } # [501]\n
\n\n

POST /requester/<type>/register

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

Sample response:

\n\n
# Success:\n\n{\n  \"success\": true\n}\n\n# Error:\n\n{\n  \"msg\": \"No name was specified for the requester.\",\n  \"success\": false\n}\n
\n\n
\n\n

\ud83d\ude80 Launching

\n\n

/launch/options

\n\n

\ud83d\udc9b\ud83d\udc9c

\n\n

Sample response:

\n\n
{\n  \"blueprints\": [\n    { \"name\": \"Test Blueprint\", \"rank\": 1 },\n    { \"name\": \"Simple Q+A\", \"rank\": 2 }\n  ],\n  \"architects\": [\"Local\", \"Heroku\"]\n}\n
\n\n

/blueprints/<blueprint_name>/arguments

\n\n

\ud83d\udc9b\ud83d\udc9c

\n\n

Sample response:

\n\n
{ \n  \"args\": [\n    {\n      \"name\": \"Task name\",\n      \"defaultValue\": \"Default Task Name\",\n      \"helpText\": \"This is what your task will be named.\"\n    }\n  ]\n}\n
\n\n

/architects/<architect_name>/arguments

\n\n

\ud83d\udc9b\ud83d\udc9c

\n\n

Sample response:

\n\n
{\n  \"args\": [\n    {\n      \"name\": \"Port number\",\n      \"defaultValue\": 8888,\n      \"helpText\": \"Your task will be run on this port.\"\n    }\n  ]\n}\n
\n\n

POST /task_runs/launch

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

Sample request:

\n\n
{\n  \"blueprint_name\": \"Test Blueprint\",\n  \"blueprint_args\": [ { ... } ],\n  \"architect\": \"Test Architect\",\n  \"architect_args\": [ { ... } ],\n  \"requester\": <requester_id>\n}\n
\n\n

Sample response:

\n\n
# Success:\n\n{\n  \"success\": true\n}\n\n# Error:\n\n{\n  \"success\": false,\n  # TODO: How should the server provide validation feedback?\n}\n
\n\n
\n\n

\ud83d\udce5 Review

\n\n

/task_runs/running

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

[Discussion] We need to confirm and communicate what exactly we mean by a \"running\" task. Based on prior discussions, my suspicion is that this categorization is a little difficult. Let's settle on a technical definition.

\n\n

Sample response:

\n\n
{\n  live_task_count: 1,\n  task_count: 1,\n  task_runs: TaskRun[]\n}\n\n# For full example payload, see `task_runs__running` in mephisto/webapp/src/mocks.ts\n
\n\n

/task_runs/reviewable

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

Shows tasks with atleast 1 unit that is reviewable.

\n\n

Sample response:

\n\n
{\n  \"total_reviewable\": 8,\n  \"task_runs\": TaskRun[]\n}\n
\n\n

/task_runs/<task_id>/units

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

Sample response:

\n\n
{\n  \"unit_id\": <unit_id>,\n  \"view_path\": \"https://google.com\",\n  \"data\": {\n    \"name\": \"me\"\n  }\n}\n
\n\n

POST /task_runs/<task_id>/units/<unit_id>/accept

\n\n

\ud83d\udc9b\ud83d\udda4

\n\n

[Discussion] Accept params here to allow giving a bonus?

\n\n

POST /task_runs/<task_id>/units/<unit_id>/reject

\n\n

\ud83d\udc9b\ud83d\udda4

\n"}, "mephisto.client.api": {"fullname": "mephisto.client.api", "modulename": "mephisto.client.api", "type": "module", "doc": "

\n"}, "mephisto.client.api.get_available_requesters": {"fullname": "mephisto.client.api.get_available_requesters", "modulename": "mephisto.client.api", "qualname": "get_available_requesters", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.get_running_task_runs": {"fullname": "mephisto.client.api.get_running_task_runs", "modulename": "mephisto.client.api", "qualname": "get_running_task_runs", "type": "function", "doc": "

Find running tasks by querying for all task runs that aren't completed

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.get_reviewable_task_runs": {"fullname": "mephisto.client.api.get_reviewable_task_runs", "modulename": "mephisto.client.api", "qualname": "get_reviewable_task_runs", "type": "function", "doc": "

Find reviewable task runs by querying for all reviewable tasks\nand getting their runs

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.launch_options": {"fullname": "mephisto.client.api.launch_options", "modulename": "mephisto.client.api", "qualname": "launch_options", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.start_task_run": {"fullname": "mephisto.client.api.start_task_run", "modulename": "mephisto.client.api", "qualname": "start_task_run", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.view_unit": {"fullname": "mephisto.client.api.view_unit", "modulename": "mephisto.client.api", "qualname": "view_unit", "type": "function", "doc": "

\n", "signature": "(task_id)", "funcdef": "def"}, "mephisto.client.api.get_basic_task_options": {"fullname": "mephisto.client.api.get_basic_task_options", "modulename": "mephisto.client.api", "qualname": "get_basic_task_options", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.requester_details": {"fullname": "mephisto.client.api.requester_details", "modulename": "mephisto.client.api", "qualname": "requester_details", "type": "function", "doc": "

\n", "signature": "(requester_type)", "funcdef": "def"}, "mephisto.client.api.requester_register": {"fullname": "mephisto.client.api.requester_register", "modulename": "mephisto.client.api", "qualname": "requester_register", "type": "function", "doc": "

\n", "signature": "(requester_type)", "funcdef": "def"}, "mephisto.client.api.get_submitted_data": {"fullname": "mephisto.client.api.get_submitted_data", "modulename": "mephisto.client.api", "qualname": "get_submitted_data", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.get_balance": {"fullname": "mephisto.client.api.get_balance", "modulename": "mephisto.client.api", "qualname": "get_balance", "type": "function", "doc": "

\n", "signature": "(requester_name)", "funcdef": "def"}, "mephisto.client.api.requester_launch_options": {"fullname": "mephisto.client.api.requester_launch_options", "modulename": "mephisto.client.api", "qualname": "requester_launch_options", "type": "function", "doc": "

\n", "signature": "(requester_type)", "funcdef": "def"}, "mephisto.client.api.get_available_blueprints": {"fullname": "mephisto.client.api.get_available_blueprints", "modulename": "mephisto.client.api", "qualname": "get_available_blueprints", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.get_blueprint_arguments": {"fullname": "mephisto.client.api.get_blueprint_arguments", "modulename": "mephisto.client.api", "qualname": "get_blueprint_arguments", "type": "function", "doc": "

\n", "signature": "(blueprint_type)", "funcdef": "def"}, "mephisto.client.api.get_available_architects": {"fullname": "mephisto.client.api.get_available_architects", "modulename": "mephisto.client.api", "qualname": "get_available_architects", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.api.get_architect_arguments": {"fullname": "mephisto.client.api.get_architect_arguments", "modulename": "mephisto.client.api", "qualname": "get_architect_arguments", "type": "function", "doc": "

\n", "signature": "(architect_type)", "funcdef": "def"}, "mephisto.client.api.accept_unit": {"fullname": "mephisto.client.api.accept_unit", "modulename": "mephisto.client.api", "qualname": "accept_unit", "type": "function", "doc": "

\n", "signature": "(unit_id)", "funcdef": "def"}, "mephisto.client.api.reject_unit": {"fullname": "mephisto.client.api.reject_unit", "modulename": "mephisto.client.api", "qualname": "reject_unit", "type": "function", "doc": "

\n", "signature": "(unit_id)", "funcdef": "def"}, "mephisto.client.api.soft_block_unit": {"fullname": "mephisto.client.api.soft_block_unit", "modulename": "mephisto.client.api", "qualname": "soft_block_unit", "type": "function", "doc": "

\n", "signature": "(unit_id)", "funcdef": "def"}, "mephisto.client.api.hard_block_unit": {"fullname": "mephisto.client.api.hard_block_unit", "modulename": "mephisto.client.api", "qualname": "hard_block_unit", "type": "function", "doc": "

\n", "signature": "(unit_id)", "funcdef": "def"}, "mephisto.client.api.intentional_error": {"fullname": "mephisto.client.api.intentional_error", "modulename": "mephisto.client.api", "qualname": "intentional_error", "type": "function", "doc": "

A helper endpoint to test out cases in the UI where an error occurs.

\n", "signature": "(status_code)", "funcdef": "def"}, "mephisto.client.api.InvalidUsage": {"fullname": "mephisto.client.api.InvalidUsage", "modulename": "mephisto.client.api", "qualname": "InvalidUsage", "type": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, "mephisto.client.api.InvalidUsage.__init__": {"fullname": "mephisto.client.api.InvalidUsage.__init__", "modulename": "mephisto.client.api", "qualname": "InvalidUsage.__init__", "type": "function", "doc": "

\n", "signature": "(self, message, status_code=None, payload=None)", "funcdef": "def"}, "mephisto.client.api.InvalidUsage.status_code": {"fullname": "mephisto.client.api.InvalidUsage.status_code", "modulename": "mephisto.client.api", "qualname": "InvalidUsage.status_code", "type": "variable", "doc": "

\n", "default_value": " = 400"}, "mephisto.client.api.InvalidUsage.to_dict": {"fullname": "mephisto.client.api.InvalidUsage.to_dict", "modulename": "mephisto.client.api", "qualname": "InvalidUsage.to_dict", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.client.api.handle_invalid_usage": {"fullname": "mephisto.client.api.handle_invalid_usage", "modulename": "mephisto.client.api", "qualname": "handle_invalid_usage", "type": "function", "doc": "

\n", "signature": "(error)", "funcdef": "def"}, "mephisto.client.cli": {"fullname": "mephisto.client.cli", "modulename": "mephisto.client.cli", "type": "module", "doc": "

\n"}, "mephisto.client.config": {"fullname": "mephisto.client.config", "modulename": "mephisto.client.config", "type": "module", "doc": "

\n"}, "mephisto.client.config.Config": {"fullname": "mephisto.client.config.Config", "modulename": "mephisto.client.config", "qualname": "Config", "type": "class", "doc": "

\n"}, "mephisto.client.config.Config.__init__": {"fullname": "mephisto.client.config.Config.__init__", "modulename": "mephisto.client.config", "qualname": "Config.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.config.Config.ENV": {"fullname": "mephisto.client.config.Config.ENV", "modulename": "mephisto.client.config", "qualname": "Config.ENV", "type": "variable", "doc": "

\n", "default_value": " = 'development'"}, "mephisto.client.full": {"fullname": "mephisto.client.full", "modulename": "mephisto.client.full", "type": "module", "doc": "

\n"}, "mephisto.client.full.server": {"fullname": "mephisto.client.full.server", "modulename": "mephisto.client.full.server", "type": "module", "doc": "

\n"}, "mephisto.client.full.server.main": {"fullname": "mephisto.client.full.server.main", "modulename": "mephisto.client.full.server", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.client.review": {"fullname": "mephisto.client.review", "modulename": "mephisto.client.review", "type": "module", "doc": "

\n"}, "mephisto.client.review.review_server": {"fullname": "mephisto.client.review.review_server", "modulename": "mephisto.client.review.review_server", "type": "module", "doc": "

\n"}, "mephisto.client.review.review_server.run": {"fullname": "mephisto.client.review.review_server.run", "modulename": "mephisto.client.review.review_server", "qualname": "run", "type": "function", "doc": "

\n", "signature": "(\n build_dir,\n port,\n output,\n csv_headers,\n json=False,\n database_task_name=None,\n all_data=False,\n debug=False,\n assets_dir=None\n)", "funcdef": "def"}, "mephisto.data_model": {"fullname": "mephisto.data_model", "modulename": "mephisto.data_model", "type": "module", "doc": "

Data Model

\n\n

This folder contains classes that generally represent the lowest levels of abstraction in Mephisto, lying as closely to the actual data as possible.

\n\n

Philosophy

\n\n

The mephisto data model consists of important classes to formalize some of the concepts that are required for interacting with tasks, crowdsourcing providers, workers, etc. These classes try to abstract away some of the underlying convenience of working with mephisto into a common location, and are designed both to be extended from (in the form of creating child classes for specialized cases, or for the purpose of testing) and behind (like eventually supporting a common database for organizational use). All of the classes are to be database-backed, in that creation of these objects should populate the database, and most content will be linked through there. In this way, the state is maintained by the database, and the objects are collections of convenience methods for interacting with the underlying data model.

\n\n

Note: This abstraction is broken specifically in the case of Agents that are currently in a task, as their running task world relies on the specific Agent instance that is currently being tracked and updated by the WorkerPool.

\n\n

Database-backed Base Classes

\n\n

The following classes are the units of Mephisto, in that they keep track of what mephisto is doing, where things are stored, history of workers, etc. The rest of the system in general should only be utilizing these classes to make any operations, allowing them to be a strong abstraction layer.

\n\n

Project

\n\n

High level project that many crowdsourcing tasks may be related to. Useful for budgeting and grouping tasks for a review perspective. They are primarily a bookkeeping tool. At the moment they are fairly under-implemented, but can certainly be extended.

\n\n

Task

\n\n

The Task class is required to create a group of TaskRuns for the purpose of aggregation and bookkeeping. Much of what is present in the current Task implementation can be deprecated. Much of the functionality here for ensuring that a task has common arguments and correct components is now stored in the Blueprint concept.

\n\n

Eventually the Task code can be deprecated and replaced with useful aggregation functionality across TaskRuns within.

\n\n

TaskRun

\n\n

This class keeps track of the configuration options and all assignments associated with an individual launch of a task. It also provides utility functions for ensuring workers can be assigned units (get_valid_units_for_worker, reserve_unit).

\n\n

Generally has 3 states:

\n\n
    \n
  • Setup (not yet launched, _has_assignments=False, _is_completed=False): Before launch while the Mephisto architecture is still building the components required to launch this run.
  • \n
  • In Flight (launched, _has_assignments=True, _is_completed=False): After launch, when tasks are still in flight and may still be updating statuses.
  • \n
  • Completed (all tasks done/expired, _has_assignments=True, _is_completed=True): Once a task run is fully complete and no tasks will be launched anymore, it's ready for review.
  • \n
\n\n

Configuration parameters for launching a specific run are stored in the form of a json dump of the configuration file provided for the launch.

\n\n

Assignment

\n\n

This class represents a single unit of work, or a thing that needs to be done. This can be something like \"annotate this specific image\" or \"Have a conversation between two specified characters.\" It can be seen as an individual instantiation of the more general Task described above. As it is mostly captured by the Blueprint running the task, the only remaining components are knowing where the data is stored (get_assignment_data), tracking the assignment status (get_status) and knowing which Workers and Units are associated with that progress.

\n\n

Unit

\n\n

This class represents the role that an individual fills in completing an assignment. An individual worker should only complete one Unit per assignment, which covers the idea of having multiple people in a conversation, or different annotators for a specific task. The Unit is the first abstract class that needs to be synced with a CrowdProvider, as in order to know the status of the work (generally if it's ongoing or disconnected or such), it may be necessary to talk to an external provider.

\n\n

Worker

\n\n

This class represents an individual - namely a person. It maintains components of ongoing identity for a user. Workers can be blocked, unblocked, and bonused. You can also get all of the Agents associated with a worker. Ultimately, Workers are tightly coupled with a CrowdProvider, as the identity of a person is tied to where we get them from.

\n\n

Agent

\n\n

This class encompasses a worker as they are working on an individual assignment. It maintains details for the current task at hand such as start and end time, connection status, etc. Generally this is an abstraction the worker operating at a frontend and the backend interactions. The WorkerPool and ClientIOHandler classese are responsible for maintaining most of that abstraction, so this class mostly needs to implement ways to approve and reject work, as well as get a work's status or mark it as done when the final work is received.

\n\n

Requester

\n\n

This class encompasses your identity as it is known by a CrowdProvider you intend to launch tasks on. It keeps track of some metadata on your account (such as your budget) but also some Mephisto usage statistics (such as amount spent in total from that requester).

\n\n

Qualification and GrantedQualification

\n\n

These classes act as a method for assigning Mephisto-backed qualifications to workers in a manner such that the same qualifications can be used across multiple different crowd providers, or with crowd providers that don't normally provide a method for granting qualifications before a worker connects.

\n\n

Non-Database backed abstractions

\n\n

Some classes in the data model aren't backed by the data model because they are generally lightweight views of existing data or transient containers.

\n\n

Packet

\n\n

Encapsulates messages being sent from the ClientIOhandler to any Mephisto server.

\n\n

Constants

\n\n

Some Mephisto constants that are able to standardize values across multiple classes live in the data model within the contants folder.

\n"}, "mephisto.data_model.agent": {"fullname": "mephisto.data_model.agent", "modulename": "mephisto.data_model.agent", "type": "module", "doc": "

\n"}, "mephisto.data_model.agent.Agent": {"fullname": "mephisto.data_model.agent.Agent", "modulename": "mephisto.data_model.agent", "qualname": "Agent", "type": "class", "doc": "

This class encompasses a worker as they are working on an individual assignment.\nIt maintains details for the current task at hand such as start and end time,\nconnection status, etc.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.agent.Agent.__init__": {"fullname": "mephisto.data_model.agent.Agent.__init__", "modulename": "mephisto.data_model.agent", "qualname": "Agent.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Agent class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Agent\nas you will instead be returned the correct Agent class according to\nthe crowdprovider associated with this Agent.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.agent.Agent.state": {"fullname": "mephisto.data_model.agent.Agent.state", "modulename": "mephisto.data_model.agent", "qualname": "Agent.state", "type": "variable", "doc": "

\n", "annotation": ": mephisto.abstractions._subcomponents.agent_state.AgentState"}, "mephisto.data_model.agent.Agent.set_live_run": {"fullname": "mephisto.data_model.agent.Agent.set_live_run", "modulename": "mephisto.data_model.agent", "qualname": "Agent.set_live_run", "type": "function", "doc": "

Set an associated live run for this agent

\n", "signature": "(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_live_run": {"fullname": "mephisto.data_model.agent.Agent.get_live_run", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_live_run", "type": "function", "doc": "

Return the associated live run for this agent. Throw if not set

\n", "signature": "(self) -> mephisto.operations.datatypes.LiveTaskRun", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_agent_id": {"fullname": "mephisto.data_model.agent.Agent.get_agent_id", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_agent_id", "type": "function", "doc": "

Return this agent's id

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_worker": {"fullname": "mephisto.data_model.agent.Agent.get_worker", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_worker", "type": "function", "doc": "

Return the worker that is using this agent for a task

\n", "signature": "(self) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_unit": {"fullname": "mephisto.data_model.agent.Agent.get_unit", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_unit", "type": "function", "doc": "

Return the Unit that this agent is working on.

\n", "signature": "(self) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_assignment": {"fullname": "mephisto.data_model.agent.Agent.get_assignment", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_assignment", "type": "function", "doc": "

Return the assignment this agent is working on

\n", "signature": "(self) -> mephisto.data_model.assignment.Assignment", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_task_run": {"fullname": "mephisto.data_model.agent.Agent.get_task_run", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_task_run", "type": "function", "doc": "

Return the TaskRun this agent is working within

\n", "signature": "(self) -> mephisto.data_model.task_run.TaskRun", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_task": {"fullname": "mephisto.data_model.agent.Agent.get_task", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_task", "type": "function", "doc": "

Return the Task this agent is working within

\n", "signature": "(self) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_data_dir": {"fullname": "mephisto.data_model.agent.Agent.get_data_dir", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_data_dir", "type": "function", "doc": "

Return the directory to be storing any agent state for\nthis agent into

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.Agent.update_status": {"fullname": "mephisto.data_model.agent.Agent.update_status", "modulename": "mephisto.data_model.agent", "qualname": "Agent.update_status", "type": "function", "doc": "

Update the database status of this agent, and\npossibly send a message to the frontend agent informing\nthem of this update

\n", "signature": "(self, new_status: str) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"fullname": "mephisto.data_model.agent.Agent.new_from_provider_data", "modulename": "mephisto.data_model.agent", "qualname": "Agent.new_from_provider_data", "type": "function", "doc": "

Wrapper around the new method that allows registering additional\nbookkeeping information from a crowd provider for this agent

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit,\n provider_data: Dict[str, Any]\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.data_model.agent.Agent.observe": {"fullname": "mephisto.data_model.agent.Agent.observe", "modulename": "mephisto.data_model.agent", "qualname": "Agent.observe", "type": "function", "doc": "

Pass the observed information to the AgentState, then\nqueue the information to be pushed to the user

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_live_update": {"fullname": "mephisto.data_model.agent.Agent.get_live_update", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_live_update", "type": "function", "doc": "

Request information from the Agent's frontend. If non-blocking,\n(timeout is None) should return None if no actions are ready\nto be returned.

\n", "signature": "(\n self,\n timeout: Union[int, NoneType] = None\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.data_model.agent.Agent.act": {"fullname": "mephisto.data_model.agent.Agent.act", "modulename": "mephisto.data_model.agent", "qualname": "Agent.act", "type": "function", "doc": "

Request information from the Agent's frontend. If non-blocking,\n(timeout is None) should return None if no actions are ready\nto be returned.

\n", "signature": "(\n self,\n timeout: Union[int, NoneType] = None\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.data_model.agent.Agent.await_submit": {"fullname": "mephisto.data_model.agent.Agent.await_submit", "modulename": "mephisto.data_model.agent", "qualname": "Agent.await_submit", "type": "function", "doc": "

Blocking wait for this agent to submit their task

\n", "signature": "(self, timeout: Union[int, NoneType] = None) -> bool", "funcdef": "def"}, "mephisto.data_model.agent.Agent.handle_submit": {"fullname": "mephisto.data_model.agent.Agent.handle_submit", "modulename": "mephisto.data_model.agent", "qualname": "Agent.handle_submit", "type": "function", "doc": "

Handle final submission for an onboarding agent, with the given data

\n", "signature": "(self, submit_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.get_status": {"fullname": "mephisto.data_model.agent.Agent.get_status", "modulename": "mephisto.data_model.agent", "qualname": "Agent.get_status", "type": "function", "doc": "

Get the status of this agent in their work on their unit

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.Agent.shutdown": {"fullname": "mephisto.data_model.agent.Agent.shutdown", "modulename": "mephisto.data_model.agent", "qualname": "Agent.shutdown", "type": "function", "doc": "

Force the given agent to end any polling threads and throw an AgentShutdownError\nfrom any acts called on it, ensuring tasks using this agent can be cleaned up.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.approve_work": {"fullname": "mephisto.data_model.agent.Agent.approve_work", "modulename": "mephisto.data_model.agent", "qualname": "Agent.approve_work", "type": "function", "doc": "

Approve the work done on this agent's specific Unit

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.soft_reject_work": {"fullname": "mephisto.data_model.agent.Agent.soft_reject_work", "modulename": "mephisto.data_model.agent", "qualname": "Agent.soft_reject_work", "type": "function", "doc": "

Pay a worker for attempted work, but mark it as below the\nquality bar for this assignment

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.reject_work": {"fullname": "mephisto.data_model.agent.Agent.reject_work", "modulename": "mephisto.data_model.agent", "qualname": "Agent.reject_work", "type": "function", "doc": "

Reject the work done on this agent's specific Unit

\n", "signature": "(self, reason) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.mark_done": {"fullname": "mephisto.data_model.agent.Agent.mark_done", "modulename": "mephisto.data_model.agent", "qualname": "Agent.mark_done", "type": "function", "doc": "

Take any required step with the crowd_provider to ensure that\nthe worker can submit their work and be marked as complete via\na call to get_status

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.agent.Agent.new": {"fullname": "mephisto.data_model.agent.Agent.new", "modulename": "mephisto.data_model.agent", "qualname": "Agent.new", "type": "function", "doc": "

Create an agent for this worker to be used for work on the given Unit.

\n\n

Implementation should return the result of _register_agent when sure the agent\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n unit: mephisto.data_model.unit.Unit\n) -> mephisto.data_model.agent.Agent", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent": {"fullname": "mephisto.data_model.agent.OnboardingAgent", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent", "type": "class", "doc": "

Onboarding agents are a special extension of agents used\nin tasks that have a separate onboarding step. These agents\nare designed to work without being linked to an explicit\nunit, and instead are tied to the task run and task name.

\n\n

Blueprints that require OnboardingAgents should implement an\nOnboardingAgentState (to process the special task), and their\nTaskRunners should have a run_onboarding and cleanup_onboarding\nmethod.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"fullname": "mephisto.data_model.agent.OnboardingAgent.__init__", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"fullname": "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.DISPLAY_PREFIX", "type": "variable", "doc": "

\n", "default_value": " = 'onboarding_'"}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_agent_id", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_agent_id", "type": "function", "doc": "

Return an id to use for onboarding agent requests

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"fullname": "mephisto.data_model.agent.OnboardingAgent.set_live_run", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.set_live_run", "type": "function", "doc": "

Set an associated live run for this agent

\n", "signature": "(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_live_run", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_live_run", "type": "function", "doc": "

Return the associated live run for this agent. Throw if not set

\n", "signature": "(self) -> mephisto.operations.datatypes.LiveTaskRun", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"fullname": "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.is_onboarding_id", "type": "function", "doc": "

return if the given id is for an onboarding agent

\n", "signature": "(cls, agent_id: str) -> bool", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_db_id_from_agent_id", "type": "function", "doc": "

Extract the db_id for an onboarding_agent

\n", "signature": "(cls, agent_id: str) -> str", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_worker", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_worker", "type": "function", "doc": "

Return the worker that is using this agent for a task

\n", "signature": "(self) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_task_run", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_task_run", "type": "function", "doc": "

Return the TaskRun this agent is working within

\n", "signature": "(self) -> mephisto.data_model.task_run.TaskRun", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_task", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_task", "type": "function", "doc": "

Return the Task this agent is working within

\n", "signature": "(self) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_data_dir", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_data_dir", "type": "function", "doc": "

Return the directory to be storing any agent state for\nthis agent into

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"fullname": "mephisto.data_model.agent.OnboardingAgent.update_status", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.update_status", "type": "function", "doc": "

Update the database status of this agent, and\npossibly send a message to the frontend agent informing\nthem of this update

\n", "signature": "(self, new_status: str) -> None", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.observe": {"fullname": "mephisto.data_model.agent.OnboardingAgent.observe", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.observe", "type": "function", "doc": "

Pass the observed information to the AgentState, then\nqueue the information to be pushed to the user

\n", "signature": "(self, live_update: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_live_update", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_live_update", "type": "function", "doc": "

Request information from the Agent's frontend. If non-blocking,\n(timeout is None) should return None if no actions are ready\nto be returned.

\n", "signature": "(\n self,\n timeout: Union[int, NoneType] = None\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.act": {"fullname": "mephisto.data_model.agent.OnboardingAgent.act", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.act", "type": "function", "doc": "

Request information from the Agent's frontend. If non-blocking,\n(timeout is None) should return None if no actions are ready\nto be returned.

\n", "signature": "(\n self,\n timeout: Union[int, NoneType] = None\n) -> Union[Dict[str, Any], NoneType]", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"fullname": "mephisto.data_model.agent.OnboardingAgent.await_submit", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.await_submit", "type": "function", "doc": "

Blocking wait for this agent to submit their task

\n", "signature": "(self, timeout: Union[int, NoneType] = None) -> bool", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"fullname": "mephisto.data_model.agent.OnboardingAgent.handle_submit", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.handle_submit", "type": "function", "doc": "

Handle final submission for an onboarding agent, with the given data

\n", "signature": "(self, submit_data: Dict[str, Any]) -> None", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"fullname": "mephisto.data_model.agent.OnboardingAgent.get_status", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.get_status", "type": "function", "doc": "

Get the status of this agent in their work on their unit

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"fullname": "mephisto.data_model.agent.OnboardingAgent.shutdown", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.shutdown", "type": "function", "doc": "

Force the given agent to end any polling threads and throw an AgentShutdownError\nfrom any acts called on it, ensuring tasks using this agent can be cleaned up.

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.agent.OnboardingAgent.new": {"fullname": "mephisto.data_model.agent.OnboardingAgent.new", "modulename": "mephisto.data_model.agent", "qualname": "OnboardingAgent.new", "type": "function", "doc": "

Create an OnboardingAgent for a worker to use as part of a task run

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker: mephisto.data_model.worker.Worker,\n task_run: mephisto.data_model.task_run.TaskRun\n) -> mephisto.data_model.agent.OnboardingAgent", "funcdef": "def"}, "mephisto.data_model.assignment": {"fullname": "mephisto.data_model.assignment", "modulename": "mephisto.data_model.assignment", "type": "module", "doc": "

\n"}, "mephisto.data_model.assignment.InitializationData": {"fullname": "mephisto.data_model.assignment.InitializationData", "modulename": "mephisto.data_model.assignment", "qualname": "InitializationData", "type": "class", "doc": "

InitializationData(shared: Dict[str, Any], unit_data: List[Dict[str, Any]])

\n"}, "mephisto.data_model.assignment.InitializationData.__init__": {"fullname": "mephisto.data_model.assignment.InitializationData.__init__", "modulename": "mephisto.data_model.assignment", "qualname": "InitializationData.__init__", "type": "function", "doc": "

\n", "signature": "(self, shared: Dict[str, Any], unit_data: List[Dict[str, Any]])", "funcdef": "def"}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"fullname": "mephisto.data_model.assignment.InitializationData.dumpJSON", "modulename": "mephisto.data_model.assignment", "qualname": "InitializationData.dumpJSON", "type": "function", "doc": "

\n", "signature": "(self, fp: IO[str])", "funcdef": "def"}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"fullname": "mephisto.data_model.assignment.InitializationData.loadFromJSON", "modulename": "mephisto.data_model.assignment", "qualname": "InitializationData.loadFromJSON", "type": "function", "doc": "

\n", "signature": "(fp: IO[str])", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment": {"fullname": "mephisto.data_model.assignment.Assignment", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment", "type": "class", "doc": "

This class tracks an individual run of a specific task, and handles state management\nfor the set of units within via abstracted database helpers

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.assignment.Assignment.__init__": {"fullname": "mephisto.data_model.assignment.Assignment.__init__", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"fullname": "mephisto.data_model.assignment.Assignment.get_data_dir", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_data_dir", "type": "function", "doc": "

Return the directory we expect to find assignment data in

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"fullname": "mephisto.data_model.assignment.Assignment.get_assignment_data", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_assignment_data", "type": "function", "doc": "

Return the specific assignment data for this assignment

\n", "signature": "(self) -> mephisto.data_model.assignment.InitializationData", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"fullname": "mephisto.data_model.assignment.Assignment.write_assignment_data", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.write_assignment_data", "type": "function", "doc": "

Set the assignment data for this assignment

\n", "signature": "(\n self,\n data: mephisto.data_model.assignment.InitializationData\n) -> None", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_agents": {"fullname": "mephisto.data_model.assignment.Assignment.get_agents", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_agents", "type": "function", "doc": "

Return all of the agents for this assignment

\n", "signature": "(\n self\n) -> list[typing.Union[mephisto.data_model.agent.Agent, NoneType]]", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_status": {"fullname": "mephisto.data_model.assignment.Assignment.get_status", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_status", "type": "function", "doc": "

Get the status of this assignment, as determined by the status of\nthe units

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_task_run": {"fullname": "mephisto.data_model.assignment.Assignment.get_task_run", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_task_run", "type": "function", "doc": "

Return the task run that this assignment is part of

\n", "signature": "(self) -> mephisto.data_model.task_run.TaskRun", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_task": {"fullname": "mephisto.data_model.assignment.Assignment.get_task", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_task", "type": "function", "doc": "

Return the task run that this assignment is part of

\n", "signature": "(self) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_requester": {"fullname": "mephisto.data_model.assignment.Assignment.get_requester", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_requester", "type": "function", "doc": "

Return the requester who offered this Assignment

\n", "signature": "(self) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_units": {"fullname": "mephisto.data_model.assignment.Assignment.get_units", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_units", "type": "function", "doc": "

Get units for this assignment, optionally\nconstrained by the specific status.

\n", "signature": "(\n self,\n status: Union[str, NoneType] = None\n) -> list[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_workers": {"fullname": "mephisto.data_model.assignment.Assignment.get_workers", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_workers", "type": "function", "doc": "

Get the list of workers that have worked on this specific assignment

\n", "signature": "(self) -> list[mephisto.data_model.worker.Worker]", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"fullname": "mephisto.data_model.assignment.Assignment.get_cost_of_statuses", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.get_cost_of_statuses", "type": "function", "doc": "

Return the sum of all pay_amounts for every unit\nof this assignment with any of the given statuses

\n", "signature": "(self, statuses: List[str]) -> float", "funcdef": "def"}, "mephisto.data_model.assignment.Assignment.new": {"fullname": "mephisto.data_model.assignment.Assignment.new", "modulename": "mephisto.data_model.assignment", "qualname": "Assignment.new", "type": "function", "doc": "

Create an assignment for the given task. Initialize the folders for storing\nthe results for this assignment. Can take assignment_data to save and\nload for this particular assignment.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n task_run: mephisto.data_model.task_run.TaskRun,\n assignment_data: Union[Dict[str, Any], NoneType]\n) -> mephisto.data_model.assignment.Assignment", "funcdef": "def"}, "mephisto.data_model.constants": {"fullname": "mephisto.data_model.constants", "modulename": "mephisto.data_model.constants", "type": "module", "doc": "

This file contains any constants shared in the data model that\naren't more appropriately held in one of the object-focused files

\n"}, "mephisto.data_model.constants.assignment_state": {"fullname": "mephisto.data_model.constants.assignment_state", "modulename": "mephisto.data_model.constants.assignment_state", "type": "module", "doc": "

\n"}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState", "type": "class", "doc": "

\n"}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.__init__", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.CREATED", "type": "variable", "doc": "

\n", "default_value": " = 'created'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.LAUNCHED", "type": "variable", "doc": "

\n", "default_value": " = 'launched'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.ASSIGNED", "type": "variable", "doc": "

\n", "default_value": " = 'assigned'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.COMPLETED", "type": "variable", "doc": "

\n", "default_value": " = 'completed'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.ACCEPTED", "type": "variable", "doc": "

\n", "default_value": " = 'accepted'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.MIXED", "type": "variable", "doc": "

\n", "default_value": " = 'mixed'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.REJECTED", "type": "variable", "doc": "

\n", "default_value": " = 'rejected'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.SOFT_REJECTED", "type": "variable", "doc": "

\n", "default_value": " = 'soft_rejected'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.EXPIRED", "type": "variable", "doc": "

\n", "default_value": " = 'expired'"}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.valid", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.valid", "type": "function", "doc": "

Return all valid assignment statuses

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.incomplete", "type": "function", "doc": "

Return all statuses that are considered incomplete

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.payable", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.payable", "type": "function", "doc": "

Return all statuses that should be considered spent budget

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.valid_unit", "type": "function", "doc": "

Return all statuses that are valids for a Unit

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.final_unit", "type": "function", "doc": "

Return all statuses that are terminal for a Unit

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.completed", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.completed", "type": "function", "doc": "

Return all statuses that denote a unit having been completed

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"fullname": "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent", "modulename": "mephisto.data_model.constants.assignment_state", "qualname": "AssignmentState.final_agent", "type": "function", "doc": "

Return all statuses that are terminal changes to a Unit's agent

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.data_model.exceptions": {"fullname": "mephisto.data_model.exceptions", "modulename": "mephisto.data_model.exceptions", "type": "module", "doc": "

\n"}, "mephisto.data_model.exceptions.AbsentAgentError": {"fullname": "mephisto.data_model.exceptions.AbsentAgentError", "modulename": "mephisto.data_model.exceptions", "qualname": "AbsentAgentError", "type": "class", "doc": "

Exceptions for when an agent leaves a task

\n", "bases": "builtins.Exception"}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"fullname": "mephisto.data_model.exceptions.AbsentAgentError.__init__", "modulename": "mephisto.data_model.exceptions", "qualname": "AbsentAgentError.__init__", "type": "function", "doc": "

\n", "signature": "(self, message, agent_id)", "funcdef": "def"}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"fullname": "mephisto.data_model.exceptions.AgentDisconnectedError", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentDisconnectedError", "type": "class", "doc": "

Exception for a real disconnect event (no signal)

\n", "bases": "AbsentAgentError"}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"fullname": "mephisto.data_model.exceptions.AgentDisconnectedError.__init__", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentDisconnectedError.__init__", "type": "function", "doc": "

\n", "signature": "(self, agent_id)", "funcdef": "def"}, "mephisto.data_model.exceptions.AgentTimeoutError": {"fullname": "mephisto.data_model.exceptions.AgentTimeoutError", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentTimeoutError", "type": "class", "doc": "

Exception for when a worker doesn't respond in time

\n", "bases": "AbsentAgentError"}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"fullname": "mephisto.data_model.exceptions.AgentTimeoutError.__init__", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentTimeoutError.__init__", "type": "function", "doc": "

\n", "signature": "(self, timeout, agent_id)", "funcdef": "def"}, "mephisto.data_model.exceptions.AgentReturnedError": {"fullname": "mephisto.data_model.exceptions.AgentReturnedError", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentReturnedError", "type": "class", "doc": "

Exception for an explicit return event (worker returns task)

\n", "bases": "AbsentAgentError"}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"fullname": "mephisto.data_model.exceptions.AgentReturnedError.__init__", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentReturnedError.__init__", "type": "function", "doc": "

\n", "signature": "(self, agent_id)", "funcdef": "def"}, "mephisto.data_model.exceptions.AgentShutdownError": {"fullname": "mephisto.data_model.exceptions.AgentShutdownError", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentShutdownError", "type": "class", "doc": "

Exception for when a task is shutdown but agents are still in a task

\n", "bases": "AbsentAgentError"}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"fullname": "mephisto.data_model.exceptions.AgentShutdownError.__init__", "modulename": "mephisto.data_model.exceptions", "qualname": "AgentShutdownError.__init__", "type": "function", "doc": "

\n", "signature": "(self, agent_id)", "funcdef": "def"}, "mephisto.data_model.packet": {"fullname": "mephisto.data_model.packet", "modulename": "mephisto.data_model.packet", "type": "module", "doc": "

\n"}, "mephisto.data_model.packet.Packet": {"fullname": "mephisto.data_model.packet.Packet", "modulename": "mephisto.data_model.packet", "qualname": "Packet", "type": "class", "doc": "

Simple class for encapsulating messages as sent between the\nMephisto python client, the router, and any frontend.

\n\n

Used to be able to make assertions about the kind of data\nbeing sent for specific message types.

\n"}, "mephisto.data_model.packet.Packet.__init__": {"fullname": "mephisto.data_model.packet.Packet.__init__", "modulename": "mephisto.data_model.packet", "qualname": "Packet.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n packet_type: str,\n subject_id: str,\n data: Union[Dict[str, Any], NoneType] = None,\n client_timestamp: Union[float, NoneType] = None,\n router_incoming_timestamp: Union[float, NoneType] = None,\n router_outgoing_timestamp: Union[float, NoneType] = None,\n server_timestamp: Union[float, NoneType] = None\n)", "funcdef": "def"}, "mephisto.data_model.packet.Packet.from_dict": {"fullname": "mephisto.data_model.packet.Packet.from_dict", "modulename": "mephisto.data_model.packet", "qualname": "Packet.from_dict", "type": "function", "doc": "

\n", "signature": "(input_dict: Dict[str, Any]) -> mephisto.data_model.packet.Packet", "funcdef": "def"}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"fullname": "mephisto.data_model.packet.Packet.to_sendable_dict", "modulename": "mephisto.data_model.packet", "qualname": "Packet.to_sendable_dict", "type": "function", "doc": "

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.data_model.packet.Packet.copy": {"fullname": "mephisto.data_model.packet.Packet.copy", "modulename": "mephisto.data_model.packet", "qualname": "Packet.copy", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.data_model.project": {"fullname": "mephisto.data_model.project", "modulename": "mephisto.data_model.project", "type": "module", "doc": "

\n"}, "mephisto.data_model.project.Project": {"fullname": "mephisto.data_model.project.Project", "modulename": "mephisto.data_model.project", "qualname": "Project", "type": "class", "doc": "

High level project that many crowdsourcing tasks may be related to. Useful\nfor budgeting and grouping tasks for a review perspective.

\n\n

Abstracts relevant queries behind usable functions.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.project.Project.__init__": {"fullname": "mephisto.data_model.project.Project.__init__", "modulename": "mephisto.data_model.project", "qualname": "Project.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.project.Project.get_tasks": {"fullname": "mephisto.data_model.project.Project.get_tasks", "modulename": "mephisto.data_model.project", "qualname": "Project.get_tasks", "type": "function", "doc": "

Return the list of tasks that are run as part of this project

\n", "signature": "(self) -> list[mephisto.data_model.task.Task]", "funcdef": "def"}, "mephisto.data_model.project.Project.get_total_spend": {"fullname": "mephisto.data_model.project.Project.get_total_spend", "modulename": "mephisto.data_model.project", "qualname": "Project.get_total_spend", "type": "function", "doc": "

Return the total amount of funding spent for this project\nacross all tasks.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.project.Project.new": {"fullname": "mephisto.data_model.project.Project.new", "modulename": "mephisto.data_model.project", "qualname": "Project.new", "type": "function", "doc": "

Try to create a new project by this name, raise an exception if\nthe name already exists.

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n project_name: str\n) -> mephisto.data_model.project.Project", "funcdef": "def"}, "mephisto.data_model.qualification": {"fullname": "mephisto.data_model.qualification", "modulename": "mephisto.data_model.qualification", "type": "module", "doc": "

\n"}, "mephisto.data_model.qualification.Qualification": {"fullname": "mephisto.data_model.qualification.Qualification", "modulename": "mephisto.data_model.qualification", "qualname": "Qualification", "type": "class", "doc": "

Simple convenience wrapper for Qualifications in the data model

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.qualification.Qualification.__init__": {"fullname": "mephisto.data_model.qualification.Qualification.__init__", "modulename": "mephisto.data_model.qualification", "qualname": "Qualification.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.qualification.GrantedQualification": {"fullname": "mephisto.data_model.qualification.GrantedQualification", "modulename": "mephisto.data_model.qualification", "qualname": "GrantedQualification", "type": "class", "doc": "

Convenience wrapper for tracking granted qualifications

\n"}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"fullname": "mephisto.data_model.qualification.GrantedQualification.__init__", "modulename": "mephisto.data_model.qualification", "qualname": "GrantedQualification.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n qualification_id: str,\n worker_id: str,\n row: Union[Mapping[str, Any], NoneType] = None\n)", "funcdef": "def"}, "mephisto.data_model.requester": {"fullname": "mephisto.data_model.requester", "modulename": "mephisto.data_model.requester", "type": "module", "doc": "

\n"}, "mephisto.data_model.requester.RequesterArgs": {"fullname": "mephisto.data_model.requester.RequesterArgs", "modulename": "mephisto.data_model.requester", "qualname": "RequesterArgs", "type": "class", "doc": "

Base class for arguments to register a requester

\n"}, "mephisto.data_model.requester.RequesterArgs.__init__": {"fullname": "mephisto.data_model.requester.RequesterArgs.__init__", "modulename": "mephisto.data_model.requester", "qualname": "RequesterArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, name: str = '???')", "funcdef": "def"}, "mephisto.data_model.requester.RequesterArgs.name": {"fullname": "mephisto.data_model.requester.RequesterArgs.name", "modulename": "mephisto.data_model.requester", "qualname": "RequesterArgs.name", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.data_model.requester.Requester": {"fullname": "mephisto.data_model.requester.Requester", "modulename": "mephisto.data_model.requester", "qualname": "Requester", "type": "class", "doc": "

High level class representing a requester on some kind of crowd provider. Sets some default\ninitializations, but mostly should be extended by the specific requesters for crowd providers\nwith whatever implementation details are required to get those to work.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.requester.Requester.__init__": {"fullname": "mephisto.data_model.requester.Requester.__init__", "modulename": "mephisto.data_model.requester", "qualname": "Requester.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Requester class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Requester\nas you will instead be returned the correct Requester class according to\nthe crowdprovider associated with this Requester.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.requester.Requester.ArgsClass": {"fullname": "mephisto.data_model.requester.Requester.ArgsClass", "modulename": "mephisto.data_model.requester", "qualname": "Requester.ArgsClass", "type": "class", "doc": "

Base class for arguments to register a requester

\n"}, "mephisto.data_model.requester.Requester.get_task_runs": {"fullname": "mephisto.data_model.requester.Requester.get_task_runs", "modulename": "mephisto.data_model.requester", "qualname": "Requester.get_task_runs", "type": "function", "doc": "

Return the list of task runs that are run by this requester

\n", "signature": "(self) -> list[mephisto.data_model.task_run.TaskRun]", "funcdef": "def"}, "mephisto.data_model.requester.Requester.get_total_spend": {"fullname": "mephisto.data_model.requester.Requester.get_total_spend", "modulename": "mephisto.data_model.requester", "qualname": "Requester.get_total_spend", "type": "function", "doc": "

Return the total amount of funding spent by this requester\nacross all tasks.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.requester.Requester.is_sandbox": {"fullname": "mephisto.data_model.requester.Requester.is_sandbox", "modulename": "mephisto.data_model.requester", "qualname": "Requester.is_sandbox", "type": "function", "doc": "

Determine if this is a requester on a sandbox/test account

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.data_model.requester.Requester.register": {"fullname": "mephisto.data_model.requester.Requester.register", "modulename": "mephisto.data_model.requester", "qualname": "Requester.register", "type": "function", "doc": "

Register this requester with the crowd provider by providing any required credentials\nor such. If no args are provided, assume the registration is already made and try\nto assert it as such.

\n\n

Should throw an exception if something is wrong with provided registration arguments.

\n", "signature": "(\n self,\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.data_model.requester.Requester.is_registered": {"fullname": "mephisto.data_model.requester.Requester.is_registered", "modulename": "mephisto.data_model.requester", "qualname": "Requester.is_registered", "type": "function", "doc": "

Check to see if this requester has already been registered

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.data_model.requester.Requester.get_available_budget": {"fullname": "mephisto.data_model.requester.Requester.get_available_budget", "modulename": "mephisto.data_model.requester", "qualname": "Requester.get_available_budget", "type": "function", "doc": "

Return the funds that this requester profile has available for usage with\nits crowdsourcing vendor

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.requester.Requester.to_dict": {"fullname": "mephisto.data_model.requester.Requester.to_dict", "modulename": "mephisto.data_model.requester", "qualname": "Requester.to_dict", "type": "function", "doc": "

Produce a dict of this requester and important features for json serialization

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.data_model.requester.Requester.new": {"fullname": "mephisto.data_model.requester.Requester.new", "modulename": "mephisto.data_model.requester", "qualname": "Requester.new", "type": "function", "doc": "

Try to create a new requester by this name, raise an exception if\nthe name already exists.

\n\n

Implementation should call _register_requester(db, requester_id) when sure the requester\ncan be successfully created to have it put into the db and return the result.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n requester_name: str\n) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.data_model.task": {"fullname": "mephisto.data_model.task", "modulename": "mephisto.data_model.task", "type": "module", "doc": "

\n"}, "mephisto.data_model.task.assert_task_is_valid": {"fullname": "mephisto.data_model.task.assert_task_is_valid", "modulename": "mephisto.data_model.task", "qualname": "assert_task_is_valid", "type": "function", "doc": "

Go through the given task directory and ensure it is valid under the\ngiven task type

\n", "signature": "(dir_name, task_type) -> None", "funcdef": "def"}, "mephisto.data_model.task.Task": {"fullname": "mephisto.data_model.task.Task", "modulename": "mephisto.data_model.task", "qualname": "Task", "type": "class", "doc": "

This class contains all of the required tidbits for launching a set of\nassignments, primarily by leveraging a blueprint. It also takes the\nproject name if this task is to be associated with a specific project.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.task.Task.__init__": {"fullname": "mephisto.data_model.task.Task.__init__", "modulename": "mephisto.data_model.task", "qualname": "Task.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.task.Task.get_project": {"fullname": "mephisto.data_model.task.Task.get_project", "modulename": "mephisto.data_model.task", "qualname": "Task.get_project", "type": "function", "doc": "

Get the project for this task, if it exists

\n", "signature": "(self) -> Union[mephisto.data_model.project.Project, NoneType]", "funcdef": "def"}, "mephisto.data_model.task.Task.set_project": {"fullname": "mephisto.data_model.task.Task.set_project", "modulename": "mephisto.data_model.task", "qualname": "Task.set_project", "type": "function", "doc": "

\n", "signature": "(self, project: mephisto.data_model.project.Project) -> None", "funcdef": "def"}, "mephisto.data_model.task.Task.get_runs": {"fullname": "mephisto.data_model.task.Task.get_runs", "modulename": "mephisto.data_model.task", "qualname": "Task.get_runs", "type": "function", "doc": "

Return all of the runs of this task that have been launched

\n", "signature": "(self) -> list[mephisto.data_model.task_run.TaskRun]", "funcdef": "def"}, "mephisto.data_model.task.Task.get_assignments": {"fullname": "mephisto.data_model.task.Task.get_assignments", "modulename": "mephisto.data_model.task", "qualname": "Task.get_assignments", "type": "function", "doc": "

Return all of the assignments for all runs of this task

\n", "signature": "(self) -> list[mephisto.data_model.assignment.Assignment]", "funcdef": "def"}, "mephisto.data_model.task.Task.get_total_spend": {"fullname": "mephisto.data_model.task.Task.get_total_spend", "modulename": "mephisto.data_model.task", "qualname": "Task.get_total_spend", "type": "function", "doc": "

Return the total amount of funding spent for this task.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.task.Task.new": {"fullname": "mephisto.data_model.task.Task.new", "modulename": "mephisto.data_model.task", "qualname": "Task.new", "type": "function", "doc": "

Create a new task by the given name, ensure that the folder for this task\nexists and has the expected directories and files. If a project is\nspecified, register the task underneath it

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n task_name: str,\n task_type: str\n) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.task_run": {"fullname": "mephisto.data_model.task_run", "modulename": "mephisto.data_model.task_run", "type": "module", "doc": "

\n"}, "mephisto.data_model.task_run.TaskRunArgs": {"fullname": "mephisto.data_model.task_run.TaskRunArgs", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs", "type": "class", "doc": "

Object for grouping the contents to configure a class

\n"}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.__init__", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_name: Union[str, NoneType] = '???',\n task_title: str = '???',\n task_description: str = '???',\n task_reward: float = '???',\n task_tags: str = '???',\n assignment_duration_in_seconds: int = 1800,\n allowed_concurrent: int = 0,\n maximum_units_per_worker: int = 0,\n max_num_concurrent_units: int = 0,\n submission_timeout: int = 600\n)", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.task_name", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.task_name", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = '???'"}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.task_title", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.task_title", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.task_description", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.task_description", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.task_reward", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.task_reward", "type": "variable", "doc": "

\n", "annotation": ": float", "default_value": " = '???'"}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.task_tags", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.task_tags", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '???'"}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.assignment_duration_in_seconds", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 1800"}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.allowed_concurrent", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 0"}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.maximum_units_per_worker", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 0"}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.max_num_concurrent_units", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 0"}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.submission_timeout", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.submission_timeout", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 600"}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"fullname": "mephisto.data_model.task_run.TaskRunArgs.get_mock_params", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRunArgs.get_mock_params", "type": "function", "doc": "

Returns a param string with default / mock arguments to use for testing

\n", "signature": "(cls) -> str", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun": {"fullname": "mephisto.data_model.task_run.TaskRun", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun", "type": "class", "doc": "

This class tracks an individual run of a specific task, and handles state management\nfor the set of assignments within

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.task_run.TaskRun.__init__": {"fullname": "mephisto.data_model.task_run.TaskRun.__init__", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"fullname": "mephisto.data_model.task_run.TaskRun.ArgsClass", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.ArgsClass", "type": "class", "doc": "

Object for grouping the contents to configure a class

\n"}, "mephisto.data_model.task_run.TaskRun.get_units": {"fullname": "mephisto.data_model.task_run.TaskRun.get_units", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_units", "type": "function", "doc": "

Return the units associated with this task run.

\n", "signature": "(self) -> list[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"fullname": "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_valid_units_for_worker", "type": "function", "doc": "

Get any units that the given worker could work on in this\ntask run

\n", "signature": "(\n self,\n worker: mephisto.data_model.worker.Worker\n) -> list[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"fullname": "mephisto.data_model.task_run.TaskRun.clear_reservation", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.clear_reservation", "type": "function", "doc": "

Remove the holder used to reserve a unit

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit) -> None", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"fullname": "mephisto.data_model.task_run.TaskRun.reserve_unit", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.reserve_unit", "type": "function", "doc": "

'Atomically' reserve a unit by writing to the filesystem. If\nthe file creation fails, return none

\n", "signature": "(\n self,\n unit: mephisto.data_model.unit.Unit\n) -> Union[mephisto.data_model.unit.Unit, NoneType]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"fullname": "mephisto.data_model.task_run.TaskRun.get_blueprint", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_blueprint", "type": "function", "doc": "

Return the runner associated with this task run

\n", "signature": "(\n self,\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None,\n shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None\n) -> mephisto.abstractions.blueprint.Blueprint", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_provider": {"fullname": "mephisto.data_model.task_run.TaskRun.get_provider", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_provider", "type": "function", "doc": "

Return the crowd provider used to launch this task

\n", "signature": "(self) -> mephisto.abstractions.crowd_provider.CrowdProvider", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_task": {"fullname": "mephisto.data_model.task_run.TaskRun.get_task", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_task", "type": "function", "doc": "

Return the task used to initialize this run

\n", "signature": "(self) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"fullname": "mephisto.data_model.task_run.TaskRun.get_task_args", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_task_args", "type": "function", "doc": "

\n", "signature": "(self) -> omegaconf.dictconfig.DictConfig", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_requester": {"fullname": "mephisto.data_model.task_run.TaskRun.get_requester", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_requester", "type": "function", "doc": "

Return the requester that started this task.

\n", "signature": "(self) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"fullname": "mephisto.data_model.task_run.TaskRun.get_has_assignments", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_has_assignments", "type": "function", "doc": "

See if this task run has any assignments launched yet

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"fullname": "mephisto.data_model.task_run.TaskRun.get_assignments", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_assignments", "type": "function", "doc": "

Get assignments for this run, optionally filtering by their\ncurrent status

\n", "signature": "(\n self,\n status: Union[str, NoneType] = None\n) -> list[mephisto.data_model.assignment.Assignment]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"fullname": "mephisto.data_model.task_run.TaskRun.get_assignment_statuses", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_assignment_statuses", "type": "function", "doc": "

Get the statistics for all of the assignments for this run.

\n", "signature": "(self) -> Dict[str, int]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"fullname": "mephisto.data_model.task_run.TaskRun.update_completion_progress", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.update_completion_progress", "type": "function", "doc": "

Flag the task run that the assignments' generator has finished

\n", "signature": "(self, task_launcher=None, status=None) -> None", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"fullname": "mephisto.data_model.task_run.TaskRun.get_is_completed", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_is_completed", "type": "function", "doc": "

get the completion status of this task

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"fullname": "mephisto.data_model.task_run.TaskRun.sync_completion_status", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.sync_completion_status", "type": "function", "doc": "

Update the is_complete status for this task run based on completion\nof subassignments. If this task run has no subassignments yet, it\nis not complete

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"fullname": "mephisto.data_model.task_run.TaskRun.get_run_dir", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_run_dir", "type": "function", "doc": "

Return the directory where the data from this run is stored

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"fullname": "mephisto.data_model.task_run.TaskRun.get_total_spend", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.get_total_spend", "type": "function", "doc": "

Return the total amount spent on this run, based on any assignments\nthat are still in a payable state.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.to_dict": {"fullname": "mephisto.data_model.task_run.TaskRun.to_dict", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.to_dict", "type": "function", "doc": "

Return a dict containing any important information about this task run

\n", "signature": "(self) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.data_model.task_run.TaskRun.new": {"fullname": "mephisto.data_model.task_run.TaskRun.new", "modulename": "mephisto.data_model.task_run", "qualname": "TaskRun.new", "type": "function", "doc": "

Create a new run for the given task with the given params

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n task: mephisto.data_model.task.Task,\n requester: mephisto.data_model.requester.Requester,\n param_string: str\n) -> mephisto.data_model.task_run.TaskRun", "funcdef": "def"}, "mephisto.data_model.unit": {"fullname": "mephisto.data_model.unit", "modulename": "mephisto.data_model.unit", "type": "module", "doc": "

\n"}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"fullname": "mephisto.data_model.unit.INDEX_TO_TYPE_MAP", "modulename": "mephisto.data_model.unit", "qualname": "INDEX_TO_TYPE_MAP", "type": "variable", "doc": "

\n", "annotation": ": DefaultDict[int, str]", "default_value": " = defaultdict(>, {0: 'standard', -1: 'screening_unit', -2: 'gold_unit', -3: 'compensation_unit'})"}, "mephisto.data_model.unit.Unit": {"fullname": "mephisto.data_model.unit.Unit", "modulename": "mephisto.data_model.unit", "qualname": "Unit", "type": "class", "doc": "

This class tracks the status of an individual worker's contribution to a\nhigher level assignment. It is the smallest 'unit' of work to complete\nthe assignment, and this class is only responsible for checking\nthe status of that work itself being done.

\n\n

It should be extended for usage with a specific crowd provider

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.unit.Unit.__init__": {"fullname": "mephisto.data_model.unit.Unit.__init__", "modulename": "mephisto.data_model.unit", "qualname": "Unit.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Unit class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a Unit\nas you will instead be returned the correct Unit class according to\nthe crowdprovider associated with this Unit.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"fullname": "mephisto.data_model.unit.Unit.get_crowd_provider_class", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_crowd_provider_class", "type": "function", "doc": "

Get the CrowdProvider class that manages this Unit

\n", "signature": "(self) -> type[mephisto.abstractions.crowd_provider.CrowdProvider]", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_assignment_data": {"fullname": "mephisto.data_model.unit.Unit.get_assignment_data", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_assignment_data", "type": "function", "doc": "

Return the specific assignment data for this assignment

\n", "signature": "(self) -> mephisto.data_model.assignment.InitializationData", "funcdef": "def"}, "mephisto.data_model.unit.Unit.sync_status": {"fullname": "mephisto.data_model.unit.Unit.sync_status", "modulename": "mephisto.data_model.unit", "qualname": "Unit.sync_status", "type": "function", "doc": "

Ensure that the queried status from this unit and the db status\nare up to date

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_db_status": {"fullname": "mephisto.data_model.unit.Unit.get_db_status", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_db_status", "type": "function", "doc": "

Return the status as currently stored in the database

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.unit.Unit.set_db_status": {"fullname": "mephisto.data_model.unit.Unit.set_db_status", "modulename": "mephisto.data_model.unit", "qualname": "Unit.set_db_status", "type": "function", "doc": "

Set the status reflected in the database for this Unit

\n", "signature": "(self, status: str) -> None", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_assignment": {"fullname": "mephisto.data_model.unit.Unit.get_assignment", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_assignment", "type": "function", "doc": "

Return the assignment that this Unit is part of.

\n", "signature": "(self) -> mephisto.data_model.assignment.Assignment", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_task_run": {"fullname": "mephisto.data_model.unit.Unit.get_task_run", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_task_run", "type": "function", "doc": "

Return the task run that this assignment is part of

\n", "signature": "(self) -> mephisto.data_model.task_run.TaskRun", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_task": {"fullname": "mephisto.data_model.unit.Unit.get_task", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_task", "type": "function", "doc": "

Return the task that this assignment is part of

\n", "signature": "(self) -> mephisto.data_model.task.Task", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_requester": {"fullname": "mephisto.data_model.unit.Unit.get_requester", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_requester", "type": "function", "doc": "

Return the requester who offered this Unit

\n", "signature": "(self) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"fullname": "mephisto.data_model.unit.Unit.clear_assigned_agent", "modulename": "mephisto.data_model.unit", "qualname": "Unit.clear_assigned_agent", "type": "function", "doc": "

Clear the agent that is assigned to this unit

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"fullname": "mephisto.data_model.unit.Unit.get_assigned_agent", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_assigned_agent", "type": "function", "doc": "

Get the agent assigned to this Unit if there is one, else return None

\n", "signature": "(self) -> Union[mephisto.data_model.agent.Agent, NoneType]", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_pay_amount": {"fullname": "mephisto.data_model.unit.Unit.get_pay_amount", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_pay_amount", "type": "function", "doc": "

Return the amount that this Unit is costing against the budget,\ncalculating additional fees as relevant

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.unit.Unit.get_status": {"fullname": "mephisto.data_model.unit.Unit.get_status", "modulename": "mephisto.data_model.unit", "qualname": "Unit.get_status", "type": "function", "doc": "

Get the status of this unit, as determined by whether there's\na worker working on it at the moment, and any other possible states. Should\nreturn one of UNIT_STATUSES

\n\n

Accurate status is crowd-provider dependent, and thus this method should be\ndefined in the child class to ensure that the local record matches\nthe ground truth in the provider

\n", "signature": "(self) -> str", "funcdef": "def"}, "mephisto.data_model.unit.Unit.launch": {"fullname": "mephisto.data_model.unit.Unit.launch", "modulename": "mephisto.data_model.unit", "qualname": "Unit.launch", "type": "function", "doc": "

Make this Unit available on the crowdsourcing vendor. Depending on\nthe task type, this could mean a number of different setup steps.

\n\n

Some crowd providers require setting up a configuration for the\nvery first launch, and this method should call a helper to manage\nthat step if necessary.

\n", "signature": "(self, task_url: str) -> None", "funcdef": "def"}, "mephisto.data_model.unit.Unit.expire": {"fullname": "mephisto.data_model.unit.Unit.expire", "modulename": "mephisto.data_model.unit", "qualname": "Unit.expire", "type": "function", "doc": "

Expire this unit, removing it from being workable on the vendor.\nReturn the maximum time needed to wait before we know it's taken down.

\n", "signature": "(self) -> float", "funcdef": "def"}, "mephisto.data_model.unit.Unit.is_expired": {"fullname": "mephisto.data_model.unit.Unit.is_expired", "modulename": "mephisto.data_model.unit", "qualname": "Unit.is_expired", "type": "function", "doc": "

Determine if this unit is expired as according to the vendor.

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.data_model.unit.Unit.new": {"fullname": "mephisto.data_model.unit.Unit.new", "modulename": "mephisto.data_model.unit", "qualname": "Unit.new", "type": "function", "doc": "

Create a Unit for the given assignment

\n\n

Implementation should return the result of _register_unit when sure the unit\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n assignment: mephisto.data_model.assignment.Assignment,\n index: int,\n pay_amount: float\n) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.data_model.worker": {"fullname": "mephisto.data_model.worker", "modulename": "mephisto.data_model.worker", "type": "module", "doc": "

\n"}, "mephisto.data_model.worker.WorkerArgs": {"fullname": "mephisto.data_model.worker.WorkerArgs", "modulename": "mephisto.data_model.worker", "qualname": "WorkerArgs", "type": "class", "doc": "

Base class for arguments to register a worker

\n"}, "mephisto.data_model.worker.WorkerArgs.__init__": {"fullname": "mephisto.data_model.worker.WorkerArgs.__init__", "modulename": "mephisto.data_model.worker", "qualname": "WorkerArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, name: str)", "funcdef": "def"}, "mephisto.data_model.worker.Worker": {"fullname": "mephisto.data_model.worker.Worker", "modulename": "mephisto.data_model.worker", "qualname": "Worker", "type": "class", "doc": "

This class represents an individual - namely a person. It maintains components of ongoing identity for a user.

\n", "bases": "mephisto.data_model._db_backed_meta.MephistoDataModelComponentMixin"}, "mephisto.data_model.worker.Worker.__init__": {"fullname": "mephisto.data_model.worker.Worker.__init__", "modulename": "mephisto.data_model.worker", "qualname": "Worker.__init__", "type": "function", "doc": "

The new method is overridden to be able to automatically generate\nthe expected Worker class without needing to specifically find it\nfor a given db_id. As such it is impossible to create a base Worker\nas you will instead be returned the correct Worker class according to\nthe crowdprovider associated with this Worker.

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n db_id: str,\n row: Union[Mapping[str, Any], NoneType] = None,\n _used_new_call: bool = False\n)", "funcdef": "def"}, "mephisto.data_model.worker.Worker.get_agents": {"fullname": "mephisto.data_model.worker.Worker.get_agents", "modulename": "mephisto.data_model.worker", "qualname": "Worker.get_agents", "type": "function", "doc": "

Get the list of agents that this worker was responsible for, by the given status\nif needed

\n", "signature": "(\n self,\n status: Union[str, NoneType] = None\n) -> list[mephisto.data_model.agent.Agent]", "funcdef": "def"}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"fullname": "mephisto.data_model.worker.Worker.new_from_provider_data", "modulename": "mephisto.data_model.worker", "qualname": "Worker.new_from_provider_data", "type": "function", "doc": "

Given the parameters passed through wrap_crowd_source.js, construct\na new worker

\n\n

Basic case simply takes the worker id and registers it

\n", "signature": "(\n cls,\n db: mephisto.abstractions.database.MephistoDB,\n creation_data: Dict[str, Any]\n) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"fullname": "mephisto.data_model.worker.Worker.get_granted_qualification", "modulename": "mephisto.data_model.worker", "qualname": "Worker.get_granted_qualification", "type": "function", "doc": "

Return the granted qualification for this worker for the given name

\n", "signature": "(\n self,\n qualification_name: str\n) -> Union[mephisto.data_model.qualification.GrantedQualification, NoneType]", "funcdef": "def"}, "mephisto.data_model.worker.Worker.is_disqualified": {"fullname": "mephisto.data_model.worker.Worker.is_disqualified", "modulename": "mephisto.data_model.worker", "qualname": "Worker.is_disqualified", "type": "function", "doc": "

Find out if the given worker has been disqualified by the given qualification

\n\n

Returns True if the qualification exists and has a falsey value\nReturns False if the qualification doesn't exist or has a truthy value

\n", "signature": "(self, qualification_name: str)", "funcdef": "def"}, "mephisto.data_model.worker.Worker.is_qualified": {"fullname": "mephisto.data_model.worker.Worker.is_qualified", "modulename": "mephisto.data_model.worker", "qualname": "Worker.is_qualified", "type": "function", "doc": "

Find out if the given worker has qualified by the given qualification

\n\n

Returns True if the qualification exists and is truthy value\nReturns False if the qualification doesn't exist or falsey value

\n", "signature": "(self, qualification_name: str)", "funcdef": "def"}, "mephisto.data_model.worker.Worker.revoke_qualification": {"fullname": "mephisto.data_model.worker.Worker.revoke_qualification", "modulename": "mephisto.data_model.worker", "qualname": "Worker.revoke_qualification", "type": "function", "doc": "

Remove this user's qualification if it exists

\n\n

Returns True if removal happens locally and externally, False if an exception\nhappens with the crowd provider

\n", "signature": "(self, qualification_name) -> bool", "funcdef": "def"}, "mephisto.data_model.worker.Worker.grant_qualification": {"fullname": "mephisto.data_model.worker.Worker.grant_qualification", "modulename": "mephisto.data_model.worker", "qualname": "Worker.grant_qualification", "type": "function", "doc": "

Grant a positive or negative qualification to this worker

\n\n

Returns True if granting happens locally and externally, False if an exception\nhappens with the crowd provider

\n", "signature": "(self, qualification_name: str, value: int = 1, skip_crowd=False)", "funcdef": "def"}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"fullname": "mephisto.data_model.worker.Worker.grant_crowd_qualification", "modulename": "mephisto.data_model.worker", "qualname": "Worker.grant_crowd_qualification", "type": "function", "doc": "

Grant a qualification by the given name to this worker

\n\n

If the CrowdProvider has a notion of qualifications, they can be granted\nin sync with Mephisto's qualifications

\n", "signature": "(self, qualification_name: str, value: int = 1) -> None", "funcdef": "def"}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"fullname": "mephisto.data_model.worker.Worker.revoke_crowd_qualification", "modulename": "mephisto.data_model.worker", "qualname": "Worker.revoke_crowd_qualification", "type": "function", "doc": "

Revoke the qualification by the given name from this worker

\n\n

If the CrowdProvider has a notion of qualifications, they can be revoked\nin sync with Mephisto's qualifications

\n", "signature": "(self, qualification_name: str) -> None", "funcdef": "def"}, "mephisto.data_model.worker.Worker.bonus_worker": {"fullname": "mephisto.data_model.worker.Worker.bonus_worker", "modulename": "mephisto.data_model.worker", "qualname": "Worker.bonus_worker", "type": "function", "doc": "

Bonus this worker for work any reason. Return success of bonus

\n", "signature": "(\n self,\n amount: float,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.data_model.worker.Worker.block_worker": {"fullname": "mephisto.data_model.worker.Worker.block_worker", "modulename": "mephisto.data_model.worker", "qualname": "Worker.block_worker", "type": "function", "doc": "

Block this worker for a specified reason. Return success of block

\n", "signature": "(\n self,\n reason: str,\n unit: Union[mephisto.data_model.unit.Unit, NoneType] = None,\n requester: Union[mephisto.data_model.requester.Requester, NoneType] = None\n) -> Tuple[bool, str]", "funcdef": "def"}, "mephisto.data_model.worker.Worker.unblock_worker": {"fullname": "mephisto.data_model.worker.Worker.unblock_worker", "modulename": "mephisto.data_model.worker", "qualname": "Worker.unblock_worker", "type": "function", "doc": "

unblock a blocked worker for the specified reason

\n", "signature": "(\n self,\n reason: str,\n requester: mephisto.data_model.requester.Requester\n) -> bool", "funcdef": "def"}, "mephisto.data_model.worker.Worker.is_blocked": {"fullname": "mephisto.data_model.worker.Worker.is_blocked", "modulename": "mephisto.data_model.worker", "qualname": "Worker.is_blocked", "type": "function", "doc": "

Determine if a worker is blocked

\n", "signature": "(self, requester: mephisto.data_model.requester.Requester) -> bool", "funcdef": "def"}, "mephisto.data_model.worker.Worker.is_eligible": {"fullname": "mephisto.data_model.worker.Worker.is_eligible", "modulename": "mephisto.data_model.worker", "qualname": "Worker.is_eligible", "type": "function", "doc": "

Determine if this worker is eligible for the given task run

\n", "signature": "(self, task_run: mephisto.data_model.task_run.TaskRun) -> bool", "funcdef": "def"}, "mephisto.data_model.worker.Worker.register": {"fullname": "mephisto.data_model.worker.Worker.register", "modulename": "mephisto.data_model.worker", "qualname": "Worker.register", "type": "function", "doc": "

Register this worker with the crowdprovider, if necessary

\n", "signature": "(self, args: Union[Dict[str, str], NoneType] = None) -> None", "funcdef": "def"}, "mephisto.data_model.worker.Worker.new": {"fullname": "mephisto.data_model.worker.Worker.new", "modulename": "mephisto.data_model.worker", "qualname": "Worker.new", "type": "function", "doc": "

Create a new worker attached to the given identifier, assuming it doesn't already\nexist in the database.

\n\n

Implementation should return the result of _register_worker when sure the worker\ncan be successfully created to have it put into the db.

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n worker_name: str\n) -> mephisto.data_model.worker.Worker", "funcdef": "def"}, "mephisto.operations": {"fullname": "mephisto.operations", "modulename": "mephisto.operations", "type": "module", "doc": "

Mephisto Operations

\n\n

The contents of the operations folder comprise controllers for launching and monitoring tasks, as well as other classes that either operate on the data model or support the mid level of Mephisto's design. Each has a high level responsibility, detailed below. Within these classes there's something of a heirarchy depending on the amount of underlying infrastructure that a class is built upon.

\n\n

High-level controller components

\n\n

This level of components is reserved for modules that operate on the highest level of the Mephisto heirarchy. These should be either directly usable, or easy to bundle into scripts for the client/api.

\n\n
    \n
  • Operator: High-level class responsible for launching and monitoring a TaskRun. Generally initialized using a TaskConfig and the launch_task_run method.
  • \n
\n\n

At the moment only the Operator exists in this level, as the module that manages the process of launching and monitoring a complete data collection job. Modules on a similar level of complexity may be written for the review flow, and for packaging data for release.

\n\n

Mid-level connecting components

\n\n

These components are responsible for tying some of the underlying data model components to the reality of what they represent. They ensure that tasks remain in sync with what is actually happening, such that the content on Mephisto matches what is present on crowd providers and architects, and to some degree to blueprints.

\n\n
    \n
  • ClientIOHandler: Responsible for processing incoming packets from clients and directing them to the right place. Also ensures that reconnecting workers are directed to the correct agents. The ClientIOHandler acts as the bridge between Architects and Blueprints.
  • \n
  • WorkerPool: Responsible for following the status of a worker from the point they attempt to accept a Unit until the Unit is either completed or returned. This includes spawning the threads that watch specific Assignment's or Unit's, evaluating onboarding and qualifications.
  • \n
  • registry.py: Reponsible for keeping track of instances of all of the Mephisto core abstractions, such that the system is able to refer to them just by name.
  • \n
  • TaskLauncher: Responsible for moving through an iterator or generator of assignments and units to be created, first creating the local Mephisto state to represent them and then later leveraging the CrowdProvider to launch them. Also ensures certain configuration invariants hold, such as a maximum number of concurrent tasks available.
  • \n
\n\n

Low-level Mephisto infra

\n\n

These modules contain functionality that is used to condense shared behavior from various parts of the Mephisto codebase into standard functionality and utilities.

\n\n
    \n
  • config_handler.py: Functions responsible for providing a consistent interface into a user's configuration file for Mephisto, stored at ~/.mephisto/config.yml.
  • \n
  • hydra_config.py: Classes and functionality responsible for ensuring that Mephisto operates well using Hydra, including base classes to build Hydra structured configs from (such as the TaskConfig) and methods to simplify interacting with Hydra in the codebase.
  • \n
  • logger_core.py: Helpers to simplify the process of generating unique loggers and logging configuration for various parts of Mephisto. (Much still to be done here).
  • \n
\n\n

Operator

\n\n

The Operator is responsible for actually coordinating launching tasks. This is managed using the launch_task_run function. It takes in a Hydra DictConfig of arguments corresponding to the Blueprint, Architect, and CrowdProvider of choice. It can also take a SharedTaskState object to pass information that wouldn't normally be able to be parsed on the command line, or where it can only be extracted at runtime.

\n\n

One important extra argument is SharedTaskState.qualifications, which allows configuring a task with requirements for workers to be eligibible to work on the task. Functionality for this can be seen in data_model.qualifications, with examples in how operator handles the block_qualification.

\n\n

The lifecycle of an operator is to launch as many LiveTaskRuns as desired using the launch_task_run function, and then to watch over their progress using the wait_for_runs_then_shutdown function. These methods cover the full requirements for launching and monitoring a job.

\n\n

If wait_for_runs_then_shutdown is not used, it's always important to call the shutdown methods whenever an operator has been created. While tasks are underway, a user can use get_running_task_runs to see the status of things that are currently running. Once there are no running task runs, the Operator can be told to shut down.

\n\n

ClientIOHandler

\n\n

The ClientIOHandler's primary responsiblity is to abstract the remote nature of Mephisto Workers and Agents to allow them to directly act on the local maching. It is the layer that abstracts humans and human work into Workers and Agents that take actions. To that end, it has to set up a socket to connect to the task server, poll status on any agents currently working on tasks, and process incoming agent actions over the socket to put them into the Agent so that a task can use the data.

\n\n

When provided with details of a LiveTaskRun, the associated Architect tells the ClientIOHandler where the server(s) that agents are communicating with is(/are) running. Then on initialization, Channel can be opened for each of these servers.

\n\n

Once this connection is established:

\n\n
    \n
  • Incoming messages from the server (which represent actions taken by human agents) are passed to the pending_actions queue of the Agent that corresponds with that human agent. Future calls to Agent.get_live_update() will pop off from this queue.
  • \n
  • Calls to Agent.observe() will push the message through to the appropriate Channel's sending queue immediately.
  • \n
  • The ClientIOHandler should also be querying for Agent's status and pushing responses to the WorkerPool to handle updates.
  • \n
\n\n

WorkerPool

\n\n

The WorkerPool is responsible for placing workers into appropriate Agents after finding Units they are eligible for, and passing off task execution to a Blueprint's TaskRunner. It also monitors changes to agent status.

\n\n

In order to properly determine eligibility and launch tasks, the WorkerPool relies on the Blueprint and CrowdProvider for the registered LiveTaskRun:

\n\n
    \n
  • The Blueprint contains details about the relevant task run, and is used for properly registering a new Agent the correct Unit. For this, in _register_agent it gets all Units that a worker is eligible for, reserves one, and then handles creating a new Agent out of the given Worker-Unit pair.
  • \n
  • The CrowdProvider is also used during the registration process. In the first part it ensures that upon a first connect by a new person, a corresponding Worker is created to keep records for that worker (_register_worker). Later it is used during _register_agent to ensure that the Agent class used is associated with the correct CrowdProvider and has its relevant abstractions.
  • \n
\n\n

From this point, all interactions are handled from the perspective of pure Mephisto Agents, and the remaining responsibilities of the WorkerPool are to ensure that, from the perspective of a Blueprint's TaskRunner, the Agents local python state is entirely representative of the actual state of the human worker in the task.

\n\n

registry

\n\n

The registry.py file contains functions required for establishing a registry of abstraction modules for Mephisto to refer to. This allows Mephisto to properly re-initialize classes and get information for data stored in the MephistoDB without needing to store pickled modules, or information beyond the registration key.

\n\n

The file exposes the register_mephisto_abstraction class decorator, which ensures that on import a specific module will be added to the given registry. The fill_registries function automatically populates the registry dicts with all of the relevant modules in Mephisto, though this should likely be expanded to allow users or repositories to mark or register their own Mephisto implementations.

\n\n

Mephisto classes can then use the get_<abstraction>_from_type methods from the file to retrieve the specific modules to be initialized for the given abstraction type string.

\n\n

TaskLauncher

\n\n

The TaskLauncher class is a fairly lightweight class responsible for handling the process of launching units. A TaskLauncher is created for a specific TaskRun, and provided with assignment_data for that full task run. It creates Assignments and Units for the TaskRun, and packages the expected data into the Assignment. When a task is ready to go live, one calls launch_units(url) with the url that the task should be pointed to. If units need to be expired (such as during a shutdown), expire_units handles this for all units created for the given TaskRun.

\n\n

TaskLaunchers will parse the TaskRun's TaskRunArgs to know what parameters to set. This info should be used to initialize the assignments and the units as specified. The TaskLauncher can also be used to limit the number of currently available tasks using the max_num_concurrent_units argument, which prevents too many tasks from running at the same time, potentially overrunning the TaskRunner that the Blueprint has provided.

\n\n

config_handler.py

\n\n

The methods in this module standardize how Mephisto interacts with the user configurations options for the whole system. These are stored in \"~/.mephisto/config.yml\" at the moment. The structure of the config file is such that it subdivides values to store into sections containing keys. Those keys can contain any value, but writing and reading data is done by referring to the section and the key for the data being written or read.

\n\n

The following methods are defined:

\n\n
    \n
  • get_config: loads all of the contents of the mephisto config file.
  • \n
  • write_config: Writes an entirely new config to file
  • \n
  • init_config: Tries to create an initial configuration file if none exists
  • \n
  • add_config_arg: Sets the value for just one configuration arg in the whole set.
  • \n
  • get_config_arg: Returns a specific argument value from a section of the config.
  • \n
\n\n

hydra_config.py

\n\n

The hydra config module contains a number of classes and methods to make interfacing with hydra a little more convenient for Mephisto and its users. It defines common structured config types, currently the MephistoConfig and the TaskConfig, for use in user code. It also defines methods for handling registering those structured configs under the expected names, which the registry relies on. Lastly, it provides the register_script_config method, which lets a user define a structured config for use in their scripts without needing to initialize a hydra ConfigStore.

\n"}, "mephisto.operations.client_io_handler": {"fullname": "mephisto.operations.client_io_handler", "modulename": "mephisto.operations.client_io_handler", "type": "module", "doc": "

\n"}, "mephisto.operations.client_io_handler.ClientIOHandler": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler", "type": "class", "doc": "

This class is responsible for managing all of the incoming and outgoing messages\nbetween the Mephisto backend, the router, and clients. It is tightly coupled with\nthe Architect abstraction, and uses components of that API to send and receive\nmessages, but operates on the level of message parsing and distribution logic.

\n"}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.__init__", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.__init__", "type": "function", "doc": "

\n", "signature": "(self, db: mephisto.abstractions.database.MephistoDB)", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.log_metrics_for_packet", "type": "function", "doc": "

Log the full metrics for the provided packet, using now as the expected response time

\n", "signature": "(self, packet: mephisto.data_model.packet.Packet) -> None", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.register_run", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.register_run", "type": "function", "doc": "

Register a live run for this io handler

\n", "signature": "(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.get_live_run", "type": "function", "doc": "

Get the associated live run for this handler, asserting it's set

\n", "signature": "(self) -> mephisto.operations.datatypes.LiveTaskRun", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.launch_channels", "type": "function", "doc": "

Launch and register all of the channels for this live run to this IO handler

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.associate_agent_with_registration", "type": "function", "doc": "

Given an agent id and request id, registers the agent id to the channel\nthat the request was made from

\n", "signature": "(self, agent_id: str, request_id: str, registration_id: str) -> None", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.enqueue_agent_details", "type": "function", "doc": "

Synchronous method to enqueue a message sending the given agent details

\n", "signature": "(self, request_id: str, additional_data: Dict[str, Any])", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.send_live_update", "type": "function", "doc": "

Send a live data packet to the given agent id

\n", "signature": "(self, agent_id: str, data: Dict[str, Any])", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.send_status_update", "type": "function", "doc": "

Update the status for the given agent

\n", "signature": "(self, agent_id: str, status: str)", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.process_outgoing_queue", "type": "function", "doc": "

Sends messages from the given list until it is empty

\n", "signature": "(self, message_queue: 'Queue[Packet]') -> None", "funcdef": "def"}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"fullname": "mephisto.operations.client_io_handler.ClientIOHandler.shutdown", "modulename": "mephisto.operations.client_io_handler", "qualname": "ClientIOHandler.shutdown", "type": "function", "doc": "

Close any channels related to a LiveTaskRun, clean up any resources

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.config_handler": {"fullname": "mephisto.operations.config_handler", "modulename": "mephisto.operations.config_handler", "type": "module", "doc": "

\n"}, "mephisto.operations.config_handler.get_raw_config": {"fullname": "mephisto.operations.config_handler.get_raw_config", "modulename": "mephisto.operations.config_handler", "qualname": "get_raw_config", "type": "function", "doc": "

Returns the raw string config as written in the YAML config file

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.operations.config_handler.get_config": {"fullname": "mephisto.operations.config_handler.get_config", "modulename": "mephisto.operations.config_handler", "qualname": "get_config", "type": "function", "doc": "

Get the data out of the YAML config file

\n", "signature": "() -> Dict[str, Any]", "funcdef": "def"}, "mephisto.operations.config_handler.write_config": {"fullname": "mephisto.operations.config_handler.write_config", "modulename": "mephisto.operations.config_handler", "qualname": "write_config", "type": "function", "doc": "

Write the given dictionary to the config yaml

\n", "signature": "(config_data: Dict[str, Any])", "funcdef": "def"}, "mephisto.operations.config_handler.init_config": {"fullname": "mephisto.operations.config_handler.init_config", "modulename": "mephisto.operations.config_handler", "qualname": "init_config", "type": "function", "doc": "

\n", "signature": "() -> None", "funcdef": "def"}, "mephisto.operations.config_handler.add_config_arg": {"fullname": "mephisto.operations.config_handler.add_config_arg", "modulename": "mephisto.operations.config_handler", "qualname": "add_config_arg", "type": "function", "doc": "

Add an argument to the YAML config, overwriting existing

\n", "signature": "(section: str, key: str, value: Any) -> None", "funcdef": "def"}, "mephisto.operations.config_handler.get_config_arg": {"fullname": "mephisto.operations.config_handler.get_config_arg", "modulename": "mephisto.operations.config_handler", "qualname": "get_config_arg", "type": "function", "doc": "

Get an argument from the YAML config. Return None if it doesn't exist

\n", "signature": "(section: str, key: str) -> Any", "funcdef": "def"}, "mephisto.operations.datatypes": {"fullname": "mephisto.operations.datatypes", "modulename": "mephisto.operations.datatypes", "type": "module", "doc": "

This file contains the various datatypes that are used on the operations layer\nto facilitate executing task runs.

\n"}, "mephisto.operations.datatypes.LoopWrapper": {"fullname": "mephisto.operations.datatypes.LoopWrapper", "modulename": "mephisto.operations.datatypes", "qualname": "LoopWrapper", "type": "class", "doc": "

\n"}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"fullname": "mephisto.operations.datatypes.LoopWrapper.__init__", "modulename": "mephisto.operations.datatypes", "qualname": "LoopWrapper.__init__", "type": "function", "doc": "

\n", "signature": "(self, event_loop: asyncio.events.AbstractEventLoop)", "funcdef": "def"}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"fullname": "mephisto.operations.datatypes.LoopWrapper.set_active_thread", "modulename": "mephisto.operations.datatypes", "qualname": "LoopWrapper.set_active_thread", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"fullname": "mephisto.operations.datatypes.LoopWrapper.execute_coro", "modulename": "mephisto.operations.datatypes", "qualname": "LoopWrapper.execute_coro", "type": "function", "doc": "

Execute this coroutine in the loop, regardless of callsite

\n", "signature": "(self, coro) -> None", "funcdef": "def"}, "mephisto.operations.datatypes.LiveTaskRun": {"fullname": "mephisto.operations.datatypes.LiveTaskRun", "modulename": "mephisto.operations.datatypes", "qualname": "LiveTaskRun", "type": "class", "doc": "

LiveTaskRun(task_run: 'TaskRun', architect: 'Architect', blueprint: 'Blueprint', provider: 'CrowdProvider', qualifications: List[Dict[str, Any]], task_runner: 'TaskRunner', task_launcher: 'TaskLauncher', client_io: 'ClientIOHandler', worker_pool: 'WorkerPool', loop_wrap: mephisto.operations.datatypes.LoopWrapper, force_shutdown: bool = False)

\n"}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"fullname": "mephisto.operations.datatypes.LiveTaskRun.__init__", "modulename": "mephisto.operations.datatypes", "qualname": "LiveTaskRun.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n task_run: mephisto.data_model.task_run.TaskRun,\n architect: mephisto.abstractions.architect.Architect,\n blueprint: mephisto.abstractions.blueprint.Blueprint,\n provider: mephisto.abstractions.crowd_provider.CrowdProvider,\n qualifications: List[Dict[str, Any]],\n task_runner: mephisto.abstractions._subcomponents.task_runner.TaskRunner,\n task_launcher: mephisto.operations.task_launcher.TaskLauncher,\n client_io: mephisto.operations.client_io_handler.ClientIOHandler,\n worker_pool: mephisto.operations.worker_pool.WorkerPool,\n loop_wrap: mephisto.operations.datatypes.LoopWrapper,\n force_shutdown: bool = False\n)", "funcdef": "def"}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"fullname": "mephisto.operations.datatypes.LiveTaskRun.force_shutdown", "modulename": "mephisto.operations.datatypes", "qualname": "LiveTaskRun.force_shutdown", "type": "variable", "doc": "

\n", "annotation": ": bool", "default_value": " = False"}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"fullname": "mephisto.operations.datatypes.LiveTaskRun.shutdown", "modulename": "mephisto.operations.datatypes", "qualname": "LiveTaskRun.shutdown", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.operations.datatypes.WorkerFailureReasons": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons", "type": "class", "doc": "

\n"}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.__init__", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.__init__", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.NOT_QUALIFIED", "type": "variable", "doc": "

\n", "default_value": " = 'You are not currently qualified to work on this task...'"}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.NO_AVAILABLE_UNITS", "type": "variable", "doc": "

\n", "default_value": " = 'There is currently no available work, please try again later...'"}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.TOO_MANY_CONCURRENT", "type": "variable", "doc": "

\n", "default_value": " = 'You are currently working on too many tasks concurrently to accept another, please finish your current work.'"}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.MAX_FOR_TASK", "type": "variable", "doc": "

\n", "default_value": " = 'You have already completed the maximum amount of tasks the requester has set for this task.'"}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"fullname": "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING", "modulename": "mephisto.operations.datatypes", "qualname": "WorkerFailureReasons.TASK_MISSING", "type": "variable", "doc": "

\n", "default_value": " = 'You appear to have already completed this task, or have disconnected long enough for your session to clear...'"}, "mephisto.operations.hydra_config": {"fullname": "mephisto.operations.hydra_config", "modulename": "mephisto.operations.hydra_config", "type": "module", "doc": "

\n"}, "mephisto.operations.hydra_config.DatabaseArgs": {"fullname": "mephisto.operations.hydra_config.DatabaseArgs", "modulename": "mephisto.operations.hydra_config", "qualname": "DatabaseArgs", "type": "class", "doc": "

DatabaseArgs(_database_type: str = 'singleton')

\n"}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"fullname": "mephisto.operations.hydra_config.DatabaseArgs.__init__", "modulename": "mephisto.operations.hydra_config", "qualname": "DatabaseArgs.__init__", "type": "function", "doc": "

\n", "signature": "(self, _database_type: str = 'singleton')", "funcdef": "def"}, "mephisto.operations.hydra_config.MephistoConfig": {"fullname": "mephisto.operations.hydra_config.MephistoConfig", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig", "type": "class", "doc": "

MephistoConfig(blueprint: mephisto.abstractions.blueprint.BlueprintArgs = '???', provider: mephisto.abstractions.crowd_provider.ProviderArgs = '???', architect: mephisto.abstractions.architect.ArchitectArgs = '???', task: mephisto.data_model.task_run.TaskRunArgs = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database: mephisto.operations.hydra_config.DatabaseArgs = DatabaseArgs(_database_type='singleton'), log_level: str = 'info')

\n"}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.__init__", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n blueprint: mephisto.abstractions.blueprint.BlueprintArgs = '???',\n provider: mephisto.abstractions.crowd_provider.ProviderArgs = '???',\n architect: mephisto.abstractions.architect.ArchitectArgs = '???',\n task: mephisto.data_model.task_run.TaskRunArgs = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600),\n database: mephisto.operations.hydra_config.DatabaseArgs = DatabaseArgs(_database_type='singleton'),\n log_level: str = 'info'\n)", "funcdef": "def"}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.blueprint", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.blueprint", "type": "variable", "doc": "

\n", "annotation": ": mephisto.abstractions.blueprint.BlueprintArgs", "default_value": " = '???'"}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.provider", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.provider", "type": "variable", "doc": "

\n", "annotation": ": mephisto.abstractions.crowd_provider.ProviderArgs", "default_value": " = '???'"}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.architect", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.architect", "type": "variable", "doc": "

\n", "annotation": ": mephisto.abstractions.architect.ArchitectArgs", "default_value": " = '???'"}, "mephisto.operations.hydra_config.MephistoConfig.task": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.task", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.task", "type": "variable", "doc": "

\n", "annotation": ": mephisto.data_model.task_run.TaskRunArgs", "default_value": " = TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600)"}, "mephisto.operations.hydra_config.MephistoConfig.database": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.database", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.database", "type": "variable", "doc": "

\n", "annotation": ": mephisto.operations.hydra_config.DatabaseArgs", "default_value": " = DatabaseArgs(_database_type='singleton')"}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"fullname": "mephisto.operations.hydra_config.MephistoConfig.log_level", "modulename": "mephisto.operations.hydra_config", "qualname": "MephistoConfig.log_level", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = 'info'"}, "mephisto.operations.hydra_config.TaskConfig": {"fullname": "mephisto.operations.hydra_config.TaskConfig", "modulename": "mephisto.operations.hydra_config", "qualname": "TaskConfig", "type": "class", "doc": "

TaskConfig(mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', num_tasks: int = 5)

\n"}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"fullname": "mephisto.operations.hydra_config.TaskConfig.__init__", "modulename": "mephisto.operations.hydra_config", "qualname": "TaskConfig.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'),\n task_dir: str = '/Users/jju/miniconda3/envs/py38/bin',\n num_tasks: int = 5\n)", "funcdef": "def"}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"fullname": "mephisto.operations.hydra_config.TaskConfig.mephisto", "modulename": "mephisto.operations.hydra_config", "qualname": "TaskConfig.mephisto", "type": "variable", "doc": "

\n", "annotation": ": mephisto.operations.hydra_config.MephistoConfig", "default_value": " = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info')"}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"fullname": "mephisto.operations.hydra_config.TaskConfig.task_dir", "modulename": "mephisto.operations.hydra_config", "qualname": "TaskConfig.task_dir", "type": "variable", "doc": "

\n", "annotation": ": str", "default_value": " = '/Users/jju/miniconda3/envs/py38/bin'"}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"fullname": "mephisto.operations.hydra_config.TaskConfig.num_tasks", "modulename": "mephisto.operations.hydra_config", "qualname": "TaskConfig.num_tasks", "type": "variable", "doc": "

\n", "annotation": ": int", "default_value": " = 5"}, "mephisto.operations.hydra_config.register_abstraction_config": {"fullname": "mephisto.operations.hydra_config.register_abstraction_config", "modulename": "mephisto.operations.hydra_config", "qualname": "register_abstraction_config", "type": "function", "doc": "

\n", "signature": "(name: str, node: Any, abstraction_type: str)", "funcdef": "def"}, "mephisto.operations.hydra_config.build_default_task_config": {"fullname": "mephisto.operations.hydra_config.build_default_task_config", "modulename": "mephisto.operations.hydra_config", "qualname": "build_default_task_config", "type": "function", "doc": "

\n", "signature": "(conf_name: str) -> Type[mephisto.operations.hydra_config.TaskConfig]", "funcdef": "def"}, "mephisto.operations.hydra_config.RunScriptConfig": {"fullname": "mephisto.operations.hydra_config.RunScriptConfig", "modulename": "mephisto.operations.hydra_config", "qualname": "RunScriptConfig", "type": "class", "doc": "

RunScriptConfig(mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'), task_dir: str = '/Users/jju/miniconda3/envs/py38/bin', num_tasks: int = 5)

\n", "bases": "TaskConfig"}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"fullname": "mephisto.operations.hydra_config.RunScriptConfig.__init__", "modulename": "mephisto.operations.hydra_config", "qualname": "RunScriptConfig.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n mephisto: mephisto.operations.hydra_config.MephistoConfig = MephistoConfig(blueprint='???', provider='???', architect='???', task=TaskRunArgs(task_name='???', task_title='???', task_description='???', task_reward='???', task_tags='???', assignment_duration_in_seconds=1800, allowed_concurrent=0, maximum_units_per_worker=0, max_num_concurrent_units=0, submission_timeout=600), database=DatabaseArgs(_database_type='singleton'), log_level='info'),\n task_dir: str = '/Users/jju/miniconda3/envs/py38/bin',\n num_tasks: int = 5\n)", "funcdef": "def"}, "mephisto.operations.hydra_config.initialize_named_configs": {"fullname": "mephisto.operations.hydra_config.initialize_named_configs", "modulename": "mephisto.operations.hydra_config", "qualname": "initialize_named_configs", "type": "function", "doc": "

Functionality to register the core mephisto configuration structure. Must be done in __init__

\n", "signature": "()", "funcdef": "def"}, "mephisto.operations.hydra_config.register_script_config": {"fullname": "mephisto.operations.hydra_config.register_script_config", "modulename": "mephisto.operations.hydra_config", "qualname": "register_script_config", "type": "function", "doc": "

\n", "signature": "(name: str, module: Any)", "funcdef": "def"}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"fullname": "mephisto.operations.hydra_config.check_for_hydra_compat", "modulename": "mephisto.operations.hydra_config", "qualname": "check_for_hydra_compat", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.operations.hydra_config.get_dict_from_field": {"fullname": "mephisto.operations.hydra_config.get_dict_from_field", "modulename": "mephisto.operations.hydra_config", "qualname": "get_dict_from_field", "type": "function", "doc": "

Extract all of the arguments from an argument group\nand return a dict mapping from argument dest to argument dict

\n", "signature": "(in_field: dataclasses.Field) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"fullname": "mephisto.operations.hydra_config.get_extra_argument_dicts", "modulename": "mephisto.operations.hydra_config", "qualname": "get_extra_argument_dicts", "type": "function", "doc": "

Produce the argument dicts for the given customizable class\n(Blueprint, Architect, etc)

\n", "signature": "(customizable_class: Any) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.operations.hydra_config.get_task_state_dicts": {"fullname": "mephisto.operations.hydra_config.get_task_state_dicts", "modulename": "mephisto.operations.hydra_config", "qualname": "get_task_state_dicts", "type": "function", "doc": "

Return the SharedTaskState configurable class for the given blueprint

\n", "signature": "(\n customizable_class: type[mephisto.abstractions.blueprint.Blueprint]\n) -> List[Dict[str, Any]]", "funcdef": "def"}, "mephisto.operations.hydra_config.parse_arg_dict": {"fullname": "mephisto.operations.hydra_config.parse_arg_dict", "modulename": "mephisto.operations.hydra_config", "qualname": "parse_arg_dict", "type": "function", "doc": "

Get the ArgsClass for a class, then parse the given args using\nit. Return the DictConfig of the finalized namespace.

\n", "signature": "(\n customizable_class: Any,\n args: Dict[str, Any]\n) -> omegaconf.dictconfig.DictConfig", "funcdef": "def"}, "mephisto.operations.operator": {"fullname": "mephisto.operations.operator", "modulename": "mephisto.operations.operator", "type": "module", "doc": "

\n"}, "mephisto.operations.operator.Operator": {"fullname": "mephisto.operations.operator.Operator", "modulename": "mephisto.operations.operator", "qualname": "Operator", "type": "class", "doc": "

Acting as the controller behind the curtain, the Operator class\nis responsible for managing the knobs, switches, and dials\nof the rest of the Mephisto architecture.

\n\n

Most convenience scripts for using Mephisto will use an Operator\nto get the job done, though this class itself is also a\ngood model to use to understand how the underlying\narchitecture works in order to build custom jobs or workflows.

\n"}, "mephisto.operations.operator.Operator.__init__": {"fullname": "mephisto.operations.operator.Operator.__init__", "modulename": "mephisto.operations.operator", "qualname": "Operator.__init__", "type": "function", "doc": "

\n", "signature": "(self, db: mephisto.abstractions.database.MephistoDB)", "funcdef": "def"}, "mephisto.operations.operator.Operator.get_running_task_runs": {"fullname": "mephisto.operations.operator.Operator.get_running_task_runs", "modulename": "mephisto.operations.operator", "qualname": "Operator.get_running_task_runs", "type": "function", "doc": "

Return the currently running task runs and their handlers

\n", "signature": "(self) -> Dict[str, mephisto.operations.datatypes.LiveTaskRun]", "funcdef": "def"}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"fullname": "mephisto.operations.operator.Operator.validate_and_run_config_or_die", "modulename": "mephisto.operations.operator", "qualname": "Operator.validate_and_run_config_or_die", "type": "function", "doc": "

\n", "signature": "(\n self,\n run_config: omegaconf.dictconfig.DictConfig,\n shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None\n) -> str", "funcdef": "def"}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"fullname": "mephisto.operations.operator.Operator.launch_task_run_or_die", "modulename": "mephisto.operations.operator", "qualname": "Operator.launch_task_run_or_die", "type": "function", "doc": "

Parse the given arguments and launch a job.

\n", "signature": "(\n self,\n run_config: omegaconf.dictconfig.DictConfig,\n shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None\n) -> str", "funcdef": "def"}, "mephisto.operations.operator.Operator.force_shutdown": {"fullname": "mephisto.operations.operator.Operator.force_shutdown", "modulename": "mephisto.operations.operator", "qualname": "Operator.force_shutdown", "type": "function", "doc": "

Force a best-effort shutdown of everything, letting no individual\nshutdown step suspend for more than the timeout before moving on.

\n\n

Skips waiting for in-flight assignments to rush the shutdown.

\n\n

* Should only be used in sandbox or test environments. *

\n", "signature": "(self, timeout=5)", "funcdef": "def"}, "mephisto.operations.operator.Operator.shutdown_async": {"fullname": "mephisto.operations.operator.Operator.shutdown_async", "modulename": "mephisto.operations.operator", "qualname": "Operator.shutdown_async", "type": "function", "doc": "

Shut down the asyncio parts of the Operator

\n", "signature": "(self)", "funcdef": "async def"}, "mephisto.operations.operator.Operator.shutdown": {"fullname": "mephisto.operations.operator.Operator.shutdown", "modulename": "mephisto.operations.operator", "qualname": "Operator.shutdown", "type": "function", "doc": "

\n", "signature": "(self, skip_input=True)", "funcdef": "def"}, "mephisto.operations.operator.Operator.validate_and_run_config": {"fullname": "mephisto.operations.operator.Operator.validate_and_run_config", "modulename": "mephisto.operations.operator", "qualname": "Operator.validate_and_run_config", "type": "function", "doc": "

\n", "signature": "(\n self,\n run_config: omegaconf.dictconfig.DictConfig,\n shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None\n) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.operations.operator.Operator.launch_task_run": {"fullname": "mephisto.operations.operator.Operator.launch_task_run", "modulename": "mephisto.operations.operator", "qualname": "Operator.launch_task_run", "type": "function", "doc": "

Wrapper around validate_and_run_config_or_die that prints errors on\nfailure, rather than throwing. Generally for use in scripts.

\n", "signature": "(\n self,\n run_config: omegaconf.dictconfig.DictConfig,\n shared_state: Union[mephisto.abstractions.blueprint.SharedTaskState, NoneType] = None\n) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.operations.operator.Operator.print_run_details": {"fullname": "mephisto.operations.operator.Operator.print_run_details", "modulename": "mephisto.operations.operator", "qualname": "Operator.print_run_details", "type": "function", "doc": "

Print details about running tasks

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"fullname": "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown", "modulename": "mephisto.operations.operator", "qualname": "Operator.wait_for_runs_then_shutdown", "type": "function", "doc": "

Wait for task_runs to complete, and then shutdown.

\n\n

Set log_rate to get print statements of currently running tasks\nat the specified interval

\n", "signature": "(\n self,\n skip_input=False,\n log_rate: Union[int, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.operations.registry": {"fullname": "mephisto.operations.registry", "modulename": "mephisto.operations.registry", "type": "module", "doc": "

\n"}, "mephisto.operations.registry.BLUEPRINTS": {"fullname": "mephisto.operations.registry.BLUEPRINTS", "modulename": "mephisto.operations.registry", "qualname": "BLUEPRINTS", "type": "variable", "doc": "

\n", "annotation": ": dict[str, type[mephisto.abstractions.blueprint.Blueprint]]", "default_value": " = {'parlai_chat': , 'mock': , 'static_task': , 'remote_procedure': , 'static_react_task': }"}, "mephisto.operations.registry.ARCHITECTS": {"fullname": "mephisto.operations.registry.ARCHITECTS", "modulename": "mephisto.operations.registry", "qualname": "ARCHITECTS", "type": "variable", "doc": "

\n", "annotation": ": dict[str, type[mephisto.abstractions.architect.Architect]]", "default_value": " = {'mock': , 'local': , 'heroku': , 'ec2': }"}, "mephisto.operations.registry.PROVIDERS": {"fullname": "mephisto.operations.registry.PROVIDERS", "modulename": "mephisto.operations.registry", "qualname": "PROVIDERS", "type": "variable", "doc": "

\n", "annotation": ": dict[str, type[mephisto.abstractions.crowd_provider.CrowdProvider]]", "default_value": " = {'mock': , 'mturk': , 'mturk_sandbox': }"}, "mephisto.operations.registry.register_mephisto_abstraction": {"fullname": "mephisto.operations.registry.register_mephisto_abstraction", "modulename": "mephisto.operations.registry", "qualname": "register_mephisto_abstraction", "type": "function", "doc": "

Decorator method for classes that extend a mephisto abstraction, used\nto pull Mephisto abstractions out of anywhere that defines them.

\n", "signature": "()", "funcdef": "def"}, "mephisto.operations.registry.uses_mephisto": {"fullname": "mephisto.operations.registry.uses_mephisto", "modulename": "mephisto.operations.registry", "qualname": "uses_mephisto", "type": "function", "doc": "

Register a module as having defined classes for special Mephisto abstractions.\nShould be put in the __init__.py of the base module.

\n", "signature": "(module: Any)", "funcdef": "def"}, "mephisto.operations.registry.fill_registries": {"fullname": "mephisto.operations.registry.fill_registries", "modulename": "mephisto.operations.registry", "qualname": "fill_registries", "type": "function", "doc": "

Ensure that all of the required modules are picked up by the mephisto server

\n", "signature": "()", "funcdef": "def"}, "mephisto.operations.registry.get_crowd_provider_from_type": {"fullname": "mephisto.operations.registry.get_crowd_provider_from_type", "modulename": "mephisto.operations.registry", "qualname": "get_crowd_provider_from_type", "type": "function", "doc": "

Return the crowd provider class for the given string

\n", "signature": "(\n provider_type: str\n) -> type[mephisto.abstractions.crowd_provider.CrowdProvider]", "funcdef": "def"}, "mephisto.operations.registry.get_blueprint_from_type": {"fullname": "mephisto.operations.registry.get_blueprint_from_type", "modulename": "mephisto.operations.registry", "qualname": "get_blueprint_from_type", "type": "function", "doc": "

Return the blueprint class for the given string

\n", "signature": "(task_type: str) -> type[mephisto.abstractions.blueprint.Blueprint]", "funcdef": "def"}, "mephisto.operations.registry.get_architect_from_type": {"fullname": "mephisto.operations.registry.get_architect_from_type", "modulename": "mephisto.operations.registry", "qualname": "get_architect_from_type", "type": "function", "doc": "

Return the architect class for the given string

\n", "signature": "(\n architect_type: str\n) -> type[mephisto.abstractions.architect.Architect]", "funcdef": "def"}, "mephisto.operations.registry.get_valid_provider_types": {"fullname": "mephisto.operations.registry.get_valid_provider_types", "modulename": "mephisto.operations.registry", "qualname": "get_valid_provider_types", "type": "function", "doc": "

Return the valid provider types that are currently supported by\nthe mephisto framework

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.operations.registry.get_valid_blueprint_types": {"fullname": "mephisto.operations.registry.get_valid_blueprint_types", "modulename": "mephisto.operations.registry", "qualname": "get_valid_blueprint_types", "type": "function", "doc": "

Return the valid provider types that are currently supported by\nthe mephisto framework

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.operations.registry.get_valid_architect_types": {"fullname": "mephisto.operations.registry.get_valid_architect_types", "modulename": "mephisto.operations.registry", "qualname": "get_valid_architect_types", "type": "function", "doc": "

Return the valid provider types that are currently supported by\nthe mephisto framework

\n", "signature": "() -> List[str]", "funcdef": "def"}, "mephisto.operations.task_launcher": {"fullname": "mephisto.operations.task_launcher", "modulename": "mephisto.operations.task_launcher", "type": "module", "doc": "

\n"}, "mephisto.operations.task_launcher.GeneratorType": {"fullname": "mephisto.operations.task_launcher.GeneratorType", "modulename": "mephisto.operations.task_launcher", "qualname": "GeneratorType", "type": "class", "doc": "

An enumeration.

\n", "bases": "enum.Enum"}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"fullname": "mephisto.operations.task_launcher.GeneratorType.NONE", "modulename": "mephisto.operations.task_launcher", "qualname": "GeneratorType.NONE", "type": "variable", "doc": "

\n", "default_value": " = "}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"fullname": "mephisto.operations.task_launcher.GeneratorType.UNIT", "modulename": "mephisto.operations.task_launcher", "qualname": "GeneratorType.UNIT", "type": "variable", "doc": "

\n", "default_value": " = "}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"fullname": "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT", "modulename": "mephisto.operations.task_launcher", "qualname": "GeneratorType.ASSIGNMENT", "type": "variable", "doc": "

\n", "default_value": " = "}, "mephisto.operations.task_launcher.TaskLauncher": {"fullname": "mephisto.operations.task_launcher.TaskLauncher", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher", "type": "class", "doc": "

This class is responsible for managing the process of registering\nand launching units, including the steps for pre-processing\ndata and storing them locally for assignments when appropriate.

\n"}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.__init__", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.__init__", "type": "function", "doc": "

Prepare the task launcher to get it ready to launch the assignments

\n", "signature": "(\n self,\n db: mephisto.abstractions.database.MephistoDB,\n task_run: mephisto.data_model.task_run.TaskRun,\n assignment_data_iterator: Iterable[mephisto.data_model.assignment.InitializationData],\n max_num_concurrent_units: int = 0\n)", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.create_assignments", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.create_assignments", "type": "function", "doc": "

Create an assignment and associated units for the generated assignment data

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.generate_units", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.generate_units", "type": "function", "doc": "

units generator which checks that only 'max_num_concurrent_units' running at the same time,\ni.e. in the LAUNCHED or ASSIGNED states

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.launch_units", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.launch_units", "type": "function", "doc": "

launch any units registered by this TaskLauncher

\n", "signature": "(self, url: str) -> None", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.launch_evaluation_unit", "type": "function", "doc": "

Launch a specific evaluation unit, used for quality control

\n", "signature": "(\n self,\n unit_data: Dict[str, Any],\n unit_type_index: int\n) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.launch_screening_unit", "type": "function", "doc": "

Launch a screening unit, which should never return to the pool

\n", "signature": "(self, unit_data: Dict[str, Any]) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.launch_gold_unit", "type": "function", "doc": "

Launch a screening unit, which should never return to the pool

\n", "signature": "(self, unit_data: Dict[str, Any]) -> mephisto.data_model.unit.Unit", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.get_assignments_are_all_created", "type": "function", "doc": "

\n", "signature": "(self) -> bool", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.expire_units", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.expire_units", "type": "function", "doc": "

Clean up all units on this TaskLauncher

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"fullname": "mephisto.operations.task_launcher.TaskLauncher.shutdown", "modulename": "mephisto.operations.task_launcher", "qualname": "TaskLauncher.shutdown", "type": "function", "doc": "

Clean up running threads for generating assignments and units

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.worker_pool": {"fullname": "mephisto.operations.worker_pool", "modulename": "mephisto.operations.worker_pool", "type": "module", "doc": "

\n"}, "mephisto.operations.worker_pool.OnboardingInfo": {"fullname": "mephisto.operations.worker_pool.OnboardingInfo", "modulename": "mephisto.operations.worker_pool", "qualname": "OnboardingInfo", "type": "class", "doc": "

OnboardingInfo(crowd_data: Dict[str, Any], request_id: str)

\n"}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"fullname": "mephisto.operations.worker_pool.OnboardingInfo.__init__", "modulename": "mephisto.operations.worker_pool", "qualname": "OnboardingInfo.__init__", "type": "function", "doc": "

\n", "signature": "(self, crowd_data: Dict[str, Any], request_id: str)", "funcdef": "def"}, "mephisto.operations.worker_pool.AgentDetails": {"fullname": "mephisto.operations.worker_pool.AgentDetails", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails", "type": "class", "doc": "

Class containing the information for a newly initialized frontend agent

\n"}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"fullname": "mephisto.operations.worker_pool.AgentDetails.__init__", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.__init__", "type": "function", "doc": "

\n", "signature": "(\n self,\n worker_id: Union[str, NoneType] = None,\n agent_id: Union[str, NoneType] = None,\n init_task_data: Union[Dict[str, Any], NoneType] = None,\n failure_reason: Union[str, NoneType] = None\n)", "funcdef": "def"}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"fullname": "mephisto.operations.worker_pool.AgentDetails.worker_id", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.worker_id", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = None"}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"fullname": "mephisto.operations.worker_pool.AgentDetails.agent_id", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.agent_id", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = None"}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"fullname": "mephisto.operations.worker_pool.AgentDetails.init_task_data", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.init_task_data", "type": "variable", "doc": "

\n", "annotation": ": Union[Dict[str, Any], NoneType]", "default_value": " = None"}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"fullname": "mephisto.operations.worker_pool.AgentDetails.failure_reason", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.failure_reason", "type": "variable", "doc": "

\n", "annotation": ": Union[str, NoneType]", "default_value": " = None"}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"fullname": "mephisto.operations.worker_pool.AgentDetails.to_dict", "modulename": "mephisto.operations.worker_pool", "qualname": "AgentDetails.to_dict", "type": "function", "doc": "

\n", "signature": "(self)", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool": {"fullname": "mephisto.operations.worker_pool.WorkerPool", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool", "type": "class", "doc": "

The WorkerPool is responsible for tracing the status and state of workers\nand agents that are actively engaged in Mephisto tasks for a given task run. It is\nresponsible for delegating to other classes and controllers on particular status\ntransitions.

\n"}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"fullname": "mephisto.operations.worker_pool.WorkerPool.__init__", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.__init__", "type": "function", "doc": "

\n", "signature": "(self, db: mephisto.abstractions.database.MephistoDB)", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"fullname": "mephisto.operations.worker_pool.WorkerPool.register_run", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.register_run", "type": "function", "doc": "

Register a live run for this worker pool

\n", "signature": "(self, live_run: mephisto.operations.datatypes.LiveTaskRun) -> None", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"fullname": "mephisto.operations.worker_pool.WorkerPool.get_live_run", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.get_live_run", "type": "function", "doc": "

Get the associated live run for this worker pool, asserting it's set

\n", "signature": "(self) -> mephisto.operations.datatypes.LiveTaskRun", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"fullname": "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.get_agent_for_id", "type": "function", "doc": "

Temporary method to get an agent, while API is figured out

\n", "signature": "(\n self,\n agent_id: str\n) -> Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent, NoneType]", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"fullname": "mephisto.operations.worker_pool.WorkerPool.register_worker", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.register_worker", "type": "function", "doc": "

First process the worker registration, then hand off for\nregistering an agent

\n", "signature": "(self, crowd_data: Dict[str, Any], request_id: str) -> None", "funcdef": "async def"}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"fullname": "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.register_agent_from_onboarding", "type": "function", "doc": "

Convert the onboarding agent to a full agent

\n", "signature": "(self, onboarding_agent: mephisto.data_model.agent.OnboardingAgent)", "funcdef": "async def"}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"fullname": "mephisto.operations.worker_pool.WorkerPool.reconnect_agent", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.reconnect_agent", "type": "function", "doc": "

When an agent reconnects, find and send the relevant data

\n", "signature": "(self, agent_id: str, request_id: str)", "funcdef": "async def"}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"fullname": "mephisto.operations.worker_pool.WorkerPool.register_agent", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.register_agent", "type": "function", "doc": "

Process an agent registration packet to register an agent, returning the agent_id

\n", "signature": "(\n self,\n crowd_data: Dict[str, Any],\n worker: mephisto.data_model.worker.Worker,\n request_id: str\n)", "funcdef": "async def"}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"fullname": "mephisto.operations.worker_pool.WorkerPool.push_status_update", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.push_status_update", "type": "function", "doc": "

Force a status update for a specific agent, pushing the db status to\nthe frontend client

\n", "signature": "(\n self,\n agent: Union[mephisto.data_model.agent.Agent, mephisto.data_model.agent.OnboardingAgent]\n) -> None", "funcdef": "async def"}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"fullname": "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.handle_updated_agent_status", "type": "function", "doc": "

Handle updating the local statuses for agents based on\nthe previously reported agent statuses.

\n\n

Takes as input a mapping from agent_id to server-side status

\n", "signature": "(self, status_map: Dict[str, str])", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"fullname": "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.disconnect_active_agents", "type": "function", "doc": "

Under a forced shutdown, set the status of all current agents\nto disconnected to clear their running tasks

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"fullname": "mephisto.operations.worker_pool.WorkerPool.shutdown", "modulename": "mephisto.operations.worker_pool", "qualname": "WorkerPool.shutdown", "type": "function", "doc": "

Mark shut down. Handle resource cleanup if necessary

\n", "signature": "(self) -> None", "funcdef": "def"}, "mephisto.scripts": {"fullname": "mephisto.scripts", "modulename": "mephisto.scripts", "type": "module", "doc": "

scripts

\n\n

This directory is for convenience scripts that all Mephisto users may find useful. They should be runnable, polished, and have some kind of API or user interface, as opposed to being methods or modules like those present in the tools directory.

\n\n

Scripts in this directory should be grouped into folders by the abstractions or tasks they relate to.

\n"}, "mephisto.scripts.heroku": {"fullname": "mephisto.scripts.heroku", "modulename": "mephisto.scripts.heroku", "type": "module", "doc": "

\n"}, "mephisto.scripts.heroku.initialize_heroku": {"fullname": "mephisto.scripts.heroku.initialize_heroku", "modulename": "mephisto.scripts.heroku.initialize_heroku", "type": "module", "doc": "

\n"}, "mephisto.scripts.heroku.initialize_heroku.main": {"fullname": "mephisto.scripts.heroku.initialize_heroku.main", "modulename": "mephisto.scripts.heroku.initialize_heroku", "qualname": "main", "type": "function", "doc": "

Force Mephisto to check heroku architect's credentials.\nIf this succeeds, then it's a no-op. If it fails,\nit will print setup instructions

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.local_db": {"fullname": "mephisto.scripts.local_db", "modulename": "mephisto.scripts.local_db", "type": "module", "doc": "

\n"}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"fullname": "mephisto.scripts.local_db.load_data_to_mephisto_db", "modulename": "mephisto.scripts.local_db.load_data_to_mephisto_db", "type": "module", "doc": "

Utility script that directly loads in data from another place to\nthe MephistoDB under a specified task run, using MockRequester and\nMockWorkers as we don't know where the data actually came from.

\n\n

!! Currently in development, not necessarily for use !!

\n"}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"fullname": "mephisto.scripts.local_db.load_data_to_mephisto_db.main", "modulename": "mephisto.scripts.local_db.load_data_to_mephisto_db", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.mturk": {"fullname": "mephisto.scripts.mturk", "modulename": "mephisto.scripts.mturk", "type": "module", "doc": "

MTurk Scripts

\n\n

This directory contains scripts that may be useful for Mephisto users that use MTurk as a crowd provider. Descriptions of the scripts and what they do can be found here:

\n\n

Cleanup

\n\n

The cleanup script cleanup.py is to be used when a run exits due to a catastrophic failure, such as a power outage, sudden reboot, or series of eager Ctrl-C presses. It will search through any tasks that seem to be active and running, and allow users to select to take them down.

\n\n

Upon run, the script will ask what requester you want to clean up from. It will try to find all of the HITs currently associated with that requester, and see if any of them appear to be broken or active. (If you have an active job running, there's currently no clear way to distinguish between those and ones from a previously failed run). After this the script will ask for whether you want to clean up by title, or just clean up all of the tasks.

\n\n

Soft-block Workers by MTurk ID

\n\n

The script soft_block_workers_by_mturk_id.py exists to allow a smooth transition into using Mephisto for users that may have blocklists in other locations. Mephisto doesn't directly allow granting Mephisto-backed qualifications to workers that are not in the MephistoDB, but this script can be used to assign such a qualification to MTurk workers just by their ID.

\n\n

To use the script, enter the requester name that you would like to assign the block from, the Mephisto qualification name you will be using to block, and then a newline separated list of the MTurk IDs you want to block. After this, entering a blank newline will block all of the given workers.

\n"}, "mephisto.scripts.mturk.cleanup": {"fullname": "mephisto.scripts.mturk.cleanup", "modulename": "mephisto.scripts.mturk.cleanup", "type": "module", "doc": "

Utility script that finds, expires, and disposes HITs that may not\nhave been taking down during a run that exited improperly.

\n"}, "mephisto.scripts.mturk.cleanup.main": {"fullname": "mephisto.scripts.mturk.cleanup.main", "modulename": "mephisto.scripts.mturk.cleanup", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.mturk.identify_broken_units": {"fullname": "mephisto.scripts.mturk.identify_broken_units", "modulename": "mephisto.scripts.mturk.identify_broken_units", "type": "module", "doc": "

\n"}, "mephisto.scripts.mturk.identify_broken_units.main": {"fullname": "mephisto.scripts.mturk.identify_broken_units.main", "modulename": "mephisto.scripts.mturk.identify_broken_units", "qualname": "main", "type": "function", "doc": "

Script to crawl through the database for a specific task run and ensure that\nall of the states of units and related MTurk data is synced up.

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.mturk.launch_makeup_hits": {"fullname": "mephisto.scripts.mturk.launch_makeup_hits", "modulename": "mephisto.scripts.mturk.launch_makeup_hits", "type": "module", "doc": "

\n"}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"fullname": "mephisto.scripts.mturk.launch_makeup_hits.build_task_config", "modulename": "mephisto.scripts.mturk.launch_makeup_hits", "qualname": "build_task_config", "type": "function", "doc": "

\n", "signature": "(compensation_dict, requester)", "funcdef": "def"}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"fullname": "mephisto.scripts.mturk.launch_makeup_hits.main", "modulename": "mephisto.scripts.mturk.launch_makeup_hits", "qualname": "main", "type": "function", "doc": "

Script to launch makeup tasks for workers that\ncan't be bonused via other avenues.

\n\n

Creates a task for a worker, qualifying them directly,\nand marks as a soft_rejected HIT for the given task name.

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"fullname": "mephisto.scripts.mturk.print_outstanding_hit_status", "modulename": "mephisto.scripts.mturk.print_outstanding_hit_status", "type": "module", "doc": "

Utility script that finds, HITs associated with a specific task run,\nand tries to get their information

\n"}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"fullname": "mephisto.scripts.mturk.print_outstanding_hit_status.main", "modulename": "mephisto.scripts.mturk.print_outstanding_hit_status", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"fullname": "mephisto.scripts.mturk.soft_block_workers_by_mturk_id", "modulename": "mephisto.scripts.mturk.soft_block_workers_by_mturk_id", "type": "module", "doc": "

\n"}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"fullname": "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main", "modulename": "mephisto.scripts.mturk.soft_block_workers_by_mturk_id", "qualname": "main", "type": "function", "doc": "

\n", "signature": "()", "funcdef": "def"}, "mephisto.tools": {"fullname": "mephisto.tools", "modulename": "mephisto.tools", "type": "module", "doc": "

Tools

\n\n

The tools directory contains helper methods and modules that allow for lower-level access to the Mephisto data model than the clients provide. These may be useful for creating custom workflows and scripts that are built on Mephisto.

\n\n

At the moment this folder contains the following:

\n\n
    \n
  • MephistoDataBrowser: The MephistoDataBrowser is a convenience tool for accessing all of the units and data associated with a specific task run or task name. It is generally used when reviewing or compiling data.
  • \n
  • scripts.py: The methods available in scripts.py are to be used in user scripts that rely on Mephisto. At the moment, these scripts allow for easy configuration of a database as well as augmentation of a script config for use in a Mephisto TaskRun.
  • \n
\n\n

MephistoDataBrowser

\n\n

The MephistoDataBrowser at the moment can handle the job of getting all Units that are associated with a given task or task run. They can also retrieve the relevant data about a Unit, including the work done for that Unit, if the Unit is completed.

\n\n

It has three usable methods at the moment:

\n\n
    \n
  • get_units_for_run_id: This will return a list of all final Unit's associated with the given task_run_id. These will all be in a terminal state, such as COMPLETED, ACCEPTED or REJECTED. Units that are still in flight will not appear using this method.
  • \n
  • get_units_for_task_name: This will go through all task runs that share the given task_name, and collect their units in the same manner as get_units_for_run_id.
  • \n
  • get_data_from_unit: When given a Unit that is in a terminal state, this method will return data about that Unit, including the Mephisto id of the worker, the status of the work, the data saved by this Unit, and the start and end times for when the worker produced the data.
  • \n
\n\n

examine_utils.py

\n\n

This file contains a number of helper functions that are useful for running reviews over Mephisto data. We provide a high-level script for doing a 'review-by-worker' style evaluation, as well as breakout helper functions that could be useful in alternate review flows.

\n\n
    \n
  • run_examine_by_worker: This function takes a function format_data_for_printing that consumes the result of MephistoDataBrowser.get_data_from_unit, and should print out to terminal a reviewable format. It optionally takes in task_name, block_qualification, and approve_qualification arguments. If task_name is provided, the script will be run in review mode without querying the user for anything.
  • \n
  • print_results: This function takes a task name and display function format_data_for_printing, and an optional int limit, and prints up to limit results to stdout.
  • \n
  • format_worker_stats: Takes in a worker id and set of previous worker stats, and returns the previous stats in the format (accepted_count | total_rejected_count (soft_rejected_count) / total count)
  • \n
  • prompt_for_options: Prompts the user for task_name, block_qualification, and approve_qualification. If provided as an argument, skips. Returns these values after confirming with the user, and if blank uses None.
  • \n
\n\n

scripts.py

\n\n

This file contains a few helper methods for running scripts relying on the MephistoDB. They are as follows:

\n\n
    \n
  • get_db_from_config: This method takes in a hydra-produced DictConfig containing a MephistoConfig (such as a TaskConfig), and returns an initialized MephistoDB compatible with the configuration. Right now this exclusively leverages the LocalMephistoDB.
  • \n
  • augment_config_from_db: This method takes in a TaskConfig and a MephistoDB, parses the content to ensure that a valid requester and architect setup exists, and then updates the config. It also has validation steps that require user confirmation for live runs. It returns the updated config.
  • \n
  • load_db_and_process_config: This is a convenience method that wraps the above two methods, loading in the appropriate MephistoDB and using it to process the script. It returns the db and a valid config.
  • \n
  • process_config_and_get_operator: A convenience wrapper of the above method that _also_ creates an Operator too.
  • \n
  • task_script: This decorator is used to register a Mephisto script for launching task runs. It takes in either a config (TaskConfig) or default_config_file (yaml filename without the .yaml) argument to specify how the script is configured, and wraps a main that takes in an Operator and DictConfig as arguments.
  • \n
\n"}, "mephisto.tools.data_browser": {"fullname": "mephisto.tools.data_browser", "modulename": "mephisto.tools.data_browser", "type": "module", "doc": "

\n"}, "mephisto.tools.data_browser.DataBrowser": {"fullname": "mephisto.tools.data_browser.DataBrowser", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser", "type": "class", "doc": "

Class with convenience methods for getting completed data\nback from runs to parse and manage with other scripts

\n"}, "mephisto.tools.data_browser.DataBrowser.__init__": {"fullname": "mephisto.tools.data_browser.DataBrowser.__init__", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.__init__", "type": "function", "doc": "

\n", "signature": "(self, db=None)", "funcdef": "def"}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"fullname": "mephisto.tools.data_browser.DataBrowser.get_task_name_list", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.get_task_name_list", "type": "function", "doc": "

\n", "signature": "(self) -> List[str]", "funcdef": "def"}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"fullname": "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.get_units_for_task_name", "type": "function", "doc": "

Return a list of all Units in a terminal completed state from all\ntask runs with the given task_name

\n", "signature": "(self, task_name: str) -> List[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"fullname": "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.get_units_for_run_id", "type": "function", "doc": "

Return a list of all Units in a terminal completed state from the\ntask run with the given run_id

\n", "signature": "(self, run_id: str) -> List[mephisto.data_model.unit.Unit]", "funcdef": "def"}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"fullname": "mephisto.tools.data_browser.DataBrowser.get_data_from_unit", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.get_data_from_unit", "type": "function", "doc": "

Return a dict containing all data associated with the given\nunit, including its status, data, and start and end time.

\n\n

Also includes the DB ids for the worker, the unit, and the\nrelevant assignment this unit was a part of.

\n", "signature": "(self, unit: mephisto.data_model.unit.Unit) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"fullname": "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification", "modulename": "mephisto.tools.data_browser", "qualname": "DataBrowser.get_workers_with_qualification", "type": "function", "doc": "

Returns a list of 'Worker's for workers who are qualified wrt qualification_name.

\n", "signature": "(\n self,\n qualification_name: str\n) -> List[mephisto.data_model.worker.Worker]", "funcdef": "def"}, "mephisto.tools.examine_utils": {"fullname": "mephisto.tools.examine_utils", "modulename": "mephisto.tools.examine_utils", "type": "module", "doc": "

Utilities specifically for running examine scripts. Example usage can be\nseen in the examine results scripts in the examples directory.

\n"}, "mephisto.tools.examine_utils.print_results": {"fullname": "mephisto.tools.examine_utils.print_results", "modulename": "mephisto.tools.examine_utils", "qualname": "print_results", "type": "function", "doc": "

Script to write out to stdout from start to end results from the task with the given task name

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n task_name: str,\n format_data_for_printing: Callable[[Dict[str, Any]], str],\n start: Union[int, NoneType] = None,\n end: Union[int, NoneType] = None\n) -> None", "funcdef": "def"}, "mephisto.tools.examine_utils.prompt_for_options": {"fullname": "mephisto.tools.examine_utils.prompt_for_options", "modulename": "mephisto.tools.examine_utils", "qualname": "prompt_for_options", "type": "function", "doc": "

Utility to request common user options for examine scripts.\nLeave block_qualification or approve_qualification as empty strings\nto skip their respective prompt.

\n", "signature": "(\n task_name: Union[str, NoneType] = None,\n block_qualification: Union[str, NoneType] = None,\n approve_qualification: Union[str, NoneType] = None\n) -> Tuple[str, Union[str, NoneType], Union[str, NoneType]]", "funcdef": "def"}, "mephisto.tools.examine_utils.get_worker_stats": {"fullname": "mephisto.tools.examine_utils.get_worker_stats", "modulename": "mephisto.tools.examine_utils", "qualname": "get_worker_stats", "type": "function", "doc": "

Traverse a list of units and create a mapping from worker id\nto their units, grouped by their current status

\n", "signature": "(\n units: list[mephisto.data_model.unit.Unit]\n) -> dict[str, dict[str, list[mephisto.data_model.unit.Unit]]]", "funcdef": "def"}, "mephisto.tools.examine_utils.format_worker_stats": {"fullname": "mephisto.tools.examine_utils.format_worker_stats", "modulename": "mephisto.tools.examine_utils", "qualname": "format_worker_stats", "type": "function", "doc": "

When given a worker id and a list of worker stats, return a string\ncontaining the proportion of accepted to rejected work.

\n", "signature": "(\n worker_id: str,\n previous_work_by_worker: dict[str, dict[str, list[mephisto.data_model.unit.Unit]]]\n) -> str", "funcdef": "def"}, "mephisto.tools.examine_utils.run_examine_by_worker": {"fullname": "mephisto.tools.examine_utils.run_examine_by_worker", "modulename": "mephisto.tools.examine_utils", "qualname": "run_examine_by_worker", "type": "function", "doc": "

Basic script for reviewing work, grouped by worker for convenience. First gets\nthe required information to run a review, then

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n format_data_for_printing: Callable[[Dict[str, Any]], str],\n task_name: Union[str, NoneType] = None,\n block_qualification: Union[str, NoneType] = None,\n approve_qualification: Union[str, NoneType] = None\n)", "funcdef": "def"}, "mephisto.tools.examine_utils.run_examine_or_review": {"fullname": "mephisto.tools.examine_utils.run_examine_or_review", "modulename": "mephisto.tools.examine_utils", "qualname": "run_examine_or_review", "type": "function", "doc": "

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n format_data_for_printing: Callable[[Dict[str, Any]], str]\n) -> None", "funcdef": "def"}, "mephisto.tools.scripts": {"fullname": "mephisto.tools.scripts", "modulename": "mephisto.tools.scripts", "type": "module", "doc": "

Utilities that are useful for Mephisto-related scripts.

\n"}, "mephisto.tools.scripts.load_db_and_process_config": {"fullname": "mephisto.tools.scripts.load_db_and_process_config", "modulename": "mephisto.tools.scripts", "qualname": "load_db_and_process_config", "type": "function", "doc": "

Using a Hydra DictConfig built from a TaskConfig,\nload the desired MephistoDB and\nvalidate the config against the database contents, then\nreturn the database and validated config.

\n\n

Takes in an option to print out the configuration before returning

\n", "signature": "(\n cfg: omegaconf.dictconfig.DictConfig,\n print_config=False\n) -> tuple[mephisto.abstractions.database.MephistoDB, omegaconf.dictconfig.DictConfig]", "funcdef": "def"}, "mephisto.tools.scripts.process_config_and_get_operator": {"fullname": "mephisto.tools.scripts.process_config_and_get_operator", "modulename": "mephisto.tools.scripts", "qualname": "process_config_and_get_operator", "type": "function", "doc": "

Using a Hydra DictConfig built from a TaskConfig,\nreturn an operator for that task as well as a validated config.

\n\n

Takes in an option to print out the configuration before returning

\n", "signature": "(\n cfg: omegaconf.dictconfig.DictConfig,\n print_config=False\n) -> tuple[mephisto.operations.operator.Operator, omegaconf.dictconfig.DictConfig]", "funcdef": "def"}, "mephisto.tools.scripts.task_script": {"fullname": "mephisto.tools.scripts.task_script", "modulename": "mephisto.tools.scripts", "qualname": "task_script", "type": "function", "doc": "

Create a decorator for the main of a Mephisto task script

\n\n

Must provide one of config (a TaskConfig dataclass) or default_config_file\n(the location of a default task config hydra yaml), the former\nwill be preferred.

\n\n

May specify a config_path override if not using hydra_configs at the\nrun script location.

\n", "signature": "(\n config: Union[Type[mephisto.operations.hydra_config.TaskConfig], NoneType] = None,\n default_config_file: Union[str, NoneType] = None,\n config_path: str = 'hydra_configs'\n) -> Callable[[~TaskFunction], Any]", "funcdef": "def"}, "mephisto.tools.scripts.get_db_from_config": {"fullname": "mephisto.tools.scripts.get_db_from_config", "modulename": "mephisto.tools.scripts", "qualname": "get_db_from_config", "type": "function", "doc": "

Get a MephistoDB from the given configuration. As of now\nthis defaults to a LocalMephistoDB

\n", "signature": "(\n cfg: omegaconf.dictconfig.DictConfig\n) -> mephisto.abstractions.database.MephistoDB", "funcdef": "def"}, "mephisto.tools.scripts.augment_config_from_db": {"fullname": "mephisto.tools.scripts.augment_config_from_db", "modulename": "mephisto.tools.scripts", "qualname": "augment_config_from_db", "type": "function", "doc": "

Check the database for validity of the incoming MephistoConfig, ensure\nthat the config has all the necessary fields set.

\n", "signature": "(\n script_cfg: omegaconf.dictconfig.DictConfig,\n db: mephisto.abstractions.database.MephistoDB\n) -> omegaconf.dictconfig.DictConfig", "funcdef": "def"}, "mephisto.tools.scripts.build_custom_bundle": {"fullname": "mephisto.tools.scripts.build_custom_bundle", "modulename": "mephisto.tools.scripts", "qualname": "build_custom_bundle", "type": "function", "doc": "

Locate all of the custom files used for a custom build, create\na prebuild directory containing all of them, then build the\ncustom source.

\n\n

Check dates to only go through this build process when files have changes

\n", "signature": "(custom_src_dir)", "funcdef": "def"}, "mephisto.utils": {"fullname": "mephisto.utils", "modulename": "mephisto.utils", "type": "module", "doc": "

Utils

\n\n

Contains classes and utility functions that are generally useful for Mephisto classes to rely on and which don't better belong in a specific subfolder. These are differ from tools, which are more likely to be used directly by external Mephisto users rather than internal Mephisto classes.

\n\n

metrics.py

\n\n

This file contains useful functionality for managing the prometheus and grafana servers associated with Mephisto.

\n\n

logger_core.py

\n\n

This module contains helpers to simplify the process of generating unique loggers and logging configuration for various parts of Mephisto. At the moment this only outlines the basic logging style that Mephisto uses, though much is still to be done in order to set up logging throughout Mephisto, simplified controls for getting debug information across certain files, and user configuration of Mephisto logs.

\n\n

dirs.py

\n\n

This file contains number of helper utils that (at the moment) rely on the local-storage implementation of Mephisto. These utils help navigate the files present in the mephisto architecture, identify task files, link classes, etc. Docstrings in this class explain in more detail.

\n\n

testing.py

\n\n

This file contains functions that are specifically useful for setting up mock data in tests.

\n\n

qualifications.py

\n\n

This file contains helpers that are used for interfacing with or creating Mephisto qualifications.

\n"}, "mephisto.utils.dirs": {"fullname": "mephisto.utils.dirs", "modulename": "mephisto.utils.dirs", "type": "module", "doc": "

Contains centralized accessors for default Mephisto directories

\n"}, "mephisto.utils.dirs.get_root_dir": {"fullname": "mephisto.utils.dirs.get_root_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_root_dir", "type": "function", "doc": "

Return the currently configured root mephisto directory

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_provider_dir": {"fullname": "mephisto.utils.dirs.get_provider_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_provider_dir", "type": "function", "doc": "

Return the path to the mephisto providers diroctory

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_tasks_dir": {"fullname": "mephisto.utils.dirs.get_tasks_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_tasks_dir", "type": "function", "doc": "

Return the directory where the mephisto user has configured their personal tasks\nto exist in

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_dir_for_task": {"fullname": "mephisto.utils.dirs.get_dir_for_task", "modulename": "mephisto.utils.dirs", "qualname": "get_dir_for_task", "type": "function", "doc": "

Return the directory for the given task, if it exists. Check the user's task\ndir first and then the gallery second.

\n", "signature": "(task_name: str, not_exists_ok: bool = False) -> Union[str, NoneType]", "funcdef": "def"}, "mephisto.utils.dirs.get_root_data_dir": {"fullname": "mephisto.utils.dirs.get_root_data_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_root_data_dir", "type": "function", "doc": "

Return the directory where the mephisto data is expected to go

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_data_dir": {"fullname": "mephisto.utils.dirs.get_data_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_data_dir", "type": "function", "doc": "

Return the directory where the mephisto data is expected to go

\n", "signature": "(root_dir: Union[str, NoneType] = None) -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"fullname": "mephisto.utils.dirs.get_mephisto_tmp_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_mephisto_tmp_dir", "type": "function", "doc": "

Return the directory where the mephisto temporary build files go

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_dir_for_run": {"fullname": "mephisto.utils.dirs.get_dir_for_run", "modulename": "mephisto.utils.dirs", "qualname": "get_dir_for_run", "type": "function", "doc": "

Return the directory where the mephisto run data is expected to go

\n", "signature": "(\n task_run: mephisto.data_model.task_run.TaskRun,\n project_name: str = 'NO_PROJECT'\n) -> str", "funcdef": "def"}, "mephisto.utils.dirs.get_run_file_dir": {"fullname": "mephisto.utils.dirs.get_run_file_dir", "modulename": "mephisto.utils.dirs", "qualname": "get_run_file_dir", "type": "function", "doc": "

Utility function to get the directory that a particular\npython run file is contained in, even when run from\na different directory.

\n\n

Useful as configuration information for a task is generally\nkept within the same directory as the run script

\n", "signature": "() -> str", "funcdef": "def"}, "mephisto.utils.logger_core": {"fullname": "mephisto.utils.logger_core", "modulename": "mephisto.utils.logger_core", "type": "module", "doc": "

\n"}, "mephisto.utils.logger_core.loggers": {"fullname": "mephisto.utils.logger_core.loggers", "modulename": "mephisto.utils.logger_core", "qualname": "loggers", "type": "variable", "doc": "

\n", "annotation": ": Dict[str, logging.Logger]", "default_value": " = {'mephisto.abstractions._subcomponents.task_builder': , 'mephisto.data_model.qualification': , 'mephisto.utils.qualifications': , 'mephisto.abstractions._subcomponents.agent_state': , 'mephisto.abstractions._subcomponents.task_runner': , 'mephisto.abstractions.blueprint': , 'mephisto.data_model.requester': , 'mephisto.data_model.task_run': , 'mephisto.data_model.worker': , 'mephisto.data_model.agent': , 'mephisto.data_model.unit': , 'mephisto.operations.hydra_config': , 'mephisto.abstractions.providers.mock.mock_unit': , 'mephisto.data_model.assignment': , 'mephisto.abstractions.databases.local_database': , 'mephisto.abstractions.providers.mturk.mturk_datastore': , 'mephisto.abstractions.providers.mturk.mturk_utils': , 'mephisto.abstractions.providers.mturk.mturk_agent': , 'mephisto.abstractions.providers.mturk.mturk_unit': , 'mephisto.abstractions.providers.mturk.mturk_worker': , 'mephisto.abstractions.architects.channels.websocket_channel': , 'mephisto.abstractions.architects.heroku_architect': , 'mephisto.abstractions.architects.ec2.ec2_helpers': , 'mephisto.abstractions.architects.ec2.ec2_architect': , 'mephisto.abstractions.blueprints.abstract.static_task.static_agent_state': , 'mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name': , 'mephisto.operations.task_launcher': , 'mephisto.abstractions.blueprints.mixins.use_gold_unit': , 'mephisto.abstractions.databases.local_singleton_database': , 'mephisto.operations.client_io_handler': , 'mephisto.operations.worker_pool': , 'mephisto.utils.metrics': , 'mephisto.operations.operator': }"}, "mephisto.utils.logger_core.warn_once": {"fullname": "mephisto.utils.logger_core.warn_once", "modulename": "mephisto.utils.logger_core", "qualname": "warn_once", "type": "function", "doc": "

Log a warning, but only once.

\n\n

:param str msg: Message to display

\n", "signature": "(msg: str) -> None", "funcdef": "def"}, "mephisto.utils.logger_core.set_mephisto_log_level": {"fullname": "mephisto.utils.logger_core.set_mephisto_log_level", "modulename": "mephisto.utils.logger_core", "qualname": "set_mephisto_log_level", "type": "function", "doc": "

Set the global level for Mephisto logging, from\nwhich all other classes will set their logging.

\n\n

Verbose sets an option between DEBUG and INFO, while level allows setting\na specific level, and takes precedence.

\n\n

Calling this function will override the desired log levels from individual files,\nand if you want to enable a specific level for a specific logger, you'll need\nto get that logger from the loggers dict and call setLevel

\n", "signature": "(\n verbose: Union[bool, NoneType] = None,\n level: Union[str, NoneType] = None\n)", "funcdef": "def"}, "mephisto.utils.logger_core.get_logger": {"fullname": "mephisto.utils.logger_core.get_logger", "modulename": "mephisto.utils.logger_core", "qualname": "get_logger", "type": "function", "doc": "

Gets the logger corresponds to each module\n Parameters:\n name (string): the module name (__name__).\n verbose (bool): INFO level activated if True.\n log_file (string): path for saving logs locally.\n level (string): logging level. Values options: [info, debug, warning, error, critical].

\n\n
    Returns:\n            logger (logging.Logger): the corresponding logger to the given module name.\n
\n", "signature": "(\n name: str,\n verbose: Union[bool, NoneType] = None,\n log_file: Union[str, NoneType] = None,\n level: Union[str, NoneType] = None\n) -> logging.Logger", "funcdef": "def"}, "mephisto.utils.logger_core.format_loud": {"fullname": "mephisto.utils.logger_core.format_loud", "modulename": "mephisto.utils.logger_core", "qualname": "format_loud", "type": "function", "doc": "

\n", "signature": "(target_text: str)", "funcdef": "def"}, "mephisto.utils.metrics": {"fullname": "mephisto.utils.metrics", "modulename": "mephisto.utils.metrics", "type": "module", "doc": "

\n"}, "mephisto.utils.metrics.run_install_script": {"fullname": "mephisto.utils.metrics.run_install_script", "modulename": "mephisto.utils.metrics", "qualname": "run_install_script", "type": "function", "doc": "

Run the install script from METRICS_DIR

\n", "signature": "() -> bool", "funcdef": "def"}, "mephisto.utils.metrics.metrics_are_installed": {"fullname": "mephisto.utils.metrics.metrics_are_installed", "modulename": "mephisto.utils.metrics", "qualname": "metrics_are_installed", "type": "function", "doc": "

Return whether metrics are installed

\n", "signature": "()", "funcdef": "def"}, "mephisto.utils.metrics.launch_servers_and_wait": {"fullname": "mephisto.utils.metrics.launch_servers_and_wait", "modulename": "mephisto.utils.metrics", "qualname": "launch_servers_and_wait", "type": "function", "doc": "

Run a prometheus and grafana server, then suspend the thread\n(ensuring prometheus remains up in case a task shuts it down).\nCloses resources on Ctrl-C

\n", "signature": "()", "funcdef": "def"}, "mephisto.utils.metrics.start_metrics_server": {"fullname": "mephisto.utils.metrics.start_metrics_server", "modulename": "mephisto.utils.metrics", "qualname": "start_metrics_server", "type": "function", "doc": "

Launch a metrics server for the current job. At the moment, defaults to launching on port 3031.

\n\n

Unfortunately this means we are only able to check metrics on one job at a time for now.\nFuture work will extend our metrics logging configuration.

\n", "signature": "(args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None)", "funcdef": "def"}, "mephisto.utils.metrics.launch_prometheus_server": {"fullname": "mephisto.utils.metrics.launch_prometheus_server", "modulename": "mephisto.utils.metrics", "qualname": "launch_prometheus_server", "type": "function", "doc": "

Launch a prometheus server if one is not already running (based on having an expected PID)

\n\n

Returns success or failure

\n", "signature": "(\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> bool", "funcdef": "def"}, "mephisto.utils.metrics.launch_grafana_server": {"fullname": "mephisto.utils.metrics.launch_grafana_server", "modulename": "mephisto.utils.metrics", "qualname": "launch_grafana_server", "type": "function", "doc": "

Launch a grafana server if one is not already running (based on having an expected PID)

\n", "signature": "(\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None\n) -> bool", "funcdef": "def"}, "mephisto.utils.metrics.get_dash_url": {"fullname": "mephisto.utils.metrics.get_dash_url", "modulename": "mephisto.utils.metrics", "qualname": "get_dash_url", "type": "function", "doc": "

Return the url to the default Mephisto dashboard. Requires a running grafana server

\n", "signature": "(args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None)", "funcdef": "def"}, "mephisto.utils.metrics.shutdown_prometheus_server": {"fullname": "mephisto.utils.metrics.shutdown_prometheus_server", "modulename": "mephisto.utils.metrics", "qualname": "shutdown_prometheus_server", "type": "function", "doc": "

Shutdown the prometheus server

\n", "signature": "(\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None,\n expect_exists=False\n)", "funcdef": "def"}, "mephisto.utils.metrics.shutdown_grafana_server": {"fullname": "mephisto.utils.metrics.shutdown_grafana_server", "modulename": "mephisto.utils.metrics", "qualname": "shutdown_grafana_server", "type": "function", "doc": "

Shutdown the grafana server

\n", "signature": "(\n args: Union[omegaconf.dictconfig.DictConfig, NoneType] = None,\n expect_exists=False\n)", "funcdef": "def"}, "mephisto.utils.qualifications": {"fullname": "mephisto.utils.qualifications", "modulename": "mephisto.utils.qualifications", "type": "module", "doc": "

\n"}, "mephisto.utils.qualifications.worker_is_qualified": {"fullname": "mephisto.utils.qualifications.worker_is_qualified", "modulename": "mephisto.utils.qualifications", "qualname": "worker_is_qualified", "type": "function", "doc": "

\n", "signature": "(\n worker: mephisto.data_model.worker.Worker,\n qualifications: List[Dict[str, Any]]\n)", "funcdef": "def"}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"fullname": "mephisto.utils.qualifications.as_valid_qualification_dict", "modulename": "mephisto.utils.qualifications", "qualname": "as_valid_qualification_dict", "type": "function", "doc": "

Check to ensure that a qualification dict properly checks\nagainst a Mephisto qualification

\n", "signature": "(qual_dict: Dict[str, Any]) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.utils.qualifications.make_qualification_dict": {"fullname": "mephisto.utils.qualifications.make_qualification_dict", "modulename": "mephisto.utils.qualifications", "qualname": "make_qualification_dict", "type": "function", "doc": "

Create a qualification dict to pass to an operator as part\nof extra_args

\n", "signature": "(\n qualification_name: str,\n comparator: str,\n value: Any,\n applicable_providers: Union[List[str], NoneType] = None\n) -> Dict[str, Any]", "funcdef": "def"}, "mephisto.utils.qualifications.find_or_create_qualification": {"fullname": "mephisto.utils.qualifications.find_or_create_qualification", "modulename": "mephisto.utils.qualifications", "qualname": "find_or_create_qualification", "type": "function", "doc": "

Ensure the given qualification exists in the db,\ncreating it if it doesn't already. Returns the id

\n", "signature": "(\n db: mephisto.abstractions.database.MephistoDB,\n qualification_name: str\n) -> str", "funcdef": "def"}, "mephisto.utils.testing": {"fullname": "mephisto.utils.testing", "modulename": "mephisto.utils.testing", "type": "module", "doc": "

\n"}, "mephisto.utils.testing.get_test_project": {"fullname": "mephisto.utils.testing.get_test_project", "modulename": "mephisto.utils.testing", "qualname": "get_test_project", "type": "function", "doc": "

Helper to create a project for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]", "funcdef": "def"}, "mephisto.utils.testing.get_test_worker": {"fullname": "mephisto.utils.testing.get_test_worker", "modulename": "mephisto.utils.testing", "qualname": "get_test_worker", "type": "function", "doc": "

Helper to create a worker for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]", "funcdef": "def"}, "mephisto.utils.testing.get_test_requester": {"fullname": "mephisto.utils.testing.get_test_requester", "modulename": "mephisto.utils.testing", "qualname": "get_test_requester", "type": "function", "doc": "

Helper to create a requester for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]", "funcdef": "def"}, "mephisto.utils.testing.get_mock_requester": {"fullname": "mephisto.utils.testing.get_mock_requester", "modulename": "mephisto.utils.testing", "qualname": "get_mock_requester", "type": "function", "doc": "

Get or create a mock requester to use for test tasks

\n", "signature": "(db) -> mephisto.data_model.requester.Requester", "funcdef": "def"}, "mephisto.utils.testing.get_test_task": {"fullname": "mephisto.utils.testing.get_test_task", "modulename": "mephisto.utils.testing", "qualname": "get_test_task", "type": "function", "doc": "

Helper to create a task for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> Tuple[str, str]", "funcdef": "def"}, "mephisto.utils.testing.get_test_task_run": {"fullname": "mephisto.utils.testing.get_test_task_run", "modulename": "mephisto.utils.testing", "qualname": "get_test_task_run", "type": "function", "doc": "

Helper to create a task run for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> str", "funcdef": "def"}, "mephisto.utils.testing.get_test_assignment": {"fullname": "mephisto.utils.testing.get_test_assignment", "modulename": "mephisto.utils.testing", "qualname": "get_test_assignment", "type": "function", "doc": "

Helper to create an assignment for tests

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> str", "funcdef": "def"}, "mephisto.utils.testing.get_test_unit": {"fullname": "mephisto.utils.testing.get_test_unit", "modulename": "mephisto.utils.testing", "qualname": "get_test_unit", "type": "function", "doc": "

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB, unit_index=0) -> str", "funcdef": "def"}, "mephisto.utils.testing.get_test_agent": {"fullname": "mephisto.utils.testing.get_test_agent", "modulename": "mephisto.utils.testing", "qualname": "get_test_agent", "type": "function", "doc": "

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB, unit_id=None) -> str", "funcdef": "def"}, "mephisto.utils.testing.make_completed_unit": {"fullname": "mephisto.utils.testing.make_completed_unit", "modulename": "mephisto.utils.testing", "qualname": "make_completed_unit", "type": "function", "doc": "

Creates a completed unit for the most recently created task run\nusing some worker. Assumes

\n", "signature": "(db: mephisto.abstractions.database.MephistoDB) -> str", "funcdef": "def"}}, "docInfo": {"mephisto": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 215}, "mephisto.abstractions": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 435}, "mephisto.abstractions.architect": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architect.ArchitectArgs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architect.Architect": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 17}, "mephisto.abstractions.architect.Architect.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 46}, "mephisto.abstractions.architect.Architect.ArgsClass": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "mephisto.abstractions.architect.Architect.assert_task_args": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 45}, "mephisto.abstractions.architect.Architect.get_channels": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 21}, "mephisto.abstractions.architect.Architect.download_file": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 19}, "mephisto.abstractions.architect.Architect.prepare": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architect.Architect.deploy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architect.Architect.cleanup": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 29}, "mephisto.abstractions.architect.Architect.shutdown": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.abstractions.architects": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 994}, "mephisto.abstractions.architects.channels": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.channels.websocket_channel": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 11}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 35}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 19}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 16}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 19}, "mephisto.abstractions.architects.ec2": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"qualname": 2, "fullname": 8, "annotation": 2, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 15}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 21}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 16}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 21}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 29}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 43}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 19}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 20}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 18}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 26}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 28}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 28}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 23}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 15}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 10}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 19}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 26}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 24}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 22}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 44}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 86}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"qualname": 3, "fullname": 8, "annotation": 3, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"qualname": 4, "fullname": 9, "annotation": 3, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 15}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 69}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 21}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 45}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"qualname": 5, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 19}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 29}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.abstractions.architects.local_architect": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"qualname": 2, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"qualname": 2, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 17}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 21}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.mock_architect": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"qualname": 4, "fullname": 9, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"qualname": 2, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 561}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 22}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 67}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 305}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 7}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockServer": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 17}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 10}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"qualname": 6, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 24}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 9}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 21}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.architects.router": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 448}, "mephisto.abstractions.architects.router.build_router": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.build_router.can_build": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 32}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 10}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 8}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.build_router.build_router": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 27}, "mephisto.abstractions.architects.router.flask": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.app": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 45}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 12}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"qualname": 3, "fullname": 11, "annotation": 11, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"qualname": 3, "fullname": 11, "annotation": 11, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 35}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 19}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 9}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 14}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 15}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 25}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 11}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 24}, "mephisto.abstractions.blueprint": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprint.BlueprintArgs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprint.SharedTaskState": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprint.BlueprintMixin": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 33}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 64}, "mephisto.abstractions.blueprint.Blueprint": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 47}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 49}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 21}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 18}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 50}, "mephisto.abstractions.blueprints": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 1332}, "mephisto.abstractions.blueprints.abstract": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 49}, "mephisto.abstractions.blueprints.abstract.static_task": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 8}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 53}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 42}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 30}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 8}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 8}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 28}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 42}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 53}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 28}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"qualname": 6, "fullname": 15, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 17}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 27}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 12}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 48}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 61}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 19}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"qualname": 4, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"qualname": 4, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"qualname": 4, "fullname": 11, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 22}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 19}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 18}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"qualname": 5, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 29}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 22}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"qualname": 4, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"qualname": 3, "fullname": 10, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"qualname": 3, "fullname": 10, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"qualname": 4, "fullname": 11, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 33}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 42}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 20}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 34}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 26}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 22}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"qualname": 2, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 34}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"qualname": 6, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"qualname": 6, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 18}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"qualname": 6, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"qualname": 7, "fullname": 14, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 29}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 12}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 19, "doc": 47}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 19, "doc": 57}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 19, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 12}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 12}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 19, "doc": 47}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 19, "doc": 57}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"qualname": 4, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"qualname": 5, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"qualname": 5, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"qualname": 6, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 19}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 22}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 22}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"qualname": 3, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.parlai_chat": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 22}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 28}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 72}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 82, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"qualname": 3, "fullname": 11, "annotation": 3, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 60}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 11}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 22}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 22}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 30}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 60}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 72}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 22}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 61}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 30}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 42}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 17}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 20}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 9}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"qualname": 6, "fullname": 15, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 5}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 15}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 25}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 15}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 6}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 67}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 88, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"qualname": 3, "fullname": 11, "annotation": 23, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 34}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"qualname": 4, "fullname": 12, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 11}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 15}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 15}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 32}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 52}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 34}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 67}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"qualname": 3, "fullname": 11, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 11, "doc": 32}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 52}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"qualname": 6, "fullname": 15, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 9}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 5}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.static_html_task": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 892}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 32}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"qualname": 3, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"qualname": 3, "fullname": 12, "annotation": 3, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"qualname": 3, "fullname": 12, "annotation": 3, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 15}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 29}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 32}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"qualname": 3, "fullname": 12, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 10}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"qualname": 0, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"qualname": 1, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 29}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"qualname": 3, "fullname": 13, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"qualname": 3, "fullname": 13, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"qualname": 3, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 8}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"qualname": 4, "fullname": 14, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 16}, "mephisto.abstractions.blueprints.static_react_task": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 25}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"qualname": 3, "fullname": 12, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"qualname": 4, "fullname": 13, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 15}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"qualname": 3, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 17}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"qualname": 2, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 25}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"qualname": 3, "fullname": 12, "annotation": 2, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"qualname": 4, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 12}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"qualname": 0, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"qualname": 1, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 17}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"qualname": 3, "fullname": 13, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"qualname": 3, "fullname": 13, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"qualname": 4, "fullname": 14, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 16}, "mephisto.abstractions.crowd_provider": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"qualname": 3, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 48}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 85}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 5, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 59}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 42}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 20}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 34}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 21}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 23}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 78}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"qualname": 6, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 17}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"qualname": 6, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 12}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 12}, "mephisto.abstractions.database": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.database.MephistoDBException": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "mephisto.abstractions.database.EntryDoesNotExistException": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "mephisto.abstractions.database.MephistoDB": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 50}, "mephisto.abstractions.database.MephistoDB.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 13}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 10}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 24}, "mephisto.abstractions.database.MephistoDB.cache_result": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 11}, "mephisto.abstractions.database.MephistoDB.shutdown": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.abstractions.database.MephistoDB.init_tables": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 30}, "mephisto.abstractions.database.MephistoDB.new_project": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 37}, "mephisto.abstractions.database.MephistoDB.get_project": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 30}, "mephisto.abstractions.database.MephistoDB.find_projects": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.new_task": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 24}, "mephisto.abstractions.database.MephistoDB.get_task": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.update_task": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 32}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 53}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 37}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 22}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 14}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 21}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.new_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 27}, "mephisto.abstractions.database.MephistoDB.get_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.find_units": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 62, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 22}, "mephisto.abstractions.database.MephistoDB.update_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 17}, "mephisto.abstractions.database.MephistoDB.new_requester": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 24}, "mephisto.abstractions.database.MephistoDB.get_requester": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.new_worker": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 46}, "mephisto.abstractions.database.MephistoDB.get_worker": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.find_workers": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.new_agent": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 37}, "mephisto.abstractions.database.MephistoDB.get_agent": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.update_agent": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 17}, "mephisto.abstractions.database.MephistoDB.find_agents": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 20}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 37}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 32}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 18}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 22}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 25}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 14}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 29}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 15}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 16}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 10}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 28}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.abstractions.databases": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 267}, "mephisto.abstractions.databases.local_database": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 14}, "mephisto.abstractions.databases.local_database.is_key_failure": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 30}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 30}, "mephisto.abstractions.databases.local_database.StringIDRow": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 29}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.databases.local_singleton_database": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 51}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 13}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 24}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 11}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 27}, "mephisto.abstractions.providers": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 1835}, "mephisto.abstractions.providers.mock": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_agent": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 34}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 20}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 32}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 25}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mock.mock_datastore": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 19}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_provider": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 10}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 22}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 59}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 42}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 34}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 10}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 23}, "mephisto.abstractions.providers.mock.mock_requester": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 12}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"qualname": 2, "fullname": 8, "annotation": 2, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"qualname": 3, "fullname": 9, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 42}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 12}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 6}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 7}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 50}, "mephisto.abstractions.providers.mock.mock_unit": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 59}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 56}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 7}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mock.mock_worker": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 47}, "mephisto.abstractions.providers.mock.provider_type": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_agent": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 34}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 27}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 36}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 30}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 19}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 32}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 22}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk.mturk_provider": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 10}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 46}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 19}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 34}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 36}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 23}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_requester": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"qualname": 4, "fullname": 10, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"qualname": 4, "fullname": 10, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 19}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 35}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 50}, "mephisto.abstractions.providers.mturk.mturk_unit": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 46}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 56}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 21}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 23}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 39}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk.mturk_utils": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 16}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 21}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 21}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 27}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 7}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 51}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 40}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 11}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 16}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 19}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 12}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 15}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 28}, "mephisto.abstractions.providers.mturk.mturk_worker": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 20}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"qualname": 6, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"qualname": 5, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 76}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 32}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 16}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 14}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 28}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 47}, "mephisto.abstractions.providers.mturk.provider_type": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.utils": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"qualname": 5, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 46}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"qualname": 6, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 13}, "mephisto.abstractions.providers.mturk_sandbox": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 14}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 18}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 9}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 22}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 46}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 13}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 20}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 14}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 9}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"qualname": 5, "fullname": 13, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 23}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 13}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 10}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 50}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 46}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 9}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"qualname": 0, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"qualname": 1, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 20}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"qualname": 3, "fullname": 11, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 37}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"qualname": 4, "fullname": 12, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 32}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"qualname": 2, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 47}, "mephisto.client": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 972}, "mephisto.client.api": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.api.get_available_requesters": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.get_running_task_runs": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 15}, "mephisto.client.api.get_reviewable_task_runs": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 16}, "mephisto.client.api.launch_options": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.start_task_run": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.view_unit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.get_basic_task_options": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.requester_details": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.requester_register": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.get_submitted_data": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.get_balance": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.requester_launch_options": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.get_available_blueprints": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.get_blueprint_arguments": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.get_available_architects": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.api.get_architect_arguments": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.accept_unit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.reject_unit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.soft_block_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.hard_block_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.client.api.intentional_error": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.client.api.InvalidUsage": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "mephisto.client.api.InvalidUsage.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "mephisto.client.api.InvalidUsage.status_code": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.api.InvalidUsage.to_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.client.api.handle_invalid_usage": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.client.cli": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.config": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.config.Config": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.config.Config.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.config.Config.ENV": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.full": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.full.server": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.full.server.main": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.client.review": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.review.review_server": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.client.review.review_server.run": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "mephisto.data_model": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 1189}, "mephisto.data_model.agent": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.agent.Agent": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 34}, "mephisto.data_model.agent.Agent.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.data_model.agent.Agent.state": {"qualname": 2, "fullname": 6, "annotation": 7, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.agent.Agent.set_live_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.data_model.agent.Agent.get_live_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 14}, "mephisto.data_model.agent.Agent.get_agent_id": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 7}, "mephisto.data_model.agent.Agent.get_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.data_model.agent.Agent.get_unit": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.data_model.agent.Agent.get_assignment": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.agent.Agent.get_task_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.data_model.agent.Agent.get_task": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.agent.Agent.get_data_dir": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.data_model.agent.Agent.update_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 23}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 20}, "mephisto.data_model.agent.Agent.observe": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 19}, "mephisto.data_model.agent.Agent.get_live_update": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 27}, "mephisto.data_model.agent.Agent.act": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 27}, "mephisto.data_model.agent.Agent.await_submit": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.data_model.agent.Agent.handle_submit": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.data_model.agent.Agent.get_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.data_model.agent.Agent.shutdown": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 31}, "mephisto.data_model.agent.Agent.approve_work": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.data_model.agent.Agent.soft_reject_work": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 19}, "mephisto.data_model.agent.Agent.reject_work": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 12}, "mephisto.data_model.agent.Agent.mark_done": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 30}, "mephisto.data_model.agent.Agent.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 44}, "mephisto.data_model.agent.OnboardingAgent": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 72}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 14}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 12}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"qualname": 7, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 10}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 23}, "mephisto.data_model.agent.OnboardingAgent.observe": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 19}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 27}, "mephisto.data_model.agent.OnboardingAgent.act": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 27}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 31}, "mephisto.data_model.agent.OnboardingAgent.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 16}, "mephisto.data_model.assignment": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.assignment.InitializationData": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "mephisto.data_model.assignment.InitializationData.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.data_model.assignment.Assignment": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 26}, "mephisto.data_model.assignment.Assignment.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 9}, "mephisto.data_model.assignment.Assignment.get_agents": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.data_model.assignment.Assignment.get_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.data_model.assignment.Assignment.get_task_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.data_model.assignment.Assignment.get_task": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.data_model.assignment.Assignment.get_requester": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.data_model.assignment.Assignment.get_units": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 14}, "mephisto.data_model.assignment.Assignment.get_workers": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 14}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 21}, "mephisto.data_model.assignment.Assignment.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 32}, "mephisto.data_model.constants": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 25}, "mephisto.data_model.constants.assignment_state": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 4, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 7}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 11}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 11}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 11}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"qualname": 2, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 12}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 14}, "mephisto.data_model.exceptions": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.exceptions.AbsentAgentError": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 10}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.exceptions.AgentTimeoutError": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 12}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.data_model.exceptions.AgentReturnedError": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 12}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.exceptions.AgentShutdownError": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 16}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.packet": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.packet.Packet": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 41}, "mephisto.data_model.packet.Packet.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "mephisto.data_model.packet.Packet.from_dict": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.packet.Packet.copy": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.data_model.project": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.project.Project": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 33}, "mephisto.data_model.project.Project.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.project.Project.get_tasks": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 15}, "mephisto.data_model.project.Project.get_total_spend": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.data_model.project.Project.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 20}, "mephisto.data_model.qualification": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.qualification.Qualification": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 11}, "mephisto.data_model.qualification.Qualification.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.qualification.GrantedQualification": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "mephisto.data_model.requester": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.requester.RequesterArgs": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "mephisto.data_model.requester.RequesterArgs.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.data_model.requester.RequesterArgs.name": {"qualname": 2, "fullname": 6, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.requester.Requester": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 42}, "mephisto.data_model.requester.Requester.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.data_model.requester.Requester.ArgsClass": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "mephisto.data_model.requester.Requester.get_task_runs": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 14}, "mephisto.data_model.requester.Requester.get_total_spend": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 16}, "mephisto.data_model.requester.Requester.is_sandbox": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.data_model.requester.Requester.register": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 50}, "mephisto.data_model.requester.Requester.is_registered": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.data_model.requester.Requester.get_available_budget": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.data_model.requester.Requester.to_dict": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 14}, "mephisto.data_model.requester.Requester.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 50}, "mephisto.data_model.task": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task.assert_task_is_valid": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 18}, "mephisto.data_model.task.Task": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 39}, "mephisto.data_model.task.Task.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.task.Task.get_project": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.data_model.task.Task.set_project": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "mephisto.data_model.task.Task.get_runs": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 14}, "mephisto.data_model.task.Task.get_assignments": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.data_model.task.Task.get_total_spend": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.data_model.task.Task.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 35}, "mephisto.data_model.task_run": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"qualname": 3, "fullname": 8, "annotation": 3, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"qualname": 5, "fullname": 10, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"qualname": 5, "fullname": 10, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"qualname": 5, "fullname": 10, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"qualname": 3, "fullname": 8, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 15}, "mephisto.data_model.task_run.TaskRun": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 22}, "mephisto.data_model.task_run.TaskRun.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "mephisto.data_model.task_run.TaskRun.get_units": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"qualname": 6, "fullname": 11, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 16}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 19}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 10}, "mephisto.data_model.task_run.TaskRun.get_provider": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.data_model.task_run.TaskRun.get_task": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.data_model.task_run.TaskRun.get_requester": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 12}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 14}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 28}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 22}, "mephisto.data_model.task_run.TaskRun.to_dict": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 13}, "mephisto.data_model.task_run.TaskRun.new": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 14}, "mephisto.data_model.unit": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"qualname": 4, "fullname": 8, "annotation": 3, "default_value": 17, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.unit.Unit": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 59}, "mephisto.data_model.unit.Unit.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 56}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.unit.Unit.get_assignment_data": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.data_model.unit.Unit.sync_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 18}, "mephisto.data_model.unit.Unit.get_db_status": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.data_model.unit.Unit.set_db_status": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 12}, "mephisto.data_model.unit.Unit.get_assignment": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 12}, "mephisto.data_model.unit.Unit.get_task_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.data_model.unit.Unit.get_task": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.data_model.unit.Unit.get_requester": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 16}, "mephisto.data_model.unit.Unit.get_pay_amount": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 18}, "mephisto.data_model.unit.Unit.get_status": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 65}, "mephisto.data_model.unit.Unit.launch": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 54}, "mephisto.data_model.unit.Unit.expire": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 28}, "mephisto.data_model.unit.Unit.is_expired": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 14}, "mephisto.data_model.unit.Unit.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 35}, "mephisto.data_model.worker": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.data_model.worker.WorkerArgs": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "mephisto.data_model.worker.WorkerArgs.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.data_model.worker.Worker": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 20}, "mephisto.data_model.worker.Worker.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 57}, "mephisto.data_model.worker.Worker.get_agents": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 19}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 27}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.data_model.worker.Worker.is_disqualified": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 41}, "mephisto.data_model.worker.Worker.is_qualified": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 37}, "mephisto.data_model.worker.Worker.revoke_qualification": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 29}, "mephisto.data_model.worker.Worker.grant_qualification": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 30}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 32}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 32}, "mephisto.data_model.worker.Worker.bonus_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 13}, "mephisto.data_model.worker.Worker.block_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 13}, "mephisto.data_model.worker.Worker.unblock_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 10}, "mephisto.data_model.worker.Worker.is_blocked": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 8}, "mephisto.data_model.worker.Worker.is_eligible": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.data_model.worker.Worker.register": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.data_model.worker.Worker.new": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 47}, "mephisto.operations": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 2112}, "mephisto.operations.client_io_handler": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.client_io_handler.ClientIOHandler": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 54}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 3}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"qualname": 5, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 17}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 14}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 17}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"qualname": 5, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 22}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 13}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"qualname": 4, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 12}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"qualname": 2, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.operations.config_handler": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.config_handler.get_raw_config": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 14}, "mephisto.operations.config_handler.get_config": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.operations.config_handler.write_config": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 10}, "mephisto.operations.config_handler.init_config": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.operations.config_handler.add_config_arg": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 11}, "mephisto.operations.config_handler.get_config_arg": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 16}, "mephisto.operations.datatypes": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "mephisto.operations.datatypes.LoopWrapper": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 11}, "mephisto.operations.datatypes.LiveTaskRun": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 38}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 12, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 12, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 19, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 18, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 20, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.DatabaseArgs": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 81}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"qualname": 2, "fullname": 6, "annotation": 5, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"qualname": 2, "fullname": 6, "annotation": 6, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"qualname": 2, "fullname": 6, "annotation": 5, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.task": {"qualname": 2, "fullname": 6, "annotation": 7, "default_value": 39, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.database": {"qualname": 2, "fullname": 6, "annotation": 6, "default_value": 6, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"qualname": 3, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.TaskConfig": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 71}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"qualname": 2, "fullname": 6, "annotation": 6, "default_value": 55, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"qualname": 3, "fullname": 7, "annotation": 2, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"qualname": 3, "fullname": 7, "annotation": 2, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.register_abstraction_config": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.build_default_task_config": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.RunScriptConfig": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 71}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.initialize_named_configs": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 16}, "mephisto.operations.hydra_config.register_script_config": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.operations.hydra_config.get_dict_from_field": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 22}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 15}, "mephisto.operations.hydra_config.get_task_state_dicts": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.operations.hydra_config.parse_arg_dict": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 23}, "mephisto.operations.operator": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.operator.Operator": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 73}, "mephisto.operations.operator.Operator.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 3}, "mephisto.operations.operator.Operator.get_running_task_runs": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 11}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"qualname": 7, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 3}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 11}, "mephisto.operations.operator.Operator.force_shutdown": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 52}, "mephisto.operations.operator.Operator.shutdown_async": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 10}, "mephisto.operations.operator.Operator.shutdown": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 3}, "mephisto.operations.operator.Operator.validate_and_run_config": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 3}, "mephisto.operations.operator.Operator.launch_task_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 24}, "mephisto.operations.operator.Operator.print_run_details": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 7}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 29}, "mephisto.operations.registry": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.registry.BLUEPRINTS": {"qualname": 1, "fullname": 4, "annotation": 6, "default_value": 27, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.registry.ARCHITECTS": {"qualname": 1, "fullname": 4, "annotation": 6, "default_value": 18, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.registry.PROVIDERS": {"qualname": 1, "fullname": 4, "annotation": 7, "default_value": 15, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.registry.register_mephisto_abstraction": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 23}, "mephisto.operations.registry.uses_mephisto": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 25}, "mephisto.operations.registry.fill_registries": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 16}, "mephisto.operations.registry.get_crowd_provider_from_type": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "mephisto.operations.registry.get_blueprint_from_type": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.operations.registry.get_architect_from_type": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 10}, "mephisto.operations.registry.get_valid_provider_types": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 15}, "mephisto.operations.registry.get_valid_blueprint_types": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 15}, "mephisto.operations.registry.get_valid_architect_types": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 15}, "mephisto.operations.task_launcher": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.task_launcher.GeneratorType": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 5}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 3, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.task_launcher.TaskLauncher": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 31}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 14}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 13}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 25}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 6, "bases": 0, "doc": 9}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 11}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 13}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"qualname": 6, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 9}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 11}, "mephisto.operations.worker_pool": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.OnboardingInfo": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 12}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"qualname": 3, "fullname": 7, "annotation": 3, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"qualname": 3, "fullname": 7, "annotation": 3, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"qualname": 4, "fullname": 8, "annotation": 4, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"qualname": 3, "fullname": 7, "annotation": 3, "default_value": 2, "signature": 0, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.WorkerPool": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 43}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 3}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 15}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 13}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 14}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 10}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 12}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 15}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 18}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 31}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 20}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 10}, "mephisto.scripts": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 69}, "mephisto.scripts.heroku": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.heroku.initialize_heroku": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.heroku.initialize_heroku.main": {"qualname": 1, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 27}, "mephisto.scripts.local_db": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 47}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.scripts.mturk": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 320}, "mephisto.scripts.mturk.cleanup": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 24}, "mephisto.scripts.mturk.cleanup.main": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.identify_broken_units": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.identify_broken_units.main": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 30}, "mephisto.scripts.mturk.launch_makeup_hits": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"qualname": 3, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"qualname": 1, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 42}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"qualname": 0, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 19}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"qualname": 1, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"qualname": 0, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"qualname": 1, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 3}, "mephisto.tools": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 937}, "mephisto.tools.data_browser": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.tools.data_browser.DataBrowser": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 20}, "mephisto.tools.data_browser.DataBrowser.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 4, "bases": 0, "doc": 3}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"qualname": 6, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 22}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"qualname": 6, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 22}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 46}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"qualname": 5, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 19}, "mephisto.tools.examine_utils": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 23}, "mephisto.tools.examine_utils.print_results": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 21}, "mephisto.tools.examine_utils.prompt_for_options": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 30}, "mephisto.tools.examine_utils.get_worker_stats": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 22}, "mephisto.tools.examine_utils.format_worker_stats": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 25}, "mephisto.tools.examine_utils.run_examine_by_worker": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 22}, "mephisto.tools.examine_utils.run_examine_or_review": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 3}, "mephisto.tools.scripts": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "mephisto.tools.scripts.load_db_and_process_config": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 43}, "mephisto.tools.scripts.process_config_and_get_operator": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 36}, "mephisto.tools.scripts.task_script": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 63}, "mephisto.tools.scripts.get_db_from_config": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 17}, "mephisto.tools.scripts.augment_config_from_db": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 15, "bases": 0, "doc": 22}, "mephisto.tools.scripts.build_custom_bundle": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 42}, "mephisto.utils": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 252}, "mephisto.utils.dirs": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "mephisto.utils.dirs.get_root_dir": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.utils.dirs.get_provider_dir": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 10}, "mephisto.utils.dirs.get_tasks_dir": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 17}, "mephisto.utils.dirs.get_dir_for_task": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 25}, "mephisto.utils.dirs.get_root_data_dir": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 13}, "mephisto.utils.dirs.get_data_dir": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 12}, "mephisto.utils.dirs.get_dir_for_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 14}, "mephisto.utils.dirs.get_run_file_dir": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 45}, "mephisto.utils.logger_core": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.utils.logger_core.loggers": {"qualname": 1, "fullname": 5, "annotation": 4, "default_value": 269, "signature": 0, "bases": 0, "doc": 3}, "mephisto.utils.logger_core.warn_once": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 17}, "mephisto.utils.logger_core.set_mephisto_log_level": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 81}, "mephisto.utils.logger_core.get_logger": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 66}, "mephisto.utils.logger_core.format_loud": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 5, "bases": 0, "doc": 3}, "mephisto.utils.metrics": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.utils.metrics.run_install_script": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 3, "bases": 0, "doc": 9}, "mephisto.utils.metrics.metrics_are_installed": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 7}, "mephisto.utils.metrics.launch_servers_and_wait": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 2, "bases": 0, "doc": 28}, "mephisto.utils.metrics.start_metrics_server": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 49}, "mephisto.utils.metrics.launch_prometheus_server": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 25}, "mephisto.utils.metrics.launch_grafana_server": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 19}, "mephisto.utils.metrics.get_dash_url": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 15}, "mephisto.utils.metrics.shutdown_prometheus_server": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 6}, "mephisto.utils.metrics.shutdown_grafana_server": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 6}, "mephisto.utils.qualifications": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.utils.qualifications.worker_is_qualified": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 15}, "mephisto.utils.qualifications.make_qualification_dict": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 16}, "mephisto.utils.qualifications.find_or_create_qualification": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 20}, "mephisto.utils.testing": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "mephisto.utils.testing.get_test_project": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 9}, "mephisto.utils.testing.get_test_worker": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 9}, "mephisto.utils.testing.get_test_requester": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 9}, "mephisto.utils.testing.get_mock_requester": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 13}, "mephisto.utils.testing.get_test_task": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 9}, "mephisto.utils.testing.get_test_task_run": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 10}, "mephisto.utils.testing.get_test_assignment": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 9}, "mephisto.utils.testing.get_test_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.utils.testing.get_test_agent": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "mephisto.utils.testing.make_completed_unit": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 8, "bases": 0, "doc": 17}}, "length": 1320, "save": true}, "index": {"qualname": {"root": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}}, "df": 116, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 18, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {"mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}}, "df": 18, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}}, "df": 20}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}}, "df": 1}, "e": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}}, "df": 16}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 35, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}}, "df": 18}}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}}, "df": 2, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}}, "df": 2}}}}}}}}}}, "l": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 8}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 8}}, "p": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}}, "df": 5}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 59, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}}, "df": 4}}}}}}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}}, "df": 4}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}}, "df": 7}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client.api.accept_unit": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}}, "df": 141, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 4}}}}}}}}}, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 4}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}}, "df": 7}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client.api.intentional_error": {"tf": 1}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}}, "df": 4}}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 36}, "f": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 18, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 14, "s": {"docs": {"mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 15, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 13}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 6}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}}, "df": 4}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 22}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 3}}}, "w": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 5}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}}, "df": 4}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}}, "df": 6, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}}, "df": 5}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 12}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}}, "df": 11}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}}, "df": 7}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}}, "df": 7}}}}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 17, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 5}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}}, "df": 6}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 3}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}}, "df": 3}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 4}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}}, "df": 30, "s": {"docs": {"mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}}, "df": 85, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}}, "df": 4}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}}, "df": 13}}}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 4}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 5}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}}, "df": 11}}}}}}}}}}, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 4}}}, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 8}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}}, "df": 12}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}}, "df": 13, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}}, "df": 11}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}}, "df": 6}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}}, "df": 10}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.copy": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}}, "df": 5}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}}, "df": 30, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 219}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}}, "df": 4}}}}}}, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}}, "df": 3, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}}, "df": 6}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}}, "df": 7}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}}, "df": 23}}}, "r": {"docs": {"mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 12}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 4}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 17, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}}, "df": 8, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}}, "df": 15}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}}, "df": 2}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.client.config.Config": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.client.config.Config.ENV": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 28, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 4}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}}, "df": 2}, "o": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.InvalidUsage.status_code": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.packet.Packet.copy": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 4}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}}, "df": 6}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}}, "df": 7}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}}, "df": 5}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}}, "df": 2}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 22, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 11, "s": {"docs": {"mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}}, "df": 51, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 6}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 7}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 1}}}, "b": {"docs": {"mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 8}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}}, "df": 1}}, "l": {"docs": {"mephisto.operations.registry.fill_registries": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 15}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 20}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 31, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}}, "df": 54, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 4}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 13}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 13}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 4}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 24, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}}, "df": 21, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 4}}}}}, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}}, "df": 3}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {"mephisto.client.config.Config.ENV": {"tf": 1}}, "df": 1}}, "c": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}}, "df": 14, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "docs": {}, "df": 0}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}}, "df": 6, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}}, "df": 6}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}}, "df": 3}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}}, "df": 11}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 4}}, "x": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}}, "df": 4}}, "p": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}}, "df": 4}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 9, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}}, "df": 51, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 6}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}}, "df": 8}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}}, "df": 8}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}}, "df": 12, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}}, "df": 9}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}}, "df": 9}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}}, "df": 13, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}}, "df": 4}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}}, "df": 11}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}}, "df": 12}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}}, "df": 6}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}}, "df": 8}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}}, "df": 9}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}}, "df": 16}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}}, "df": 14}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}}, "df": 13}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 57, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 15}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}}, "df": 4}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 25, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}}, "df": 4, "r": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}}, "df": 1}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}}, "df": 14, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "s": {"docs": {"mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}}, "df": 9, "d": {"docs": {"mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 36}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 4}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}}, "df": 8, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 5, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LoopWrapper": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 4}}}}}}}}}, "u": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}}, "df": 4}}}}}}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 17, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}}, "df": 49, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 21, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}}, "df": 5}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.registry.fill_registries": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}}, "df": 3}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}}, "df": 12}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}}}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 30, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}}, "df": 3}}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}}, "df": 6}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.get_reviewable_task_runs": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 7}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}}, "df": 1}}, "w": {"docs": {"mephisto.operations.config_handler.get_raw_config": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 15}, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}}, "df": 8}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}}, "df": 3, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.client.api.get_basic_task_options": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}}, "df": 18, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {"mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}}, "df": 8, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}}, "df": 6}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}}, "df": 5}}}}, "y": {"docs": {"mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}}, "df": 15, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client.api.hard_block_unit": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}}, "df": 15, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 2}}}, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.client.api.view_unit": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 4}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}}, "df": 1, "l": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 35, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}}, "df": 8}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 4}}}}}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}}}}}, "fullname": {"root": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}}, "df": 116, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.client.api": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.client.api.handle_invalid_usage": {"tf": 1}, "mephisto.client.cli": {"tf": 1}, "mephisto.client.config": {"tf": 1}, "mephisto.client.config.Config": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.client.config.Config.ENV": {"tf": 1}, "mephisto.client.full": {"tf": 1}, "mephisto.client.full.server": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}, "mephisto.client.review": {"tf": 1}, "mephisto.client.review.review_server": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.copy": {"tf": 1}, "mephisto.data_model.project": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.config_handler": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}, "mephisto.operations.hydra_config": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1.4142135623730951}, "mephisto.operations.registry.uses_mephisto": {"tf": 1.4142135623730951}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}, "mephisto.utils.metrics": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}, "mephisto.utils.qualifications": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 1320, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}}, "df": 51, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 6}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}}, "df": 8}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}}, "df": 8}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.utils.metrics": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 11}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}}, "df": 11}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 4, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 3}}}}, "x": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}}, "df": 4}}, "p": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}}, "df": 4}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprints.mock": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 156, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}}, "df": 12, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}}, "df": 9}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}}, "df": 9}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}}, "df": 13, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}}, "df": 4}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}}, "df": 11}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}}, "df": 12}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}}, "df": 6}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}}, "df": 8}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.copy": {"tf": 1}, "mephisto.data_model.project": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 219}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprints.mixins": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}}, "df": 66}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mturk": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1.4142135623730951}}, "df": 169, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}}, "df": 9}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}}, "df": 16}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}}, "df": 14}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}}, "df": 13}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}}, "df": 45, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}}, "df": 847}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 109, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}}, "df": 176}}}}}}}}, "g": {"docs": {"mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}}, "df": 18, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}}, "df": 20}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}}, "df": 1}, "e": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}}, "df": 16}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.assignment": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 59, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}}, "df": 18}}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}}, "df": 2, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}}, "df": 2}}}}}}}}}}, "l": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 8}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 8}}, "p": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}}, "df": 5}}}}}, "i": {"docs": {"mephisto.client.api": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 27}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.data_model.agent": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.state": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 157, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}}, "df": 4}}}}}}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}}, "df": 4}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}}, "df": 7}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client.api.accept_unit": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}}, "df": 141, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 4}}}}}}}}}, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 6}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}}, "df": 7}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 6}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client.api.intentional_error": {"tf": 1}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}}, "df": 4}}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 36}, "f": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 20, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}}, "df": 2}}, "o": {"docs": {"mephisto.operations.client_io_handler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 13}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.client.full.server": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}, "mephisto.client.review.review_server": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 20, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 5}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 15, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 13}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 6}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}}, "df": 6}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 22}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 3}}}, "w": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 5}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}}, "df": 4}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}}, "df": 40, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}}, "df": 5}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 74}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}}, "df": 81, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}}, "df": 11}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}}, "df": 7}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}}, "df": 7}}}}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}}, "df": 19, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 5}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}}, "df": 21, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}}, "df": 5}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}}, "df": 6}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.scripts": {"tf": 1}, "mephisto.scripts.heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 26}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 7}}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}}, "df": 3}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 4}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}}, "df": 33, "s": {"docs": {"mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.set_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}}, "df": 274, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}}, "df": 4}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}}, "df": 13}}}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 4}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 5}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}}, "df": 11}}}}}}}}}}, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 4}}}, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 23}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 8, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.testing": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 11}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.blueprints.parlai_chat": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1.4142135623730951}}, "df": 71, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}}, "df": 12}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}}, "df": 13, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}}, "df": 11}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}}, "df": 6}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}}, "df": 10}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.packet": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.copy": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}}, "df": 7}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}}, "df": 9}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}}, "df": 47}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}}, "df": 86, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 230}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.data_model.project": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}}, "df": 11, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.worker_pool": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 23}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 219}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}}, "df": 4}}}}}}, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}}, "df": 3, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}}, "df": 27, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}}, "df": 15}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}}, "df": 71}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}}, "df": 7}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1}}, "df": 29}}}, "r": {"docs": {"mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {"mephisto.client.cli": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.client.api": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_available_architects": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.client.api.handle_invalid_usage": {"tf": 1}, "mephisto.client.cli": {"tf": 1}, "mephisto.client.config": {"tf": 1}, "mephisto.client.config.Config": {"tf": 1}, "mephisto.client.config.Config.__init__": {"tf": 1}, "mephisto.client.config.Config.ENV": {"tf": 1}, "mephisto.client.full": {"tf": 1}, "mephisto.client.full.server": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}, "mephisto.client.review": {"tf": 1}, "mephisto.client.review.review_server": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.operations.client_io_handler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 56, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 12}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 4}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 17, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.crowd_provider": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}}, "df": 27, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}}, "df": 15}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}}, "df": 2}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.client.config": {"tf": 1}, "mephisto.client.config.Config": {"tf": 1.4142135623730951}, "mephisto.client.config.Config.__init__": {"tf": 1.4142135623730951}, "mephisto.client.config.Config.ENV": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.write_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.init_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 54, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 4}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}}, "df": 20}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.utils.logger_core": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 8}, "o": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.InvalidUsage.status_code": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.packet.Packet.copy": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 4}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}}, "df": 6}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}}, "df": 7}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}}, "df": 5}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}}, "df": 2}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 22, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 10}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 11, "s": {"docs": {"mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.client.api.get_submitted_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.constants.assignment_state": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.copy": {"tf": 1}, "mephisto.data_model.project": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}, "mephisto.tools.data_browser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}}, "df": 271, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 36}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}}, "df": 74, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 19}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 7}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 16}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 1}}}, "b": {"docs": {"mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.scripts.local_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 11}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}}, "df": 1}}, "l": {"docs": {"mephisto.operations.registry.fill_registries": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 15}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1.4142135623730951}}, "df": 30}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 20}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 31, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client.full": {"tf": 1}, "mephisto.client.full.server": {"tf": 1}, "mephisto.client.full.server.main": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}}, "df": 8, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.worker": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.register": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}}, "df": 100, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 6}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 13}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.config_handler": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}, "mephisto.operations.hydra_config": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 129}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.operator": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 14}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.get_basic_task_options": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 4}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 37, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}}, "df": 21, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 4}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}}, "df": 3}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 4}}}}}, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}}, "df": 3}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {"mephisto.client.config.Config.ENV": {"tf": 1}}, "df": 1}}, "c": {"2": {"docs": {"mephisto.abstractions.architects.ec2": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1.4142135623730951}}, "df": 59, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}}, "df": 14, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "docs": {}, "df": 0}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}}, "df": 6, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}}, "df": 6}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.exceptions": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}}, "df": 11}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1.4142135623730951}}, "df": 7}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}}, "df": 3}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}}, "df": 8}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 21, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}}, "df": 5}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.operations.registry": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 14}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.registry.fill_registries": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}}, "df": 47, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}}, "df": 3}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}}, "df": 12}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}}}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.requester": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 66, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.client.api.get_available_requesters": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}}, "df": 3}}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}}, "df": 39}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}}, "df": 17}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.client.review": {"tf": 1}, "mephisto.client.review.review_server": {"tf": 1.4142135623730951}, "mephisto.client.review.review_server.run": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.get_reviewable_task_runs": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.client.api.start_task_run": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}}, "df": 84, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}}, "df": 45}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask": {"tf": 1}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}}, "df": 36}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1}}, "df": 1}}, "w": {"docs": {"mephisto.operations.config_handler.get_raw_config": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 5}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 17, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}}, "df": 28}}}, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}}, "df": 8}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}}, "df": 3, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.client.api.get_basic_task_options": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}}, "df": 165, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.client.api.get_available_blueprints": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 317}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1}}, "df": 10, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}}, "df": 6}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}}, "df": 5}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 2}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.data_browser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 8}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}}, "df": 11, "d": {"docs": {"mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 36}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}}, "df": 1}}, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.unit": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.expire": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.new": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 110, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 17}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}}, "df": 4}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 25, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}}, "df": 29, "r": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}}, "df": 1}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}}, "df": 14, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "s": {"docs": {"mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}, "mephisto.utils.metrics": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}, "mephisto.utils.qualifications": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 86}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.local_architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.scripts.local_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}}, "df": 36, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}}, "df": 4}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}}, "df": 4}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}}, "df": 10, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 5, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LoopWrapper": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 4}}}}}}}}}, "u": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}}, "df": 4}}}}}}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.client.api.launch_options": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 20, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}}, "df": 1}, "r": {"docs": {"mephisto.operations.task_launcher": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}}, "df": 16}}}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 2}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 29}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions.architects.heroku_architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.scripts.heroku": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku": {"tf": 1.4142135623730951}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.4142135623730951}}, "df": 24, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}}, "df": 15, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}}, "df": 19}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client.api.hard_block_unit": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 4, "r": {"docs": {"mephisto.operations.client_io_handler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.config_handler": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}}, "df": 20}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1}}, "df": 17, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 5}}}, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations.hydra_config": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 27}}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.client.api.view_unit": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}}, "df": 4}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}}, "df": 1, "l": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.qualification": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 38, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.utils.qualifications": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 13}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 4}}}}}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}}}}}, "annotation": {"root": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 96, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}}, "df": 47}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.agent.Agent.state": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}}, "df": 10}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 8}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 13}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 10}}}}}}}}}}, "c": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.agent.Agent.state": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1.4142135623730951}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.data_model.agent.Agent.state": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 10, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 14}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 5}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}}}}}, "h": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}}, "default_value": {"root": {"0": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.7320508075688772}}, "df": 8}, "1": {"8": {"0": {"0": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 4}, "2": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}, "3": {"0": {"0": {"0": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}, "4": {"0": {"0": {"docs": {"mephisto.client.api.InvalidUsage.status_code": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"docs": {"mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}}, "df": 1}, "6": {"0": {"0": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1.4142135623730951}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1}, "mephisto.client.config.Config.ENV": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 2.23606797749979}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 3.1622776601683795}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 4.123105625617661}, "mephisto.operations.registry.ARCHITECTS": {"tf": 3.7416573867739413}, "mephisto.operations.registry.PROVIDERS": {"tf": 3.3166247903554}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 10.04987562112089}}, "df": 135, "n": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1}}, "df": 8}}, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}, "t": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 2.23606797749979}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 2.449489742783178}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.loggers": {"tf": 2.23606797749979}}, "df": 10, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1}}, "df": 1}}, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}}, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1.4142135623730951}}, "df": 3, "o": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 3}}, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 5.744562646538029}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 8}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2.6457513110645907}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.loggers": {"tf": 3.1622776601683795}}, "df": 12}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}, "x": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 2.449489742783178}}, "df": 3}, "docs": {}, "df": 0}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1}}, "df": 9}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 2}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1.4142135623730951}}, "df": 2}}, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 3, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1}}, "df": 1}, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client.config.Config.ENV": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2.6457513110645907}}, "df": 1, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1}}, "df": 8}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "y": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2.449489742783178}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 3}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.4142135623730951}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 3}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1}}, "df": 2}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 3}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 4}}, "e": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1}, "mephisto.operations.registry.PROVIDERS": {"tf": 1}}, "df": 6}}}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 3}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 1}, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2.23606797749979}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 2}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 4.358898943540674}}, "df": 1}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.loggers": {"tf": 2}}, "df": 2, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.4142135623730951}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"3": {"8": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1}}, "df": 1}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}, "docs": {}, "df": 0}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 4, "r": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1}}, "df": 2}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}, "mephisto.utils.logger_core.loggers": {"tf": 1.7320508075688772}}, "df": 3}}}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1}}, "df": 1}, "n": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1}}, "df": 2}}}, "o": {"docs": {"mephisto.utils.logger_core.loggers": {"tf": 1}}, "df": 1}}}}, "signature": {"root": {"0": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}}, "df": 11}, "1": {"0": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}, "8": {"0": {"0": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}}, "df": 12}, "3": {"0": {"0": {"0": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 4}, "6": {"0": {"0": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}, "4": {"8": {"0": {"0": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}}, "df": 1}, "docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 2}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 2}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 3.1622776601683795}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 4}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 4}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 4.47213595499958}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 3.605551275463989}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 4}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 3.3166247903554}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.client.api.get_available_requesters": {"tf": 1.4142135623730951}, "mephisto.client.api.get_running_task_runs": {"tf": 1.4142135623730951}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1.4142135623730951}, "mephisto.client.api.launch_options": {"tf": 1.4142135623730951}, "mephisto.client.api.start_task_run": {"tf": 1.4142135623730951}, "mephisto.client.api.view_unit": {"tf": 1.4142135623730951}, "mephisto.client.api.get_basic_task_options": {"tf": 1.4142135623730951}, "mephisto.client.api.requester_details": {"tf": 1.4142135623730951}, "mephisto.client.api.requester_register": {"tf": 1.4142135623730951}, "mephisto.client.api.get_submitted_data": {"tf": 1.4142135623730951}, "mephisto.client.api.get_balance": {"tf": 1.4142135623730951}, "mephisto.client.api.requester_launch_options": {"tf": 1.4142135623730951}, "mephisto.client.api.get_available_blueprints": {"tf": 1.4142135623730951}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1.4142135623730951}, "mephisto.client.api.get_available_architects": {"tf": 1.4142135623730951}, "mephisto.client.api.get_architect_arguments": {"tf": 1.4142135623730951}, "mephisto.client.api.accept_unit": {"tf": 1.4142135623730951}, "mephisto.client.api.reject_unit": {"tf": 1.4142135623730951}, "mephisto.client.api.soft_block_unit": {"tf": 1.4142135623730951}, "mephisto.client.api.hard_block_unit": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1.4142135623730951}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1.4142135623730951}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1.4142135623730951}, "mephisto.client.api.handle_invalid_usage": {"tf": 1.4142135623730951}, "mephisto.client.config.Config.__init__": {"tf": 1.4142135623730951}, "mephisto.client.full.server.main": {"tf": 1.4142135623730951}, "mephisto.client.review.review_server.run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.copy": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.new": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.set_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 2.6457513110645907}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.expire": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.new": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.register": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.write_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.init_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 3.1622776601683795}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 3.1622776601683795}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 3.1622776601683795}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1.4142135623730951}, "mephisto.operations.registry.uses_mephisto": {"tf": 1.4142135623730951}, "mephisto.operations.registry.fill_registries": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1.4142135623730951}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_root_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.warn_once": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.format_loud": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.run_install_script": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.get_dash_url": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_project": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_worker": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_requester": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_mock_requester": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_task": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_task_run": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_assignment": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_unit": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_agent": {"tf": 1.4142135623730951}, "mephisto.utils.testing.make_completed_unit": {"tf": 1.4142135623730951}}, "df": 842, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.copy": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 546}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}}, "df": 16}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1.4142135623730951}}, "df": 24}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 2}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 2.6457513110645907}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 2.8284271247461903}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 2.6457513110645907}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 327, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 50}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 18, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.7320508075688772}}, "df": 11}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 50, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 43}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 6}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}}, "df": 3}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 8}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 5}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}}, "df": 5}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}}, "df": 8}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 2}}, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"3": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}}, "df": 4}, "docs": {}, "df": 0}}}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1.7320508075688772}}, "df": 11, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}}, "df": 1}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 69}}, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}}, "df": 6}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 2}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 135}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "c": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 18}}, "c": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}}, "df": 1}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1.4142135623730951}}, "df": 3}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client.review.review_server.run": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.new": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}}, "df": 45, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}}, "df": 3}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client.review.review_server.run": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1.4142135623730951}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1.4142135623730951}}, "df": 166}}, "p": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 2}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 2}}, "df": 66, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}}, "df": 12}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.client.api.get_architect_arguments": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 59, "[": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}}, "df": 8}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 2}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 2}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 2.449489742783178}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 2.6457513110645907}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}}, "df": 104, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 48, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 14}}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}}, "df": 10}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}}, "df": 10}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}}, "df": 4, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 12}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 2}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.utils.logger_core.format_loud": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}}, "df": 8}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}}, "df": 7}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 3.3166247903554}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 2.8284271247461903}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1.4142135623730951}, "mephisto.client.review.review_server.run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.register": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.config_handler.init_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 2}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 267, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 3.3166247903554}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 2.8284271247461903}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 2}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 132}}}}}}, "t": {"docs": {"mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 91}}, "n": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 23}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 11}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 14}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1.7320508075688772}}, "df": 11}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 5}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}}, "df": 2, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRun.new": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client.api.InvalidUsage.__init__": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 7}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1.4142135623730951}}, "df": 30, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.get_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.set_project": {"tf": 1.7320508075688772}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}}, "df": 10}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 3}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}}, "df": 4}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 8}}}, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 76}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 2}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 233, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 81, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 3}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 10}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 2}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 2}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 2}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.get_dash_url": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1.4142135623730951}}, "df": 69}}}}}}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 78}}}}}}, "r": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1.4142135623730951}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}}, "df": 31, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}}, "df": 6}}}}}}}}}, "o": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 5, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 8}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}}, "df": 3}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 7}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client.review.review_server.run": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 5}}}}}}}}, "m": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 2}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 2}, "mephisto.data_model.agent.Agent.new": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 2}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 2}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 3}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 2.23606797749979}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 236, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 73}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 12}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.set_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 201}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}}, "df": 5, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}}, "df": 2}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}}, "p": {"docs": {"mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}}, "df": 12}}}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}}, "df": 7, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}}, "df": 2}}}}}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1.4142135623730951}}, "df": 57}}}}}}}}, "n": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 11, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 20, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 17}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}}, "df": 7}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 2}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 16}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client.review.review_server.run": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.packet.Packet.__init__": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {"mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1.4142135623730951}}, "df": 64, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 11}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}}, "df": 15}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 120}}, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}}, "df": 24}, "docs": {}, "df": 0}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}}, "df": 1, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}}, "df": 2}, "y": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 1}}, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}}, "df": 74, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}}, "df": 8}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}, "w": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 26}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}}, "df": 20}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 8, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.7320508075688772}, "mephisto.client.api.requester_details": {"tf": 1}, "mephisto.client.api.requester_register": {"tf": 1}, "mephisto.client.api.get_balance": {"tf": 1}, "mephisto.client.api.requester_launch_options": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1.4142135623730951}}, "df": 47}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.4142135623730951}}, "df": 3, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}}, "df": 2}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}}, "df": 57}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}}, "df": 28, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.7320508075688772}}, "df": 6}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 20, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.4142135623730951}}, "df": 6}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 3}}}}}}}}, "~": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 6}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.4142135623730951}}, "df": 9}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}}, "df": 6}}}}}}}}}}, "n": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 18}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 2}}, "df": 19, "s": {"docs": {"mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 6}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}}, "df": 5}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 3}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}}, "df": 4}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 4}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 1, "[": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 33}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1}}, "df": 15}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 5}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 13}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1}}, "df": 3}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 9}}}}}}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 1}}, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 2, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 5}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1}}, "df": 6}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.4142135623730951}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 42}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}}, "df": 34}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 2}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client.api.view_unit": {"tf": 1}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 144, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}}, "df": 1}}, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 7, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 9}}}}}}, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 36, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 11}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.packet.Packet.__init__": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.utils.testing.get_test_unit": {"tf": 1}}, "df": 9}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.packet.Packet.from_dict": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 3}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 3}}}, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 6}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}}, "df": 4}, "o": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}}, "df": 1, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}}, "df": 12}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 12}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 3}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 2.8284271247461903}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}}, "df": 44}}, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"3": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}}, "df": 17}}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.data_model.packet.Packet.__init__": {"tf": 2}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 20}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 23}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 5}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}}, "df": 14}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.client.api.accept_unit": {"tf": 1}, "mephisto.client.api.reject_unit": {"tf": 1}, "mephisto.client.api.soft_block_unit": {"tf": 1}, "mephisto.client.api.hard_block_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 2.23606797749979}, "mephisto.data_model.unit.Unit.new": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 2}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 2}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_unit": {"tf": 1}, "mephisto.utils.testing.get_test_agent": {"tf": 1}}, "df": 69, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}}, "df": 14}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.4142135623730951}}, "df": 5, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"2": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"3": {"8": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}}, "df": 2}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}, "docs": {}, "df": 0}}}}}}}}}}}}}}}}, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1}, "mephisto.data_model.project.Project.__init__": {"tf": 1}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 20}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 7}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2, "c": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.client.api.handle_invalid_usage": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 1}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}}, "df": 5}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 11}}}}, "p": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}}, "df": 4}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}}, "df": 8}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1}}, "df": 4}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1}}, "df": 11}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}}, "df": 4}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 2}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client.review.review_server.run": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}}, "df": 11, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}, "mephisto.client.review.review_server.run": {"tf": 1}}, "df": 7, "l": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1}}, "df": 4}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1.7320508075688772}}, "df": 71, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 45, "s": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1}}, "df": 9}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1, "[": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}}, "df": 6}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}}, "df": 93}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}}, "df": 8}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}}, "df": 19, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 12}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 127, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}}}}, "b": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 14}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 20}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 34}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1.4142135623730951}}, "df": 11, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}}, "df": 2}}}}}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}}, "df": 2}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 31}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 12}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1.4142135623730951}}, "df": 8, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 8}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"3": {"docs": {"mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}}, "df": 6, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 31, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 10}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}}, "df": 8}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 1}}}}}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}}, "df": 6}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}}, "df": 4}}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 20}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}}, "df": 8}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 12}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}}, "df": 3}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 29, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 28}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}}, "df": 8}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 14}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 20, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 8}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}}, "df": 8}}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}}, "df": 11}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 34, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 14}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.operations.task_launcher.GeneratorType": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}}, "df": 6}}}}}}, "doc": {"root": {"0": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.7320508075688772}}, "df": 9}, "1": {"0": {"0": {"0": {"0": {"0": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "5": {"0": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"0": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 2.23606797749979}}, "df": 7}, "2": {"0": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}, "2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}, "docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"0": {"0": {"0": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}, "docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "3": {"1": {"docs": {"mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}, "4": {"0": {"3": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"3": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}}, "df": 2}, "5": {"0": {"0": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "1": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}, "6": {"0": {"0": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}, "8": {"8": {"8": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"mephisto.client": {"tf": 1}}, "df": 1}, "9": {"7": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"mephisto": {"tf": 6.324555320336759}, "mephisto.abstractions": {"tf": 9.327379053088816}, "mephisto.abstractions.architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.ArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.ArchitectArgs.server_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.ArchitectArgs.server_source_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 2.449489742783178}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects": {"tf": 13.341664064126334}, "mephisto.abstractions.architects.channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 2.8284271247461903}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.cleanup_ec2_resources.main": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.cleanup_ec2_server_by_name.main": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.instance_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.subdomain": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs.profile_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ARCHITECT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.check_aws_credentials": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.setup_ec2_credentials": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_to_routing_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_listener": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 2}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.main": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.use_hobby": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_team": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs.heroku_app_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 3}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ARCHITECT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.hostname": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs.port": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ARCHITECT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.get_rand_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.should_run_server": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs.port": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 10.723805294763608}, "mephisto.abstractions.architects.mock_architect.SocketHandler.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 3}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 7.483314773547883}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.AliveHandler.get": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ARCHITECT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 7.874007874011811}, "mephisto.abstractions.architects.router.build_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_flask_router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.app": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouterState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_app": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.mephisto_router_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.request_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.log_error": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.is_alive": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_timestamp": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.download_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.show_index": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_task_config": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.get_static": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprint.BlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintArgs.block_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.SharedTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_required_qualifications": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 15.937377450509228}, "mephisto.abstractions.blueprints.abstract": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 4.358898943540674}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.units_per_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.extra_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_json": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_jsonl": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs.data_csv": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 4.358898943540674}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs.onboarding_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_onboarding_config": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.screen_task_required": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.passed_qualification_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.max_screening_units": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs.use_screening_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.blank_generator": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_screening_config": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.should_generate_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_screening_unit_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.gold_qualification_base": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.use_golds": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.min_golds": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs.max_incorrect_golds": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 3.1622776601683795}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 3.1622776601683795}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_gold_config": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_gold_unit_data_for_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_agent_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.num_assignments": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.use_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.timeout_time": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs.is_concurrent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 4.358898943540674}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 4.358898943540674}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.BLUEPRINT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_FILE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.BUILT_MESSAGE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_mock_assignment_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 4.795831523312719}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState.world_module": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 3.7416573867739413}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.world_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.preview_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.task_description_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_bundle": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.custom_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.extra_source_dir": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_csv": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.context_jsonl": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs.num_conversations": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 3.7416573867739413}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 4.795831523312719}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.BLUEPRINT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_FILE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.BUILT_MESSAGE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.ParlAIAgent.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_not_installed.Message.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest.to_dict": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 4.47213595499958}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState.function_registry": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.link_task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs.units_per_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 4.47213595499958}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.BLUEPRINT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 3}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 12.727922061357855}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.preview_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs.onboarding_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.BLUEPRINT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_FILE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.BUILT_MESSAGE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs.link_task_source": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.BLUEPRINT_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_FILE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.BUILT_MESSAGE": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.ProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.ProviderArgs.requester_name": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 2.449489742783178}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 2.449489742783178}, "mephisto.abstractions.crowd_provider.CrowdProvider.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 2.23606797749979}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 3}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB": {"tf": 2.6457513110645907}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 2.449489742783178}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 6}, "mephisto.abstractions.databases.local_database": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.StringIDRow": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.StringIDRow.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 2.8284271247461903}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 19.924858845171276}, "mephisto.abstractions.providers.mock": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.name": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs.force_fail": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.provider_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 2.6457513110645907}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.access_key_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs.secret_access_key": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_aws_credentials": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.setup_aws_credentials": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_hit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_mturk_worker_id": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 3.1622776601683795}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.provider_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.provider_type": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.PROVIDER_TYPE": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 2.449489742783178}, "mephisto.client": {"tf": 20.29778313018444}, "mephisto.client.api": {"tf": 1.7320508075688772}, "mephisto.client.api.get_available_requesters": {"tf": 1.7320508075688772}, "mephisto.client.api.get_running_task_runs": {"tf": 1.4142135623730951}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1.4142135623730951}, "mephisto.client.api.launch_options": {"tf": 1.7320508075688772}, "mephisto.client.api.start_task_run": {"tf": 1.7320508075688772}, "mephisto.client.api.view_unit": {"tf": 1.7320508075688772}, "mephisto.client.api.get_basic_task_options": {"tf": 1.7320508075688772}, "mephisto.client.api.requester_details": {"tf": 1.7320508075688772}, "mephisto.client.api.requester_register": {"tf": 1.7320508075688772}, "mephisto.client.api.get_submitted_data": {"tf": 1.7320508075688772}, "mephisto.client.api.get_balance": {"tf": 1.7320508075688772}, "mephisto.client.api.requester_launch_options": {"tf": 1.7320508075688772}, "mephisto.client.api.get_available_blueprints": {"tf": 1.7320508075688772}, "mephisto.client.api.get_blueprint_arguments": {"tf": 1.7320508075688772}, "mephisto.client.api.get_available_architects": {"tf": 1.7320508075688772}, "mephisto.client.api.get_architect_arguments": {"tf": 1.7320508075688772}, "mephisto.client.api.accept_unit": {"tf": 1.7320508075688772}, "mephisto.client.api.reject_unit": {"tf": 1.7320508075688772}, "mephisto.client.api.soft_block_unit": {"tf": 1.7320508075688772}, "mephisto.client.api.hard_block_unit": {"tf": 1.7320508075688772}, "mephisto.client.api.intentional_error": {"tf": 1.7320508075688772}, "mephisto.client.api.InvalidUsage": {"tf": 1.7320508075688772}, "mephisto.client.api.InvalidUsage.__init__": {"tf": 1.7320508075688772}, "mephisto.client.api.InvalidUsage.status_code": {"tf": 1.7320508075688772}, "mephisto.client.api.InvalidUsage.to_dict": {"tf": 1.7320508075688772}, "mephisto.client.api.handle_invalid_usage": {"tf": 1.7320508075688772}, "mephisto.client.cli": {"tf": 1.7320508075688772}, "mephisto.client.config": {"tf": 1.7320508075688772}, "mephisto.client.config.Config": {"tf": 1.7320508075688772}, "mephisto.client.config.Config.__init__": {"tf": 1.7320508075688772}, "mephisto.client.config.Config.ENV": {"tf": 1.7320508075688772}, "mephisto.client.full": {"tf": 1.7320508075688772}, "mephisto.client.full.server": {"tf": 1.7320508075688772}, "mephisto.client.full.server.main": {"tf": 1.7320508075688772}, "mephisto.client.review": {"tf": 1.7320508075688772}, "mephisto.client.review.review_server": {"tf": 1.7320508075688772}, "mephisto.client.review.review_server.run": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 13.638181696985855}, "mephisto.data_model.agent": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.state": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.act": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 2.449489742783178}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 2.449489742783178}, "mephisto.data_model.agent.OnboardingAgent.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.DISPLAY_PREFIX": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData.dumpJSON": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData.loadFromJSON": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.7320508075688772}, "mephisto.data_model.constants": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.CREATED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.LAUNCHED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.ASSIGNED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.COMPLETED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.ACCEPTED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.MIXED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.REJECTED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.SOFT_REJECTED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.EXPIRED": {"tf": 1.7320508075688772}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AbsentAgentError.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentDisconnectedError.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentTimeoutError.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentReturnedError.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentShutdownError.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.packet": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet": {"tf": 2.449489742783178}, "mephisto.data_model.packet.Packet.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.from_dict": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.to_sendable_dict": {"tf": 1.7320508075688772}, "mephisto.data_model.packet.Packet.copy": {"tf": 1.7320508075688772}, "mephisto.data_model.project": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project": {"tf": 2.449489742783178}, "mephisto.data_model.project.Project.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project.new": {"tf": 1.7320508075688772}, "mephisto.data_model.qualification": {"tf": 1.7320508075688772}, "mephisto.data_model.qualification.Qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.Qualification.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.GrantedQualification.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.requester": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.RequesterArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.RequesterArgs.name": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 2.449489742783178}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 2.449489742783178}, "mephisto.data_model.task": {"tf": 1.7320508075688772}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.get_project": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.set_project": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.get_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_name": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_title": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_description": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_reward": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.task_tags": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.assignment_duration_in_seconds": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.allowed_concurrent": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.maximum_units_per_worker": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.max_num_concurrent_units": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.submission_timeout": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_task_args": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.4142135623730951}, "mephisto.data_model.unit": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.INDEX_TO_TYPE_MAP": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit": {"tf": 2.23606797749979}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 2}, "mephisto.data_model.unit.Unit.launch": {"tf": 2.449489742783178}, "mephisto.data_model.unit.Unit.expire": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.new": {"tf": 2.23606797749979}, "mephisto.data_model.worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.WorkerArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 2}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 2}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 2}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 2}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 2}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 2}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 2}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.register": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new": {"tf": 2.449489742783178}, "mephisto.operations": {"tf": 20.322401432901575}, "mephisto.operations.client_io_handler": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler": {"tf": 1.7320508075688772}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.write_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.init_config": {"tf": 1.7320508075688772}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LoopWrapper": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LoopWrapper.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LoopWrapper.set_active_thread": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun.force_shutdown": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun.shutdown": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.NOT_QUALIFIED": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.NO_AVAILABLE_UNITS": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.TOO_MANY_CONCURRENT": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.MAX_FOR_TASK": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.WorkerFailureReasons.TASK_MISSING": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.DatabaseArgs.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 3.3166247903554}, "mephisto.operations.hydra_config.MephistoConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.blueprint": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.provider": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.architect": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.task": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.database": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig.log_level": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 3.3166247903554}, "mephisto.operations.hydra_config.TaskConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig.mephisto": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig.task_dir": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig.num_tasks": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.register_abstraction_config": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.build_default_task_config": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 3.3166247903554}, "mephisto.operations.hydra_config.RunScriptConfig.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.register_script_config": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.check_for_hydra_compat": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1.7320508075688772}, "mephisto.operations.operator": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator": {"tf": 2.449489742783178}, "mephisto.operations.operator.Operator.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.validate_and_run_config_or_die": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 3.4641016151377544}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.validate_and_run_config": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 2.23606797749979}, "mephisto.operations.registry": {"tf": 1.7320508075688772}, "mephisto.operations.registry.BLUEPRINTS": {"tf": 1.7320508075688772}, "mephisto.operations.registry.ARCHITECTS": {"tf": 1.7320508075688772}, "mephisto.operations.registry.PROVIDERS": {"tf": 1.7320508075688772}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1.7320508075688772}, "mephisto.operations.registry.uses_mephisto": {"tf": 1.7320508075688772}, "mephisto.operations.registry.fill_registries": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType.NONE": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType.UNIT": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.GeneratorType.ASSIGNMENT": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.get_assignments_are_all_created": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.OnboardingInfo.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.worker_id": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.agent_id": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.init_task_data": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.failure_reason": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails.to_dict": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.__init__": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 2.23606797749979}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 3.1622776601683795}, "mephisto.scripts.heroku": {"tf": 1.7320508075688772}, "mephisto.scripts.heroku.initialize_heroku": {"tf": 1.7320508075688772}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db": {"tf": 1.7320508075688772}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 2.6457513110645907}, "mephisto.scripts.local_db.load_data_to_mephisto_db.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 4.898979485566356}, "mephisto.scripts.mturk.cleanup": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.cleanup.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.launch_makeup_hits": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.launch_makeup_hits.build_task_config": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 2.449489742783178}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.print_outstanding_hit_status.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.soft_block_workers_by_mturk_id.main": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 14.52583904633395}, "mephisto.tools.data_browser": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.__init__": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_task_name_list": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 2.449489742783178}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 2.6457513110645907}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_or_review": {"tf": 1.7320508075688772}, "mephisto.tools.scripts": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 2.23606797749979}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 2.23606797749979}, "mephisto.tools.scripts.task_script": {"tf": 3.1622776601683795}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 2.23606797749979}, "mephisto.utils": {"tf": 6.48074069840786}, "mephisto.utils.dirs": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_root_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1.7320508075688772}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 2.23606797749979}, "mephisto.utils.logger_core": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.loggers": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.warn_once": {"tf": 2.23606797749979}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 2.8284271247461903}, "mephisto.utils.logger_core.get_logger": {"tf": 3.7416573867739413}, "mephisto.utils.logger_core.format_loud": {"tf": 1.7320508075688772}, "mephisto.utils.metrics": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.run_install_script": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 2.449489742783178}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 2.23606797749979}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.get_dash_url": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications": {"tf": 1.7320508075688772}, "mephisto.utils.qualifications.worker_is_qualified": {"tf": 1.7320508075688772}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.utils.testing": {"tf": 1.7320508075688772}, "mephisto.utils.testing.get_test_project": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_worker": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_requester": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_mock_requester": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_task": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_task_run": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_assignment": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_unit": {"tf": 1.7320508075688772}, "mephisto.utils.testing.get_test_agent": {"tf": 1.7320508075688772}, "mephisto.utils.testing.make_completed_unit": {"tf": 1.4142135623730951}}, "df": 1320, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto": {"tf": 3}, "mephisto.abstractions": {"tf": 3}, "mephisto.abstractions.architects": {"tf": 3.605551275463989}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 3.3166247903554}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 2}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 3}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model": {"tf": 3.1622776601683795}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 4.69041575982343}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 2.23606797749979}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1.4142135623730951}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.23606797749979}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils": {"tf": 3.3166247903554}, "mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 65, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}}, "df": 12}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}}, "df": 1}}}}}}}, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 6}}}}}}}}}}}}, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools": {"tf": 2.449489742783178}}, "df": 42, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.scripts": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}}, "df": 15}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.7320508075688772}}, "df": 5}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 2}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 15, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 16}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 3}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 15}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 6}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}}, "df": 4, "d": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 8}}}}}, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 5}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 24, "b": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 5}, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 12, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}}, "df": 3}}, "s": {"docs": {"mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}}, "df": 21, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}}, "df": 1}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 17, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 14, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 6}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 11}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}}, "df": 4}}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3, "l": {"docs": {"mephisto": {"tf": 2}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 13}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.registry.uses_mephisto": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1.7320508075688772}}, "df": 7, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 7}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 2}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 18}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 44, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}}, "df": 2}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}}, "df": 5, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}}, "df": 2}}}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 1}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 12}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester": {"tf": 1}}, "df": 6}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 2}}, "df": 1}}}, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}}, "df": 3}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 10}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}}, "df": 3}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}}, "df": 2}}}}, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 2}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 47, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 2}}}, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 53, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.605551275463989}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 2}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2.8284271247461903}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.123105625617661}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2.449489742783178}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 4.58257569495584}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.data_model": {"tf": 3.7416573867739413}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.4142135623730951}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations": {"tf": 3.7416573867739413}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2}, "mephisto.tools": {"tf": 3.872983346207417}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 2.6457513110645907}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 310}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {"mephisto": {"tf": 4.358898943540674}, "mephisto.abstractions": {"tf": 4.898979485566356}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 2}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 7.615773105863909}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 2}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 4.58257569495584}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 5.196152422706632}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 2}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 2}, "mephisto.abstractions.blueprints": {"tf": 7.615773105863909}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 8.366600265340756}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 2.23606797749979}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 3.7416573867739413}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 10.099504938362077}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 2}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 2.23606797749979}, "mephisto.client": {"tf": 3.605551275463989}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 7.615773105863909}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 2}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 2}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1.7320508075688772}, "mephisto.data_model.constants": {"tf": 1.4142135623730951}, "mephisto.data_model.packet.Packet": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 2}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 2}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 2}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit": {"tf": 2}, "mephisto.data_model.unit.Unit.__init__": {"tf": 2}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 2.449489742783178}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.expire": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 2}, "mephisto.data_model.worker.Worker.__init__": {"tf": 2}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 2}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 2}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 2.23606797749979}, "mephisto.operations": {"tf": 11.661903789690601}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.write_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 2}, "mephisto.operations.operator.Operator": {"tf": 2.8284271247461903}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1.4142135623730951}, "mephisto.operations.registry.fill_registries": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 3.7416573867739413}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 6.855654600401044}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 2.23606797749979}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 2}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 2}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 2.8284271247461903}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 2}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.get_logger": {"tf": 2}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.get_dash_url": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1.7320508075688772}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 603, "y": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 21}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.tools": {"tf": 2}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 22}}, "n": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 42}, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 25}}, "m": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 21}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 17}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 10}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto": {"tf": 2}, "mephisto.abstractions": {"tf": 2.449489742783178}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects": {"tf": 4.358898943540674}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 5}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.872983346207417}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 4.242640687119285}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 4.123105625617661}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations": {"tf": 5.477225575051661}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1.4142135623730951}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.6457513110645907}, "mephisto.scripts.mturk.cleanup": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 4.123105625617661}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils": {"tf": 2.23606797749979}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 187}, "n": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 11}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 22, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 3}}}, "o": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 3.872983346207417}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 6}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 4}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2.8284271247461903}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 3.4641016151377544}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 7.211102550927978}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 4.58257569495584}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2.8284271247461903}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 7.54983443527075}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 3}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 4.69041575982343}, "mephisto.data_model.agent.Agent.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 2.23606797749979}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 8.306623862918075}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 2}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 4.242640687119285}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 3}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 2.23606797749979}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 363, "p": {"docs": {"mephisto": {"tf": 1}}, "df": 1}, "o": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2, "l": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}}, "df": 4}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}}, "df": 5}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.client": {"tf": 1.4142135623730951}}, "df": 6}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 8}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions": {"tf": 2.6457513110645907}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.795831523312719}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.1622776601683795}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.client": {"tf": 4.47213595499958}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 3.605551275463989}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 3.872983346207417}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 2.6457513110645907}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 2.6457513110645907}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 3.7416573867739413}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 204, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 10, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 4}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 3}}}}}}}, "s": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 3.3166247903554}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 2.6457513110645907}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 2.6457513110645907}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.operations": {"tf": 3}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 60}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 6}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}}, "df": 4}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.tools": {"tf": 2.8284271247461903}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 11}, "n": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}}, "df": 9}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}}, "df": 7}}}, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 2.23606797749979}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 35, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 9}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}, "l": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 5}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 20}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 10}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 2.6457513110645907}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}}, "df": 2}, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.7320508075688772}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.operations": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 10}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 21}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 2, "y": {"docs": {"mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}}, "df": 4}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}}, "df": 1}}}}}}}}, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 21, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 32, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 9}}}, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.task.Task": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 4}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}}, "df": 2, "[": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 4}}}}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "i": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 4}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.58257569495584}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5.0990195135927845}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 2.23606797749979}, "mephisto.data_model": {"tf": 4.358898943540674}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 5.385164807134504}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 2.8284271247461903}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 156, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 2}}, "n": {"docs": {"mephisto": {"tf": 1.7320508075688772}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.4641016151377544}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.242640687119285}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 4.358898943540674}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.3166247903554}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 4.47213595499958}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1.4142135623730951}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 4.123105625617661}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 4.123105625617661}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils": {"tf": 2.449489742783178}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 142, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 18, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.operations": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 3}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 7}}}}, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 39}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 26, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 5}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}}, "df": 5}}}}, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}}, "df": 4}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 3}, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 7}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 15}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}}, "df": 3}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}}, "df": 3}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 17}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}}, "df": 8, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 28}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 28}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 7, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 3}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 26, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 8}}}}}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 8}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 14}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architects": {"tf": 3.7416573867739413}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3.1622776601683795}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 3.3166247903554}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 3.872983346207417}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2.8284271247461903}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1.4142135623730951}}, "df": 124, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 10}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}}, "df": 1, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 4}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.3166247903554}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 171}, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 3.7416573867739413}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 77, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 10}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 6}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 10}}}}}, "a": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}}, "df": 1}}}}}}}}, "\\": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 5}, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}}, "df": 2}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 5}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 10}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}}, "df": 3}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}}, "df": 8, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 5}, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {"mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 10, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 5}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}}, "df": 17, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 13, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 14}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 12, "s": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 4}}, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 14, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5.196152422706632}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 50, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}}, "df": 15}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 25}, "s": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 9}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 7}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 17, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}}, "df": 4}, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}}, "df": 3}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.tools": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 11}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}}, "df": 12, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}}, "df": 4}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 6}}, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 4, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 3}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.tools": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 2}, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 1}}}}}}}}}, "y": {"docs": {"mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2}, "mephisto.utils": {"tf": 2.23606797749979}}, "df": 8, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 7}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 8, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 12}, "y": {"docs": {"mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 2}}, "df": 5}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.scripts": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 5}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}}, "df": 5}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 18, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 6}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.449489742783178}}, "df": 1}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.registry.fill_registries": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 11, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}}, "df": 7, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.scripts": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.7320508075688772}}, "df": 39}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.utils.dirs": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 13}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.utils.dirs.get_provider_dir": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 4}}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}}, "df": 1}, "s": {"docs": {"mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 6}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}}, "df": 1}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 9}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}, "s": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 15, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}}, "df": 15}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 3}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 5}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.config_handler.write_config": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}, "e": {"docs": {"mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 1}}, "o": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 21, "c": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 19, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}}, "df": 4}}}}}}, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 12, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 23, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}}, "df": 1}}}}, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}}, "df": 6, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 2, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 25, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"mephisto": {"tf": 2.23606797749979}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 6.324555320336759}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.data_model": {"tf": 3.1622776601683795}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.operations": {"tf": 3.3166247903554}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 3.4641016151377544}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 98, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2.6457513110645907}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 33, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 3}, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 4}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}}, "df": 9}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {"mephisto.data_model.unit.Unit.sync_status": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 4}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}}, "df": 12}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 5}}}}, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}}, "df": 25}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 21, "d": {"docs": {"mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 2}}}}}}}}, "f": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 4}, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 19, "s": {"docs": {"mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 4}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 5}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 3, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {"mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 48}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 8}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 4}}}}}}, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 2}}}, "c": {"docs": {"mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 16}}}, "s": {"docs": {"mephisto": {"tf": 2.449489742783178}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.utils": {"tf": 2.449489742783178}, "mephisto.utils.dirs": {"tf": 1}}, "df": 15}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}, "d": {"docs": {"mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}}, "df": 7}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 8}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 9}}, "t": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.operations": {"tf": 4.123105625617661}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools": {"tf": 3.1622776601683795}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 2}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 26, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}}, "df": 9, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 6}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 15, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 9}}}}}, "s": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}}, "df": 6}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}}, "df": 1}}, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.constants": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 7}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 23}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto": {"tf": 1}}, "df": 1}, "s": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 14}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 4}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"mephisto": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 19, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 14}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}}, "df": 8}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.operations": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 9, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"5": {"3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "#": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 7}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2}}, "df": 3, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 3}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 101, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 3.3166247903554}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.utils": {"tf": 2}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 14, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "i": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 21, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 11}}}}}}}}}, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}}, "df": 7, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}}, "df": 17}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}}, "df": 5}, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 1}}, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 6, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}, "s": {"docs": {"mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "d": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 6}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 41, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.8284271247461903}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 27, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}}, "df": 6}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 7, "\\": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 6}}}, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 88, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 16}, "d": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 21}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 7}}}}}}}}}, "a": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.7320508075688772}}, "df": 9, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 17, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}}, "df": 17}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.8284271247461903}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model": {"tf": 3}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 3.1622776601683795}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils": {"tf": 1}}, "df": 62, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}, "t": {"docs": {"mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}}, "df": 1}}, "p": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 16, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 4, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}}, "df": 17}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}}, "df": 10}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 11}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 2}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}}, "df": 8}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}}, "df": 12}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 22, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 4}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 8}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}}, "df": 5}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.utils.dirs": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}}, "df": 8}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 3.3166247903554}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 5}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 3.3166247903554}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 6.164414002968976}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.3166247903554}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 6.244997998398398}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 3.3166247903554}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 5.5677643628300215}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 6.48074069840786}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 3}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 5.5677643628300215}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.task_script": {"tf": 2.23606797749979}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 390, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 95, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 13, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 8}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 3}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 16}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 44}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.7416573867739413}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 2}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 30, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 10}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {"mephisto": {"tf": 2}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.data_model": {"tf": 4.242640687119285}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.operations": {"tf": 3.605551275463989}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 2.449489742783178}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.utils": {"tf": 2.23606797749979}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 77, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}}, "df": 6}, "a": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 9}}}}, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 2, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.7320508075688772}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 44}}}}}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 2.23606797749979}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 21, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 3}}}}}}}, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}}, "df": 4}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"mephisto": {"tf": 2}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3.3166247903554}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.605551275463989}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 4}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 4}, "mephisto.data_model.agent.Agent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 3.1622776601683795}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 3.1622776601683795}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 99, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 39}, "s": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 3}}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 6}}}, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 3.3166247903554}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 2}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 65, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}}, "df": 24}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 14}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}}}}, "k": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}}, "df": 3}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 11, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.operations": {"tf": 2}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.7320508075688772}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 9, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.assignment.Assignment": {"tf": 1}}, "df": 1}}, "s": {"docs": {"mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.8284271247461903}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 30}, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 12}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 16}}}}, "n": {"docs": {"mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.6457513110645907}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.4641016151377544}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 3}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.task_launcher.GeneratorType": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 121, "d": {"docs": {"mephisto": {"tf": 2.23606797749979}, "mephisto.abstractions": {"tf": 3.1622776601683795}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.7416573867739413}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 3.4641016151377544}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.242640687119285}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.605551275463989}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5.196152422706632}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 4.47213595499958}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations": {"tf": 6.4031242374328485}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 5}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 2.23606797749979}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 2}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 183, "\\": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.InitializationData": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 82, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 5}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}}, "df": 30, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.7320508075688772}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 7}}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}}, "df": 4}}}}}}}}, "\\": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.client": {"tf": 2.6457513110645907}, "mephisto.tools": {"tf": 1}}, "df": 20, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.utils.dirs": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 4}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 18}}}}}}}, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 11, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 6}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.operations": {"tf": 2}}, "df": 8}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}, "m": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 1}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 8}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.disconnect_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.3166247903554}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.agent.Agent.__init__": {"tf": 2}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1.4142135623730951}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.operations": {"tf": 4.242640687119285}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1.4142135623730951}}, "df": 126, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 18, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 5}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 21, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}}, "df": 3}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 13}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 15}}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 17}}}}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 5}, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}}, "df": 4, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.constants": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 9}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}}, "df": 3}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 5, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"mephisto": {"tf": 2.23606797749979}, "mephisto.abstractions": {"tf": 3.3166247903554}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 3}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5.385164807134504}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 2.6457513110645907}, "mephisto.data_model": {"tf": 5.744562646538029}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1.7320508075688772}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 6.48074069840786}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.6457513110645907}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 3.3166247903554}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 2.23606797749979}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 184, "f": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}}, "df": 8, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 7, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.config_handler.add_config_arg": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 6}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 14}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {"mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 9}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 6}}}}}, "n": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.shutdown": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}}, "df": 3, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 11}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 5}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.scripts": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {"mephisto": {"tf": 1.4142135623730951}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.449489742783178}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 2.23606797749979}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.client": {"tf": 2.449489742783178}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 3.872983346207417}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 104, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 26, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 34}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 7}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3.1622776601683795}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 2}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 49, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}}, "df": 3}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 9}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 18, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 13}}}}}}}}, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}}, "df": 2}, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 3}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations": {"tf": 3.1622776601683795}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.scripts": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 53, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 14}}}, "g": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"5": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "c": {"6": {"4": {"5": {"5": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 3.605551275463989}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 15, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "s": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 4}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}, "w": {"3": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.4641016151377544}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 58, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 17, "s": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.449489742783178}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 2}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 3.1622776601683795}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 2}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1.7320508075688772}, "mephisto.operations": {"tf": 3}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 126, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.23606797749979}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 23}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 5}}}}}, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 4}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.unit.Unit.expire": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 14, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 10, "n": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}}, "df": 4}}, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 31, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 13}}, "b": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 4.123105625617661}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}}, "df": 5}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 7}}, "a": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 3.1622776601683795}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations": {"tf": 3.605551275463989}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 137, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 22}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 16}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.3166247903554}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.tools": {"tf": 2.449489742783178}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 56}, "d": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}, "p": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 40, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 16, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}}, "df": 9}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 13, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}}, "df": 10}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 18}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 7}}}, "o": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 7, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 16}, "d": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.requester.Requester.register": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 3}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}}, "df": 1, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, ":": {"8": {"8": {"8": {"8": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"5": {"3": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 10, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 3}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}}, "df": 3}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}}, "df": 19}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.scripts": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}}, "df": 6}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 3}}}, "y": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 5, "d": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.1622776601683795}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 45}, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 10}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 7}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 16, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 2}, "mephisto.client": {"tf": 3.872983346207417}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 2}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 2}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 57, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.data_model.requester.Requester": {"tf": 1}}, "df": 10}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}, "/": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}}, "df": 6}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 3.3166247903554}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations": {"tf": 3.1622776601683795}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.4142135623730951}}, "df": 19}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {"mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 14}}}}}, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 13, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 5}}}}, "t": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_assignment": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_task": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_task": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_requester": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.utils.dirs.get_root_dir": {"tf": 1}, "mephisto.utils.dirs.get_provider_dir": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.metrics.metrics_are_installed": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 203, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 32}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 30}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 3}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.6457513110645907}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 44, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}}, "df": 13}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}}, "df": 5}}}, "s": {"docs": {"mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent": {"tf": 1}}, "df": 15}}}}}, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}}, "df": 3}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}}, "df": 9}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}}, "df": 14, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}}, "df": 5}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 14, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 8, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}}, "df": 4, "d": {"docs": {"mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 5, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 11}, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}}, "df": 5}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}}, "df": 11, "s": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 1}}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}}, "df": 8, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 10}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}}, "df": 7}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 5}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.449489742783178}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_task": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.to_dict": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.get_task_run": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.run_install_script": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 85, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.print_run_details": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 28}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_blueprint": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.run_unit": {"tf": 1}}, "df": 6}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.scripts": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.client": {"tf": 2.449489742783178}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}}, "df": 28, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}}, "df": 21, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 6}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 6}}}, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}}, "df": 1}}}, "k": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "w": {"docs": {"mephisto.operations.config_handler.get_raw_config": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3}}}, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 8}}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {"mephisto": {"tf": 2.449489742783178}, "mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 4.795831523312719}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 5.656854249492381}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 2}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 4.47213595499958}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_agents": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 2}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.get_assignments": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 6.928203230275509}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1.7320508075688772}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 4.47213595499958}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1.4142135623730951}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 2.449489742783178}, "mephisto.utils.dirs": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 412, "m": {"docs": {"mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 4, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}}, "df": 5, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_parsed_data": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}}, "df": 8}}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 8, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}}, "df": 1}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 4}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.constants": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.init_mixin_config": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.tools": {"tf": 2}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 27, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 2}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 10}}}}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 13}}}}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_agent_from_onboarding": {"tf": 1}}, "df": 7, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils": {"tf": 2}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 43, "s": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1.7320508075688772}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 29, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 45, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}}, "df": 4}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 8, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 12}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 13}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_parsed_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 3.605551275463989}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 2}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.7320508075688772}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 93}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.rebuild_core": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations.worker_pool.AgentDetails": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 31}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 4}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}}, "df": 7, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}}, "df": 11}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 25, "y": {"docs": {"mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}}, "df": 2}}}, "l": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 3}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 6}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.datatypes": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.router": {"tf": 3}}, "df": 1}}, "g": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2, "l": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 2}}}, "n": {"docs": {"mephisto.client": {"tf": 2}}, "df": 1, "o": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_projects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_tasks": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_task_runs": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_assignments": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_requesters": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_workers": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_onboarding_agents": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 58, "t": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 40, "e": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 3}, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}}, "df": 2}}}}, "w": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 12, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}}, "df": 3}}, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}}, "df": 13, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.databases.local_database.nonesafe_int": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 21, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.7320508075688772}}, "df": 11}}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2}}, "df": 56, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations.worker_pool.AgentDetails": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 2}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 25, "s": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.6457513110645907}, "mephisto.data_model": {"tf": 1.7320508075688772}}, "df": 9}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 17}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.worker.Worker.register": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 10}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 2}}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_live_update": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 11, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 9}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 3.872983346207417}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 2}}, "df": 57, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}}, "df": 9}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.client": {"tf": 2.23606797749979}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}}, "df": 38, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 12}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}}, "df": 4}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 21, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_blocked": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.is_blocked": {"tf": 1}}, "df": 10}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}}, "df": 8}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.install_router_files": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_node_router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1.7320508075688772}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}}, "df": 25, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}}, "df": 13}}, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}}, "df": 4}}, "t": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 11}}}, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 24, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 8, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}}, "df": 2}}}}}}}}, "e": {"docs": {"mephisto.abstractions": {"tf": 2.23606797749979}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 3.4641016151377544}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 3.605551275463989}, "mephisto.abstractions.blueprints.abstract": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 3}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 4.898979485566356}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 4.358898943540674}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 4.358898943540674}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 2.6457513110645907}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 135, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 21}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 20}}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 16}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 12}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 5}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 4}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 2}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 6}}, "d": {"docs": {"mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architect.ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architect.Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.crowd_provider.ProviderArgs": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.RequesterArgs": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.ArgsClass": {"tf": 1}, "mephisto.data_model.worker.WorkerArgs": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 36, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 15}}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1.7320508075688772}, "mephisto.client": {"tf": 1.7320508075688772}}, "df": 3, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 3}}}}}}, "r": {"docs": {"mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}}, "df": 1}}, "y": {"docs": {"mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 96, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 4}, "o": {"3": {"docs": {"mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}, "x": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 27, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new_from_provider_data": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.new_from_provider_data": {"tf": 1}}, "df": 3}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1.4142135623730951}}, "df": 8, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}, "u": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 4, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.operator.Operator": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 42, "r": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.WorkerClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.data_model.worker.Worker": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.scripts": {"tf": 1}, "mephisto.tools": {"tf": 2.23606797749979}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 31, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.utils": {"tf": 1}}, "df": 7, "/": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"3": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"3": {"8": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 2}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}, "docs": {}, "df": 0}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts": {"tf": 1}, "mephisto.utils": {"tf": 1.7320508075688772}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 11}}}, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 6}, "d": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_task": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 42}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.agent.Agent.get_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_worker": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 30}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}}, "df": 12}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}}}}}, "p": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.client": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 43, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 7}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}}, "df": 17, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 3}, "d": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 5}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 7}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.data_model.task.Task.new": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 2}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 2}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.get_init_data_for_agent": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 3.605551275463989}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_assignment_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.client": {"tf": 2.449489742783178}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.agent.Agent.get_unit": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.reserve_unit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 2}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment": {"tf": 1}, "mephisto.data_model.unit.Unit.get_requester": {"tf": 1}, "mephisto.data_model.unit.Unit.clear_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_pay_amount": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1.7320508075688772}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.tools": {"tf": 3.1622776601683795}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1.7320508075688772}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 106, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_units": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.operations": {"tf": 2.8284271247461903}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1.4142135623730951}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.expire_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 2.449489742783178}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1.4142135623730951}}, "df": 38}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1, "d": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 13}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}}, "df": 4}}}}}, "s": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1.7320508075688772}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 3}}}}}}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}}, "df": 10, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1}}, "df": 3}}}, "i": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}}, "df": 8}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}, "a": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 10}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 15, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}}, "df": 21, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 7}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.tools.scripts.augment_config_from_db": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 9, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 6}}}}, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.6457513110645907}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.datatypes": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4}}}}}}, "p": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 1}}, "df": 13, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "r": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 8}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.new_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_mturk_hit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.clear_assigned_agent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_config": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 19, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}}, "df": 6}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.utils": {"tf": 1}, "mephisto.utils.testing.get_test_project": {"tf": 1}, "mephisto.utils.testing.get_test_worker": {"tf": 1}, "mephisto.utils.testing.get_test_requester": {"tf": 1}, "mephisto.utils.testing.get_test_task": {"tf": 1}, "mephisto.utils.testing.get_test_task_run": {"tf": 1}, "mephisto.utils.testing.get_test_assignment": {"tf": 1}}, "df": 12, "s": {"docs": {"mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 3}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}, "d": {"docs": {"mephisto.data_model.constants": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2ArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 16, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 9}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.requester.Requester.get_available_budget": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 41}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_worker": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 23, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2}, "mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_message": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}}, "df": 7, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.operations.operator.Operator.get_running_task_runs": {"tf": 1}}, "df": 2}}, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 12, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 3}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 40, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.mark_disconnected": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 7}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}, "y": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 3}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}, "mephisto.tools.scripts.process_config_and_get_operator": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}}, "df": 12}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}}, "df": 2}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 4.358898943540674}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}}, "df": 9}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 7}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.task_run.TaskRun.clear_reservation": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 2}}}, "w": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 2}}, "df": 1, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto": {"tf": 1.7320508075688772}, "mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.operations": {"tf": 3.1622776601683795}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 2}, "mephisto.utils.logger_core.get_logger": {"tf": 1.7320508075688772}}, "df": 27, "s": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1}}, "df": 2}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.load_db_and_process_config": {"tf": 1}}, "df": 16, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}}, "df": 4}}, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}}, "df": 5}}}}, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}}, "df": 2}, "c": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}}, "df": 5}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}}, "df": 1}, "r": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 2}}, "df": 4, "s": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1.7320508075688772}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1.4142135623730951}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 6}}}}, "s": {"docs": {"mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}}, "df": 1}}}, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitectArgs": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.ArgsClass": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.7320508075688772}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.register_from_provider_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 36, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 9}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.database.MephistoDB": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.task_run.TaskRun.get_provider": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 2.6457513110645907}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_units": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 25, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 11}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.task.Task.get_runs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 20}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}}, "df": 2}, "r": {"docs": {"mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}}, "df": 2}}, "/": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 7}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.datatypes": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.register_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.launch_channels": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.register_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 24, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.shutdown": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.get_channels": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_unassigned_hit_ids": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.project.Project.get_tasks": {"tf": 1}, "mephisto.data_model.requester.Requester.get_task_runs": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 26, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}, "[": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 8}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}}, "df": 2}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 12, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 4}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 2}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}}, "n": {"docs": {}, "df": 0, "k": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 2}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 4.123105625617661}, "mephisto.client": {"tf": 3.605551275463989}, "mephisto.operations": {"tf": 1}}, "df": 4}, "l": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 4}, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 3}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_load_balancer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.shutdown": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 3}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.observe": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 3.3166247903554}, "mephisto.data_model.agent.Agent.get_agent_id": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 5.0990195135927845}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 68, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 2.8284271247461903}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 2}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 3.4641016151377544}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_requester.MockRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 2}, "mephisto.client": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}, "mephisto.operations.worker_pool.OnboardingInfo": {"tf": 1}, "mephisto.utils.logger_core.warn_once": {"tf": 1}}, "df": 29, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.hydra_config.initialize_named_configs": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto": {"tf": 1}}, "df": 1}, "d": {"docs": {"mephisto.operations": {"tf": 2}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs.get_mock_params": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1.7320508075688772}}, "df": 12, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.download_file": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 9}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}}, "df": 9}}}, "e": {"docs": {"mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.cache_result": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.cache_result": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 8, "d": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.load_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.task_run.TaskRun.get_run_dir": {"tf": 1}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 23}, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.launch_mock": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 17, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.task_run.TaskRun.get_requester": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}}, "df": 32, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 4, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}}, "df": 2}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}}, "df": 3}}}}}}, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.launch": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.get_data_dir": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_data_dir": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}}, "df": 52, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.load_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 8}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.get_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1.4142135623730951}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}}, "df": 57, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.incomplete": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.valid_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_unit": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.completed": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.final_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1.4142135623730951}}, "df": 12}}}}, "s": {"docs": {"mephisto.tools": {"tf": 1.7320508075688772}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 13}}}, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.tools": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.scripts.mturk.cleanup": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1.4142135623730951}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.metrics.run_install_script": {"tf": 1}}, "df": 15, "s": {"docs": {"mephisto": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.scripts": {"tf": 1.7320508075688772}, "mephisto.scripts.mturk": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}, "mephisto.tools.scripts": {"tf": 1}}, "df": 13}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}}, "df": 11}}}}}}}, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.open": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.data_model.agent.Agent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.await_submit": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}}, "df": 15}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_task": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.update_submit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.await_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 9}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {"mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.register": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1.4142135623730951}}, "df": 44}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.pay_bonus": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.bonus_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.client": {"tf": 2.6457513110645907}, "mephisto.data_model.worker.Worker.bonus_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}}, "df": 12, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 10}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}}, "df": 3}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}}, "df": 11}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.registry.get_valid_provider_types": {"tf": 1}, "mephisto.operations.registry.get_valid_blueprint_types": {"tf": 1}, "mephisto.operations.registry.get_valid_architect_types": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 3}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.data_model": {"tf": 2}, "mephisto.data_model.agent.Agent.approve_work": {"tf": 1}, "mephisto.data_model.agent.Agent.reject_work": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_assignment_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assignment_data": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.push_status_update": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.7320508075688772}}, "df": 48, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 18}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.block_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.unblock_worker": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.worker.Worker.block_worker": {"tf": 1}, "mephisto.data_model.worker.Worker.unblock_worker": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 20}, "s": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 8, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 5}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.agent_id": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_requester.MockRequester.get_available_budget": {"tf": 1}}, "df": 1}, "t": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.project.Project.get_total_spend": {"tf": 1}, "mephisto.data_model.requester.Requester.get_total_spend": {"tf": 1}, "mephisto.data_model.task.Task.get_total_spend": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_total_spend": {"tf": 1}}, "df": 6}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 2, "r": {"docs": {"mephisto.abstractions": {"tf": 2}, "mephisto.abstractions.architect.Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1}, "mephisto.abstractions.architect.Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architect.Architect.deploy": {"tf": 1.7320508075688772}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 4.358898943540674}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.deploy": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.prepare": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.deploy": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.local_architect.LocalArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 3.605551275463989}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.make_agent_request": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 65, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 5}}, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.data_model.requester.Requester.to_dict": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 2.23606797749979}}, "df": 3}}}, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.set_init_state": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_resources_from_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.set_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.set_db_status": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.Agent.get_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.set_live_run": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_live_run": {"tf": 1}, "mephisto.data_model.assignment.Assignment": {"tf": 1}, "mephisto.data_model.assignment.Assignment.write_assignment_data": {"tf": 1}, "mephisto.data_model.task.Task": {"tf": 1}, "mephisto.data_model.task_run.TaskRun": {"tf": 1}, "mephisto.data_model.unit.Unit.set_db_status": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}}, "df": 43, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.setup_resources_for_task_run": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.scripts.heroku.initialize_heroku.main": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 11}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.MockArchitect.deploy": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 9}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2, "\\": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.23606797749979}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 3}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.submit_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1.4142135623730951}}, "df": 8}, "d": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.submit_mock_unit": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.register_mock_agent_after_onboarding": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.act": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}, "mephisto.data_model.agent.Agent.update_status": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.update_status": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.reconnect_agent": {"tf": 1}}, "df": 18, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_alive": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 4}}}, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.build_is_clean": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.requester.Requester.is_registered": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 27, "n": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}}, "df": 4}, "k": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}}, "df": 1}}}, "m": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 3}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}}, "df": 2}}}}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.shutdown_async": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.shutdown": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.shutdown": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1.7320508075688772}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.disconnect_active_agents": {"tf": 1}, "mephisto.utils.metrics.shutdown_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 13, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.MockServer.shutdown_mock": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 3.1622776601683795}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.can_build": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprint.Blueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.449489742783178}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.get_frontend_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.act": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.OnboardingAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.act": {"tf": 1}, "mephisto.data_model.constants.assignment_state.AssignmentState.payable": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2.23606797749979}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.operations.registry.uses_mephisto": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_screening_unit": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_gold_unit": {"tf": 1}, "mephisto.scripts": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 73}}}, "w": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 3, "n": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 1}, "s": {"docs": {"mephisto.client": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.data_model.assignment.InitializationData": {"tf": 1}, "mephisto.data_model.constants": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.create_validation_function": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}}, "df": 7}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.MockArchitect": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 11, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.requester.Requester": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.launch": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts": {"tf": 1}, "mephisto.utils.testing.make_completed_unit": {"tf": 1}}, "df": 18, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.assert_mixin_args": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 14}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.open": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_close": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 7}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 2}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}}, "df": 23}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.get_outstanding_hits": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architect.Architect.download_file": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.save_data": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}}, "df": 9, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.add_header": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 15}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 3.4641016151377544}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProviderArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.is_sandbox": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 15, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.data_model.requester.Requester.is_sandbox": {"tf": 1}}, "df": 1}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.MephistoAgentWrapper.observe": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}}, "df": 6}, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.AliveHandler": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_compensation_hit_with_hit_type": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.qualification.Qualification": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.operations.hydra_config.DatabaseArgs": {"tf": 1}, "mephisto.operations.hydra_config.MephistoConfig": {"tf": 1}, "mephisto.operations.hydra_config.TaskConfig": {"tf": 1}, "mephisto.operations.hydra_config.RunScriptConfig": {"tf": 1}}, "df": 5, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.handle_updated_agent_status": {"tf": 1}}, "df": 3}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}}, "df": 1}, "l": {"docs": {"mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 5}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.databases": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}}, "df": 3}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 8}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.databases": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 1, "s": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {"mephisto.client": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 2, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.try_server_push": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.datatypes.LoopWrapper.execute_coro": {"tf": 1}}, "df": 3, "d": {"docs": {"mephisto": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations.datatypes": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations.registry.register_mephisto_abstraction": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.UnitClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.unit.Unit": {"tf": 1}}, "df": 11}}, "s": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}}, "df": 2, "s": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_start": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_db_id_from_agent_id": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.empty_task_builder.EmptyStaticTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task.static_html_task_builder.StaticHTMLTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_task_builder.StaticReactTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_requester_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_worker_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.ensure_unit_exists": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.utils.dirs.get_tasks_dir": {"tf": 1}}, "df": 29, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}}, "df": 12}}}, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_init_state": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 47}}}, "t": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}}, "df": 4, "s": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_data_dir": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router.build_router.build_router": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.client_io_handler.ClientIOHandler.log_metrics_for_packet": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}, "mephisto.utils.metrics.launch_prometheus_server": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}}, "df": 40}}, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.database.MephistoDB.init_tables": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mock.mock_datastore.MockDatastore": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.is_closed": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.utils": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.expire_and_dispose_hits": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 5, "d": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit.is_expired": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.is_expired": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 4}, "s": {"docs": {"mephisto.scripts.mturk.cleanup": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers.mock.mock_unit.MockUnit.expire": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.new": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentTimeoutError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentShutdownError": {"tf": 1}, "mephisto.data_model.project.Project.new": {"tf": 1}, "mephisto.data_model.requester.Requester.register": {"tf": 1}, "mephisto.data_model.requester.Requester.new": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}}, "df": 19, "s": {"docs": {"mephisto.abstractions.database.MephistoDBException": {"tf": 1}, "mephisto.abstractions.database.EntryAlreadyExistsException": {"tf": 1}, "mephisto.abstractions.database.EntryDoesNotExistException": {"tf": 1}, "mephisto.client.api.InvalidUsage": {"tf": 1}, "mephisto.data_model.exceptions.AbsentAgentError": {"tf": 1}}, "df": 5}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.tools": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}}, "df": 6, "s": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.examine_utils": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils": {"tf": 1.4142135623730951}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 3}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_onboarding": {"tf": 1}, "mephisto.client": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 4}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}}, "df": 1}}}, "y": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.close": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.__init__": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.assert_task_args": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.__init__": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.registry.fill_registries": {"tf": 1}, "mephisto.scripts.mturk.identify_broken_units.main": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.augment_config_from_db": {"tf": 1}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 30, "s": {"docs": {"mephisto.operations": {"tf": 2}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}}, "df": 5}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_agent_state.StaticAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.get_task_end": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}}, "df": 16, "s": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}}, "df": 2, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.client.api.intentional_error": {"tf": 1}}, "df": 3, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.client": {"tf": 2}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}}, "df": 3}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.task_launcher.GeneratorType": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 4}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1}}, "df": 8}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_onboarding_agent": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}}, "df": 10}}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.scripts.mturk": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent": {"tf": 1}}, "df": 7}}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.data_model": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model.packet.Packet": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.operations.worker_pool.WorkerPool": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.client": {"tf": 2}, "mephisto.client.api.intentional_error": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 10, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.mark_done": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 6}}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.operations": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider": {"tf": 1}, "mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 5}}}}}}}, "n": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 4, "t": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.data_model.exceptions.AgentDisconnectedError": {"tf": 1}, "mephisto.data_model.exceptions.AgentReturnedError": {"tf": 1}}, "df": 3, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}}, "df": 1}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}}, "df": 2, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.AgentClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.AgentClass": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.agent.Agent": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 11}}, "c": {"2": {"docs": {"mephisto.abstractions.architects.ec2.ec2_architect.url_safe_string": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.tools": {"tf": 1}}, "df": 9}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.__init__": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1}}, "df": 5}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.email_worker": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.operations.operator.Operator.force_shutdown": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1, "o": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_builder.ParlAIChatTaskBuilder.build_custom_bundle": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.scripts.build_custom_bundle": {"tf": 1}, "mephisto.utils.dirs.get_root_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_data_dir": {"tf": 1}, "mephisto.utils.dirs.get_mephisto_tmp_dir": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_run": {"tf": 1}}, "df": 10, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}}, "df": 2}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_completion_stats_for_worker": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.should_produce_gold_for_worker": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.get_gold_factory": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1.7320508075688772}}, "df": 4}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_open": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.on_close": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}}, "df": 6, "n": {"docs": {"mephisto.abstractions.architect.Architect.__init__": {"tf": 1}, "mephisto.abstractions.architect.Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.__init__": {"tf": 1}, "mephisto.abstractions.architects.channels.websocket_channel.WebsocketChannel.enqueue_send": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.check_domain_unused_locally": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_owner_tag": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_domain_if_available": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.find_certificate_arn": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.rule_is_new": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.get_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.detete_instance_address": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.deploy_fallback_server": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_instance": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.update_details": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.assert_task_args": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.server_is_running": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockServer.send_agent_act": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.extract_unique_mixins": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 2.23606797749979}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.get_data_for_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.run_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2.23606797749979}, "mephisto.abstractions.crowd_provider.CrowdProvider.is_sandbox": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.has_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.optimized_load": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_project": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_task": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_task": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_task_run": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.clear_unit_agent_assignment": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.update_unit": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_requester": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.new_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.update_onboarding_agent": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.databases.local_database.assert_valid_provider": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.optimized_load": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB.new_unit": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.set_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.is_eligible": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.is_hit_mapping_in_sync": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.register_assignment_to_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.clear_hit_from_unit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_session_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_sandbox_client_for_requester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.client_is_sandbox": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_with_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.reject_work": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.approve_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.unblock_worker": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.is_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.new": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.get_mturk_ids_from_unit_id": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_agent.SandboxMTurkAgent.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_unit.SandboxMTurkUnit.new": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.new": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.Agent.shutdown": {"tf": 1}, "mephisto.data_model.agent.Agent.new": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.is_onboarding_id": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.handle_submit": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.shutdown": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_cost_of_statuses": {"tf": 1}, "mephisto.data_model.assignment.Assignment.new": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.task.assert_task_is_valid": {"tf": 1.4142135623730951}, "mephisto.data_model.task.Task.new": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.new": {"tf": 1.4142135623730951}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.new": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_eligible": {"tf": 1}, "mephisto.data_model.worker.Worker.new": {"tf": 1}, "mephisto.operations": {"tf": 2}, "mephisto.operations.client_io_handler.ClientIOHandler.associate_agent_with_registration": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.enqueue_agent_details": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_live_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.send_status_update": {"tf": 1}, "mephisto.operations.client_io_handler.ClientIOHandler.process_outgoing_queue": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.hydra_config.get_extra_argument_dicts": {"tf": 1}, "mephisto.operations.hydra_config.get_task_state_dicts": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.operations.registry.get_crowd_provider_from_type": {"tf": 1}, "mephisto.operations.registry.get_blueprint_from_type": {"tf": 1}, "mephisto.operations.registry.get_architect_from_type": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}, "mephisto.tools": {"tf": 2}, "mephisto.tools.data_browser.DataBrowser.get_units_for_task_name": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_units_for_run_id": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_data_from_unit": {"tf": 1}, "mephisto.tools.examine_utils.print_results": {"tf": 1}, "mephisto.tools.examine_utils.format_worker_stats": {"tf": 1}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.dirs.get_dir_for_task": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 163}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_heroku_client_path": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.get_user_identifier": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 3.605551275463989}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_task_runner.ParlAIChatTaskRunner.get_world_id": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.initialize_provider_datastore": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_db_path_for_provider": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_datastore_for_provider": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_requester_registered": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_worker_blocked": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.get_unit_expired": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_hit_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_run": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.get_available_budget": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.get_status": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_requester_balance": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignments_for_hit": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.get_from_mturk_worker_id": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.client": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 2.449489742783178}, "mephisto.data_model.agent.Agent.get_status": {"tf": 1}, "mephisto.data_model.agent.Agent.mark_done": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_status": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_units": {"tf": 1}, "mephisto.data_model.assignment.Assignment.get_workers": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.data_model.task.Task.get_project": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_valid_units_for_worker": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_assignment_statuses": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_is_completed": {"tf": 1}, "mephisto.data_model.unit.Unit.get_crowd_provider_class": {"tf": 1}, "mephisto.data_model.unit.Unit.get_assigned_agent": {"tf": 1}, "mephisto.data_model.unit.Unit.get_status": {"tf": 1}, "mephisto.data_model.worker.Worker.get_agents": {"tf": 1}, "mephisto.operations": {"tf": 2.449489742783178}, "mephisto.operations.client_io_handler.ClientIOHandler.get_live_run": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.operations.hydra_config.parse_arg_dict": {"tf": 1}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.wait_for_runs_then_shutdown": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.__init__": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_live_run": {"tf": 1}, "mephisto.operations.worker_pool.WorkerPool.get_agent_for_id": {"tf": 1}, "mephisto.scripts.mturk.print_outstanding_hit_status": {"tf": 1}, "mephisto.tools": {"tf": 2.6457513110645907}, "mephisto.tools.scripts.get_db_from_config": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}, "mephisto.utils.testing.get_mock_requester": {"tf": 1}}, "df": 70, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.client": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 6}}}}, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.get_certificate": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.get_assignment": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}, "mephisto.utils.logger_core.get_logger": {"tf": 1}}, "df": 6}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.providers": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.data_model.task_run.TaskRun.update_completion_progress": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.generate_units": {"tf": 1}}, "df": 5, "[": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.SharedStateMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}}, "df": 4}}}}}}}}}}}, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.create_hit_type": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}}, "df": 15, "d": {"docs": {"mephisto.operations.task_launcher.TaskLauncher.create_assignments": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.operations": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.shutdown": {"tf": 1}, "mephisto.utils": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_needs_gold": {"tf": 1}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 2.23606797749979}, "mephisto.operations": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 12}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.register_router_application": {"tf": 1.4142135623730951}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.MephistoRouter.__init__": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_mephisto_vpc": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.utils.dirs.get_dir_for_task": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_security_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_target_group": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_instance_to_listener": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.delete_rule": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.remove_instance_and_cleanup": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations.hydra_config.get_dict_from_field": {"tf": 1}}, "df": 15, "s": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.configure_base_balancer": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}, "mephisto.data_model.task_run.TaskRunArgs": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.ArgsClass": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.scripts": {"tf": 1}, "mephisto.tools.examine_utils.get_worker_stats": {"tf": 1}, "mephisto.tools.examine_utils.run_examine_by_worker": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.data_model.unit.Unit.get_status": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.databases.local_database.LocalMephistoDB": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}}, "df": 5, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}}, "df": 3}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.utils": {"tf": 1}, "mephisto.utils.metrics.launch_servers_and_wait": {"tf": 1}, "mephisto.utils.metrics.launch_grafana_server": {"tf": 1}, "mephisto.utils.metrics.get_dash_url": {"tf": 1}, "mephisto.utils.metrics.shutdown_grafana_server": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.check_mturk_balance": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers": {"tf": 4.123105625617661}, "mephisto.client": {"tf": 3.605551275463989}, "mephisto.operations": {"tf": 1}}, "df": 4}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.databases": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.prepare_ec2_servers.launch_ec2_fallback": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 2.6457513110645907}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.router": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints": {"tf": 2.6457513110645907}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_unit.MockUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_worker.MockWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_task_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.calculate_mturk_bonus_fee": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_requester.SandboxMTurkRequester.__init__": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.__init__": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.4142135623730951}, "mephisto.data_model.agent.Agent.__init__": {"tf": 1}, "mephisto.data_model.requester.Requester.__init__": {"tf": 1}, "mephisto.data_model.unit.Unit.__init__": {"tf": 1}, "mephisto.data_model.worker.Worker.__init__": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 2.449489742783178}, "mephisto.utils.logger_core.set_mephisto_log_level": {"tf": 1.4142135623730951}}, "df": 30, "r": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1.7320508075688772}, "mephisto.abstractions.architects.router": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints": {"tf": 2}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 2}, "mephisto.abstractions.providers": {"tf": 1}, "mephisto.client": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1.7320508075688772}}, "df": 9}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.save_data": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_builder.MockTaskBuilder.build_in_dir": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_assignment": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_unit": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_task_runner.MockTaskRunner.cleanup_onboarding": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.is_registered": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.get_has_assignments": {"tf": 1}, "mephisto.data_model.task_run.TaskRun.sync_completion_status": {"tf": 1}}, "df": 9}, "s": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.operations.config_handler.get_raw_config": {"tf": 1}, "mephisto.operations.config_handler.get_config": {"tf": 1}, "mephisto.operations.config_handler.write_config": {"tf": 1}, "mephisto.operations.config_handler.add_config_arg": {"tf": 1}, "mephisto.operations.config_handler.get_config_arg": {"tf": 1}, "mephisto.tools": {"tf": 1.4142135623730951}, "mephisto.tools.scripts.task_script": {"tf": 1}}, "df": 7}}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"mephisto.abstractions": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.RequesterClass": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_requester.MockRequester": {"tf": 1}, "mephisto.data_model.packet.Packet": {"tf": 1}, "mephisto.data_model.requester.Requester": {"tf": 1}, "mephisto.scripts": {"tf": 1}}, "df": 9, "s": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_task_runner.StaticTaskRunner.cleanup_unit": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architect.Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_architect.EC2Architect.cleanup": {"tf": 1}, "mephisto.abstractions.architects.heroku_architect.HerokuArchitect.cleanup": {"tf": 1}, "mephisto.utils.dirs.get_run_file_dir": {"tf": 1}}, "df": 4}}, "y": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.create_key_pair": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_key_failure": {"tf": 1}, "mephisto.abstractions.databases.local_database.is_unique_failure": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequesterArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_requester.MTurkRequester.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.client": {"tf": 2.6457513110645907}, "mephisto.operations": {"tf": 1.4142135623730951}}, "df": 9, "s": {"docs": {"mephisto.operations": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.debug_log": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_agent_state.MockAgentState.__init__": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.__init__": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.new_worker": {"tf": 1}, "mephisto.abstractions.databases": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.is_expired": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.operations": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.architects.router": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.operations": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.LocalAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState.__init__": {"tf": 1}, "mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.unit.Unit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.local_db.load_data_to_mephisto_db": {"tf": 1}}, "df": 5, "n": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.data_model": {"tf": 1.4142135623730951}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects": {"tf": 1}, "mephisto.abstractions.architects.local_architect.LocalArchitect.download_file": {"tf": 1}, "mephisto.abstractions.architects.mock_architect.MockArchitect.download_file": {"tf": 1}, "mephisto.abstractions.blueprint.SharedTaskState": {"tf": 1}, "mephisto.abstractions.blueprint.BlueprintMixin.mixin_args_and_state": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_unit.MTurkUnit.expire": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}}, "df": 12}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.static_html_task.static_html_blueprint.StaticHTMLBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint": {"tf": 1}, "mephisto.abstractions.blueprints.static_react_task.static_react_blueprint.StaticReactBlueprint.ArgsClass": {"tf": 1}}, "df": 5}}}}}}}}}, "s": {"docs": {"mephisto.abstractions.architects.router.flask.mephisto_flask_blueprint.js_time": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mock.mock_provider.MockProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.get_wrapper_js_path": {"tf": 1}, "mephisto.data_model.worker.Worker.new_from_provider_data": {"tf": 1}}, "df": 7, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.on_message": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_agent_state.ParlAIChatAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteRequest": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.requester.Requester.to_dict": {"tf": 1}}, "df": 12, "l": {"docs": {"mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1}}, "df": 4}}}, "x": {"docs": {"mephisto.abstractions.blueprints.static_html_task": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "b": {"docs": {"mephisto.abstractions.blueprint.Blueprint.get_initialization_data": {"tf": 1}, "mephisto.operations": {"tf": 1.4142135623730951}, "mephisto.operations.operator.Operator": {"tf": 1}, "mephisto.operations.operator.Operator.launch_task_run_or_die": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.tools": {"tf": 1}, "mephisto.utils.metrics.start_metrics_server": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"mephisto.operations.operator.Operator": {"tf": 1}}, "df": 1}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.architects.ec2.ec2_helpers.find_hosted_zone": {"tf": 1}, "mephisto.abstractions.architects.ec2.ec2_helpers.create_hosted_zone": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.register_zone_records": {"tf": 1.4142135623730951}, "mephisto.abstractions.architects.ec2.ec2_helpers.cleanup_fallback_server": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_agent.MTurkAgent.attempt_to_reconcile_submitted_data": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {"mephisto.abstractions.architects.mock_architect.SocketHandler.check_origin": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"mephisto.abstractions.blueprint.BlueprintArgs": {"tf": 1}, "mephisto.abstractions.blueprint.Blueprint.ArgsClass": {"tf": 1}, "mephisto.abstractions.blueprints": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_failed_qual": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequiredArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.worker_needs_screening": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnitArgs": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_current_qual_or_default": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.update_qualified_status": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprintArgs": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsClass": {"tf": 1.7320508075688772}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.ArgsMixin": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprintArgs": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.ArgsClass": {"tf": 1.4142135623730951}, "mephisto.abstractions.blueprints.static_html_task": {"tf": 1}, "mephisto.abstractions.crowd_provider.CrowdProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.make_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.database.MephistoDB.delete_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.grant_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.get_granted_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.database.MephistoDB.revoke_qualification": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.create_qualification_mapping": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.mturk_provider.MTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.delete_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.give_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.remove_worker_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.grant_crowd_qualification": {"tf": 2.23606797749979}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.revoke_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk.utils.script_utils.direct_soft_block_mturk_workers": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_provider.SandboxMTurkProvider.cleanup_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.grant_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.abstractions.providers.mturk_sandbox.sandbox_mturk_worker.SandboxMTurkWorker.revoke_crowd_qualification": {"tf": 1.7320508075688772}, "mephisto.data_model": {"tf": 1}, "mephisto.data_model.worker.Worker.get_granted_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.is_disqualified": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1.7320508075688772}, "mephisto.data_model.worker.Worker.revoke_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1.4142135623730951}, "mephisto.tools": {"tf": 2}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}, "mephisto.tools.examine_utils.prompt_for_options": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.as_valid_qualification_dict": {"tf": 1.4142135623730951}, "mephisto.utils.qualifications.make_qualification_dict": {"tf": 1}, "mephisto.utils.qualifications.find_or_create_qualification": {"tf": 1}}, "df": 63, "s": {"docs": {"mephisto.abstractions.blueprint.BlueprintMixin.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.SharedStaticTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.abstract.static_task.static_blueprint.StaticBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.get_mixin_qualifications": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mock.mock_blueprint.MockBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.SharedParlAITaskState": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.SharedRemoteProcedureTaskState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.SharedStateClass": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.find_qualifications": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.get_qualification": {"tf": 1}, "mephisto.abstractions.database.MephistoDB.check_granted_qualifications": {"tf": 1}, "mephisto.abstractions.providers": {"tf": 2.449489742783178}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.get_qualification_mapping": {"tf": 1.4142135623730951}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.convert_mephisto_qualifications": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_worker.MTurkWorker.is_eligible": {"tf": 1}, "mephisto.data_model": {"tf": 1.7320508075688772}, "mephisto.data_model.qualification.Qualification": {"tf": 1}, "mephisto.data_model.qualification.GrantedQualification": {"tf": 1}, "mephisto.data_model.worker.Worker.grant_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.data_model.worker.Worker.revoke_crowd_qualification": {"tf": 1.4142135623730951}, "mephisto.operations": {"tf": 1.7320508075688772}, "mephisto.operations.datatypes.LiveTaskRun": {"tf": 1}, "mephisto.scripts.mturk": {"tf": 1}, "mephisto.utils": {"tf": 1.4142135623730951}}, "df": 29}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.get_onboarding_data": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.GoldUnitSharedState": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit.SharedStateMixin": {"tf": 1}}, "df": 3}, "d": {"docs": {"mephisto.abstractions.blueprints.mixins.onboarding_required.OnboardingRequired.validate_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.mixins.use_gold_unit.worker_qualifies": {"tf": 1}, "mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint.ParlAIChatBlueprint.validate_onboarding": {"tf": 1}, "mephisto.data_model.worker.Worker.is_qualified": {"tf": 1}, "mephisto.tools.data_browser.DataBrowser.get_workers_with_qualification": {"tf": 1}}, "df": 5}}}, "y": {"docs": {"mephisto.abstractions.blueprints.mixins.screen_task_required.ScreenTaskRequired": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.scripts.mturk.launch_makeup_hits.main": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.data_model.agent.Agent.soft_reject_work": {"tf": 1}, "mephisto.operations.task_launcher.TaskLauncher.launch_evaluation_unit": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.abstractions.blueprints": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"mephisto.abstractions.providers.mock.mock_agent.MockAgent.enqueue_mock_submit_event": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_agent.MockAgent.get_live_update": {"tf": 1}, "mephisto.data_model.agent.Agent.observe": {"tf": 1}, "mephisto.data_model.agent.OnboardingAgent.observe": {"tf": 1}, "mephisto.operations": {"tf": 1.7320508075688772}}, "df": 5, "s": {"docs": {"mephisto.abstractions.blueprints.mixins.use_gold_unit.UseGoldUnit": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_agent_state.RemoteProcedureAgentState": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.AgentStateClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.OnboardingAgentStateClass": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_qualification": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_utils.find_or_create_qualification": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"mephisto.client.api.get_running_task_runs": {"tf": 1}, "mephisto.client.api.get_reviewable_task_runs": {"tf": 1}, "mephisto.operations": {"tf": 1}, "mephisto.tools": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskBuilderClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint.RemoteProcedureBlueprint.TaskRunnerClass": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_builder.RemoteProcedureTaskBuilder": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_onboarding": {"tf": 1}, "mephisto.abstractions.blueprints.remote_procedure.remote_procedure_task_runner.RemoteProcedureTaskRunner.run_unit": {"tf": 1}, "mephisto.abstractions.database.MephistoDB": {"tf": 1}, "mephisto.abstractions.databases.local_database.LocalMephistoDB.init_tables": {"tf": 1}, "mephisto.abstractions.databases.local_singleton_database.MephistoSingletonDB": {"tf": 1}, "mephisto.abstractions.providers.mock.mock_datastore.MockDatastore.init_tables": {"tf": 1}, "mephisto.abstractions.providers.mturk.mturk_datastore.MTurkDatastore.init_tables": {"tf": 1}, "mephisto.data_model.project.Project": {"tf": 1}}, "df": 12}, "d": {"docs": {"mephisto.abstractions.providers": {"tf": 1}, "mephisto.data_model.unit.Unit.sync_status": {"tf": 1}}, "df": 2}}}}}}, "+": {"docs": {}, "df": 0, "a": {"docs": {"mephisto.client": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + + // mirrored in build-search-index.js (part 1) + // Also split on html tags. this is a cheap heuristic, but good enough. + elasticlunr.tokenizer.setSeperator(/[\s\-.;&_'"=,()]+|<[^>]*>/); + + let searchIndex; + if (docs._isPrebuiltIndex) { + console.info("using precompiled search index"); + searchIndex = elasticlunr.Index.load(docs); + } else { + console.time("building search index"); + // mirrored in build-search-index.js (part 2) + searchIndex = elasticlunr(function () { + this.pipeline.remove(elasticlunr.stemmer); + this.pipeline.remove(elasticlunr.stopWordFilter); + this.addField("qualname"); + this.addField("fullname"); + this.addField("annotation"); + this.addField("default_value"); + this.addField("signature"); + this.addField("bases"); + this.addField("doc"); + this.setRef("fullname"); + }); + for (let doc of docs) { + searchIndex.addDoc(doc); + } + console.timeEnd("building search index"); + } + + return (term) => searchIndex.search(term, { + fields: { + qualname: {boost: 4}, + fullname: {boost: 2}, + annotation: {boost: 2}, + default_value: {boost: 2}, + signature: {boost: 2}, + bases: {boost: 2}, + doc: {boost: 1}, + }, + expand: true + }); +})(); \ No newline at end of file diff --git a/docs/web/static/react_dev_tools_see_props.png b/docs/web/static/react_dev_tools_see_props.png new file mode 100644 index 0000000000000000000000000000000000000000..6eae6da9793ea67ffa55338016c4b29f7660c53b GIT binary patch literal 91397 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

@ra8bywiT%gCZApLcA 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 literal 0 HcmV?d00001 diff --git a/docs/web/static/static_task_correction_submit.png b/docs/web/static/static_task_correction_submit.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa1b2dc40c5318648e223e0054bc87c62eae0f1 GIT binary patch literal 87756 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/web/static/static_task_with_corrections_box.png b/docs/web/static/static_task_with_corrections_box.png new file mode 100644 index 0000000000000000000000000000000000000000..77fe5a0f47055ebdbcdddb26a509780a3e35a8e9 GIT binary patch literal 53969 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ୗT0 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 literal 0 HcmV?d00001 diff --git a/docs/web/static/tips_component.png b/docs/web/static/tips_component.png new file mode 100644 index 0000000000000000000000000000000000000000..8513a56d0eb90c0e5896119969b34cc6be2327b5 GIT binary patch literal 24155 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

cE2{ z04HYSQ}ytwGhFbH?voCz!l#r%VUr96E6+rFhhcV;N&V~nl{Q5=%3kkphsK2`O`FGX z&K{_EOQ7Z<{BtxokEED;1@=q@_#A7$jGUk*p7hUJiNB>Z<5h!ST_6t4LHBZ;Eebsp zHi)a}v{em&)p=Mj=w8c>I#P##)t$_)35%Gf54KLbC^4GLyQ56ND!24u2YFGp#TC z5(^-xt)q9@O}*a6?74Z$ZQ{zoT=mSn9m2JrF)rsbX0KYJOVD!t2_yQUlA1GD71poH zt(A_N8Ka^fTD1wJ7+Y60g-2~RncgWlT6?+W6l`|xzFJzHxdkh`G&m09FuUVC#f4ec zUv7+_rNNO#?&Micx-oA;BWM`jn)clJmTg%x;qR!}k}EfuLM*!uZ9W`eaT%nD$`yxP zlPv%=z#$GfF`VcskY$l(^KmsML}4J%KP;u4?|0WNk=_I#jy)quJiH9M8n~_6aP3}SQ5;_J ziR`3F!h^2!%s;p@DQWq3GAg~qqUffc;FgTg6>MJ`*pNP!J`v%px=Nx&h(q9vT1qxF z5gRzi*9F4|38E5Z#gA|3BIh)f)z(F}t!sv6I%e!J%+0aU&)#5^*Dbd0&dFPJ@3T;x z@W`C(eBI@*5c`_P2OVD>ooLp=s#ydefob5W}T}^_xPyn;Aj4h3zoTsNRC#{a$C}v$TUXH;ZF+ZmCMUk`0QHo-^quvM5PHcI?_C&S` zEv+cWGjNo{Y;crYr|q4b>n5*_#8C!mmM?!~#*@jldON^cw-eV3&BmGz)zai!c}ivJ z2%Yxo%NeDEaD#MBcc3#QAK4~4Iyi`+C4=T?i=?HZ|CaJnxJiP?$28_MC*GsQ@G`4; zOWj-4Y3cUiwz?j1`q&McosxpQPwD3 z`R`yf(%I&{YByBQq~@Ab+?!)fzZ$p4SvIwc)7i&oo0T?nh76>kcFDPVj*|2u8CWDg zHWGbE9d%EBJw>-e>Ix~zo>u|{!8eb*H@60E5U5`bj#4{Q5QyYuD@CczroQi!+FRI+ zU0}MQju|IJvxew!b$#gh27^D+yTN31irSm%cu_okrmpNj)UuioW8^p0|NRoKiB{8G z7H%%foNne|EKl1d+7#Vfv|Un={_*KN>6H3`50EI{Yikhz;V>GFzbcqN_Ls`eepNvv zTCFb`?8owyQKq}4j=%N^*iA3;UUQAAoY*@~HDTv%k}2iIVLie&yesr`&`s2Pu95fK zR@(^xRfCZ<&HC#X_mT8B0T`aOJCL)A{@4dLxYtjX4E5H;F)WBLmZ}8*hbf@qcv612aUOb*GQ3Qw}0_z zppno=Vl9qC8FE6PVGkhd>!-5shEGm7X64kIG{<;R>kKV@&mwkyp3XrM<=Am0cbRs@ zu*Rmo-P`Ei;YR;1qBdw+lg4RB`*SX%RnBG)`FFAxE3QAr$Ehw8USso63(;0 zkoBCOg(>eZ=H=M6OV)pG0$<;z9@FiAtlhv z;(l?@;Rd_Wy>D($EP#kvZL9J~u0MUfIl4S6&@J#Vrb5OPv2^M!Hm)`df&Gmen}76QF_v`6J~@go;Md&rHm7x$rUP}>JAW|Ei-iVL5P>^ zjRP6J80YF6S)@s&*6M8Tw2E6ilPL}5HVuPe8wCCH0iW~?+;--TZ{Hv%I&dN!9kwt# z|M;yKilSuWvpD-^X?^NUC{MHNy*N)r@K$e>VP0K&n>V~yB(ts^gAO14&}&d-oEhs} z8NY?_6a5;ui$rpM8Gmov=Hu>kV-js>j}tC5tSH=trN{=rf;4hb-;5A%SnXp3^QTSbG*h&SNemMfChUobC#-F0}AQQ)Ss;59gU{uvB>{El+0;6md97W7{Gx*BRsB}rf;`j zAcPMUcC!yIw+kygL_>iivLPFh*T!8VUN3K_k)ZEVvdM7w%S-8fykGDIpk(3)cvY(5 zS-W0c5cQ9{ps=Z4{=gK@E;{@%4}w4(jVykC&}Tda%$-pxL6#STG@fzVAV_4&9_+Y# zmieRn0jI{0;oZUL{!gi<9BNHP-%)gf--5Shn*x0Fe2I=QarMvC@g5O>-O0O>o^+m}dAfP;D$+Q`aF(DO%jxxlz;fsAHCAq}Om|D7rMfjPKckly00ilDvC zK-MPOwB_ntf->JqCDlLTdv|trijYH`iorOqiWaWc?t0T7L^hpWCpY3aLG;Zw%QsCo zw|hc{9YX@r!(y$&Mfy184A3wbbXwe^K`t=ZJE5U1MgK_7%kw)$SPEwz@t8ynaqEjL z0ft%4lZ+Fo3EfY(%b(VhbSNz}+VjOYUhNS0HR-Q~vpZW9m)NjfXR~rA)qEdwBCdxN zb2>G@l=O}d;qtgzdD&d#&HhxQ)+;NDmyGbq5ckGhuK_Vo z)EC;eJ+-G4eZ`W*p+ zT?(eF-p9ieL1Z|MwS;B)g(UG|<6%nidQ zj^M$?CGp)5*~R#F9wWKTK@Q_~bD14#r+9_Srev{w%^8(cVDm99s%|!Vp}^-!_tfHQ zNdrn#4jBoTeW}80A6TcDhj3gRgtCY`5ZFvVnaxi4NbZ7hTVIr=6z=dO$>|F=S8l33ws2crH<7_=NkDkrF zyL)bwodXG+6et+|QwmHrr13$*_B+on6G`@S*iCPE#MI9hE(oR!z#Spaj@h;9dufc? zT`Uu90T9kPZumWIAO3^S1`iG3VfyW9RBVRwado&aEc6!BJT>kZ4cVb~!vVe_hs4fN zmUTk}skXB$l5_FOWSI}=jLmEEb+EXFbP62-txA(uT=t?}?5)PDN5RAHlU#Ybm@)61 z+@%&QiM>XCg3qYSgT*Fwv&|_)K-xC%(0ICIkS>?v590xwA)&4AE#)R#^RLeBAAY+V z2B0@%SR)DueI*$Jj}l1WR$-kd0bhHx-Zla_RsoUVU-47t(Ap zaU-yo&nYEGFs=9Sdf?XZge`Xi;v>qye$BPrcMqe`cS+Cx8d}?G*3Gx^gHHWQ#eEF4 zNj6z)G)g?rWY>E%U)ZKgV}xGX#=d&Hpvjmx4S7B1l)_o{;d&96)8gpCtda^-bLN{% z$g*kq5hWXeQzJ8`N+un-OI2)tLzf$Ja5kY1pQHEI!ldD;SxhlBqjoTt`fX=cL>-85 z0r~G<+oS|o2;DPskVgkU`}7s;sSdc>r=LG^{=EBsb5xz77Ju(J+) zzFBVF+S=qz7;b?(+)MKucot0CBo* zMA;rV#chd%HN77b&iHvf7{hg?dU$zOd<;C2?(FU9ReWVMtt7z$s#e_4O6H<)#&Ex9 zv;GSz&1aHen5PVBWGR-VzTxlgy5W9#v^eUDqph6^JI=f?#oUd`X-y|hN*eTSDIOKI zn<{MXO`2OYwTuOed4W$3(Np9{3$A?Q$3={a=H)~?Y68w3X=`gBgj}mntUZ*(`sJlt zozs@5)!VPRtQ8&7CEDjyTE#$zhNRdqj%)9W3`#i@%OwJPb!$#_X&y9!3s@5uQbEZa z{9Krn{;?13Ku#b8JgL*HIc>7nyuBivbPLOKW4w2zeyMk1Hq=g`b^Uze6=d++>1L<# z8cgYGl}yRh=986XVx>;W)vA{(m+?1mvF8YZq`Uh7)uIn6@5R>OplNH+;k!Wh2a@H&haiwj%< zydpmX!h5DjboCEM7c*y8 zzIa_Ti;$1;ALVC!aJk-%UFse{vm+)WRd%&y>v%Wt?289>jEn9N52uNMfX72OM5-hz zIXVJfpn{d6H}mfUx4F;15pvzSG$*Gb&D%gtW{k)xzj?c)&UK<5PLwNpb0j#b#Qyc9 znfU1L4{AaoNuJNo5+GF${oYFBv__Wf07eJHmpbFA6e@>ci-fw#PL!}0a3BXfXE@-} zfhW?&M)kN>tj;?kL9uFJD<@S1>`nnnFNeXv^6lHAA>x^v0P~%Ol{z+V9S)WT*yOOR zBk=Zi&$4C!^i)%TFO=_hB)bFw;CeZ(l~VzTP9-4zJu0rdgSAIWf6Jnje&aW255Ts* zbr(+QT=LhL`A^(W9s$7P77`?v`Wu|T1i%o-$8P9MDf;W#>3^*A@D|X56vaW@zf9Dh zVcsSskkKr$-6;HvE&nracc=&Azr1Ms=YPqy{Mm+jX`n;q^L4C$x!d~_u9U(F@VK{D ze^QVC1{z!P6B_$ZcmHdkCH~K57XY+=2?>Hbi2Qs5fQES(j<9i1?cxnc1R$`k0H$>S zT}J+E4t$=F0chE!GF{2Ggm1Y35nLW?4@1=T<^ISh(=>q6r+L_d0{hVy{B{uV;UxK4 zrRSTB<8``tscSyrcL0#Bz}lC)LWL~j0FsCUf8W#mdeFjeYv?loJim#p1l;K=QhMmz zR~dT-oF?R2ni@`MtdwL0k@sbVF!Fl^zV^2z=<%1&@biYbI`*#5Rb?L@)^Z#7hz^CxP0o$hAq~QLq8ox^a)crLU z|KG+c_1sGK+BJGhS*ho$|BU(nSkr&j*q?3)*ni^O{l5prYgJ*_JS+YeB z@yBdYT2sJC#1(c3eDG~kekypCGPp$`Ww?l&t zd~UhS(X#07B2M@2FL#eX^CW8j02m}sbbL(7|FhjcsWK0M_dz(7e4T#zp5IC&`adz2 z*eas`)cv2anhs&UefKT{g{Q&C-C-A51P#YqnsojTQohNqs)-N3%T#4D?Fp!I*>5L5 zI~!ew&c2mxS6Nwk@Q{U}aG415+tB_Qrs97NlW>@>diaG(KVz|+$F1k{hl4x!XC}r& zJdV%2&KxAmgPN@6x1#TGwDbIUrdjo|yq-g?YCHLK8lNJTVj~efnCGvowPo&NryrC3 z@MSN|m$e|@WMSZ;8U87hXEbGCQExDEv|=)4v5;!%{eP~=Yd(BHY>)RGHL-I3$|&vr z*@Ge-KKSEk4AVqZ95siEG*j=}=x9*T3G6VF-fa6^vbWcKZOi#ETm49g3%^P|j4qX4 z=8IC4@nTNHfa{~x{n%A>bFvadIm6vK2DD z;Aw4VekAYpA=YAe=}Fo5?PR~Pu1B(v09)Z8>ySxrgs z-X%C3et>4H`;}A_nw4kNbjgJ@*4Iij;n%{CpUUc6R?vpt4P=rl$I~p3eamh5F|%>s zEA`8irIS_brJ3x=8`~c?1b7B(VNAG}u7r7JOPacBJ8dnS39l&fy1KTDNQEKw_3DMk z%n46y=D*_bU!@bKowT*s*0=P^P!i$A)z&_CMzCedtp?qcjY_3lf%6FJ&WSyE8)yAE zl30U=+D!DdWP=JZyIn0dB3DYc zPoB<3TOK6pvkbd!$3Gw>yh56lxcE$(hoW#r0Ybbhw|XEhLY0y0OW&;aa=;(n7c*Yo z31lt<1zC3ugHKl7;R_<=xSHHmdwGL!rm?Pvy~auM-)9ZhrVCiyh z&oiT|y3#oA@pxKP^rt2~tgH?+z(|a(2k8_%haU-*X4bp{zRtHrfs(%I;6Q9DYuGI? zHGgQ#cX~owj`DMd4{hTw{^Y+nZ9*!a1hKV;AxoPxsKbsIB_Aj`Q@o_O&PFuO`vjSh zj*?y+x3+^SoXmr%n#>sDVny~QPR^q|OQsTWBYirgFPbVFTX1zD3vQ3B#+JckMxOgx z83b6C4b>QX!s+7UsnpLjpn!ZC-@({g-3^uFUbj7lgnY@|8+7+`cP&x6_KuH_Mkmmo z?KVhhi^~o!r?`gLAau@I0Be`|rWusRe!PWXVfTVps1a4JVP_bIXQA%2Q?|f5z<Zuhwng=2dEvj;|_6c@#z&I!nEEmV71Vj84*u7r2D&Saqyl z5+JeUoxEb%-@R4MQy}~PZswZ`obH{4WCd6zy_&Z<@)}>6BJ8(h(VxC6g#`#6K0}ah z?k6c8XDBLn!}1feN|>*wa@N9y3wdfPe7%GqGtr26#*RMw50UORPJ;Y%Q>7Mwrl7}x zL%^Q1)|6_?mj`;!!imfYeL8}S0=M|ho_bxB;Y>AHR}#e|LkLYFPx=G?;8(A3Y-&00 zXya!Kro?(zP8xwSC2k$TURg~rWzlbUg}xt5_1~+}=M%Q;t2R!z_L7=2f?lsN_0%&- zigLiO7|=5@T=EgTU1M%y+(B?)F>*I4>B)Xq06I~lu;f0C=5E~-7tnEGBc<1ornB-- z)pjcM?TOxLV{2HHcyp%xXX?slkSssR$>C(8VFqcD07jZ=7w&~mmUWXw2^h(RBn$AU zotWWkc*9#J=XG@%MZ4KmD{Y3>rwG_5_?jTGOqqTLdfK9{F#(S1?7%>f&CfLYLu%zP z%j0}gx)}Y?pxQfMHU3w7R~pq+mV_bftH3DOvbQ!%BbuP>i#iZNSz8+tiA2JZL?9T6 zpcoW`kf^wzHVy(op$RTP0D*^uZiqsJ0ZAf_ECE80o@NV(vP30;3HJ0H1^&*j;r)8& zo%^b8-E(hMeRXfutuMDY=9iuM{o!~lT>?MR(C)NRM3~%^MN21~iOkXLHKNZrn!WIR zYIM{66Kg!o3>pjBq>py_k!ZmSGqd}tCuNV?q0*j{LG{Ea1`#KO9n;W}qXfZ}=+EN> zsS*af#hcMu)&AX?*^Pt#73@7v&l3}=D9*LloUe~Iea1QWE2Y`ueHKXCP$$ot_NM(C zd$=ASYpJf@!q{@u*3|CMmEQ&5ZsyCXY>CS>7@ZrzsZn5viXN+7<7p)R{LQmhzp19d zTjrnFePnmXP@)7Fg7NiN8Si{U)LDo}i3p&q23a((S;hJ>hK24!*A4`oGc0N(;{s8L z_+CSzNqSWtMRIC%_ORMab_^1AasYY9*APqaa$DSAi|Az0cSQx{zT`S;;i`u*{D01D zaE~2N0@j+b(sFn`DYM#)43C{uJ^Zr{&{8g*^q?pAG>P@ZY+|$vM$zuxc|gVYG{?Ie ziJfcom^gOW5vu&5HbG6~uvu};Np>1to zA%c^J@AxUMR@c(9<|h1oFW-_qS1_Q;m>bzq6^_eu$*DXMItbTmdcCKC#Hd%9SnCPHNP|Z3O|0vv;@$( z>+qUu4XrUG8`u3 zp9aG=X>JEXTQ*W*+*Ya4mDH6q4^I7}YM-26DlfEl2~&#cobPo>x$U{_;FWoC|6>$g z!`hBex#R;wX%;ny(t)|c#y7Kxo^7qZv@j0jJIEpQHSaiAb9-S)Ur_SOq|(nw;uLAw z0~pmcas4=tbW8|-tX8w#;{6qCa>c2TitVqUP*C?Bctt&2r|KVr9)<^_^D{Di86Q}P zHr0MG?5&vD4Yf*-C?H=?NGeS5s$}ih?v<1riJ~&(IAblMK3nw#k3QG^@l0K18U$^N9vg)LdpUM}E?=mj~uLEw&S_{Qa`>t!BqF1b4%sC4*rk zO%;IU1U!xmtq44i^WB7q*oJ_KG`0f=2}Sb(v!Z_Wo{v)xpkW*?h&f#J=`4y@u+@09 z9GQawXN8$g|K{{o@b0(6k=N&Ks_Ij_&g+xK;)R96@`pn%8P7V~AghtZUW;Y?o?7sR zO`o~JiJ*vY>88@mJiQ;!Z)@v*os4s`?l5t;=9pe1 zUIh*|kDrFvjoj1F*Q7M4@ACJ%a;xLXmhK|W`oQFPU4HN_Sa8>T*+qqimp|2@Ts@r| zr#eokPuJYDU!yBv(5$-p{xK#*cX}gM8M|lSCf9lvvm6Pvf3s4R}j5 zvd|Ue9&)f+2}?|$Qx;wYfEsG<>WVcKx{TT-0|qD0c@39E%b`iS3$vj@i9NY8p0I4L z4H(j07|K-T2z#|Hlh)aQNS$|gA&F48S`HbIlrKtU^h*JiuSNL9m*56FjU7Cy>YSRCLY+oQ`{HUsyqS60G+~pFm`{%Np9h(+G zwF7o4(;~i^o!{3P6n?Wg>X%41Kw> ziA3l!vHw#2^MwgDnb|euZOU2k{d3D0*>FL^O`Sh`@nwS+mCbSl^T11M(9;Dg#_CzF z;v+-Ky#N7A?{4@@s4vK^vsoXs^_jN5Zq}8}y6RlFH|y5(|H9=E%aIJ-#>nzDjWW{b N0MyTe{`b(7e*+_aeMA5N literal 0 HcmV?d00001 diff --git a/docs/web/static/two_person_sequence_diagram.jpeg b/docs/web/static/two_person_sequence_diagram.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a7b88d3610929c9d90f88798b5403ea593386fa0 GIT binary patch literal 62856 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 Dqj(4w literal 0 HcmV?d00001 diff --git a/examples/README.md b/examples/README.md index 5662337e2..76834090c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,2 +1,193 @@ + + # Examples -The Mephisto example folders within contain some sample starter code and tasks to demonstrate potential workflows for setting up and working on new tasks. + +The Mephisto example folders within contain some sample starter code and tasks to demonstrate potential workflows for setting up and working on new tasks. + +Mephisto Tasks can be launched (each run is called TaskRun) with a single `docker-compose` command (you will need to have Docker [installed](https://docs.docker.com/engine/install/).) + +Let's launch Mephisto example tasks, starting from the easiest one + +--- + +#### 1. Simple HTML-based task + +A simple project with HTML-based UI task template [simple_static_task](/examples/simple_static_task) + +- Default config file: [/examples/simple_static_task/hydra_configs/conf/example.yaml] +- Launch command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + python /mephisto/examples/simple_static_task/static_test_script.py + ``` +- Browser page (for the first task unit): [http://localhost:3001/?worker_id=x&assignment_id=1](http://localhost:3001/?worker_id=x&assignment_id=1) +- Browser page should display an image, instruction, select and file inputs, and a submit button. + +--- + +#### 2. Simple React-based task + +A simple project with React-based UI task template [static_react_task](/examples/static_react_task) + +- Default config file: [example.yaml](/examples/static_react_task/hydra_configs/conf/example.yaml). +- Launch command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + python /mephisto/examples/static_react_task/run_task.py + ``` +- Browser page (for the first task unit): [http://localhost:3001/?worker_id=x&assignment_id=1](http://localhost:3001/?worker_id=x&assignment_id=1). +- Browser page should display an instruction line and two buttons (green and red). + +--- + +#### 3. Task with dynamic input + +A more complex example featuring worker-generated dynamic input: [mnist](/examples/remote_procedure/mnist). + +- Default config file: [launch_with_local.yaml](/examples/remote_procedure/mnist/hydra_configs/conf/launch_with_local.yaml). +- Launch command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + apt install curl && \ + pip install grafana torch pillow numpy && \ + mephisto metrics install && \ + python /mephisto/examples/remote_procedure/mnist/run_task.py + ``` +- Browser page (for the first task unit): [http://localhost:3001/?worker_id=x&assignment_id=1](http://localhost:3001/?worker_id=x&assignment_id=1). +- Browser page should display instructions and a layout with 3 rectangle fields for drawing numbers with a mouse, each field having inputs at the bottom. + +--- + +#### 3. Dynamic form-based task + +You can create and modify auto-composed form-based tasks using FormComposer example (its full specs are in this [README](/mephisto/generators/form_composer/README.md)). + +There are three FormComposer examples: + +##### 3.1. Simple form + +This is a single-version form containing no variable tokens. + +- Default config file: [example_local_mock.yaml](/examples/form_composer_demo/hydra_configs/conf/example_local_mock.yaml). +- Launch command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + python /mephisto/examples/form_composer_demo/run_task.py + ``` +- Browser page (for the first task unit): [http://localhost:3001/?worker_id=x&assignment_id=1](http://localhost:3001/?worker_id=x&assignment_id=1). +- You should see a Bootstrap-themed form with fields and sections corresponding to the form config in its [task_data.json](/examples/form_composer_demo/data/simple/task_data.json) file. + +##### 3.2. Dynamic form + +Dynamic form means a multi-version form, where versions are generated by varying values of special tokens embedded into the form config. + +- Default config file: [dynamic_example_local_mock.yaml](/examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml). +- Launch command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + python /mephisto/examples/form_composer_demo/run_task_dynamic.py + ``` +- Browser page is same as for the Simple form example + +There are variations of dynamic form config that use different providers. To try that, change `run_task_dynamic.py` in the launch command to: + +- `run_task_dynamic_ec2_prolific.py` for Prolific (requires valid EC2 credentials) +- `run_task_dynamic_ec2_mturk_sandbox.py` for Mechanical Turk sandbox (requires valid EC2 credentials) + +##### 3.3. Dynamic form with presigned URLs + +This example builds further upon the Dynamic form example. Here we use presigned URLs (i.e. short-lived URLs for S3 AWS files) in the displayed forms, for data security. + +- Set up environment variables (in file `docker/envs/env.dev`): + - Required: valid AWS credentials: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_DEFAULT_REGION` + - Required: a private S3 bucket with files that you will embed in the example form (either replace dummy URLs in the configs by hand, or automatically generate new ones with `mephisto form_composer_config` command) + - Optional: `S3_URL_EXPIRATION_MINUTES` (default value is 60 minutes) +- Default config file: [dynamic_example_local_mock.yaml](/examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml). +- Create config: see all options for `form_composer_config` command [here](/mephisto/generators/form_composer/README.md#using-formcomposerconfig-utility). Example command: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + mephisto form_composer_config --verify --directory "/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls" + ``` +- Launch command after you generated all configs: + ```shell + docker-compose -f docker/docker-compose.dev.yml run \ + --build \ + --publish 3001:3000 \ + --rm mephisto_dc \ + python /mephisto/examples/form_composer_demo/run_task_dynamic_presigned_urls.py + ``` + + +# End-to-end example with AWS + +Putting it altogether, let's prepare and launch a task featuring a form containing one embedded file plus a few other fields. Here we'll assume working in directory `/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls`. + +- Adjust `dynamic_presigned_urls_example_ec2_prolific.yaml` task config as needed +- Create `form_config.json` file to define your form fields and layout + - it should contain a token named `file_location` + - for more details see `mephisto/generators/form_composer/README.md` +- Create `separate_token_values_config.json` with desired token values +- Specify your AWS credentials + - Create file `docker/aws_credentials` and populate it with AWS keys info (for infrastructure and Mturk) + - Populate your AWS credentials into `docker/envs/env.local` file (for presigning S3 URLs) + - Clone file `docker/docker-compose.dev.yml` as `docker/docker-compose.local.yml`, and point its `env_file` to `envs/env.local` +- Remove content of folder `/tmp` (if you didn't shut the previous Task run correctly) +- Launch docker containers: `docker-compose -f docker/docker-compose.local.yml up` +- SSH into the running container: `docker exec -it mephisto_dc bash` +- Generate your task data config with these commands: + ```shell + mephisto form_composer_config \ + --directory "/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls" \ + --update-file-location-values "https://your-bucket.s3.amazonaws.com/..." \ + --use-presigned-urls + + mephisto form_composer_config \ + --directory "/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls" \ + --permutate-separate-tokens + + mephisto form_composer_config \ + --directory "/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls" \ + --extrapolate-token-sets + + mephisto form_composer_config \ + --directory "/mephisto/examples/form_composer_demo/data/dynamic_presigned_urls" \ + --verify + ``` +- Launch your task: + ```shell + cd /mephisto/examples/form_composer_demo && python run_task_dynamic_presigned_urls_ec2_prolific.py + ``` +- After the Task is completed by all workers, launch task review app and acces it at [http://localhost:8081](http://localhost:8081) (for more details see `mephisto/review_app/README.md`): + ```shell + mephisto review_app -h 0.0.0.0 -p 8000 -d True -f True + ``` + +_Note: if a package build was terminated/failed, or related source code was changed, FormComposer needs to be rebuilt with this command: `mephisto scripts form_composer rebuild_all_apps`._ + +--- + +# Your Mephisto project + +To read on steps for creating your own custom Mephisto task, please refer to README in the main Mephisto repo. diff --git a/examples/__init__.py b/examples/__init__.py index 240697e32..cfaca7562 100644 --- a/examples/__init__.py +++ b/examples/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/form_composer_demo/README.md b/examples/form_composer_demo/README.md new file mode 100644 index 000000000..241ad0afe --- /dev/null +++ b/examples/form_composer_demo/README.md @@ -0,0 +1,32 @@ +These form-based questionnaires are example of FormComposer task generator. + +--- + +## How to run + +1. In repo root, launch containers: `docker-compose -f docker/docker-compose.dev.yml up` +2. SSH into running container to run server: `docker exec -it mephisto_dc bash` +3. Inside the container, run the project with either of these commands: + - Simple form: `cd /mephisto/examples/form_composer_demo && python ./run_task.py` + - Dynamic form: `cd /mephisto/examples/form_composer_demo && python ./run_task_dynamic.py` + - Dynamic form with Prolific on EC2: `cd /mephisto/examples/form_composer_demo && python ./run_task_dynamic_ec2_prolific.py` + - Dynamic form with Mturk on EC2: `cd /mephisto/examples/form_composer_demo && python ./run_task_dynamic_ec2_mturk_sandbox.py` + +--- + +## How to configure + +1. For simple form config you need to provide FormComposer with one JSON file - a configuration of your form fields. An example is found in `examples/form_composer_demo/data/simple/task_data.json` file. +2. For dynamic form configs you need two JSON files in `examples/form_composer_demo/data/dynamic` directory: + - Form configuration `form_config.json` + - Token sets values `token_sets_values_config.json` + - To generate extrapolated `task_data.json` config, run this command: `mephisto form_composer_config --extrapolate-token-sets True` + - Note that `task_data.json` file will be overwritten with the resulting config +3. To generate `token_sets_values_config.json` file from token values permutations in `separate_token_values_config.json`, run this command: `mephisto form_composer_config --permutate-separate-tokens` + - Note that `token_sets_values_config.json` file will be overwriten with new sets of tokens values + +--- + +#### Form config + +For details on how form config is composed, and how its data fields are validated, please see the main FormComposer's [README.md](/mephisto/generators/form_composer/README.md). diff --git a/examples/form_composer_demo/__init__.py b/examples/form_composer_demo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/form_composer_demo/data/dynamic/form_config.json b/examples/form_composer_demo/data/dynamic/form_config.json new file mode 100644 index 000000000..fc47f682f --- /dev/null +++ b/examples/form_composer_demo/data/dynamic/form_config.json @@ -0,0 +1,311 @@ +{ + "form": { + "title": "Form example", + "instruction": "Please answer all questions to the best of your ability as part of our study.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your {{company_name}} email for additional information", + "id": "id_email", + "label": "Email address for {{company_name}}", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for {{company_name}}", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of {{ since_age }}", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } +} diff --git a/examples/form_composer_demo/data/dynamic/separate_token_values_config.json b/examples/form_composer_demo/data/dynamic/separate_token_values_config.json new file mode 100644 index 000000000..2728dfd06 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic/separate_token_values_config.json @@ -0,0 +1,4 @@ +{ + "company_name": ["Facebook", "Mephisto"], + "since_age": [18] +} diff --git a/examples/form_composer_demo/data/dynamic/task_data.json b/examples/form_composer_demo/data/dynamic/task_data.json new file mode 100644 index 000000000..48dc38683 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic/task_data.json @@ -0,0 +1,624 @@ +[ + { + "form": { + "title": "Form example", + "instruction": "Please answer all questions to the best of your ability as part of our study.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

  • Background
  • Personal information
  • Etc
", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your Mephisto email for additional information", + "id": "id_email", + "label": "Email address for Mephisto", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for Mephisto", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of 18", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } + }, + { + "form": { + "title": "Form example", + "instruction": "Please answer all questions to the best of your ability as part of our study.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

  • Background
  • Personal information
  • Etc
", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your Facebook email for additional information", + "id": "id_email", + "label": "Email address for Facebook", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for Facebook", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of 18", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } + } +] diff --git a/examples/form_composer_demo/data/dynamic/token_sets_values_config.json b/examples/form_composer_demo/data/dynamic/token_sets_values_config.json new file mode 100644 index 000000000..2747d91b8 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic/token_sets_values_config.json @@ -0,0 +1,14 @@ +[ + { + "tokens_values": { + "company_name": "Mephisto", + "since_age": 18 + } + }, + { + "tokens_values": { + "company_name": "Facebook", + "since_age": 18 + } + } +] diff --git a/examples/form_composer_demo/data/dynamic_presigned_urls/form_config.json b/examples/form_composer_demo/data/dynamic_presigned_urls/form_config.json new file mode 100644 index 000000000..b21bf37e3 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic_presigned_urls/form_config.json @@ -0,0 +1,311 @@ +{ + "form": { + "title": "Form example", + "instruction": "

Please answer all questions to the best of your ability as part of our study.

This is an example of how a completed task may look like:

.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

  • Background
  • Personal information
  • Etc
", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your {{ company_name }} email for additional information", + "id": "id_email", + "label": "Email address for {{ company_name }}", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for {{ company_name }}", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of {{ since_age }}", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } +} diff --git a/examples/form_composer_demo/data/dynamic_presigned_urls/separate_token_values_config.json b/examples/form_composer_demo/data/dynamic_presigned_urls/separate_token_values_config.json new file mode 100644 index 000000000..8c94b5f7c --- /dev/null +++ b/examples/form_composer_demo/data/dynamic_presigned_urls/separate_token_values_config.json @@ -0,0 +1,8 @@ +{ + "company_name": ["Mephisto"], + "file_location": [ + "{{getMultiplePresignedUrls(\"https%3A//your-bucket.s3.amazonaws.com/your/folder/path/file1.jpg\")}}", + "{{getMultiplePresignedUrls(\"https%3A//your-bucket.s3.amazonaws.com/your/folder/path/file2.jpg\")}}" + ], + "since_age": [18] +} diff --git a/examples/form_composer_demo/data/dynamic_presigned_urls/task_data.json b/examples/form_composer_demo/data/dynamic_presigned_urls/task_data.json new file mode 100644 index 000000000..059925336 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic_presigned_urls/task_data.json @@ -0,0 +1,624 @@ +[ + { + "form": { + "title": "Form example", + "instruction": "

Please answer all questions to the best of your ability as part of our study.

This is an example of how a completed task may look like:

.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

  • Background
  • Personal information
  • Etc
", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your Mephisto email for additional information", + "id": "id_email", + "label": "Email address for Mephisto", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for Mephisto", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of 18", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } + }, + { + "form": { + "title": "Form example", + "instruction": "

Please answer all questions to the best of your ability as part of our study.

This is an example of how a completed task may look like:

.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "

Please introduce yourself. We would like to know more about your:

  • Background
  • Personal information
  • Etc
", + "collapsable": false, + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { + "required": true + }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later at your Mephisto email for additional information", + "id": "id_email", + "label": "Email address for Mephisto", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for Mephisto", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { + "required": true + }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of 18", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { + "required": false + }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { + "required": true + } + } + ] + }, + { + "fields": [ + { + "help": "We only accept files in PNG, JPG, and JPEG formats.", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { + "required": true, + "fileExtension": ["png", "jpg", "jpeg"] + }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { + "required": false + }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "initially_collapsed": true, + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "tooltip": "Your personal motto", + "type": "input", + "validators": { + "required": true + } + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "instruction": "Please double-check if everything has been filled in correctly.", + "text": "Submit", + "tooltip": "Submit form" + } + } + } +] diff --git a/examples/form_composer_demo/data/dynamic_presigned_urls/token_sets_values_config.json b/examples/form_composer_demo/data/dynamic_presigned_urls/token_sets_values_config.json new file mode 100644 index 000000000..39695c603 --- /dev/null +++ b/examples/form_composer_demo/data/dynamic_presigned_urls/token_sets_values_config.json @@ -0,0 +1,16 @@ +[ + { + "tokens_values": { + "company_name": "Mephisto", + "file_location": "{{getMultiplePresignedUrls(\"https%3A//your-bucket.s3.amazonaws.com/your/folder/path/file1.jpg\")}}", + "since_age": 18 + } + }, + { + "tokens_values": { + "company_name": "Mephisto", + "file_location": "{{getMultiplePresignedUrls(\"https%3A//your-bucket.s3.amazonaws.com/your/folder/path/file2.jpg\")}}", + "since_age": 18 + } + } +] diff --git a/examples/form_composer_demo/data/simple/task_data.json b/examples/form_composer_demo/data/simple/task_data.json new file mode 100644 index 000000000..9355a52a9 --- /dev/null +++ b/examples/form_composer_demo/data/simple/task_data.json @@ -0,0 +1,298 @@ +[ + { + "form": { + "title": "Form example", + "instruction": "Please answer all questions to the best of your ability as part of our study.", + "sections": [ + { + "name": "section_about", + "title": "About you", + "instruction": "Please introduce yourself. We would like to know more about your background, personal information, etc.", + "fieldsets": [ + { + "title": "Personal information", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_name_first", + "label": "First name", + "name": "name_first", + "placeholder": "Type first name", + "tooltip": "Your first name", + "type": "input", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 20 + }, + "value": "" + }, + { + "help": "Optional", + "id": "id_name_last", + "label": "Last name", + "name": "name_last", + "placeholder": "Type last name", + "tooltip": "Your last name", + "type": "input", + "validators": { "required": true }, + "value": "" + } + ], + "help": "Please use your legal name" + }, + { + "fields": [ + { + "help": "We may contact you later for additional information", + "id": "id_email", + "label": "Email address for Mephisto", + "name": "email", + "placeholder": "user@mephisto.ai", + "tooltip": "Email address for Mephisto", + "type": "email", + "validators": { + "required": true, + "regexp": ["^[a-zA-Z0-9._-]+@mephisto\\.ai$", "ig"] + }, + "value": "" + } + ] + } + ] + }, + { + "title": "Cultural background", + "instruction": "Please tell us about your cultural affiliations and values that you use in your daily life.", + "rows": [ + { + "fields": [ + { + "help": "Select country of your residence", + "id": "id_country", + "label": "Country", + "multiple": false, + "name": "country", + "options": [ + { + "label": "---", + "value": "" + }, + { + "label": "United States of America", + "value": "USA" + }, + { + "label": "Canada", + "value": "CAN" + } + ], + "placeholder": "", + "tooltip": "Country", + "type": "select", + "validators": { "required": true }, + "value": "" + }, + { + "help": "Select language spoken in your local community", + "id": "id_language", + "label": "Language", + "multiple": true, + "name": "language", + "options": [ + { + "label": "English", + "value": "en" + }, + { + "label": "French", + "value": "fr" + }, + { + "label": "Spanish", + "value": "es" + }, + { + "label": "Chinese", + "value": "ch" + } + ], + "placeholder": "", + "tooltip": "Language", + "type": "select", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + }, + "value": "" + } + ] + } + ], + "help": "This information will help us compile study statistics" + }, + { + "title": "Additional information", + "instruction": "Optional details about you. You can fill out what you are most comfortable with.", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_bio", + "label": "Biography since age of 18", + "name": "bio", + "placeholder": "", + "tooltip": "Your bio in a few paragraphs", + "type": "textarea", + "validators": { "required": false }, + "value": "" + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_skills", + "label": "Technical Skills", + "name": "skills", + "options": [ + { + "checked": false, + "label": "React", + "value": "react" + }, + { + "checked": true, + "label": "JavaScript", + "value": "javascript" + }, + { + "checked": false, + "label": "Python", + "value": "python" + }, + { + "checked": false, + "label": "SQL", + "value": "sql" + } + ], + "tooltip": "Technical skills you may possess", + "type": "checkbox", + "validators": { + "required": true, + "minLength": 2, + "maxLength": 3 + } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_kids", + "label": "How many children do you have?", + "name": "kids", + "options": [ + { + "checked": false, + "label": "None", + "value": "0" + }, + { + "checked": false, + "label": "One", + "value": "1" + }, + { + "checked": false, + "label": "Two", + "value": "2" + }, + { + "checked": false, + "label": "Three or more", + "value": ">=3" + } + ], + "tooltip": "How many children do you have?", + "type": "radio", + "validators": { "required": true } + } + ] + }, + { + "fields": [ + { + "help": "", + "id": "id_avatar", + "label": "Profile Picture", + "name": "avatar", + "placeholder": "Select a file", + "tooltip": "Your profile photo", + "type": "file", + "validators": { "required": true }, + "value": "" + }, + { + "help": "", + "id": "id_resume", + "label": "Resume", + "name": "resume", + "placeholder": "Select a file", + "tooltip": "Your current resume", + "type": "file", + "validators": { "required": false }, + "value": "" + } + ] + } + ], + "help": "Some additional details about your persona" + } + ] + }, + { + "name": "section_second", + "title": "Second section", + "instruction": "Example of another section", + "fieldsets": [ + { + "title": "Motivation", + "instruction": "", + "rows": [ + { + "fields": [ + { + "help": "", + "id": "id_motto", + "label": "Personal Motto", + "name": "motto", + "placeholder": "", + "tooltip": "Your personal motto", + "type": "input", + "validators": { "required": true }, + "value": "" + } + ], + "help": "Please type in your favorite personal motto" + } + ] + } + ] + } + ], + "submit_button": { + "text": "Submit", + "tooltip": "Submit form" + } + } + } +] diff --git a/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_mturk_sandbox.yaml b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_mturk_sandbox.yaml new file mode 100644 index 000000000..9292b845d --- /dev/null +++ b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_mturk_sandbox.yaml @@ -0,0 +1,37 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: static_react_task + - /mephisto/architect: ec2 + - /mephisto/provider: mturk_sandbox + +mephisto: + architect: + _architect_type: ec2 + profile_name: mephisto-router-iam + subdomain: "0123" + blueprint: + data_json: ${task_dir}/data/dynamic/task_data.json + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + preview_source: ${task_dir}/preview/mturk_preview.html + link_task_source: false + extra_source_dir: ${task_dir}/webapp/src/static + units_per_assignment: 1 + log_level: "debug" + task: + task_name: "Form Builder Sample" + task_title: "Dynamic form-based Tasks for Mturk" + task_description: "In this Task, we use dynamic FormComposer feature." + task_reward: 0.05 + task_tags: "dynamic,form,testing" + assignment_duration_in_seconds: 3600 + force_rebuild: true + max_num_concurrent_units: 1 + maximum_units_per_worker: 2 + provider: + requester_name: NoahTurkProject1030v2_sandbox diff --git a/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_prolific.yaml b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_prolific.yaml new file mode 100644 index 000000000..b82cc1a56 --- /dev/null +++ b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_ec2_prolific.yaml @@ -0,0 +1,54 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: static_react_task + - /mephisto/architect: ec2 + - /mephisto/provider: prolific + +mephisto: + architect: + _architect_type: ec2 + profile_name: mephisto-router-iam + subdomain: "0123" + blueprint: + data_json: ${task_dir}/data/dynamic/task_data.json + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + extra_source_dir: ${task_dir}/webapp/src/static + units_per_assignment: 1 + log_level: "debug" + task: + task_name: "Form Builder Sample" + # Note: don't use `Prolific` in task names, because Prolific will (silently) block your account + task_title: "Dynamic form-based Tasks for Prolifik" + task_description: "In this Task, we use dynamic FormComposer feature." + task_reward: 70 + task_tags: "test,simple,form" + force_rebuild: true + max_num_concurrent_units: 1 + provider: + prolific_external_study_url: "https://example.com?participant_id={{%PROLIFIC_PID%}}&study_id={{%STUDY_ID%}}&submission_id={{%SESSION_ID%}}" + prolific_id_option: "url_parameters" + prolific_workspace_name: "My Workspace" + prolific_project_name: "Project" + prolific_allow_list_group_name: "Allow list" + prolific_block_list_group_name: "Block list" + prolific_eligibility_requirements: + - name: "CustomWhitelistEligibilityRequirement" + white_list: + - 6528ff4ac201b9605db841e4 + - 6528ff6b4a6e8ccb70226c4b + - 6528ff850867369791a99491 + - 6528ffa32c90c600f42b3589 + - 6528ffc2618c084ccb2b37a0 + - 6528ffe199313384fde5028e + - 652907b023fbe4ed22234d75 + - 652907fb98474afcbe5cb5cd + - name: "ApprovalRateEligibilityRequirement" + minimum_approval_rate: 1 + maximum_approval_rate: 100 diff --git a/examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml new file mode 100644 index 000000000..1c15c0284 --- /dev/null +++ b/examples/form_composer_demo/hydra_configs/conf/dynamic_example_local_mock.yaml @@ -0,0 +1,26 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: static_react_task + - /mephisto/architect: local + - /mephisto/provider: mock + +mephisto: + blueprint: + data_json: ${task_dir}/data/dynamic/task_data.json + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + extra_source_dir: ${task_dir}/webapp/src/static + units_per_assignment: 2 + task: + task_name: "Form Builder Sample" + task_title: "Example how to easily create dynamic form-based Tasks" + task_description: "In this Task, we use FormComposer feature." + task_reward: 0 + task_tags: "test,dynamic,form" + force_rebuild: true diff --git a/examples/form_composer_demo/hydra_configs/conf/dynamic_presigned_urls_example_ec2_prolific.yaml b/examples/form_composer_demo/hydra_configs/conf/dynamic_presigned_urls_example_ec2_prolific.yaml new file mode 100644 index 000000000..25beb52e8 --- /dev/null +++ b/examples/form_composer_demo/hydra_configs/conf/dynamic_presigned_urls_example_ec2_prolific.yaml @@ -0,0 +1,53 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: remote_procedure + - /mephisto/architect: ec2 + - /mephisto/provider: prolific + +mephisto: + architect: + _architect_type: ec2 + profile_name: mephisto-router-iam + subdomain: "0123" + blueprint: + task_source: ${task_dir}/webapp/build/bundle.presigned_urls.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + extra_source_dir: ${task_dir}/webapp/src/static + units_per_assignment: 2 + log_level: "debug" + task: + task_name: "Form Builder Sample" + # Note: don't use `Prolific` in task names, because Prolific will (silently) block your account + task_title: "Dynamic form-based Tasks with expiring URLs for Prolifik" + task_description: "In this Task, we use dynamic FormComposer feature with presigned S3 URLs." + task_reward: 70 + task_tags: "test,simple,form" + force_rebuild: true + max_num_concurrent_units: 1 + provider: + prolific_external_study_url: "https://example.com?participant_id={{%PROLIFIC_PID%}}&study_id={{%STUDY_ID%}}&submission_id={{%SESSION_ID%}}" + prolific_id_option: "url_parameters" + prolific_workspace_name: "My Workspace" + prolific_project_name: "Project" + prolific_allow_list_group_name: "Allow list" + prolific_block_list_group_name: "Block list" + prolific_eligibility_requirements: + - name: "CustomWhitelistEligibilityRequirement" + white_list: + - 6528ff4ac201b9605db841e4 + - 6528ff6b4a6e8ccb70226c4b + - 6528ff850867369791a99491 + - 6528ffa32c90c600f42b3589 + - 6528ffc2618c084ccb2b37a0 + - 6528ffe199313384fde5028e + - 652907b023fbe4ed22234d75 + - 652907fb98474afcbe5cb5cd + - name: "ApprovalRateEligibilityRequirement" + minimum_approval_rate: 1 + maximum_approval_rate: 100 diff --git a/examples/form_composer_demo/hydra_configs/conf/example_local_mock.yaml b/examples/form_composer_demo/hydra_configs/conf/example_local_mock.yaml new file mode 100644 index 000000000..faa45afe6 --- /dev/null +++ b/examples/form_composer_demo/hydra_configs/conf/example_local_mock.yaml @@ -0,0 +1,26 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: static_react_task + - /mephisto/architect: local + - /mephisto/provider: mock + +mephisto: + blueprint: + data_json: ${task_dir}/data/simple/task_data.json + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + extra_source_dir: ${task_dir}/webapp/src/static + units_per_assignment: 1 + task: + task_name: "Form Builder Sample" + task_title: "Example how to easily create simple form-based Tasks" + task_description: "In this Task, we use FormComposer feature." + task_reward: 0 + task_tags: "test,simple,form" + force_rebuild: true diff --git a/examples/form_composer_demo/preview/mturk_preview_template.html b/examples/form_composer_demo/preview/mturk_preview_template.html new file mode 100644 index 000000000..d423e8cd1 --- /dev/null +++ b/examples/form_composer_demo/preview/mturk_preview_template.html @@ -0,0 +1,12 @@ + + + + +
+

[[ title ]]

+
[[ instruction ]]
+
diff --git a/examples/form_composer_demo/run_task.py b/examples/form_composer_demo/run_task.py new file mode 100644 index 000000000..87bc9f324 --- /dev/null +++ b/examples/form_composer_demo/run_task.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import os + +from omegaconf import DictConfig + +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import build_custom_bundle +from mephisto.tools.scripts import task_script + + +@task_script(default_config_file="example_local_mock") +def main(operator: Operator, cfg: DictConfig) -> None: + # Build packages + _build_custom_bundles(cfg) + + operator.launch_task_run(cfg.mephisto) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +def _build_custom_bundles(cfg: DictConfig) -> None: + """Locally build bundles that are not available on npm repository""" + mephisto_packages_dir = os.path.join( + # Root project directory + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "packages", + ) + + # Build `mephisto-task-multipart` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="mephisto-task-multipart", + build_command="build", + ) + + # Build `react-form-composer` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="react-form-composer", + build_command="build", + ) + + # Build Review UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="webapp", + build_command="build:review", + ) + + # Build Task UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + +if __name__ == "__main__": + main() diff --git a/examples/form_composer_demo/run_task_dynamic.py b/examples/form_composer_demo/run_task_dynamic.py new file mode 100644 index 000000000..17c2d9185 --- /dev/null +++ b/examples/form_composer_demo/run_task_dynamic.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import os + +from omegaconf import DictConfig + +from mephisto.client.cli import FORM_COMPOSER__DATA_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__FORM_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME +from mephisto.generators.form_composer.config_validation.task_data_config import ( + create_extrapolated_config, +) +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import build_custom_bundle +from mephisto.tools.scripts import task_script + + +@task_script(default_config_file="dynamic_example_local_mock") +def main(operator: Operator, cfg: DictConfig) -> None: + # Build packages + _build_custom_bundles(cfg) + + operator.launch_task_run(cfg.mephisto) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +def _build_custom_bundles(cfg: DictConfig) -> None: + """Locally build bundles that are not available on npm repository""" + mephisto_packages_dir = os.path.join( + # Root project directory + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "packages", + ) + + # Build `mephisto-task-multipart` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="mephisto-task-multipart", + build_command="build", + ) + + # Build `react-form-composer` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="react-form-composer", + build_command="build", + ) + + # Build Review UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="webapp", + build_command="build:review", + ) + + # Build Task UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + +def generate_task_data_json_config(): + """ + Generate extrapolated `task_data.json` config file, + based on existing form and tokens values config files + """ + app_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.join(app_path, "data") + + form_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__FORM_CONFIG_NAME) + token_sets_values_config_path = os.path.join( + data_path, + "dynamic", + FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME, + ) + task_data_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__DATA_CONFIG_NAME) + + create_extrapolated_config( + form_config_path=form_config_path, + token_sets_values_config_path=token_sets_values_config_path, + task_data_config_path=task_data_config_path, + ) + + +if __name__ == "__main__": + generate_task_data_json_config() + main() diff --git a/examples/form_composer_demo/run_task_dynamic_ec2_mturk_sandbox.py b/examples/form_composer_demo/run_task_dynamic_ec2_mturk_sandbox.py new file mode 100644 index 000000000..f158bbec3 --- /dev/null +++ b/examples/form_composer_demo/run_task_dynamic_ec2_mturk_sandbox.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import json +import os +import re +from json import JSONDecodeError + +from omegaconf import DictConfig + +from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import ( + SharedStaticTaskState, +) +from mephisto.client.cli import FORM_COMPOSER__DATA_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__FORM_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME +from mephisto.generators.form_composer.config_validation.task_data_config import ( + create_extrapolated_config, +) +from mephisto.generators.form_composer.constants import TOKEN_END_REGEX +from mephisto.generators.form_composer.constants import TOKEN_START_REGEX +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import build_custom_bundle +from mephisto.tools.scripts import task_script + + +@task_script(default_config_file="dynamic_example_ec2_mturk_sandbox") +def main(operator: Operator, cfg: DictConfig) -> None: + # Build packages + _build_custom_bundles(cfg) + + shared_state = SharedStaticTaskState() + + # Mephisto qualifications + shared_state.qualifications = [ + # Custom Mephisto qualifications + ] + + # Mturk qualifications + shared_state.mturk_specific_qualifications = [ + # MTurk-specific quality control qualifications + ] + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +def _build_custom_bundles(cfg: DictConfig) -> None: + """Locally build bundles that are not available on npm repository""" + mephisto_packages_dir = os.path.join( + # Root project directory + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "packages", + ) + + # Build `mephisto-task-multipart` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="mephisto-task-multipart", + build_command="build", + ) + + # Build `react-form-composer` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="react-form-composer", + build_command="build", + ) + + # Build Review UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="webapp", + build_command="build:review", + ) + + # Build Task UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + +def generate_data_json_config(): + """ + Generate extrapolated `task_data.json` config file, + based on existing form and tokens values config files + """ + app_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.join(app_path, "data") + + form_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__FORM_CONFIG_NAME) + token_sets_values_config_path = os.path.join( + data_path, + "dynamic", + FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME, + ) + task_data_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__DATA_CONFIG_NAME) + + create_extrapolated_config( + form_config_path=form_config_path, + token_sets_values_config_path=token_sets_values_config_path, + task_data_config_path=task_data_config_path, + ) + + +def generate_preview_html(): + """ + Generate HTML preview of a Task (based on first form version contained in `task_data.json`) + """ + app_path = os.path.dirname(os.path.abspath(__file__)) + preview_path = os.path.join(app_path, "preview") + data_path = os.path.join(app_path, "data", "dynamic") + + data_config_path = os.path.join(data_path, FORM_COMPOSER__DATA_CONFIG_NAME) + preview_template_path = os.path.join(preview_path, "mturk_preview_template.html") + preview_html_path = os.path.join(preview_path, "mturk_preview.html") + + try: + with open(data_config_path) as data_config_file: + data_config_data = json.load(data_config_file) + except (JSONDecodeError, TypeError) as e: + print(f"Could not read JSON from '{data_config_path}' file: {e}") + raise + + first_form_version = data_config_data[0]["form"] + + # Erase all tokens from the text since HTML preview is inherently static + erase_tokens = lambda text: re.sub( + TOKEN_START_REGEX + r"(.*?)" + TOKEN_END_REGEX, + "...", + text, + ) + preview_data = { + "title": erase_tokens(first_form_version["title"]), + "instruction": erase_tokens(first_form_version["instruction"]), + } + + with open(preview_template_path, "r") as f: + preview_template = str(f.read()) + + with open(preview_html_path, "w") as f: + for attr_name, value in preview_data.items(): + # Simply replace `[[ token_name ]]` substrings in the HTML template for our valoues + preview_template = re.sub( + r"\[\[(\s*)" + attr_name + r"(\s*)\]\]", + value, + preview_template, + ) + + f.write(preview_template) + + +if __name__ == "__main__": + generate_data_json_config() + generate_preview_html() + main() diff --git a/examples/form_composer_demo/run_task_dynamic_ec2_prolific.py b/examples/form_composer_demo/run_task_dynamic_ec2_prolific.py new file mode 100644 index 000000000..daf11efcf --- /dev/null +++ b/examples/form_composer_demo/run_task_dynamic_ec2_prolific.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import os + +from omegaconf import DictConfig + +from mephisto.abstractions.blueprints.abstract.static_task.static_blueprint import ( + SharedStaticTaskState, +) +from mephisto.client.cli import FORM_COMPOSER__DATA_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__FORM_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME +from mephisto.data_model.qualification import QUAL_GREATER_EQUAL +from mephisto.generators.form_composer.config_validation.task_data_config import ( + create_extrapolated_config, +) +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import build_custom_bundle +from mephisto.tools.scripts import task_script +from mephisto.utils.qualifications import make_qualification_dict + + +@task_script(default_config_file="dynamic_example_ec2_prolific") +def main(operator: Operator, cfg: DictConfig) -> None: + # Build packages + _build_custom_bundles(cfg) + + shared_state = SharedStaticTaskState() + + # Mephisto qualifications + shared_state.qualifications = [ + make_qualification_dict("sample_qual_name", QUAL_GREATER_EQUAL, 1), + ] + + # Prolific qualifications + # Note that we'll prefix names with a customary `web.eligibility.models.` later in the code + shared_state.prolific_specific_qualifications = [ + { + "name": "AgeRangeEligibilityRequirement", + "min_age": 18, + "max_age": 100, + }, + ] + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +def _build_custom_bundles(cfg: DictConfig) -> None: + """Locally build bundles that are not available on npm repository""" + mephisto_packages_dir = os.path.join( + # Root project directory + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "packages", + ) + + # Build `mephisto-task-multipart` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="mephisto-task-multipart", + build_command="build", + ) + + # Build `react-form-composer` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="react-form-composer", + build_command="build", + ) + + # Build Review UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="webapp", + build_command="build:review", + ) + + # Build Task UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + +def generate_data_json_config(): + """ + Generate extrapolated `task_data.json` config file, + based on existing form and tokens values config files + """ + app_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.join(app_path, "data") + + form_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__FORM_CONFIG_NAME) + token_sets_values_config_path = os.path.join( + data_path, + "dynamic", + FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME, + ) + task_data_config_path = os.path.join(data_path, "dynamic", FORM_COMPOSER__DATA_CONFIG_NAME) + + create_extrapolated_config( + form_config_path=form_config_path, + token_sets_values_config_path=token_sets_values_config_path, + task_data_config_path=task_data_config_path, + ) + + +if __name__ == "__main__": + generate_data_json_config() + main() diff --git a/examples/form_composer_demo/run_task_dynamic_presigned_urls_ec2_prolific.py b/examples/form_composer_demo/run_task_dynamic_presigned_urls_ec2_prolific.py new file mode 100644 index 000000000..3f11b51cf --- /dev/null +++ b/examples/form_composer_demo/run_task_dynamic_presigned_urls_ec2_prolific.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +import os + +from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint import ( + SharedRemoteProcedureTaskState, +) +from mephisto.generators.form_composer.config_validation.utils import read_config_file +from omegaconf import DictConfig + +from mephisto.client.cli import FORM_COMPOSER__DATA_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__FORM_CONFIG_NAME +from mephisto.client.cli import FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME +from mephisto.generators.form_composer.config_validation.task_data_config import ( + create_extrapolated_config, +) +from mephisto.generators.form_composer.remote_procedures import JS_NAME_FUNCTION_MAPPING +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import build_custom_bundle +from mephisto.tools.scripts import task_script + + +@task_script(default_config_file="dynamic_presigned_urls_example_ec2_prolific") +def main(operator: Operator, cfg: DictConfig) -> None: + # Build packages + _build_custom_bundles(cfg) + + # Configure shared state + task_data_config_path = os.path.join( + os.path.dirname(os.path.abspath(__file__)), + "data", + "dynamic_presigned_urls", + "task_data.json", + ) + task_data = read_config_file(task_data_config_path) + shared_state = SharedRemoteProcedureTaskState( + static_task_data=task_data, + function_registry=JS_NAME_FUNCTION_MAPPING, + ) + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +def _build_custom_bundles(cfg: DictConfig) -> None: + """Locally build bundles that are not available on npm repository""" + mephisto_packages_dir = os.path.join( + # Root project directory + os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + "packages", + ) + + # Build `mephisto-task-multipart` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="mephisto-task-multipart", + build_command="build", + ) + + # Build `react-form-composer` React package + build_custom_bundle( + mephisto_packages_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="react-form-composer", + build_command="build", + ) + + # Build Review UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + webapp_name="webapp", + build_command="build:review", + ) + + # Build Task UI for the application + build_custom_bundle( + cfg.task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + build_command="build:presigned_urls", + ) + + +def generate_data_json_config(): + """ + Generate extrapolated `task_data.json` config file, + based on existing form and tokens values config files + """ + app_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.join(app_path, "data") + + form_config_path = os.path.join( + data_path, + "dynamic_presigned_urls", + FORM_COMPOSER__FORM_CONFIG_NAME, + ) + token_sets_values_config_path = os.path.join( + data_path, + "dynamic_presigned_urls", + FORM_COMPOSER__TOKEN_SETS_VALUES_CONFIG_NAME, + ) + task_data_config_path = os.path.join( + data_path, + "dynamic_presigned_urls", + FORM_COMPOSER__DATA_CONFIG_NAME, + ) + + create_extrapolated_config( + form_config_path=form_config_path, + token_sets_values_config_path=token_sets_values_config_path, + task_data_config_path=task_data_config_path, + ) + + +if __name__ == "__main__": + generate_data_json_config() + main() diff --git a/mephisto/server/blueprints/parlai_chat/webapp/.babelrc b/examples/form_composer_demo/webapp/.babelrc similarity index 100% rename from mephisto/server/blueprints/parlai_chat/webapp/.babelrc rename to examples/form_composer_demo/webapp/.babelrc diff --git a/examples/form_composer_demo/webapp/link_mephisto_task.sh b/examples/form_composer_demo/webapp/link_mephisto_task.sh new file mode 100644 index 000000000..6936741b2 --- /dev/null +++ b/examples/form_composer_demo/webapp/link_mephisto_task.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +npm link mephisto-task diff --git a/examples/form_composer_demo/webapp/package-lock.json b/examples/form_composer_demo/webapp/package-lock.json new file mode 100644 index 000000000..4039c9223 --- /dev/null +++ b/examples/form_composer_demo/webapp/package-lock.json @@ -0,0 +1,10933 @@ +{ + "name": "form_composer_demo", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "form_composer_demo", + "version": "1.0.0", + "dependencies": { + "bootstrap": "^4.6.2", + "bootstrap-select": "^1.13.18", + "jquery": "^3.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@babel/cli": "^7.1.0", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-react": "^7.0.0", + "babel-loader": "^8.0.2", + "css-loader": "^6.7.3", + "cypress": "^13.6.6", + "file-loader": "^6.0.0", + "style-loader": "^1.3.0", + "url-loader": "^4.1.0", + "webpack": "^5.68.0", + "webpack-cli": "^4.9.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", + "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "commander": "^4.0.1", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", + "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", + "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/eslint": { + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "dev": true + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bootstrap": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "node_modules/bootstrap-select": { + "version": "1.13.18", + "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.13.18.tgz", + "integrity": "sha512-V1IzK4rxBq5FrJtkzSH6RmFLFBsjx50byFbfAf8jYyXROWs7ZpprGjdHeoyq2HSsHyjJhMMwjsQhRoYAfxCGow==", + "peerDependencies": { + "bootstrap": ">=3.0.0", + "jquery": "1.9.1 - 3" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001579", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", + "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.9.1.tgz", + "integrity": "sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cypress": { + "version": "13.6.6", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz", + "integrity": "sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cypress/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/cypress/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.645", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz", + "integrity": "sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.90.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.0.tgz", + "integrity": "sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/cli": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", + "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "requires": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "requires": { + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + } + }, + "@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + } + }, + "@babel/helpers": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", + "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + } + }, + "@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + } + }, + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + } + }, + "@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/preset-env": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", + "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + } + }, + "@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", + "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.14.0" + } + }, + "@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + } + }, + "@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true + }, + "@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + } + }, + "@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "@types/eslint": { + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/node": { + "version": "14.18.63", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", + "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "dev": true + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true + }, + "aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + } + } + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bootstrap": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", + "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==" + }, + "bootstrap-select": { + "version": "1.13.18", + "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.13.18.tgz", + "integrity": "sha512-V1IzK4rxBq5FrJtkzSH6RmFLFBsjx50byFbfAf8jYyXROWs7ZpprGjdHeoyq2HSsHyjJhMMwjsQhRoYAfxCGow==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001579", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", + "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-js-compat": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "dev": true, + "requires": { + "browserslist": "^4.22.2" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-loader": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.9.1.tgz", + "integrity": "sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cypress": { + "version": "13.6.6", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.6.tgz", + "integrity": "sha512-S+2S9S94611hXimH9a3EAYt81QM913ZVA03pUmGDfLTFa5gyp85NJ8dJGSlEAEmyRsYkioS1TtnWtbv/Fzt11A==", + "dev": true, + "requires": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-to-chromium": { + "version": "1.4.645", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz", + "integrity": "sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + } + }, + "envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "requires": { + "async": "^3.2.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "requires": { + "ini": "2.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true + }, + "listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + } + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "requires": { + "throttleit": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "requires": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.90.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.0.tgz", + "integrity": "sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/examples/form_composer_demo/webapp/package.json b/examples/form_composer_demo/webapp/package.json new file mode 100644 index 000000000..11cca9aef --- /dev/null +++ b/examples/form_composer_demo/webapp/package.json @@ -0,0 +1,37 @@ +{ + "name": "form_composer_demo", + "version": "1.0.0", + "description": "", + "main": "webpack.config.js", + "scripts": { + "dev": "webpack --mode development", + "dev:watch": "webpack --mode development --watch", + "test": "cypress open", + "build:review": "webpack --config=webpack.config.review.js --mode development", + "build:presigned_urls": "webpack --config=webpack.config.presigned_urls.js --mode development" + }, + "keywords": [], + "author": "", + "dependencies": { + "bootstrap": "^4.6.2", + "bootstrap-select": "^1.13.18", + "jquery": "^3.6.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@babel/cli": "^7.1.0", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-react": "^7.0.0", + "babel-loader": "^8.0.2", + "css-loader": "^6.7.3", + "cypress": "^13.6.6", + "file-loader": "^6.0.0", + "style-loader": "^1.3.0", + "url-loader": "^4.1.0", + "webpack": "^5.68.0", + "webpack-cli": "^4.9.0" + } +} diff --git a/examples/form_composer_demo/webapp/src/app.jsx b/examples/form_composer_demo/webapp/src/app.jsx new file mode 100644 index 000000000..9fcec81dd --- /dev/null +++ b/examples/form_composer_demo/webapp/src/app.jsx @@ -0,0 +1,42 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { + FormComposerBaseFrontend, + LoadingScreen, +} from "./components/core_components.jsx"; +import { useMephistoTask, ErrorBoundary } from "mephisto-task-multipart"; + +/* ================= Application Components ================= */ + +function MainApp() { + const { + isLoading, + initialTaskData, + handleSubmit, + handleFatalError, + } = useMephistoTask(); + + if (isLoading || !initialTaskData) { + return ; + } + + return ( +
+ + + +
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/components/core_components.jsx b/examples/form_composer_demo/webapp/src/components/core_components.jsx new file mode 100644 index 000000000..ceb95b52e --- /dev/null +++ b/examples/form_composer_demo/webapp/src/components/core_components.jsx @@ -0,0 +1,49 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import { FormComposer } from "react-form-composer"; + +function LoadingScreen() { + return Loading...; +} + +function Directions({ children }) { + return ( +
+
+
+

{children}

+
+
+
+ ); +} + +function FormComposerBaseFrontend({ + taskData, + onSubmit, + onError, + finalResults = null, +}) { + let initialConfigFormData = taskData.form; + + if (!initialConfigFormData) { + return
Passed form data is invalid... Recheck your task config.
; + } + + return ( +
+ +
+ ); +} + +export { LoadingScreen, FormComposerBaseFrontend }; diff --git a/examples/form_composer_demo/webapp/src/components/core_components_presigned_url.jsx b/examples/form_composer_demo/webapp/src/components/core_components_presigned_url.jsx new file mode 100644 index 000000000..098b03388 --- /dev/null +++ b/examples/form_composer_demo/webapp/src/components/core_components_presigned_url.jsx @@ -0,0 +1,105 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import { + FormComposer, + prepareFormData, + prepareRemoteProcedures, +} from "react-form-composer"; + +function LoadingScreen() { + return Loading...; +} + +function LoadingPresignedUrlsScreen() { + return Please wait, rendering form...; +} + +function NoFormDataErrorsMessage() { + return ( +
+ Could not render the form due to invalid configuration. We're sorry, + please return the task. +
+ ); +} + +function RenderingErrorsMessage() { + return ( +
+ Sorry, we could not render the page. Please try to restart this task (or + cancel it). +
+ ); +} + +function Directions({ children }) { + return ( +
+
+
+

{children}

+
+
+
+ ); +} + +function FormComposerBaseFrontend({ + taskData, + onSubmit, + onError, + finalResults = null, + remoteProcedure, +}) { + const [loadingFormData, setLoadingFormData] = React.useState(false); + const [formData, setFormData] = React.useState(null); + const [ + formComposerRenderingErrors, + setFormComposerRenderingErrors, + ] = React.useState(null); + + let initialConfigFormData = taskData.form; + + prepareRemoteProcedures(remoteProcedure); + + React.useEffect(() => { + prepareFormData( + taskData, + setFormData, + setLoadingFormData, + setFormComposerRenderingErrors + ); + }, [taskData.form]); + + if (!initialConfigFormData) { + return ; + } + + if (loadingFormData) { + return ; + } + + if (formComposerRenderingErrors) { + return ; + } + + return ( +
+ {formData && ( + + )} +
+ ); +} + +export { LoadingScreen, FormComposerBaseFrontend }; diff --git a/examples/form_composer_demo/webapp/src/css/style.css b/examples/form_composer_demo/webapp/src/css/style.css new file mode 100644 index 000000000..4a472df42 --- /dev/null +++ b/examples/form_composer_demo/webapp/src/css/style.css @@ -0,0 +1,5 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/examples/form_composer_demo/webapp/src/main.js b/examples/form_composer_demo/webapp/src/main.js new file mode 100644 index 000000000..0c5e21075 --- /dev/null +++ b/examples/form_composer_demo/webapp/src/main.js @@ -0,0 +1,10 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import "bootstrap/dist/css/bootstrap.css"; +import "bootstrap-select/dist/css/bootstrap-select.min.css"; +import "./app.jsx"; +import "./css/style.css"; diff --git a/examples/form_composer_demo/webapp/src/presigned_urls.js b/examples/form_composer_demo/webapp/src/presigned_urls.js new file mode 100644 index 000000000..be3a4eedc --- /dev/null +++ b/examples/form_composer_demo/webapp/src/presigned_urls.js @@ -0,0 +1,10 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import "bootstrap/dist/css/bootstrap.css"; +import "bootstrap-select/dist/css/bootstrap-select.min.css"; +import "./presigned_urls_app.jsx"; +import "./css/style.css"; diff --git a/examples/form_composer_demo/webapp/src/presigned_urls_app.jsx b/examples/form_composer_demo/webapp/src/presigned_urls_app.jsx new file mode 100644 index 000000000..4f5527969 --- /dev/null +++ b/examples/form_composer_demo/webapp/src/presigned_urls_app.jsx @@ -0,0 +1,52 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { + FormComposerBaseFrontend, + LoadingScreen, +} from "./components/core_components_presigned_url.jsx"; +import { + useMephistoRemoteProcedureTask, + ErrorBoundary, +} from "mephisto-task-multipart"; + +/* ================= Application Components ================= */ + +function MainApp() { + const { + isLoading, + initialTaskData, + remoteProcedure, + handleSubmit, + handleFatalError, + } = useMephistoRemoteProcedureTask(); + + if (isLoading || !initialTaskData) { + return ; + } + + let _initialTaskData = initialTaskData; + if (initialTaskData.hasOwnProperty("task_data")) { + _initialTaskData = initialTaskData.task_data; + } + + return ( +
+ + + +
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/form_composer_demo/webapp/src/review.js b/examples/form_composer_demo/webapp/src/review.js new file mode 100644 index 000000000..2c2d5a14d --- /dev/null +++ b/examples/form_composer_demo/webapp/src/review.js @@ -0,0 +1,10 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import "bootstrap/dist/css/bootstrap.css"; +import "bootstrap-select/dist/css/bootstrap-select.min.css"; +import "./reviewapp.jsx"; +import "./css/style.css"; diff --git a/examples/form_composer_demo/webapp/src/reviewapp.jsx b/examples/form_composer_demo/webapp/src/reviewapp.jsx new file mode 100644 index 000000000..3d01f2514 --- /dev/null +++ b/examples/form_composer_demo/webapp/src/reviewapp.jsx @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { FormComposerBaseFrontend } from "./components/core_components.jsx"; + +function ReviewApp() { + const appRef = React.useRef(null); + const [reviewData, setReviewData] = React.useState(null); + + // Requirement #1. Render review components after receiving Task data via message + window.onmessage = function (e) { + const data = JSON.parse(e.data); + setReviewData(data["REVIEW_DATA"]); + }; + + // Requirement #2. Resize iframe height to fit its content + React.useLayoutEffect(() => { + function updateSize() { + if (appRef.current) { + window.top.postMessage( + JSON.stringify({ + IFRAME_DATA: { + height: appRef.current.offsetHeight, + }, + }), + "*" + ); + } + } + window.addEventListener("resize", updateSize); + updateSize(); + // HACK: Catch-all resize, if normal resizes failed (e.g. acync long loading images) + setTimeout(() => { + updateSize(); + }, 3000); + return () => window.removeEventListener("resize", updateSize); + }, []); + + // Requirement #3. This component must return a div with `ref={appRef}` + // so we can get displayed height of this component (for iframe resizing) + return ( +
+ {reviewData ? ( + + ) : ( +
Loading...
+ )} +
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/mephisto/server/architects/router/deploy/static/index.html b/examples/form_composer_demo/webapp/src/static/index.html similarity index 86% rename from mephisto/server/architects/router/deploy/static/index.html rename to examples/form_composer_demo/webapp/src/static/index.html index ee7f159c1..2e4df25f8 100644 --- a/mephisto/server/architects/router/deploy/static/index.html +++ b/examples/form_composer_demo/webapp/src/static/index.html @@ -1,6 +1,6 @@ + # ParlAI Chat Task This task exists to demonstrate both the out-of-the-box functionality of setting up a ParlAI chat on Mephisto, as well as more complicated tasks with custom frontend functionality. To get started you can run one of the following commands: The baseline chat example can be run from this directory with: ```console -python parlai_test_script.py +python run_task.py ``` You can also run an example that has onboarding set up with: ```console -python parlai_test_script.py conf=onboarding_example +python run_task.py conf=onboarding_example ``` Which is mostly a wrapper around adding an onboarding qualification, which you can do manually for any of the other configurations. ```console -python parlai_test_script.py conf=... mephisto.blueprint.onboarding_qualification=test_onboard_qualification +python run_task.py conf=... mephisto.blueprint.onboarding_qualification=test_onboard_qualification ``` Further, you can try running a task using a prebuilt customized frontend bundle (built from the `webapp` directory) with: ```console -python parlai_test_script.py conf=custom_prebuilt +python run_task.py conf=custom_prebuilt ``` Further, you can try running a task using an auto-building task (built from the `custom_simple` directory) with: ```console -python parlai_test_script.py conf=custom_simple +python run_task.py conf=custom_simple ``` ### Common ParlAI blueprint argument overrides @@ -46,7 +52,7 @@ Task worlds implement the following methods: - `prep_save_data` (optional) - The `prep_save_data` method is used to add any additional values to the saved conversation data. This data will be accessible later in review. The world file also needs to implement the following methods: -- `make_world` - This method should, given world options and a list of agents, return an initialized task world. +- `make_world` - This method should, given world options and a list of agents, return an initialized task world. It may optionally accept an `initialization_data` keyword argument, which will be provided with the `Assignment`'s `InitializationData` if present. - `get_world_params` - This method is used to configure details about your ParlAI world for Mephisto to understand how to initialize your world. In this case the only required configuration parameter is `agent_count`, which specifies the number of human agents Mephisto will provide to your `make_world` function. - `make_onboarding_world` (optional) - The `make_onboarding_world` method is called to initialize a world on the very first time a specific worker works on your task. This will only ever be called with a single agent, and it should return the initialized onboarding world. - `validate_onboarding` (optional) - When an onboarding world completes, this method is called on the full data collected in the onboarding task. If it returns `True` the worker is allowed to move on to the full task. If this method returns `False`, then the worker is blocked from working on this task in the future. @@ -61,29 +67,39 @@ ParlAI chat tasks have a number of arguments set up, primarily via Hydra but als - `mephisto.task.task_name` - This task name will be used to consolidate your data across runs. Generally we suggest using `descriptive-string-pilot-#` when piloting and `descriptive-task-string` for your main collection. More details on this are in the (TODO) Mephisto argument instructions. - `mephisto.blueprint.onboarding_qualification` (optional) - The qualification to grant to a worker when they have completed onboarding, such that they no longer need to do onboarding in future tasks where you specify the same qualification name. Specifying this qualification will make mephisto attempt to run onboarding for new workers, and ommitting it will skip onboarding for all workers. #### ParlAI-specific arguments -- `mephisto.blueprint.world_file` - Path to the python file containing your worlds. Detailed requirements of this file in the "The worlds file" section. +- `mephisto.blueprint.world_file` - Optional path to the python file containing your worlds. Detailed requirements of this file in the "The worlds file" section. If you already know what world module you intend to use for a specific run, it's generally a better practice to import that module directly in your run script, and then pass it as `SharedParlAITaskState.world_module`. - `mephisto.blueprint.task_description_file` - Path to an HTML file containing the task preview and basic instructions for your task. If you use a custom built frontend, you can omit this argument and directly edit the `TaskPreviewView` in `app.jsx` instead. - `mephisto.blueprint.num_conversations` - Number of conversations to have. This currently leads to `num_conversations` * `agent_count` tasks being launched for workers to do. Incomplete tasks are _currently_ not relaunched. - `mephisto.blueprint.custom_source_dir` - Path to a folder containing, at the very least, a `main.js` for a custom ParlAI frontend view. Can also contain an updated `package.json` if that file imports anything outside of the defaults used in `server/blueprints/parlai_chat/webapp/package.json`. Providing this flag will make Mephisto build that frontend in a `_generated` directory, and refer to that build when launching your task. Mephisto will only rebuild when the source files in the provided `custom_source_dir` are updated. - `mephisto.blueprint.custom_source_bundle` - Path to a custom built source bundle to deploy to the frontend instead of the standard ParlAI view. For this task we specify a build in the `webapp` directory, but you'll need to run `npm install; npm run dev` in that directory the first time you use a bundle (and whenever you make changes to the `src` that you want to be picked up) +- `SharedParlAITaskState.world_module` - The world file module that you want to provide for this run. - `SharedParlAITaskState.world_opt` - The world option will be passed to the `make_world` function as the first argument. Passing contents through `world_opt` is the preferred way to share important state between different calls to `make_world`, as this dict will be shared amongst all calls. - `SharedParlAITaskState.onboarding_world_opt` - The world option will be passed to the `make_onboarding_world` function as the first argument. ### Task description content For simple tasks, you can provide an HTML task description (via the `task_description_file` argument above) containing a preview and description of what the worker is going to be doing in their task. +### Simple custom frontend bundles +Using the `mephisto.blueprint.custom_source_dir` option, it's possible to specify just a directory containing any frontend code you are using for a task, so long as you've built the app contained using the `bootstrap-chat` package. In this case, Mephisto will handle the process of generating the bundle whenever it detects changed files, meaning that you don't have to think about that part of the process. + +The automated build process looks for three special paths: +- `[custom_source_dir]/main.js` : this should contain your main application code, and is the only required file in the custom source directory. It should probably end with `ReactDOM.render(, document.getElementById("app"));` +- `[custom_source_dir]/style.css` : this can contain any style files that alter the way that your chat application looks. You can later reference this file by including `import "./style.css";` in your `main.js` file. +- `[custom_source_dir]/components/`: This is a special directory that can contain additional elements that your `main.js` file references (using relative paths) +- `[custom_source_dir]/package.json`: If you want additional dependencies, you can specify them in a `package.json` file. We suggest copying the one present at `mephisto/abstractions/blueprints/parlai_chat/webapp/package.json`. + ### Custom frontend bundles -Custom frontend bundles can be provided that override the view of how the ParlAI chat looks, and the kinds of inputs you can pass. Much of the ParlAI-specific interfaceing logic is encapsulated in the `webapp/src/app.jsx` file. The actual view logic is in `webapp/src/components/core_components.jsx`. Here we define the `BaseFrontend` component, which is the root of the core task. +Custom frontend bundles can be provided that override the view of how the ParlAI chat looks, and the kinds of inputs you can pass. Most of the ParlAI-specific interfaceing logic is built into the `bootstrap-chat` package. The remaining custom view logic is in `webapp/src/main.js`. Here we define the `RenderChatMessage` component, which overrides the base behavior. # How can I make my own task? ## Simple chat collection (no custom frontend) If you are able to provide your workers enough context just using a task description and perhaps a message in the chat thread with directions, you should be able to work on a task without a custom frontend. In order to get started on a task like this, you'll likely do the following: -1. Copy the `demo_worlds.py`, `parlai_test_script.py`, and `task_description.html` files to a new directory for your task. This generally would go in the project directory you are launching tasks for, but you can use `mephisto/tasks` if you're just experimenting. +1. Copy the `demo_worlds.py`, `run_task.py`, and `task_description.html` files to a new directory for your task. This generally would go in the project directory you are launching tasks for, but you can use `mephisto/tasks` if you're just experimenting. 2. Update any task-related variables in your `conf/my_new_config.yaml` file to make sense for your task. 3. Update your worlds file to specify the kind of conversation you are creating between agents. -4. Run `parlai_test_script.py` to pilot your task over localhost. You can use different `worker_id` URL parameters in different windows to play the part of multiple workers at the same time. +4. Run `run_task.py` to pilot your task over localhost. You can use different `worker_id` URL parameters in different windows to play the part of multiple workers at the same time. 5. Repeat 3 & 4 until you're happy with your task. 6. Launch a small batch on a crowd provider to see how real workers handle your task. 7. Iterate more - use a review script (like the one present in `examples/simple_static_task/examine_results`) to make it easy to see what data you're getting. @@ -91,17 +107,19 @@ If you are able to provide your workers enough context just using a task descrip ## Tasks with custom frontends -If your task needs additional input beyond simple forms (tutorial TODO, see the `respond_with_form` field in the `demo_worlds.py` file in this example to attempt), you'll likely need to be writing your own frontend components. In order to get startedon this path, you'll likely do the following: +If your task needs additional input beyond simple forms (tutorial TODO, see the `respond_with_form` field in the `demo_worlds.py` file in this example to attempt), you'll likely need to be writing your own frontend components. In order to get started on this path, you'll likely do the following: 1. Copy this whole example directory into a new directory for your task. This generally would go in the project directory you are launching tasks for, but you can use `mephisto/tasks` if you're just experimenting. 2. Update the task-related variables in your `conf/my_new_config.yaml` file to make sense for your task. 3. Update your worlds file to specify the kind of conversation you are creating between agents. -4. Update `core_components.jsx` to alter parts of your frontend job to do what you want. +4. Update `app.jsx` to alter parts of your frontend job to do what you want. 5. Rebuild your frontend with `npm install; npm run dev` -6. Run `parlai_test_script.py` to pilot your task over localhost. You can use different `worker_id` URL parameters in different windows to play the part of multiple workers at the same time. +6. Run `run_task.py` to pilot your task over localhost. You can use different `worker_id` URL parameters in different windows to play the part of multiple workers at the same time. 7. Repeat 3 - 6 until you're happy with your task. 8. Launch a small batch on a crowd provider to see how real workers handle your task. 9. Iterate more - use a review script (like the one present in `examples/simple_static_task/examine_results`) to make it easy to see what data you're getting. 10. Collect some interesting conversational data. -If you do require frontend customization, we recommend using [React Dev Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) to inspect the specific elements you want to change and debug your frontend as you work with it. Note that after rebuilding your frontend (by using `npm install; npm run dev`) you may need to do a force refresh (shift-cmd-R in chrome) to ensure you load the new version of your bundle. \ No newline at end of file +You may also find success using the options for the simple custom frontend functionality, described in the "Simple custom frontend bundles" section. + +If you do require frontend customization, we recommend using [React Dev Tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en) to inspect the specific elements you want to change and debug your frontend as you work with it. Note that after rebuilding your frontend (by using `npm install; npm run dev`) you may need to do a force refresh (shift-cmd-R in chrome) to ensure you load the new version of your bundle. diff --git a/mephisto/providers/mturk/utils/__init__.py b/examples/parlai_chat_task_demo/__init__.py similarity index 74% rename from mephisto/providers/mturk/utils/__init__.py rename to examples/parlai_chat_task_demo/__init__.py index 240697e32..cfaca7562 100644 --- a/mephisto/providers/mturk/utils/__init__.py +++ b/examples/parlai_chat_task_demo/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/parlai_chat_task_demo/assets/.gitkeep b/examples/parlai_chat_task_demo/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/examples/parlai_chat_task_demo/conf/base.yaml b/examples/parlai_chat_task_demo/conf/base.yaml deleted file mode 100644 index 90e2199d3..000000000 --- a/examples/parlai_chat_task_demo/conf/base.yaml +++ /dev/null @@ -1,6 +0,0 @@ -#@package _global_ -mephisto: - blueprint: - world_file: ${task_dir}/demo_worlds.py - task_description_file: ${task_dir}/task_description.html - num_conversations: 1 diff --git a/examples/parlai_chat_task_demo/custom_input_and_messages/README.md b/examples/parlai_chat_task_demo/custom_input_and_messages/README.md index c8374a952..50a4a0850 100644 --- a/examples/parlai_chat_task_demo/custom_input_and_messages/README.md +++ b/examples/parlai_chat_task_demo/custom_input_and_messages/README.md @@ -1,6 +1,12 @@ + + **NOTE: These instructions are from before Hydra integration. They will need to be upated after Hydra integration** -To run the example in this directory, modify `parlai_test_script.py` in the parent directory replacing: +To run the example in this directory, modify `run_task.py` in the parent directory replacing: ``` source_dir_path = f"{TASK_DIRECTORY}/custom_simple" @@ -14,7 +20,7 @@ source_dir_path = f"{TASK_DIRECTORY}/custom_input_and_messages" You can then run the task with: ``` -python parlai_test_script.py --build-custom-task True +python run_task.py --build-custom-task True ``` --- @@ -34,4 +40,4 @@ npm run dev cd ../.. ``` -Now when you run the script again, the fixed, symlinked `_generated` from the previous cancelled run will be used. \ No newline at end of file +Now when you run the script again, the fixed, symlinked `_generated` from the previous cancelled run will be used. diff --git a/examples/parlai_chat_task_demo/custom_input_and_messages/main.js b/examples/parlai_chat_task_demo/custom_input_and_messages/main.js index 484511b1a..a97044c77 100644 --- a/examples/parlai_chat_task_demo/custom_input_and_messages/main.js +++ b/examples/parlai_chat_task_demo/custom_input_and_messages/main.js @@ -1,9 +1,7 @@ /* - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ import React from "react"; @@ -93,7 +91,7 @@ function RenderChatMessage({ } message={message.text} taskData={message.task_data} - messageId={message.message_id} + messageId={message.update_id} onRadioChange={onRadioChange} /> @@ -162,7 +160,7 @@ function MainApp() { mephistoContext={mephistoContext} appContext={appContext} idx={idx} - key={message.message_id + "-" + idx} + key={message.update_id + "-" + idx} onRadioChange={(val) => { setChatAnnotation({ index: idx, value: val }); }} diff --git a/examples/parlai_chat_task_demo/custom_simple/main.js b/examples/parlai_chat_task_demo/custom_simple/main.js index 0a2d77b93..9e64fa87a 100644 --- a/examples/parlai_chat_task_demo/custom_simple/main.js +++ b/examples/parlai_chat_task_demo/custom_simple/main.js @@ -1,9 +1,7 @@ /* - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ import React from "react"; @@ -27,7 +25,7 @@ function RenderChatMessage({ message, mephistoContext, appContext, idx }) { } message={message.text} taskData={message.task_data} - messageId={message.message_id} + messageId={message.update_id} /> ); @@ -42,7 +40,7 @@ function MainApp() { mephistoContext={mephistoContext} appContext={appContext} idx={idx} - key={message.message_id + "-" + idx} + key={message.update_id + "-" + idx} /> )} renderSidePane={({ mephistoContext: { taskConfig } }) => ( diff --git a/examples/parlai_chat_task_demo/demo_worlds.py b/examples/parlai_chat_task_demo/demo_worlds.py index 4c20e3492..31216d281 100644 --- a/examples/parlai_chat_task_demo/demo_worlds.py +++ b/examples/parlai_chat_task_demo/demo_worlds.py @@ -1,23 +1,24 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -from parlai.mturk.core.worlds import MTurkOnboardWorld, MTurkTaskWorld -from parlai.core.worlds import validate -from joblib import Parallel, delayed +from parlai.crowdsourcing.utils.worlds import CrowdOnboardWorld, CrowdTaskWorld # type: ignore +from parlai.core.worlds import validate # type: ignore +from joblib import Parallel, delayed # type: ignore -class MTurkMultiAgentDialogOnboardWorld(MTurkOnboardWorld): - def __init__(self, opt, mturk_agent): - super().__init__(opt, mturk_agent) + +class MultiAgentDialogOnboardWorld(CrowdOnboardWorld): + def __init__(self, opt, agent): + super().__init__(opt, agent) self.opt = opt def parley(self): - self.mturk_agent.agent_id = "Onboarding Agent" - self.mturk_agent.observe({"id": "System", "text": "Welcome onboard!"}) - x = self.mturk_agent.act(timeout=self.opt["turn_timeout"]) - self.mturk_agent.observe( + self.agent.agent_id = "Onboarding Agent" + self.agent.observe({"id": "System", "text": "Welcome onboard!"}) + x = self.agent.act(timeout=self.opt["turn_timeout"]) + self.agent.observe( { "id": "System", "text": "Thank you for your input! Please wait while " @@ -28,7 +29,7 @@ def parley(self): self.episodeDone = True -class MTurkMultiAgentDialogWorld(MTurkTaskWorld): +class MultiAgentDialogWorld(CrowdTaskWorld): """ Basic world where each agent gets a turn in a round-robin fashion, receiving as input the actions of all other agents since that agent last acted. @@ -137,7 +138,7 @@ def shutdown_agent(agent): def make_onboarding_world(opt, agent): - return MTurkMultiAgentDialogOnboardWorld(opt, agent) + return MultiAgentDialogOnboardWorld(opt, agent) def validate_onboarding(data): @@ -147,7 +148,7 @@ def validate_onboarding(data): def make_world(opt, agents): - return MTurkMultiAgentDialogWorld(opt, agents) + return MultiAgentDialogWorld(opt, agents) def get_world_params(): diff --git a/examples/parlai_chat_task_demo/hydra_configs/conf/base.yaml b/examples/parlai_chat_task_demo/hydra_configs/conf/base.yaml new file mode 100644 index 000000000..9c14009a6 --- /dev/null +++ b/examples/parlai_chat_task_demo/hydra_configs/conf/base.yaml @@ -0,0 +1,18 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: parlai_chat + - /mephisto/architect: local + - /mephisto/provider: mock +mephisto: + blueprint: + world_file: ${task_dir}/demo_worlds.py + task_description_file: ${task_dir}/task_description.html + num_conversations: 1 + task: + # We expect to be able to handle 25 concurrent conversations without issue + max_num_concurrent_units: 50 # 25 convos * 2 people per diff --git a/examples/parlai_chat_task_demo/conf/custom_prebuilt.yaml b/examples/parlai_chat_task_demo/hydra_configs/conf/custom_prebuilt.yaml similarity index 68% rename from examples/parlai_chat_task_demo/conf/custom_prebuilt.yaml rename to examples/parlai_chat_task_demo/hydra_configs/conf/custom_prebuilt.yaml index ab881f953..086f28bfb 100644 --- a/examples/parlai_chat_task_demo/conf/custom_prebuilt.yaml +++ b/examples/parlai_chat_task_demo/hydra_configs/conf/custom_prebuilt.yaml @@ -1,4 +1,11 @@ #@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - base mephisto: blueprint: custom_source_bundle: ${task_dir}/webapp/build/bundle.js diff --git a/examples/parlai_chat_task_demo/conf/custom_simple.yaml b/examples/parlai_chat_task_demo/hydra_configs/conf/custom_simple.yaml similarity index 67% rename from examples/parlai_chat_task_demo/conf/custom_simple.yaml rename to examples/parlai_chat_task_demo/hydra_configs/conf/custom_simple.yaml index c67c8c9c8..067370da2 100644 --- a/examples/parlai_chat_task_demo/conf/custom_simple.yaml +++ b/examples/parlai_chat_task_demo/hydra_configs/conf/custom_simple.yaml @@ -1,4 +1,11 @@ #@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - base mephisto: blueprint: custom_source_dir: ${task_dir}/custom_simple diff --git a/examples/parlai_chat_task_demo/conf/example.yaml b/examples/parlai_chat_task_demo/hydra_configs/conf/example.yaml similarity index 63% rename from examples/parlai_chat_task_demo/conf/example.yaml rename to examples/parlai_chat_task_demo/hydra_configs/conf/example.yaml index 1a1e7db57..363b1d901 100644 --- a/examples/parlai_chat_task_demo/conf/example.yaml +++ b/examples/parlai_chat_task_demo/hydra_configs/conf/example.yaml @@ -1,4 +1,11 @@ #@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - base mephisto: task: task_name: parlai-chat-example diff --git a/examples/parlai_chat_task_demo/conf/onboarding_example.yaml b/examples/parlai_chat_task_demo/hydra_configs/conf/onboarding_example.yaml similarity index 67% rename from examples/parlai_chat_task_demo/conf/onboarding_example.yaml rename to examples/parlai_chat_task_demo/hydra_configs/conf/onboarding_example.yaml index 7962a5597..479591980 100644 --- a/examples/parlai_chat_task_demo/conf/onboarding_example.yaml +++ b/examples/parlai_chat_task_demo/hydra_configs/conf/onboarding_example.yaml @@ -1,4 +1,11 @@ #@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - base mephisto: blueprint: onboarding_qualification: test-parlai-chat-qualification diff --git a/examples/parlai_chat_task_demo/parlai_test_script.py b/examples/parlai_chat_task_demo/parlai_test_script.py deleted file mode 100644 index 20be32d91..000000000 --- a/examples/parlai_chat_task_demo/parlai_test_script.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright (c) Facebook, Inc. and its affiliates. -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - - -import os -from mephisto.core.operator import Operator -from mephisto.utils.scripts import load_db_and_process_config -from mephisto.server.blueprints.parlai_chat.parlai_chat_blueprint import ( - BLUEPRINT_TYPE, - SharedParlAITaskState, -) - -import hydra -from omegaconf import DictConfig -from dataclasses import dataclass, field -from typing import List, Any - -TASK_DIRECTORY = os.path.dirname(os.path.abspath(__file__)) - -defaults = [ - {"mephisto/blueprint": BLUEPRINT_TYPE}, - {"mephisto/architect": "local"}, - {"mephisto/provider": "mock"}, - "conf/base", - {"conf": "example"}, -] - -from mephisto.core.hydra_config import RunScriptConfig, register_script_config - - -@dataclass -class TestScriptConfig(RunScriptConfig): - defaults: List[Any] = field(default_factory=lambda: defaults) - task_dir: str = TASK_DIRECTORY - num_turns: int = field( - default=3, - metadata={"help": "Number of turns before a conversation is complete"}, - ) - turn_timeout: int = field( - default=300, - metadata={ - "help": "Maximum response time before kicking " - "a worker out, default 300 seconds" - }, - ) - - -register_script_config(name="scriptconfig", module=TestScriptConfig) - - -@hydra.main(config_name="scriptconfig") -def main(cfg: DictConfig) -> None: - db, cfg = load_db_and_process_config(cfg) - - world_opt = {"num_turns": cfg.num_turns, "turn_timeout": cfg.turn_timeout} - - custom_bundle_path = cfg.mephisto.blueprint.get("custom_source_bundle", None) - if custom_bundle_path is not None: - assert os.path.exists(custom_bundle_path), ( - "Must build the custom bundle with `npm install; npm run dev` from within " - f"the {TASK_DIRECTORY}/webapp directory in order to demo a custom bundle " - ) - world_opt["send_task_data"] = True - - shared_state = SharedParlAITaskState( - world_opt=world_opt, onboarding_world_opt=world_opt - ) - - operator = Operator(db) - - operator.validate_and_run_config(cfg.mephisto, shared_state) - operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) - - -if __name__ == "__main__": - main() diff --git a/examples/parlai_chat_task_demo/run_task.py b/examples/parlai_chat_task_demo/run_task.py new file mode 100644 index 000000000..fce6a02de --- /dev/null +++ b/examples/parlai_chat_task_demo/run_task.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + + +import os +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import task_script +from mephisto.operations.hydra_config import build_default_task_config +from mephisto.abstractions.blueprints.parlai_chat.parlai_chat_blueprint import ( + SharedParlAITaskState, +) + +from omegaconf import DictConfig +from dataclasses import dataclass, field + + +@dataclass +class ParlAITaskConfig(build_default_task_config("example")): # type: ignore + num_turns: int = field( + default=3, + metadata={"help": "Number of turns before a conversation is complete"}, + ) + turn_timeout: int = field( + default=300, + metadata={ + "help": "Maximum response time before kicking " "a worker out, default 300 seconds" + }, + ) + + +@task_script(config=ParlAITaskConfig) +def main(operator: "Operator", cfg: DictConfig) -> None: + + world_opt = {"num_turns": cfg.num_turns, "turn_timeout": cfg.turn_timeout} + + custom_bundle_path = cfg.mephisto.blueprint.get("custom_source_bundle", None) + if custom_bundle_path is not None: + assert os.path.exists(custom_bundle_path), ( + "Must build the custom bundle with `npm install; npm run dev` from within " + f"the {cfg.task_dir}/webapp directory in order to demo a custom bundle " + ) + world_opt["send_task_data"] = True + + shared_state = SharedParlAITaskState(world_opt=world_opt, onboarding_world_opt=world_opt) + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +if __name__ == "__main__": + main() diff --git a/examples/parlai_chat_task_demo/task_description.html b/examples/parlai_chat_task_demo/task_description.html index adf2117f1..3c7618293 100644 --- a/examples/parlai_chat_task_demo/task_description.html +++ b/examples/parlai_chat_task_demo/task_description.html @@ -1,3 +1,9 @@ + +

If you see this, it means the task description has loaded successfully


What is this task?

diff --git a/examples/parlai_chat_task_demo/webapp/README.md b/examples/parlai_chat_task_demo/webapp/README.md deleted file mode 100644 index f7047eae4..000000000 --- a/examples/parlai_chat_task_demo/webapp/README.md +++ /dev/null @@ -1,16 +0,0 @@ -## Description - -`parlai/mturk/core/react_server` contains several files and folders that comprise the server that is built to serve the task into the MTurk UI: - -### Folders - -- **dev/**: contains the react frontend components that comprise the frontend, as well as the css and main javascript file that ties it all together. Of these, the `dev/components/core_components.jsx` file is likely the most interesting, as it contains the frontend components that are rendered in a normal task. To replace them, you'll need to create a `custom.jsx` file following the formatting in the dummy version in the same folder. See an example of this in the `react_task_demo` task in the `parlai/mturk/tasks` folder. -- **server/**: contains the package that is actually served by the heroku server for the task. `server.js` is what ends up running on the heroku server, which is a simple one-page server with a router for socket messages. The `parlai/mturk/core/server_utils.py` file handles building the components from dev into a new copy of this folder when launching a new task. - -### Files - -The rest of the files are associated with the process of building the finalized javascript main via node and outputting it into the server directory. - -- **.babelrc**: links presets and plugins required for babel to transpile the react jsx files into pure js. -- **package.json**: contains the build dependencies and directs the main build process to run the contents of the webpack config file. -- **webpack.config.js**: configures webpack to grab the contents of the `dev` folder and output the final built file to `server/static`. diff --git a/examples/parlai_chat_task_demo/webapp/package-lock.json b/examples/parlai_chat_task_demo/webapp/package-lock.json deleted file mode 100644 index 95cb9f34b..000000000 --- a/examples/parlai_chat_task_demo/webapp/package-lock.json +++ /dev/null @@ -1,14785 +0,0 @@ -{ - "name": "parlai-mturk-task-compiler", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/cli": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", - "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==", - "dev": true, - "requires": { - "chokidar": "^2.1.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/compat-data": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz", - "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==", - "dev": true, - "requires": { - "browserslist": "^4.8.5", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", - "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.7", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.7", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", - "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", - "requires": { - "@babel/types": "^7.8.7", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", - "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3", - "esutils": "^2.0.0" - } - }, - "@babel/helper-call-delegate": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz", - "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", - "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.6", - "browserslist": "^4.9.1", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", - "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz", - "integrity": "sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.6.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", - "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.8.6", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "dev": true, - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "dev": true, - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", - "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", - "dev": true, - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", - "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", - "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", - "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", - "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz", - "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", - "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz", - "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", - "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", - "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", - "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", - "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz", - "integrity": "sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.8.7", - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", - "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", - "dev": true, - "requires": { - "@babel/helper-builder-react-jsx": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", - "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", - "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", - "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.8.6", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.8.6", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.8.6", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.8.3", - "@babel/plugin-transform-modules-commonjs": "^7.8.3", - "@babel/plugin-transform-modules-systemjs": "^7.8.3", - "@babel/plugin-transform-modules-umd": "^7.8.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.7", - "browserslist": "^4.8.5", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/preset-react": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", - "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.8.3", - "@babel/plugin-transform-react-jsx-self": "^7.8.3", - "@babel/plugin-transform-react-jsx-source": "^7.8.3" - } - }, - "@babel/runtime": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz", - "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==", - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", - "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" - } - } - }, - "@babel/runtime-corejs2": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.8.7.tgz", - "integrity": "sha512-R8zbPiv25S0pGfMqAr55dRRxWB8vUeo3wicI4g9PFVBKmsy/9wmQUV1AaYW/kxRHUhx42TTh6F0+QO+4pwfYWg==", - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", - "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==" - } - } - }, - "@babel/runtime-corejs3": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz", - "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==", - "dev": true, - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", - "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", - "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/react": { - "version": "16.9.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz", - "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@types/react-table": { - "version": "6.8.7", - "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-6.8.7.tgz", - "integrity": "sha512-1U0xl47jk0BzE+HNHgxZYSLvtybSvnlLhOpW9Mfqf9iuRm/fGqgRab3TKivPCY6Tl7WPFM2hWEJ1GnsuSFc9AQ==", - "requires": { - "@types/react": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - } - } - }, - "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "add-dom-event-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", - "requires": { - "object-assign": "4.x" - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "array.prototype.flatmap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", - "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "axe-core": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", - "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==", - "dev": true - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "bootstrap": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", - "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==" - }, - "bootstrap-chat": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bootstrap-chat/-/bootstrap-chat-1.0.2.tgz", - "integrity": "sha512-j1MJNI5p9yWqn9BmXUqJ+Dr0d5CQyksIYmTJIlDAJH+DJBcZL6jxDVf/aG3LJs0pwZZMPMvNVmwEOX2+ZIh9hg==", - "requires": { - "axios": "^0.19.2", - "babel-eslint": "10.x", - "bootstrap": "4.3.1", - "bowser": "^2.9.0", - "jquery": "3.5.0", - "rc-slider": "^9.3.1", - "react-bootstrap": "0.32.4" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "bootstrap": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", - "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==" - }, - "jquery": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz", - "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==" - }, - "rc-align": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.7.tgz", - "integrity": "sha512-g2HmhyP3B6q00t91a2HaMdX9MzN1EW5syzflXSLRooMKPwOb3bwYmlfKtsUoCwUJQPXitrAbnKiBmIs1ZmM25g==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "rc-util": "^5.0.1", - "resize-observer-polyfill": "^1.5.1" - } - }, - "rc-slider": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.5.0.tgz", - "integrity": "sha512-odaiwvN21MxOTmDiUSzaTB1QJ7es+7SjBr5jdA1hkjTdaUrl0vedQLW4aF7JTEqV2iCXUNFZh0S8RzejJ8+enQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-tooltip": "^5.0.1", - "rc-util": "^5.0.0", - "shallowequal": "^1.1.0" - } - }, - "rc-tooltip": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.0.1.tgz", - "integrity": "sha512-3AnxhUS0j74xAV3khrKw8o6rg+Ima3nw09DJBezMPnX3ImQUAnayWsPSlN1mEnihjA43rcFkGM1emiKE+CXyMQ==", - "requires": { - "@babel/runtime": "^7.11.2", - "rc-trigger": "^5.0.0" - } - }, - "rc-trigger": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.0.4.tgz", - "integrity": "sha512-cFTuV73YpfC8ujknycSjEvIDX7VtspEgFhibk/evf415Q0roHazs9dEbajKRgionpC/88OKLRR6G81eA4BvLTQ==", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.2.1" - } - }, - "rc-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz", - "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==", - "requires": { - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - } - } - }, - "bowser": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", - "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", - "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.363", - "node-releases": "^1.1.50" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001032", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001032.tgz", - "integrity": "sha512-8joOm7BwcpEN4BfVHtfh0hBXSAPVYk+eUIcNntGtMkUWy/6AKRCDZINCLe3kB1vHhT2vBxBF85Hh9VlPXi/qjA==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-classes": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "requires": { - "component-indexof": "0.0.3" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "dev": true, - "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-animation": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.6.1.tgz", - "integrity": "sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog==", - "requires": { - "babel-runtime": "6.x", - "component-classes": "^1.2.5" - } - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - } - }, - "css-selector-tokenizer": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", - "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2", - "regexpu-core": "^4.6.0" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", - "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-align": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.10.4.tgz", - "integrity": "sha512-wytDzaru67AmqFOY4B9GUb/hrwWagezoYYK97D/vpK+ezg+cnuZO0Q2gltUPa7KfNmIqfRIYVCF8UhRDEHAmgQ==" - }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.372", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.372.tgz", - "integrity": "sha512-77a4jYC52OdisHM+Tne7dgWEvQT1FoNu/jYl279pP88ZtG4ZRIPyhQwAKxj6C2rzsyC1OwsOds9JlZtNncSz6g==", - "dev": true - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", - "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-import": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", - "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz", - "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^3.5.4", - "axobject-query": "^2.1.2", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1", - "language-tags": "^1.0.5" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "emoji-regex": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", - "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.21.0.tgz", - "integrity": "sha512-WaieZZ4cayAfPBmy5KkEqFfLQf/VkzoUsvM5DfD9G1lrz+3LtZ8X6nToEUQiFe1X5ApNIzkMd+7NUy+2OmSTQQ==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.17.0", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", - "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": false, - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "resolved": false, - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": false, - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": false, - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": false, - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": false, - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": false, - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": false, - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": false, - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": false, - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "resolved": false, - "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": false, - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "resolved": false, - "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": false, - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": false, - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "resolved": false, - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "resolved": false, - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "resolved": false, - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "dev": true, - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsx-ast-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", - "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.0" - } - }, - "keycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz", - "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mephisto-task": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/mephisto-task/-/mephisto-task-1.0.10.tgz", - "integrity": "sha512-xzZOzOya4m2B+xBtyodap3LhWAbkAnNYfbGhZhGubN/UA9UrDtCoWWpyXrfc1+rS/bb1jZARqgvYYrbS8OQSDQ==", - "requires": { - "axios": "^0.19.2", - "bowser": "^2.9.0" - }, - "dependencies": { - "@babel/cli": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz", - "integrity": "sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==", - "requires": { - "chokidar": "^2.1.8", - "commander": "^4.0.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.13", - "make-dir": "^2.1.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/compat-data": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz", - "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==", - "requires": { - "browserslist": "^4.11.1", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", - "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.6", - "@babel/parser": "^7.9.6", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/generator": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", - "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", - "requires": { - "@babel/types": "^7.9.6", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", - "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/types": "^7.9.0" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz", - "integrity": "sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-module-imports": "^7.8.3", - "@babel/types": "^7.9.5" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz", - "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==", - "requires": { - "@babel/compat-data": "^7.9.6", - "browserslist": "^4.11.1", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz", - "integrity": "sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow==", - "requires": { - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.9.6", - "@babel/helper-split-export-declaration": "^7.8.3" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", - "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.9.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-replace-supers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz", - "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", - "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==" - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz", - "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.6", - "@babel/types": "^7.9.6" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz", - "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==" - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", - "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz", - "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.9.5" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz", - "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz", - "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", - "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz", - "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz", - "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz", - "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==", - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.9.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz", - "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", - "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", - "requires": { - "@babel/helper-builder-react-jsx": "^7.9.0", - "@babel/helper-builder-react-jsx-experimental": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz", - "integrity": "sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==", - "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", - "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", - "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/preset-env": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", - "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", - "requires": { - "@babel/compat-data": "^7.9.6", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.5", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.9.5", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.6", - "@babel/plugin-transform-modules-commonjs": "^7.9.6", - "@babel/plugin-transform-modules-systemjs": "^7.9.6", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.9.5", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.6", - "browserslist": "^4.11.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.4.tgz", - "integrity": "sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.9.4", - "@babel/plugin-transform-react-jsx-development": "^7.9.0", - "@babel/plugin-transform-react-jsx-self": "^7.9.0", - "@babel/plugin-transform-react-jsx-source": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", - "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz", - "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==", - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz", - "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.6", - "@babel/helper-function-name": "^7.9.5", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz", - "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==", - "requires": { - "@babel/helper-validator-identifier": "^7.9.5", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "requires": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" - } - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" - }, - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "array.prototype.flatmap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz", - "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "axe-core": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz", - "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==" - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "bowser": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", - "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", - "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001048", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz", - "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-loader": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz", - "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==", - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.27", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.0.3", - "schema-utils": "^2.6.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.426", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.426.tgz", - "integrity": "sha512-sdQ7CXQbFflKY5CU63ra+kIYq9F7d1OqI33856qJZxTrwo0sLASdmoRl9lWpGrQDS9Nk/RFliQWd3PPDrZ+Meg==" - }, - "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - } - }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz", - "integrity": "sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA==", - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-import": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", - "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz", - "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==", - "requires": { - "@babel/runtime": "^7.10.2", - "aria-query": "^4.2.2", - "array-includes": "^3.1.1", - "ast-types-flow": "^0.0.7", - "axe-core": "^3.5.4", - "axobject-query": "^2.1.2", - "damerau-levenshtein": "^1.0.6", - "emoji-regex": "^9.0.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1", - "language-tags": "^1.0.5" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "emoji-regex": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", - "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==" - } - } - }, - "eslint-plugin-react": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz", - "integrity": "sha512-kidMTE5HAEBSLu23CUDvj8dc3LdBU0ri1scwHBZjI41oDv4tjsWZKU7MQccFzH1QYPYhsnTF2ovh7JlcIcmxgg==", - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.17.0", - "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz", - "integrity": "sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g==" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", - "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "optional": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "optional": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "optional": true - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", - "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - }, - "needle": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.3.tgz", - "integrity": "sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw==", - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz", - "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==", - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "optional": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "optional": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "requires": { - "postcss": "^7.0.14" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - } - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsx-ast-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", - "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", - "requires": { - "array-includes": "^3.1.1", - "object.assign": "^4.1.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "language-subtag-registry": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz", - "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==" - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-releases": { - "version": "1.1.53", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz", - "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - } - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "requires": { - "postcss": "^7.0.5" - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", - "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.16", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.0" - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - }, - "regenerator-transform": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", - "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", - "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "side-channel": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", - "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", - "requires": { - "es-abstract": "^1.18.0-next.0", - "object-inspect": "^1.8.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "style-loader": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", - "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.6" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "terser": { - "version": "4.6.13", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.13.tgz", - "integrity": "sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.0.tgz", - "integrity": "sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw==", - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.26", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "watchpack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", - "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==", - "requires": { - "chokidar": "^2.1.8", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "webpack": { - "version": "4.43.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", - "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.1", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-cli": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", - "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" - }, - "dependencies": { - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.51", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.51.tgz", - "integrity": "sha512-1eQEs6HFYY1kMXQPOLzCf7HdjReErmvn85tZESMczdCNVWP3Y7URYLBAyYynuI7yef1zj4HN5q+oB2x67QU0lw==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz", - "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "requires": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "rc-align": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz", - "integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==", - "requires": { - "babel-runtime": "^6.26.0", - "dom-align": "^1.7.0", - "prop-types": "^15.5.8", - "rc-util": "^4.0.4" - } - }, - "rc-animate": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.10.3.tgz", - "integrity": "sha512-A9qQ5Y8BLlM7EhuCO3fWb/dChndlbWtY/P5QvPqBU7h4r5Q2QsvsbpTGgdYZATRDZbTRnJXXfVk9UtlyS7MBLg==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "css-animation": "^1.3.2", - "prop-types": "15.x", - "raf": "^3.4.0", - "rc-util": "^4.15.3", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-motion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.0.1.tgz", - "integrity": "sha512-spiBod/mQhbAt4ynq0P7TYa8OXAgg/nEloU0jrTO2X4wVkVTI8ynadyjgq7Tr55pegTsuCbYlysEsIdsSrcU0g==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.2.1" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "rc-util": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz", - "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==", - "requires": { - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - } - } - }, - "rc-slider": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.7.1.tgz", - "integrity": "sha512-WMT5mRFUEcrLWwTxsyS8jYmlaMsTVCZIGENLikHsNv+tE8ThU2lCoPfi/xFNUfJFNFSBFP3MwPez9ZsJmNp13g==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.5", - "prop-types": "^15.5.4", - "rc-tooltip": "^3.7.0", - "rc-util": "^4.0.4", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "warning": "^4.0.3" - } - }, - "rc-tooltip": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", - "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", - "requires": { - "babel-runtime": "6.x", - "prop-types": "^15.5.8", - "rc-trigger": "^2.2.2" - } - }, - "rc-trigger": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz", - "integrity": "sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw==", - "requires": { - "babel-runtime": "6.x", - "classnames": "^2.2.6", - "prop-types": "15.x", - "rc-align": "^2.4.0", - "rc-animate": "2.x", - "rc-util": "^4.4.0", - "react-lifecycles-compat": "^3.0.4" - } - }, - "rc-util": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.20.0.tgz", - "integrity": "sha512-rUqk4RqtDe4OfTsSk2GpbvIQNVtfmmebw4Rn7ZAA1TO1zLMLfyOF78ZyrEKqs8RDwoE3S1aXp0AX0ogLfSxXrQ==", - "requires": { - "add-dom-event-listener": "^1.1.0", - "babel-runtime": "6.x", - "prop-types": "^15.5.10", - "react-is": "^16.12.0", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0" - } - }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-bootstrap": { - "version": "0.32.4", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.32.4.tgz", - "integrity": "sha512-xj+JfaPOvnvr3ow0aHC7Y3HaBKZNR1mm361hVxVzVX3fcdJNIrfiodbQ0m9nLBpNxiKG6FTU2lq/SbTDYT2vew==", - "requires": { - "@babel/runtime-corejs2": "^7.0.0", - "classnames": "^2.2.5", - "dom-helpers": "^3.2.0", - "invariant": "^2.2.4", - "keycode": "^2.2.0", - "prop-types": "^15.6.1", - "prop-types-extra": "^1.0.1", - "react-overlays": "^0.8.0", - "react-prop-types": "^0.4.0", - "react-transition-group": "^2.0.0", - "uncontrollable": "^5.0.0", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-is": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz", - "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-overlays": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.8.3.tgz", - "integrity": "sha512-h6GT3jgy90PgctleP39Yu3eK1v9vaJAW73GOA/UbN9dJ7aAN4BTZD6793eI1D5U+ukMk17qiqN/wl3diK1Z5LA==", - "requires": { - "classnames": "^2.2.5", - "dom-helpers": "^3.2.1", - "prop-types": "^15.5.10", - "prop-types-extra": "^1.0.1", - "react-transition-group": "^2.2.0", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-prop-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", - "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", - "requires": { - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-table": { - "version": "6.11.5", - "resolved": "https://registry.npmjs.org/react-table/-/react-table-6.11.5.tgz", - "integrity": "sha512-LM+AS9v//7Y7lAlgTWW/cW6Sn5VOb3EsSkKQfQTzOW8FngB1FUskLLNEVkAYsTX9LjOWR3QlGjykJqCE6eXT/g==", - "requires": { - "@types/react-table": "^6.8.5", - "classnames": "^2.2.5", - "react-is": "^16.8.1" - } - }, - "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "requires": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "regenerator-transform": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.2.tgz", - "integrity": "sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", - "dev": true - }, - "regjsparser": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", - "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "side-channel": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", - "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", - "dev": true, - "requires": { - "es-abstract": "^1.18.0-next.0", - "object-inspect": "^1.8.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uncontrollable": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-5.1.0.tgz", - "integrity": "sha512-5FXYaFANKaafg4IVZXUNtGyzsnYEvqlr9wQ3WpZxFpEUxl29A3H6Q4G1Dnnorvq9TGOGATBApWR4YpLAh+F5hw==", - "requires": { - "invariant": "^2.2.4" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-loader": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", - "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3", - "mime": "^2.4.4", - "schema-utils": "^2.5.0" - }, - "dependencies": { - "schema-utils": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", - "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1" - } - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", - "dev": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - } - }, - "webpack": { - "version": "4.42.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", - "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - } - }, - "webpack-cli": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", - "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" - }, - "dependencies": { - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/examples/parlai_chat_task_demo/webapp/package.json b/examples/parlai_chat_task_demo/webapp/package.json index 67bff803f..88e7f89f3 100644 --- a/examples/parlai_chat_task_demo/webapp/package.json +++ b/examples/parlai_chat_task_demo/webapp/package.json @@ -4,18 +4,18 @@ "description": "", "main": "webpack.config.js", "scripts": { - "dev": "webpack --mode development -q" + "dev": "webpack --mode development" }, "keywords": [], "author": "", "dependencies": { "bootstrap": "^4.3.1", - "bootstrap-chat": "^1.0.1", - "mephisto-task": "^1.0.10", + "bootstrap-chat": "^2.0.1", + "mephisto-task": "2.0.4", "rc-slider": "^8.6.3", - "react": "16.13.1", + "react": "^16", "react-bootstrap": "^0.32.4", - "react-dom": "16.13.1", + "react-dom": "^16", "react-table": "^6.8.6" }, "devDependencies": { @@ -24,21 +24,21 @@ "@babel/plugin-proposal-class-properties": "^7.1.0", "@babel/preset-env": "^7.1.0", "@babel/preset-react": "^7.0.0", - "@typescript-eslint/eslint-plugin": "^2.34.0", - "@typescript-eslint/parser": "^2.34.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", "babel-eslint": "^10.1.0", "babel-loader": "^8.0.2", - "css-loader": "^1.0.0", - "eslint": "^6.8.0", - "eslint-config-react-app": "^5.2.1", + "css-loader": "^6.7.1", + "eslint": "^8.11.0", + "eslint-config-react-app": "^7.0.0", "eslint-plugin-flowtype": "^4.7.0", "eslint-plugin-import": "^2.20.2", "eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-react": "^7.20.0", - "eslint-plugin-react-hooks": "^2.5.1", - "style-loader": "^0.23.0", - "url-loader": "^2.0.1", - "webpack": "^4.19.1", - "webpack-cli": "^3.1.1" + "eslint-plugin-react-hooks": "^4.3.0", + "style-loader": "^1.3.0", + "url-loader": "^4.1.1", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.0" } } diff --git a/examples/parlai_chat_task_demo/webapp/src/main.js b/examples/parlai_chat_task_demo/webapp/src/main.js index 24e87385e..b5e349267 100644 --- a/examples/parlai_chat_task_demo/webapp/src/main.js +++ b/examples/parlai_chat_task_demo/webapp/src/main.js @@ -1,9 +1,7 @@ /* - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ import React from "react"; @@ -27,7 +25,7 @@ function RenderChatMessage({ message, mephistoContext, appContext, idx }) { } message={message.text} taskData={message.task_data} - messageId={message.message_id} + messageId={message.update_id} /> ); @@ -42,7 +40,7 @@ function MainApp() { mephistoContext={mephistoContext} appContext={appContext} idx={idx} - key={message.message_id + "-" + idx} + key={message.update_id + "-" + idx} /> )} renderSidePane={({ mephistoContext: { taskConfig } }) => ( diff --git a/examples/parlai_chat_task_demo/webapp/src/static/index.html b/examples/parlai_chat_task_demo/webapp/src/static/index.html index 5a1a77bfb..5b82997b3 100644 --- a/examples/parlai_chat_task_demo/webapp/src/static/index.html +++ b/examples/parlai_chat_task_demo/webapp/src/static/index.html @@ -1,11 +1,7 @@ - diff --git a/examples/parlai_chat_task_demo/webapp/webpack.config.js b/examples/parlai_chat_task_demo/webapp/webpack.config.js index 0fd10cc91..6240eeac7 100644 --- a/examples/parlai_chat_task_demo/webapp/webpack.config.js +++ b/examples/parlai_chat_task_demo/webapp/webpack.config.js @@ -1,5 +1,5 @@ /* - * Copyright (c) Facebook, Inc. and its affiliates. + * Copyright (c) Meta Platforms and its affiliates. * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ @@ -13,15 +13,15 @@ module.exports = { path: __dirname, filename: "build/bundle.js", }, - node: { - net: "empty", - dns: "empty", - }, resolve: { alias: { react: path.resolve("./node_modules/react"), "mephisto-task": path.resolve("./node_modules/mephisto-task"), }, + fallback: { + net: false, + dns: false, + }, }, module: { rules: [ @@ -33,11 +33,12 @@ module.exports = { }, { test: /\.css$/, - loader: "style-loader!css-loader", + use: ["style-loader", "css-loader"], }, { test: /\.(svg|png|jpe?g|ttf)$/, - loader: "url-loader?limit=100000", + loader: "url-loader", + options: { limit: 100000 }, }, { test: /\.jpg$/, diff --git a/examples/parlai_chat_task_demo/webapp/yarn.lock b/examples/parlai_chat_task_demo/webapp/yarn.lock deleted file mode 100644 index 4e3d9c1c3..000000000 --- a/examples/parlai_chat_task_demo/webapp/yarn.lock +++ /dev/null @@ -1,5654 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ant-design/css-animation@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@ant-design/css-animation/-/css-animation-1.7.2.tgz#4ee5d2ec0fb7cc0a78b44e1c82628bd4621ac7e3" - integrity sha512-bvVOe7A+r7lws58B7r+fgnQDK90cV45AXuvGx6i5CCSX1W/M3AJnHsNggDANBxEtWdNdFWcDd5LorB+RdSIlBw== - -"@babel/cli@^7.1.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.4.tgz#505fb053721a98777b2b175323ea4f090b7d3c1c" - integrity sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - chokidar "^2.1.8" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" - integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== - dependencies: - browserslist "^4.11.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.1.0": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" - integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.6" - "@babel/parser" "^7.9.6" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" - integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== - dependencies: - "@babel/types" "^7.9.6" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-builder-react-jsx-experimental@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" - integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-module-imports" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-builder-react-jsx@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" - integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/types" "^7.9.0" - -"@babel/helper-compilation-targets@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" - integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== - dependencies: - "@babel/compat-data" "^7.9.6" - browserslist "^4.11.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" - integrity sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow== - dependencies: - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.9.6" - "@babel/helper-split-export-declaration" "^7.8.3" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6", "@babel/helper-replace-supers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" - integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" - integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.6" - "@babel/types" "^7.9.6" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" - integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== - -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-class-properties@^7.1.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" - integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" - integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-modules-amd@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" - integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" - integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" - integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-react-display-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" - integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-react-jsx-development@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" - integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== - dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - -"@babel/plugin-transform-react-jsx-self@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" - integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - -"@babel/plugin-transform-react-jsx-source@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" - integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - -"@babel/plugin-transform-react-jsx@^7.9.4": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" - integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== - dependencies: - "@babel/helper-builder-react-jsx" "^7.9.0" - "@babel/helper-builder-react-jsx-experimental" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-jsx" "^7.8.3" - -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@^7.1.0": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" - integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== - dependencies: - "@babel/compat-data" "^7.9.6" - "@babel/helper-compilation-targets" "^7.9.6" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.6" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.6" - "@babel/plugin-transform-modules-commonjs" "^7.9.6" - "@babel/plugin-transform-modules-systemjs" "^7.9.6" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.6" - browserslist "^4.11.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.0.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" - integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-transform-react-display-name" "^7.8.3" - "@babel/plugin-transform-react-jsx" "^7.9.4" - "@babel/plugin-transform-react-jsx-development" "^7.9.0" - "@babel/plugin-transform-react-jsx-self" "^7.9.0" - "@babel/plugin-transform-react-jsx-source" "^7.9.0" - -"@babel/runtime-corejs2@^7.0.0": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.9.6.tgz#acd5d6351384cc2828dc211aa5426a90476bf4a8" - integrity sha512-TcdM3xc7weMrwTawuG3BTjtVE3mQLXUPQ9CxTbSKOrhn3QAcqCJ2fz+IIv25wztzUnhNZat7hr655YJa61F3zg== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.4" - -"@babel/runtime-corejs3@^7.8.3": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz#67aded13fffbbc2cb93247388cf84d77a4be9a71" - integrity sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA== - dependencies: - core-js-pure "^3.0.0" - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.8.4": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f" - integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.10.1": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.4.tgz#a6724f1a6b8d2f6ea5236dbfe58c7d7ea9c5eb99" - integrity sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" - integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.6" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.6" - "@babel/types" "^7.9.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.9.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" - integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - -"@types/json-schema@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== - -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/react-table@^6.8.5": - version "6.8.7" - resolved "https://registry.yarnpkg.com/@types/react-table/-/react-table-6.8.7.tgz#210ffa2862dd3711350676c0bdbbfbff45f14b84" - integrity sha512-1U0xl47jk0BzE+HNHgxZYSLvtybSvnlLhOpW9Mfqf9iuRm/fGqgRab3TKivPCY6Tl7WPFM2hWEJ1GnsuSFc9AQ== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "16.9.35" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.35.tgz#a0830d172e8aadd9bd41709ba2281a3124bbd368" - integrity sha512-q0n0SsWcGc8nDqH2GJfWQWUOmZSJhXV64CjVN5SvcNti3TdEaA3AH0D8DwNmMdzjMAC/78tB8nAZIlV8yTz+zQ== - dependencies: - "@types/prop-types" "*" - csstype "^2.2.0" - -"@typescript-eslint/eslint-plugin@^2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" - integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== - dependencies: - "@typescript-eslint/experimental-utils" "2.34.0" - functional-red-black-tree "^1.0.1" - regexpp "^3.0.0" - tsutils "^3.17.1" - -"@typescript-eslint/experimental-utils@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" - integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.34.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@^2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" - integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.34.0" - "@typescript-eslint/typescript-estree" "2.34.0" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/typescript-estree@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" - integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^7.3.2" - tsutils "^3.17.1" - -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== - -acorn@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" - integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== - -add-dom-event-listener@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" - integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== - dependencies: - object-assign "4.x" - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== - dependencies: - type-fest "^0.11.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-includes@^3.0.3, array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - is-string "^1.0.5" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -ast-types-flow@0.0.7, ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -axios@^0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - -axobject-query@^2.0.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" - integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-eslint@10.x, babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-loader@^8.0.2: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== - dependencies: - find-cache-dir "^2.1.0" - loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" - schema-utils "^2.6.5" - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-runtime@6.x, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== - -bootstrap-chat@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bootstrap-chat/-/bootstrap-chat-1.0.4.tgz#72a72fc916df78322f09e6fce2d68f165d239109" - integrity sha512-TCuc41O1sGMXQ5ETKtEV5TotL9ge8M8iav3TBQgHyODZ/g3sqsLG4qHJ8ArH9tqftO2TxgXc1qfAaLp/9wEX3g== - dependencies: - axios "^0.19.2" - babel-eslint "10.x" - bootstrap "4.3.1" - bowser "^2.9.0" - jquery "3.5.0" - rc-slider "^9.3.1" - react-bootstrap "0.32.4" - -bootstrap@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.1.tgz#280ca8f610504d99d7b6b4bfc4b68cec601704ac" - integrity sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag== - -bootstrap@^4.3.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.0.tgz#97d9dbcb5a8972f8722c9962483543b907d9b9ec" - integrity sha512-Z93QoXvodoVslA+PWNdk23Hze4RBYIkpb5h8I2HY2Tu2h7A0LpAgLcyrhrSUyo2/Oxm2l1fRZPs1e5hnxnliXA== - -bowser@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz#3bed854233b419b9a7422d9ee3e85504373821c9" - integrity sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.11.1, browserslist@^4.8.5: - version "4.12.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" - integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== - dependencies: - caniuse-lite "^1.0.30001043" - electron-to-chromium "^1.3.413" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001043: - version "1.0.30001062" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz#d814b648338504b315222ace6f1a533d9a55e390" - integrity sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw== - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" - integrity sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@2.x, classnames@^2.2.5, classnames@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@^2.11.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-classes@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" - integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= - dependencies: - component-indexof "0.0.3" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-indexof@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" - integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -confusing-browser-globals@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" - integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -convert-source-map@^1.1.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== - dependencies: - browserslist "^4.8.5" - semver "7.0.0" - -core-js-pure@^3.0.0: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - -core-js@^2.4.0, core-js@^2.6.5: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-animation@^1.3.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/css-animation/-/css-animation-1.6.1.tgz#162064a3b0d51f958b7ff37b3d6d4de18e17039e" - integrity sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog== - dependencies: - babel-runtime "6.x" - component-classes "^1.2.5" - -css-loader@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" - integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash "^4.17.11" - postcss "^6.0.23" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-selector-tokenizer@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" - integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - regexpu-core "^4.6.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^2.2.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" - integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -damerau-levenshtein@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" - integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== - -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-align@^1.7.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.0.tgz#56fb7156df0b91099830364d2d48f88963f5a29c" - integrity sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA== - -dom-helpers@^3.2.0, dom-helpers@^3.2.1, dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -electron-to-chromium@^1.3.413: - version "1.3.446" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.446.tgz#12c336bc858e04d6b614a488f32f2dd89561601f" - integrity sha512-CLQaFuvkKqR9FD2G3cJrr1fV7DRMXiAKWLP2F8cxtvvtzAS7Tubt0kF47/m+uE61kiT+I7ZEn7HqLnmWdOhmuA== - -elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1, emoji-regex@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-config-react-app@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" - integrity sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ== - dependencies: - confusing-browser-globals "^1.0.9" - -eslint-import-resolver-node@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" - integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== - dependencies: - debug "^2.6.9" - resolve "^1.13.1" - -eslint-module-utils@^2.4.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== - dependencies: - debug "^2.6.9" - pkg-dir "^2.0.0" - -eslint-plugin-flowtype@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.7.0.tgz#903a6ea3eb5cbf4c7ba7fa73cc43fc39ab7e4a70" - integrity sha512-M+hxhSCk5QBEValO5/UqrS4UunT+MgplIJK5wA1sCtXjzBcZkpTGRwxmLHhGpbHcrmQecgt6ZL/KDdXWqGB7VA== - dependencies: - lodash "^4.17.15" - -eslint-plugin-import@^2.20.2: - version "2.20.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" - integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== - dependencies: - array-includes "^3.0.3" - array.prototype.flat "^1.2.1" - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.4.1" - has "^1.0.3" - minimatch "^3.0.4" - object.values "^1.1.0" - read-pkg-up "^2.0.0" - resolve "^1.12.0" - -eslint-plugin-jsx-a11y@^6.2.3: - version "6.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" - integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== - dependencies: - "@babel/runtime" "^7.4.5" - aria-query "^3.0.0" - array-includes "^3.0.3" - ast-types-flow "^0.0.7" - axobject-query "^2.0.2" - damerau-levenshtein "^1.0.4" - emoji-regex "^7.0.2" - has "^1.0.3" - jsx-ast-utils "^2.2.1" - -eslint-plugin-react-hooks@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.5.1.tgz#4ef5930592588ce171abeb26f400c7fbcbc23cd0" - integrity sha512-Y2c4b55R+6ZzwtTppKwSmK/Kar8AdLiC2f9NADCuxbcTgPPg41Gyqa6b9GppgXSvCtkRw43ZE86CT5sejKC6/g== - -eslint-plugin-react@^7.20.0: - version "7.20.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz#f98712f0a5e57dfd3e5542ef0604b8739cd47be3" - integrity sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA== - dependencies: - array-includes "^3.1.1" - doctrine "^2.1.0" - has "^1.0.3" - jsx-ast-utils "^2.2.3" - object.entries "^1.1.1" - object.fromentries "^2.0.2" - object.values "^1.1.1" - prop-types "^15.7.2" - resolve "^1.15.1" - string.prototype.matchall "^4.0.2" - xregexp "^4.3.0" - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^7.0.0" - is-glob "^4.0.0" - js-yaml "^3.13.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.3" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" - table "^5.2.3" - text-table "^0.2.0" - v8-compile-cache "^2.0.3" - -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== - dependencies: - acorn "^7.1.1" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.1.0" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== - dependencies: - type-fest "^0.8.1" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= - dependencies: - postcss "^6.0.1" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -import-fresh@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" - integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== - dependencies: - ansi-escapes "^4.2.1" - chalk "^3.0.0" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.4.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== - dependencies: - es-abstract "^1.17.0-next.1" - has "^1.0.3" - side-channel "^1.0.2" - -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== - dependencies: - has "^1.0.3" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jquery@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9" - integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" - integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== - dependencies: - array-includes "^3.0.3" - object.assign "^4.1.0" - -keycode@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" - integrity sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ= - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -mephisto-task@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/mephisto-task/-/mephisto-task-1.0.10.tgz#10ab1cf9a9db9c2155bcc014bb443a63e1d6f6bc" - integrity sha512-xzZOzOya4m2B+xBtyodap3LhWAbkAnNYfbGhZhGubN/UA9UrDtCoWWpyXrfc1+rS/bb1jZARqgvYYrbS8OQSDQ== - dependencies: - axios "^0.19.2" - bowser "^2.9.0" - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime@^2.4.4: - version "2.4.5" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz#d8de2ecb92982dedbb6541c9b6841d7f218ea009" - integrity sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.3: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.53: - version "1.1.56" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.56.tgz#bc054a417d316e3adac90eafb7e1932802f28705" - integrity sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -object-assign@4.x, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.entries@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" - integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-value-parser@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss@^6.0.1, postcss@^6.0.23: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prop-types-extra@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b" - integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew== - dependencies: - react-is "^16.3.2" - warning "^4.0.0" - -prop-types@15.x, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" - integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.8.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -raf@^3.4.0, raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -rc-align@^2.4.0: - version "2.4.5" - resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-2.4.5.tgz#c941a586f59d1017f23a428f0b468663fb7102ab" - integrity sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw== - dependencies: - babel-runtime "^6.26.0" - dom-align "^1.7.0" - prop-types "^15.5.8" - rc-util "^4.0.4" - -rc-align@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/rc-align/-/rc-align-4.0.1.tgz#0566de141a82d9a1923b7672c70bdb19dcde6e23" - integrity sha512-RQ5Fhxl0LW+zsxbY8dxAcpXdaHkHH2jzRSSpvBTS7G9LMK3T+WRcn4ovjg/eqAESM6TdTx0hfqWF2S1pO75jxQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - dom-align "^1.7.0" - rc-util "^5.0.1" - resize-observer-polyfill "^1.5.1" - -rc-animate@2.x: - version "2.11.1" - resolved "https://registry.yarnpkg.com/rc-animate/-/rc-animate-2.11.1.tgz#2666eeb6f1f2a495a13b2af09e236712278fdb2c" - integrity sha512-1NyuCGFJG/0Y+9RKh5y/i/AalUCA51opyyS/jO2seELpgymZm2u9QV3xwODwEuzkmeQ1BDPxMLmYLcTJedPlkQ== - dependencies: - babel-runtime "6.x" - classnames "^2.2.6" - css-animation "^1.3.2" - prop-types "15.x" - raf "^3.4.0" - rc-util "^4.15.3" - react-lifecycles-compat "^3.0.4" - -rc-animate@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/rc-animate/-/rc-animate-3.1.0.tgz#051b689c2c7194e4c8ae016d32a0e5f9de6c8baa" - integrity sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw== - dependencies: - "@ant-design/css-animation" "^1.7.2" - classnames "^2.2.6" - raf "^3.4.0" - rc-util "^5.0.1" - -rc-slider@^8.6.3: - version "8.7.1" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-8.7.1.tgz#9ed07362dc93489a38e654b21b8122ad70fd3c42" - integrity sha512-WMT5mRFUEcrLWwTxsyS8jYmlaMsTVCZIGENLikHsNv+tE8ThU2lCoPfi/xFNUfJFNFSBFP3MwPez9ZsJmNp13g== - dependencies: - babel-runtime "6.x" - classnames "^2.2.5" - prop-types "^15.5.4" - rc-tooltip "^3.7.0" - rc-util "^4.0.4" - react-lifecycles-compat "^3.0.4" - shallowequal "^1.1.0" - warning "^4.0.3" - -rc-slider@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-9.3.1.tgz#444012f3b4847d592b167a9cee6a1a46779a6ef4" - integrity sha512-c52PWPyrfJWh28K6dixAm0906L3/4MUIxqrNQA4TLnC/Z+cBNycWJUZoJerpwSOE1HdM3XDwixCsmtFc/7aWlQ== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.5" - rc-tooltip "^4.0.0" - rc-util "^5.0.0" - shallowequal "^1.1.0" - -rc-tooltip@^3.7.0: - version "3.7.3" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-3.7.3.tgz#280aec6afcaa44e8dff0480fbaff9e87fc00aecc" - integrity sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww== - dependencies: - babel-runtime "6.x" - prop-types "^15.5.8" - rc-trigger "^2.2.2" - -rc-tooltip@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-4.2.1.tgz#c1a2d5017ee03a771a9301c0dfdb46dfdf8fef94" - integrity sha512-oykuaGsHg7RFvPUaxUpxo7ScEqtH61C66x4JUmjlFlSS8gSx2L8JFtfwM1D68SLBxUqGqJObtxj4TED75gQTiA== - dependencies: - rc-trigger "^4.2.1" - -rc-trigger@^2.2.2: - version "2.6.5" - resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-2.6.5.tgz#140a857cf28bd0fa01b9aecb1e26a50a700e9885" - integrity sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw== - dependencies: - babel-runtime "6.x" - classnames "^2.2.6" - prop-types "15.x" - rc-align "^2.4.0" - rc-animate "2.x" - rc-util "^4.4.0" - react-lifecycles-compat "^3.0.4" - -rc-trigger@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-4.3.0.tgz#94ea1851d123359716d1dc3030083c015a92ecfb" - integrity sha512-jnGNzosXmDdivMBjPCYe/AfOXTpJU2/xQ9XukgoXDQEoZq/9lcI1r7eUIfq70WlWpLxlUEqQktiV3hwyy6Nw9g== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "^2.2.6" - raf "^3.4.1" - rc-align "^4.0.0" - rc-animate "^3.0.0" - rc-util "^5.0.1" - -rc-util@^4.0.4, rc-util@^4.15.3, rc-util@^4.4.0: - version "4.20.5" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-4.20.5.tgz#f7c77569e971ae6a8ad56f899cadd22275398325" - integrity sha512-f67s4Dt1quBYhrVPq5QMKmK3eS2hN1NNIAyhaiG0HmvqiGYAXMQ7SP2AlGqv750vnzhJs38JklbkWT1/wjhFPg== - dependencies: - add-dom-event-listener "^1.1.0" - prop-types "^15.5.10" - react-is "^16.12.0" - react-lifecycles-compat "^3.0.4" - shallowequal "^1.1.0" - -rc-util@^5.0.0, rc-util@^5.0.1: - version "5.0.4" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.0.4.tgz#297bd719b1bd00b3c947a884ab7ef0a07c55dce6" - integrity sha512-cd19RCrE0DJH6UcJ9+V3eaXA/5sNWyVKOKkWl8ZM2OqgNzVb8fv0obf/TkuvSN43tmTsgqY8k7OqpFYHhmef8g== - dependencies: - react-is "^16.12.0" - shallowequal "^1.1.0" - -react-bootstrap@0.32.4, react-bootstrap@^0.32.4: - version "0.32.4" - resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-0.32.4.tgz#8efc4cbfc4807215d75b7639bee0d324c8d740d1" - integrity sha512-xj+JfaPOvnvr3ow0aHC7Y3HaBKZNR1mm361hVxVzVX3fcdJNIrfiodbQ0m9nLBpNxiKG6FTU2lq/SbTDYT2vew== - dependencies: - "@babel/runtime-corejs2" "^7.0.0" - classnames "^2.2.5" - dom-helpers "^3.2.0" - invariant "^2.2.4" - keycode "^2.2.0" - prop-types "^15.6.1" - prop-types-extra "^1.0.1" - react-overlays "^0.8.0" - react-prop-types "^0.4.0" - react-transition-group "^2.0.0" - uncontrollable "^5.0.0" - warning "^3.0.0" - -react-dom@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" - -react-is@^16.12.0, react-is@^16.3.2, react-is@^16.8.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-overlays@^0.8.0: - version "0.8.3" - resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-0.8.3.tgz#fad65eea5b24301cca192a169f5dddb0b20d3ac5" - integrity sha512-h6GT3jgy90PgctleP39Yu3eK1v9vaJAW73GOA/UbN9dJ7aAN4BTZD6793eI1D5U+ukMk17qiqN/wl3diK1Z5LA== - dependencies: - classnames "^2.2.5" - dom-helpers "^3.2.1" - prop-types "^15.5.10" - prop-types-extra "^1.0.1" - react-transition-group "^2.2.0" - warning "^3.0.0" - -react-prop-types@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/react-prop-types/-/react-prop-types-0.4.0.tgz#f99b0bfb4006929c9af2051e7c1414a5c75b93d0" - integrity sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A= - dependencies: - warning "^3.0.0" - -react-table@^6.8.6: - version "6.11.5" - resolved "https://registry.yarnpkg.com/react-table/-/react-table-6.11.5.tgz#84e52885db426a07a6c4ce2c7e942f2cd4e2aa58" - integrity sha512-LM+AS9v//7Y7lAlgTWW/cW6Sn5VOb3EsSkKQfQTzOW8FngB1FUskLLNEVkAYsTX9LjOWR3QlGjykJqCE6eXT/g== - dependencies: - "@types/react-table" "^6.8.5" - classnames "^2.2.5" - react-is "^16.8.1" - -react-transition-group@^2.0.0, react-transition-group@^2.2.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react@16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.2" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== - -regexpu-core@^4.6.0, regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^2.5.4, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rxjs@^6.5.3: - version "6.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" - integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== - dependencies: - tslib "^1.9.0" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.5.0, schema-utils@^2.6.5: - version "2.6.6" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" - integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.1.2: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -side-channel@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" - integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== - dependencies: - es-abstract "^1.17.0-next.1" - object-inspect "^1.7.0" - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-json-comments@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" - integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== - -style-loader@^0.23.0: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - -supports-color@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^2.1.2" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.7.0.tgz#15852cf1a08e3256a80428e865a2fa893ffba006" - integrity sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tslib@^1.8.1, tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== - dependencies: - tslib "^1.8.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uncontrollable@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-5.1.0.tgz#7e9a1c50ea24e3c78b625e52d21ff3f758c7bd59" - integrity sha512-5FXYaFANKaafg4IVZXUNtGyzsnYEvqlr9wQ3WpZxFpEUxl29A3H6Q4G1Dnnorvq9TGOGATBApWR4YpLAh+F5hw== - dependencies: - invariant "^2.2.4" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b" - integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog== - dependencies: - loader-utils "^1.2.3" - mime "^2.4.4" - schema-utils "^2.5.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - -v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - -warning@^4.0.0, warning@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g== - dependencies: - graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.0" - watchpack-chokidar2 "^2.0.0" - -webpack-cli@^3.1.1: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.19.1: - version "4.43.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" - webpack-sources "^1.4.1" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -xregexp@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" - integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== - dependencies: - "@babel/runtime-corejs3" "^7.8.3" - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yargs-parser@^13.1.0: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" diff --git a/examples/remote_procedure/README.md b/examples/remote_procedure/README.md new file mode 100644 index 000000000..4293026bc --- /dev/null +++ b/examples/remote_procedure/README.md @@ -0,0 +1,11 @@ + + +# Mephisto Remote Query Examples + +This directory contains examples of using remote queries. The `template` example consists of the boilerplate with pointers about how the code interacts with the data model (and hints on how to build your own task), while the `mnist` example shows what a functioning model-in-the-loop task would really run like. + +While neither of these tasks use it, `RemoteProcedureBlueprint` tasks are also provided with a list of the previous calls made in `initialTaskData.previous_requests` in the case of a reconnect. This can be useful for re-establishing state if a worker refreshes the page. \ No newline at end of file diff --git a/mephisto/providers/mturk/__init__.py b/examples/remote_procedure/__init__.py similarity index 74% rename from mephisto/providers/mturk/__init__.py rename to examples/remote_procedure/__init__.py index 240697e32..cfaca7562 100644 --- a/mephisto/providers/mturk/__init__.py +++ b/examples/remote_procedure/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/remote_procedure/mnist/README.md b/examples/remote_procedure/mnist/README.md new file mode 100644 index 000000000..bc9144754 --- /dev/null +++ b/examples/remote_procedure/mnist/README.md @@ -0,0 +1,15 @@ + + +# Mephisto MNIST Model Evaluator demo + +This task is a simple model evaluation demo, presenting the worker with three spaces to draw images in, running an MNIST model on them to predict an output, and then allowing the worker to assess and correct that output. + +Introduced in [#677](https://github.com/facebookresearch/Mephisto/pull/677), some screenshots and discussion there. + +For more details how to write your own `webapp` (ReactJS application) see example in current directory. +Also, read [short documentation](mephisto/review_app/README.md) +for the main Review App to understand how to add review part in your `webapp`. diff --git a/mephisto/providers/__init__.py b/examples/remote_procedure/mnist/__init__.py similarity index 74% rename from mephisto/providers/__init__.py rename to examples/remote_procedure/mnist/__init__.py index 240697e32..cfaca7562 100644 --- a/mephisto/providers/__init__.py +++ b/examples/remote_procedure/mnist/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/remote_procedure/mnist/assets/.gitkeep b/examples/remote_procedure/mnist/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/examples/remote_procedure/mnist/hydra_configs/conf/example_local_mock.yaml b/examples/remote_procedure/mnist/hydra_configs/conf/example_local_mock.yaml new file mode 100644 index 000000000..f3550fc2f --- /dev/null +++ b/examples/remote_procedure/mnist/hydra_configs/conf/example_local_mock.yaml @@ -0,0 +1,30 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: remote_procedure + - /mephisto/architect: local + - /mephisto/provider: mock +mephisto: + blueprint: + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + # NOTE pick something based on your task + block_qualification: test_qual_block + units_per_assignment: 1 + task: + allowed_concurrent: 1 + task_name: remote-procedure-test-task + task_title: "Provide feedback on our MNIST model" + # NOTE you'll want to update your task description + task_description: "You will draw digits. Try to fool our MNIST model, and provide us the correct label." + # NOTE set a reasonable reward + task_reward: 0.05 + # NOTE will want real tags + task_tags: "mnist,drawing,models,correction" + # We expect to handle 25 people using the MNIST model at once + max_num_concurrent_units: 25 diff --git a/examples/remote_procedure/mnist/hydra_configs/conf/screening_example_local_mock.yaml b/examples/remote_procedure/mnist/hydra_configs/conf/screening_example_local_mock.yaml new file mode 100644 index 000000000..c4c916d4f --- /dev/null +++ b/examples/remote_procedure/mnist/hydra_configs/conf/screening_example_local_mock.yaml @@ -0,0 +1,32 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: remote_procedure + - /mephisto/architect: local + - /mephisto/provider: mock +mephisto: + blueprint: + task_source: ${task_dir}/webapp/build/bundle.js + task_source_review: ${task_dir}/webapp/build/bundle.review.js + link_task_source: false + units_per_assignment: 1 + passed_qualification_name: "test-mnist-passed-qualification" + block_qualification: "test-mnist-blocked-qualification" + use_screening_task: true + max_screening_units: 3 + task: + task_name: remote-procedure-test-task + task_title: "Provide feedback on our MNIST model" + # NOTE you'll want to update your task description + task_description: "You will draw digits. Try to fool our MNIST model, and provide us the correct label." + # NOTE set a reasonable reward + task_reward: 0.05 + # NOTE will want real tags + task_tags: "mnist,drawing,models,correction" + # We expect to handle 25 people using the MNIST model at once + max_num_concurrent_units: 25 + allowed_concurrent: 1 diff --git a/examples/remote_procedure/mnist/model.py b/examples/remote_procedure/mnist/model.py new file mode 100644 index 000000000..7e2299cb2 --- /dev/null +++ b/examples/remote_procedure/mnist/model.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +# Using the implementation provided at +# https://github.com/aaron-xichen/pytorch-playground/blob/master/mnist/model.py + +import torch.nn as nn +from collections import OrderedDict +import torch.utils.model_zoo as model_zoo + +model_urls = {"mnist": "http://ml.cs.tsinghua.edu.cn/~chenxi/pytorch-models/mnist-b07bb66b.pth"} + + +class MLP(nn.Module): + def __init__(self, input_dims, n_hiddens, n_class): + super(MLP, self).__init__() + assert isinstance(input_dims, int), "Please provide int for input_dims" + self.input_dims = input_dims + current_dims = input_dims + layers = OrderedDict() + + if isinstance(n_hiddens, int): + n_hiddens = [n_hiddens] + else: + n_hiddens = list(n_hiddens) + for i, n_hidden in enumerate(n_hiddens): + layers["fc{}".format(i + 1)] = nn.Linear(current_dims, n_hidden) + layers["relu{}".format(i + 1)] = nn.ReLU() + layers["drop{}".format(i + 1)] = nn.Dropout(0.2) + current_dims = n_hidden + layers["out"] = nn.Linear(current_dims, n_class) + + self.model = nn.Sequential(layers) + print(self.model) + + def forward(self, input): + # input = input.view(input.size(0), -1) + assert input.size(1) == self.input_dims + return self.model.forward(input) + + +def mnist(input_dims=784, n_hiddens=[256, 256], n_class=10, pretrained=None): + model = MLP(input_dims, n_hiddens, n_class) + if pretrained is not None: + try: + m = model_zoo.load_url(model_urls["mnist"]) + except RuntimeError: + # No GPU, CPU only + m = model_zoo.load_url(model_urls["mnist"], map_location="cpu") + state_dict = m.state_dict() if isinstance(m, nn.Module) else m + assert isinstance(state_dict, (dict, OrderedDict)), type(state_dict) + model.load_state_dict(state_dict) + return model diff --git a/examples/remote_procedure/mnist/run_task.py b/examples/remote_procedure/mnist/run_task.py new file mode 100644 index 000000000..f8db452a0 --- /dev/null +++ b/examples/remote_procedure/mnist/run_task.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +try: + import torch + from PIL import Image +except ImportError: + print( + "Need to have torch, PIL, numpy installed to use this demo. For example: pip install torch pillow numpy" + ) + exit(1) + +import base64 +from io import BytesIO +from mephisto.abstractions.blueprints.mixins.screen_task_required import ( + ScreenTaskRequired, +) +from mephisto.data_model.unit import Unit +from model import mnist + +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import ( + build_custom_bundle, + task_script, +) +from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint import ( + SharedRemoteProcedureTaskState, + RemoteProcedureAgentState, +) + +from omegaconf import DictConfig +from typing import List, Any, Dict +from rich import print + + +def my_screening_unit_generator(): + """ + The frontend react webapp reads in + isScreeningUnit using the initialTaskData + prop + """ + while True: + yield {"isScreeningUnit": True} + + +def validate_screening_unit(unit: Unit): + """Checking if the drawn number is 3""" + agent = unit.get_assigned_agent() + if agent is not None: + data = agent.state.get_data() + annotation = data["outputs"]["final_submission"]["annotations"][0] + if annotation["isCorrect"] and annotation["currentAnnotation"] == 3: + return True + return False + + +@task_script(default_config_file="example_local_mock") +def main(operator: Operator, cfg: DictConfig) -> None: + tasks: List[Dict[str, Any]] = [{"isScreeningUnit": False}] * cfg.num_tasks + mnist_model = mnist(pretrained=True) + is_using_screening_units = cfg.mephisto.blueprint["use_screening_task"] + + def handle_with_model( + _request_id: str, args: Dict[str, Any], agent_state: RemoteProcedureAgentState + ) -> Dict[str, Any]: + """Convert the image to be read by MNIST classifier, then classify""" + img_dat = args["urlData"].split("data:image/png;base64,")[1] + im = Image.open(BytesIO(base64.b64decode(img_dat))) + im_gray = im.convert("L") + im_resized = im_gray.resize((28, 28)) + im_vals = list(im_resized.getdata()) + norm_vals = [(255 - x) * 1.0 / 255.0 for x in im_vals] + in_tensor = torch.tensor([norm_vals]) + output = mnist_model(in_tensor) + pred = output.data.max(1)[1] + print("Predicted digit:", pred.item()) + return { + "digit_prediction": pred.item(), + } + + function_registry = { + "classify_digit": handle_with_model, + } + shared_state = SharedRemoteProcedureTaskState( + static_task_data=tasks, + function_registry=function_registry, + ) + + if is_using_screening_units: + """You have to defined a few more properties to enable screening units""" + shared_state.on_unit_submitted = ScreenTaskRequired.create_validation_function( + cfg.mephisto, + validate_screening_unit, + ) + shared_state.screening_data_factory = my_screening_unit_generator() + shared_state.qualifications += ScreenTaskRequired.get_mixin_qualifications( + cfg.mephisto, shared_state + ) + + task_dir = cfg.task_dir + + build_custom_bundle( + task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +if __name__ == "__main__": + main() diff --git a/mephisto/server/blueprints/static_task/source/.babelrc b/examples/remote_procedure/mnist/webapp/.babelrc similarity index 100% rename from mephisto/server/blueprints/static_task/source/.babelrc rename to examples/remote_procedure/mnist/webapp/.babelrc diff --git a/mephisto/server/blueprints/parlai_chat/webapp/.eslintrc b/examples/remote_procedure/mnist/webapp/.eslintrc similarity index 100% rename from mephisto/server/blueprints/parlai_chat/webapp/.eslintrc rename to examples/remote_procedure/mnist/webapp/.eslintrc diff --git a/examples/remote_procedure/mnist/webapp/cypress.config.js b/examples/remote_procedure/mnist/webapp/cypress.config.js new file mode 100644 index 000000000..a8f21d574 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/cypress.config.js @@ -0,0 +1,14 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + video: false, + + e2e: { + baseUrl: "http://localhost:3000/?worker_id=x&assignment_id=1", + supportFile: false, + }, +}; diff --git a/examples/remote_procedure/mnist/webapp/cypress/e2e/remote_procedure_mnist.cy.js b/examples/remote_procedure/mnist/webapp/cypress/e2e/remote_procedure_mnist.cy.js new file mode 100644 index 000000000..0180d316f --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/cypress/e2e/remote_procedure_mnist.cy.js @@ -0,0 +1,98 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe("Loads remote_procedure_mnist", () => { + it("Makes request for agent", () => { + cy.intercept({ pathname: "/request_agent" }).as("agentRequest"); + cy.visit("/"); + cy.wait("@agentRequest").then((interception) => { + expect(interception.response.statusCode).to.eq(200); + }); + }); + it("Loads correct react elements", () => { + cy.get('[data-cy="canvas-container-0"]'); + cy.get('[data-cy="clear-button-0"]'); + cy.get('[data-cy="correct-checkbox-0"]'); + cy.get('[data-cy="correct-text-input-0"]'); + + cy.get('[data-cy="canvas-container-1"]'); + cy.get('[data-cy="clear-button-1"]'); + cy.get('[data-cy="correct-checkbox-1"]'); + cy.get('[data-cy="correct-text-input-1"]'); + + cy.get('[data-cy="canvas-container-2"]'); + cy.get('[data-cy="clear-button-2"]'); + cy.get('[data-cy="correct-checkbox-2"]'); + cy.get('[data-cy="correct-text-input-2"]'); + + cy.get('[data-cy="submit-button"]').as("submitButton"); + cy.get("@submitButton").should("be.disabled"); + }); + + it("Submitting with three corrected annotations", () => { + cy.on("window:alert", (txt) => { + expect(txt).to.contain("The task has been submitted!"); + }); + + cy.get('[data-cy="clear-button-0"]').as("clearButton0"); + cy.get('[data-cy="clear-button-1"]').as("clearButton1"); + cy.get('[data-cy="clear-button-2"]').as("clearButton2"); + + // draw 4 + cy.get('[data-cy="canvas-mouse-down-container-0"]') + .trigger("mouseover") + .trigger("mousedown", 20, 20) + .trigger("mousemove", 40, 150) + .trigger("mousemove", 150, 120) + .trigger("mousemove", 150, 10) + .trigger("mouseup", 150, 220); + + // There is a wait statement here because it takes some time for the model to calculate that it is a 4 + cy.wait(1000); + cy.get('[data-cy="current-annotation-0"]').should("contain.text", "4"); + cy.get('[data-cy="correct-checkbox-0"]').check(); + cy.get('[data-cy="correct-text-input-0"]').should("not.exist"); + + // draw 1 + cy.get('[data-cy="canvas-mouse-down-container-1"]') + .trigger("mouseover") + .trigger("mousedown", 20, 60) + .trigger("mousedown", 40, 40) + .trigger("mousedown", 150, 30) + .trigger("mousedown", 180, 60) + .trigger("mousedown", 180, 120) + .trigger("mousedown", 150, 135) + .trigger("mousedown", 85, 145) + .trigger("mousedown", 180, 150) + .trigger("mousedown", 180, 210) + .trigger("mouseup", 65, 220); + + cy.wait(1000); + cy.get('[data-cy="current-annotation-1"]').should("contain.text", "3"); + cy.get('[data-cy="correct-checkbox-1"]').check(); + cy.get('[data-cy="correct-text-input-1]').should("not.exist"); + + // draw gibberish + cy.get('[data-cy="canvas-mouse-down-container-2"]') + .trigger("mouseover") + .trigger("mousedown", 10, 20) + .trigger("mousedown", 120, 200) + .trigger("mouseup", 120, 200); + + cy.get('[data-cy="clear-button-2"]').click(); + + // draw 7 + cy.get('[data-cy="canvas-mouse-down-container-2"]') + .trigger("mouseover") + .trigger("mousedown", 30, 30) + .trigger("mousedown", 220, 40) + .trigger("mouseup", 40, 200); + + cy.get('[data-cy="correct-text-input-2"]').type("7"); + + cy.get('[data-cy="submit-button"]').click({ force: true }); + }); +}); diff --git a/examples/remote_procedure/mnist/webapp/link_mephisto_task.sh b/examples/remote_procedure/mnist/webapp/link_mephisto_task.sh new file mode 100644 index 000000000..6936741b2 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/link_mephisto_task.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +npm link mephisto-task diff --git a/examples/remote_procedure/mnist/webapp/package.json b/examples/remote_procedure/mnist/webapp/package.json new file mode 100644 index 000000000..05c0debca --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/package.json @@ -0,0 +1,47 @@ +{ + "name": "parlai-mturk-task-compiler", + "version": "1.0.1", + "description": "", + "main": "webpack.config.js", + "scripts": { + "dev": "webpack --mode development", + "test": "cypress open", + "build:review": "webpack --config=webpack.config.review.js --mode development" + }, + "keywords": [], + "author": "", + "dependencies": { + "bootstrap": "^4.6.0", + "mephisto-task": "2.0.4", + "rc-slider": "^8.6.3", + "react": "^16", + "react-bootstrap": "^1.6.0", + "react-canvas-draw": "^1.2.1", + "react-dom": "^16", + "react-table": "^6.8.6" + }, + "devDependencies": { + "@babel/cli": "^7.1.0", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-react": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.0.2", + "css-loader": "^6.7.1", + "cypress": "^10.1.0", + "eslint": "^8.11.0", + "eslint-config-react-app": "^7.0.0", + "eslint-plugin-flowtype": "^4.7.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.20.0", + "eslint-plugin-react-hooks": "^4.3.0", + "style-loader": "^1.1.3", + "url-loader": "^4.1.1", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.0" + } +} diff --git a/examples/remote_procedure/mnist/webapp/src/app.jsx b/examples/remote_procedure/mnist/webapp/src/app.jsx new file mode 100644 index 000000000..4ec316575 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/app.jsx @@ -0,0 +1,95 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { + BaseFrontend, + LoadingScreen, + Instructions, +} from "./components/core_components.jsx"; + +import { + MephistoContext, + useMephistoRemoteProcedureTask, + ErrorBoundary, +} from "mephisto-task"; + +/* ================= Application Components ================= */ + +// Generate a random id +function uuidv4() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); +} + +function RemoteProcedureApp() { + let mephistoProps = useMephistoRemoteProcedureTask({}); + + let { + blockedReason, + blockedExplanation, + taskConfig, + isPreview, + previewHtml, + isLoading, + handleSubmit, + remoteProcedure, + isOnboarding, + handleFatalError, + initialTaskData, + } = mephistoProps; + + const classifyDigit = remoteProcedure("classify_digit"); + + if (isOnboarding) { + // TODO You can use this as an opportunity to display anything you want for + // an onboarding agent + + // At the moment, this task has no onboarding + return

This task doesn't currently have an onboarding example set

; + } + if (blockedReason !== null) { + return

{blockedExplanation}

; + } + if (isLoading) { + return ; + } + if (isPreview) { + return ; + } + + return ( + + +
+ +
+
+
+ ); +} + +function TaskPreviewView({ description }) { + return ( +
+
+
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx b/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx new file mode 100644 index 000000000..bf5fdf78f --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/components/core_components.jsx @@ -0,0 +1,288 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React, { Fragment } from "react"; +import CanvasDraw from "react-canvas-draw"; + +function LoadingScreen() { + return Loading...; +} + +function Directions({ children }) { + return ( +
+
+
+

{children}

+
+
+
+ ); +} + +function AnnotationCanvas({ onUpdate, classifyDigit, index }) { + const [currentAnnotation, setCurrentAnnotation] = React.useState(null); + const [trueAnnotation, setTrueAnnotation] = React.useState(""); + const [isCorrect, setIsCorrect] = React.useState(null); + + const querying = React.useRef(false); + const changed = React.useRef(false); + const canvasRef = React.useRef(); + + function triggerUpdate() { + onUpdate({ + isCorrect, + trueAnnotation, + currentAnnotation, + imgData: canvasRef.current.getDataURL("png", false, "#FFF"), + }); + } + + React.useEffect(() => triggerUpdate(), [isCorrect, trueAnnotation]); + + function submitAndAnnotate() { + let urlData = canvasRef.current.getDataURL("png", false, "#FFF"); + querying.current = true; + classifyDigit({ urlData }).then((res) => { + setCurrentAnnotation(res["digit_prediction"]); + triggerUpdate(urlData); + querying.current = false; + if (changed.current === true) { + // If it's changed since we last ran, rerun! + changed.current = false; + submitAndAnnotate(); + } + }); + } + + const canvas = ( + { + if (!querying.current) { + submitAndAnnotate(); + } else { + changed.current = true; // Query once last one comes in + } + }} + canvasWidth={250} + canvasHeight={250} + brushColor={"#000"} + brushRadius={18} + hideInterface={true} + ref={(canvasDraw) => (canvasRef.current = canvasDraw)} + /> + ); + + return ( +
+
{canvas}
+ +
+ + Current Annotation: {currentAnnotation} + +
+ Annotation Correct?{" "} + setIsCorrect(!isCorrect)} + /> + {!isCorrect && ( + +
+ Corrected Annotation: +
+ setTrueAnnotation(evt.target.value)} + /> +
+ )} +
+ ); +} + +function Instructions({ taskData }) { + return ( +
+

MNIST Model Evaluator

+

+ {taskData?.isScreeningUnit + ? "Screening Unit:" + : "To submit this task, you'll need to draw 3 (single) digits in the boxes below. Our model will try to provide an annotation for each."} +

+

+ {taskData?.isScreeningUnit + ? 'To submit this task you will have to correctly draw the number 3 in the box below and check the "Annotation Correct" checkbox' + : "You can confirm or reject each of the annotations. Provide a correction if the annotation is wrong."} +

+
+ ); +} + +function TaskFrontend({ + classifyDigit, + finalResults = null, + handleSubmit, + initialTaskData, +}) { + if (finalResults) { + return ( + + ); + } + + // TODO Update this file such that, if finalResults contains data we render in review mode with that data + const NUM_ANNOTATIONS = initialTaskData.isScreeningUnit ? 1 : 3; + const [annotations, updateAnnotations] = React.useReducer( + (currentAnnotation, { updateIdx, updatedAnnotation }) => { + return currentAnnotation.map((val, idx) => + idx == updateIdx ? updatedAnnotation : val + ); + }, + Array(NUM_ANNOTATIONS).fill({ + currentAnnotation: null, + trueAnnotation: null, + isCorrect: null, + }) + ); + let canSubmit = + annotations.filter((a) => a.isCorrect === true || a.trueAnnotation !== "") + .length == NUM_ANNOTATIONS; + + return ( +
+ +
+ {annotations.map((_d, idx) => ( + + updateAnnotations({ + updateIdx: idx, + updatedAnnotation: annotation, + }) + } + /> + ))} +
+
+ + +
+ ); +} + +function ReviewAnnotationCanvas({ index, value }) { + return ( +
+
+ {"img" +
+ +
+ + Current Annotation: {value["currentAnnotation"]} + +
+ Annotation Correct?{" "} + + +
+ Corrected Annotation: +
+ +
+
+ ); +} + +function ReviewFrontend({ initialTaskData, reviewData }) { + return ( +
+ +
+ {reviewData["final_submission"]["annotations"].map((_d, idx) => ( + null} + value={_d} + /> + ))} +
+
+ + +
+ ); +} + +export { + LoadingScreen, + TaskFrontend as BaseFrontend, + ReviewFrontend, + Instructions, +}; diff --git a/examples/remote_procedure/mnist/webapp/src/css/style.css b/examples/remote_procedure/mnist/webapp/src/css/style.css new file mode 100644 index 000000000..4a472df42 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/css/style.css @@ -0,0 +1,5 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/mephisto/webapp/src/react-app-env.d.ts b/examples/remote_procedure/mnist/webapp/src/main.js similarity index 66% rename from mephisto/webapp/src/react-app-env.d.ts rename to examples/remote_procedure/mnist/webapp/src/main.js index 9d2168c53..f4be63f80 100644 --- a/mephisto/webapp/src/react-app-env.d.ts +++ b/examples/remote_procedure/mnist/webapp/src/main.js @@ -3,4 +3,6 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -/// +import "./app.jsx"; +import "./css/style.css"; +import "bootstrap/dist/css/bootstrap.min.css"; diff --git a/examples/remote_procedure/mnist/webapp/src/review.js b/examples/remote_procedure/mnist/webapp/src/review.js new file mode 100644 index 000000000..8244f97d2 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/review.js @@ -0,0 +1,9 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import "./reviewapp.jsx"; +import "./css/style.css"; +import "bootstrap/dist/css/bootstrap.min.css"; diff --git a/examples/remote_procedure/mnist/webapp/src/reviewapp.jsx b/examples/remote_procedure/mnist/webapp/src/reviewapp.jsx new file mode 100644 index 000000000..e5c498817 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/reviewapp.jsx @@ -0,0 +1,60 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { BaseFrontend } from "./components/core_components.jsx"; + +function ReviewApp() { + const appRef = React.useRef(null); + const [reviewData, setReviewData] = React.useState(null); + + // Requirement #1. Render review components after receiving Task data via message + window.onmessage = function (e) { + const data = JSON.parse(e.data); + setReviewData(data["REVIEW_DATA"]); + }; + + // Requirement #2. Resize iframe height to fit its content + React.useLayoutEffect(() => { + function updateSize() { + if (appRef.current) { + window.top.postMessage( + JSON.stringify({ + IFRAME_DATA: { + height: appRef.current.offsetHeight, + }, + }), + "*" + ); + } + } + window.addEventListener("resize", updateSize); + updateSize(); + // HACK: Catch-all resize, if normal resizes failed (e.g. acync long loading images) + setTimeout(() => { + updateSize(); + }, 3000); + return () => window.removeEventListener("resize", updateSize); + }, []); + + // Requirement #3. This component must return a div with `ref={appRef}` + // so we can get displayed height of this component (for iframe resizing) + return ( +
+ {reviewData ? ( + + ) : ( +
Loading...
+ )} +
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/mnist/webapp/src/static/index.html b/examples/remote_procedure/mnist/webapp/src/static/index.html new file mode 100644 index 000000000..a8ed9fea6 --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/src/static/index.html @@ -0,0 +1,33 @@ + + + + + + + + Remote Query Example + + + + + + + + + +
+ + + diff --git a/examples/remote_procedure/mnist/webapp/webpack.config.js b/examples/remote_procedure/mnist/webapp/webpack.config.js new file mode 100644 index 000000000..7c92f67df --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/webpack.config.js @@ -0,0 +1,48 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var path = require("path"); +var webpack = require("webpack"); + +module.exports = { + entry: "./src/main.js", + output: { + path: __dirname, + filename: "build/bundle.js", + }, + resolve: { + alias: { + react: path.resolve("./node_modules/react"), + }, + fallback: { + net: false, + dns: false, + }, + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + loader: "babel-loader", + exclude: /node_modules/, + options: { presets: ["@babel/env"] }, + }, + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.(svg|png|jpe?g|ttf)$/, + loader: "url-loader", + options: { limit: 100000 }, + }, + { + test: /\.jpg$/, + loader: "file-loader", + }, + ], + }, +}; diff --git a/examples/remote_procedure/mnist/webapp/webpack.config.review.js b/examples/remote_procedure/mnist/webapp/webpack.config.review.js new file mode 100644 index 000000000..5e226ee6c --- /dev/null +++ b/examples/remote_procedure/mnist/webapp/webpack.config.review.js @@ -0,0 +1,53 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var path = require("path"); +var webpack = require("webpack"); + +module.exports = { + entry: "./src/review.js", + output: { + path: __dirname, + filename: "build/bundle.review.js", + }, + resolve: { + alias: { + react: path.resolve("./node_modules/react"), + }, + fallback: { + net: false, + dns: false, + }, + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + loader: "babel-loader", + exclude: /node_modules/, + options: { presets: ["@babel/env"] }, + }, + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.(svg|png|jpe?g|ttf)$/, + loader: "url-loader", + options: { limit: 100000 }, + }, + { + test: /\.tsx?$/, + use: "ts-loader", + exclude: /node_modules/, + }, + { + test: /\.jpg$/, + loader: "file-loader", + }, + ], + }, +}; diff --git a/examples/remote_procedure/template/README.md b/examples/remote_procedure/template/README.md new file mode 100644 index 000000000..65b5bc77f --- /dev/null +++ b/examples/remote_procedure/template/README.md @@ -0,0 +1,15 @@ + + +# Mephisto Remote Query Template + +This task is an _extremely rough_ bare-bones example of being able to set up a task where the frontend directly connects to the backend using the `useMephistoRemoteProcedureTask` hook from the `mephisto-task` package. It should serve as a decent example of how to get a `RemoteProcedureBlueprint` task up off the ground. + +Deploying the task as-is brings up a page where the user needs to click the "query backend" button enough times for the task to be considered ready to submit. + +It makes use of the function_registry to use a `"handle_with_model"` method that, admittedly, doesn't use any models, but hopefully demonstrates where a model can fit into this type of task. + +As it stands, these queries are still just a single request to single response model, but that should be sufficient for most tasks that want to have a backend in-the-loop for an otherwise frontend-heavy task. \ No newline at end of file diff --git a/mephisto/providers/mock/__init__.py b/examples/remote_procedure/template/__init__.py similarity index 74% rename from mephisto/providers/mock/__init__.py rename to examples/remote_procedure/template/__init__.py index 240697e32..cfaca7562 100644 --- a/mephisto/providers/mock/__init__.py +++ b/examples/remote_procedure/template/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# Copyright (c) Facebook, Inc. and its affiliates. +# Copyright (c) Meta Platforms and its affiliates. # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. diff --git a/examples/remote_procedure/template/assets/.gitkeep b/examples/remote_procedure/template/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/examples/remote_procedure/template/hydra_configs/conf/example_local_mock.yaml b/examples/remote_procedure/template/hydra_configs/conf/example_local_mock.yaml new file mode 100644 index 000000000..5ab8d7af9 --- /dev/null +++ b/examples/remote_procedure/template/hydra_configs/conf/example_local_mock.yaml @@ -0,0 +1,30 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: remote_procedure + - /mephisto/architect: local + - /mephisto/provider: mock +mephisto: + blueprint: + task_source: ${task_dir}/webapp/build/bundle.js + link_task_source: false + # NOTE pick something based on your task + block_qualification: test_qual_block + units_per_assignment: 1 + task: + allowed_concurrent: 1 + task_name: remote-procedure-test-task + task_title: "Test a static task that also has access to live backend queries" + # NOTE you'll want to update your task description + task_description: "You will be shown a form that you can submit at any time, but can also toggle a backend query" + # NOTE set a reasonable reward + task_reward: 0.05 + # NOTE will want real tags + task_tags: "test,task,fix-me" + # NOTE Model-in-the-loop tasks need to be careful to configure only as many concurrent + # connections as their model can handle at once + max_num_concurrent_units: 40 diff --git a/examples/remote_procedure/template/run_task.py b/examples/remote_procedure/template/run_task.py new file mode 100644 index 000000000..ef4642f42 --- /dev/null +++ b/examples/remote_procedure/template/run_task.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import ( + task_script, + build_custom_bundle, +) +from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint import ( + SharedRemoteProcedureTaskState, + RemoteProcedureAgentState, +) + +from omegaconf import DictConfig +from typing import Any, Dict + + +def build_local_context(num_tasks): + """ + Create local context that you don't intend to be shared with the frontend, + but which you may want your remote functions to use + """ + # NOTE this can be used to establish any kind of shared local context you + # might need access to + context = {} + for x in range(num_tasks): + context[x] = f"Hello {x}, this task was for you." + return context + + +def build_tasks(num_tasks): + """ + Create a set of tasks you want annotated + """ + # NOTE These form the init_data for a task + tasks = [] + for x in range(num_tasks): + tasks.append( + { + "index": x, + "local_value_key": x, + } + ) + return tasks + + +@task_script(default_config_file="example_local_mock") +def main(operator: Operator, cfg: DictConfig) -> None: + def onboarding_always_valid(onboarding_data): + # NOTE you can make an onboarding task and validate it here + print(onboarding_data) + return True + + # Right now we're building locally, but should eventually + # use non-local for the real thing + tasks = build_tasks(cfg.num_tasks) + context = build_local_context(cfg.num_tasks) + + def handle_with_model( + _request_id: str, args: Dict[str, Any], agent_state: RemoteProcedureAgentState + ) -> Dict[str, Any]: + """Remote call to process external content using a 'model'""" + # NOTE this body can be whatever you want + print(f"The parsed args are {args}, you can do what you want with that") + print(f"You can also use {agent_state.init_data}, to get task keys") + assert agent_state.init_data is not None + idx = agent_state.init_data["local_value_key"] + print(f"And that may let you get local context, like {context[idx]}") + return { + "secret_local_value": context[idx], + "update": f"this was request {args['arg3'] + 1}", + } + + function_registry = { + "handle_with_model": handle_with_model, + } + + shared_state = SharedRemoteProcedureTaskState( + static_task_data=tasks, + validate_onboarding=onboarding_always_valid, + function_registry=function_registry, + ) + + task_dir = cfg.task_dir + build_custom_bundle( + task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +if __name__ == "__main__": + main() diff --git a/examples/remote_procedure/template/webapp/.babelrc b/examples/remote_procedure/template/webapp/.babelrc new file mode 100644 index 000000000..5507f2e86 --- /dev/null +++ b/examples/remote_procedure/template/webapp/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["@babel/env", "@babel/preset-react"], + "plugins": ["@babel/plugin-proposal-class-properties"] +} diff --git a/examples/remote_procedure/template/webapp/.eslintrc b/examples/remote_procedure/template/webapp/.eslintrc new file mode 100644 index 000000000..fcf5ef32e --- /dev/null +++ b/examples/remote_procedure/template/webapp/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": ["react-app"] +} diff --git a/examples/remote_procedure/template/webapp/cypress.config.js b/examples/remote_procedure/template/webapp/cypress.config.js new file mode 100644 index 000000000..a8f21d574 --- /dev/null +++ b/examples/remote_procedure/template/webapp/cypress.config.js @@ -0,0 +1,14 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + video: false, + + e2e: { + baseUrl: "http://localhost:3000/?worker_id=x&assignment_id=1", + supportFile: false, + }, +}; diff --git a/examples/remote_procedure/template/webapp/cypress/e2e/remote_procedure_template.cy.js b/examples/remote_procedure/template/webapp/cypress/e2e/remote_procedure_template.cy.js new file mode 100644 index 000000000..6857cc445 --- /dev/null +++ b/examples/remote_procedure/template/webapp/cypress/e2e/remote_procedure_template.cy.js @@ -0,0 +1,60 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe("Loads remote_procedure_template", () => { + it("Makes request for agent", () => { + cy.intercept({ pathname: "/request_agent" }).as("agentRequest"); + cy.visit("/"); + cy.wait("@agentRequest").then((interception) => { + expect(interception.response.statusCode).to.eq(200); + }); + }); + + it("Loads correct react elements", () => { + cy.get('[data-cy="directions-header"]'); + cy.get('[data-cy="directions-paragraph"]'); + cy.get('[data-cy="query-backend-button"]'); + cy.get('[data-cy="submit-button"]'); + }); + + it("Submit button not disabled after querying backend four times", () => { + cy.on("window:alert", (txt) => { + expect(txt).to.contain("this was request"); + }); + + cy.get('[data-cy="query-backend-button"]').as("queryBackendButton"); + cy.get('[data-cy="submit-button"]').as("submitButton"); + + // These ugly wait statements exist because cypress doesn't handle react-rerenders well + // https://github.com/cypress-io/cypress/issues/7306 + cy.get("@submitButton").should("be.disabled"); + + cy.get("@queryBackendButton").should("be.visible"); + + cy.get("@queryBackendButton").click(); + + cy.get("@submitButton").should("be.disabled"); + + cy.wait(1000); + cy.get("@queryBackendButton").should("be.visible"); + cy.get("@queryBackendButton").click(); + + cy.get("@submitButton").should("be.disabled"); + + cy.wait(1000); + cy.get("@queryBackendButton").should("be.visible"); + cy.get("@queryBackendButton").click(); + + cy.get("@submitButton").should("be.disabled"); + + cy.wait(1000); + cy.get("@queryBackendButton").should("be.visible"); + cy.get("@queryBackendButton").click(); + + cy.wait(1000); + cy.get("@submitButton").should("not.be.disabled"); + }); +}); diff --git a/examples/remote_procedure/template/webapp/link_mephisto_task.sh b/examples/remote_procedure/template/webapp/link_mephisto_task.sh new file mode 100644 index 000000000..6936741b2 --- /dev/null +++ b/examples/remote_procedure/template/webapp/link_mephisto_task.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +npm link mephisto-task diff --git a/examples/remote_procedure/template/webapp/package.json b/examples/remote_procedure/template/webapp/package.json new file mode 100644 index 000000000..9e1055d88 --- /dev/null +++ b/examples/remote_procedure/template/webapp/package.json @@ -0,0 +1,45 @@ +{ + "name": "parlai-mturk-task-compiler", + "version": "1.0.1", + "description": "", + "main": "webpack.config.js", + "scripts": { + "dev": "webpack --mode development", + "test": "cypress open" + }, + "keywords": [], + "author": "", + "dependencies": { + "bootstrap": "^4.6.0", + "mephisto-task": "2.0.4", + "rc-slider": "^8.6.3", + "react": "^16", + "react-bootstrap": "^1.6.0", + "react-dom": "^16", + "react-table": "^6.8.6" + }, + "devDependencies": { + "@babel/cli": "^7.1.0", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-react": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.0.2", + "css-loader": "^6.7.1", + "cypress": "^10.1.0", + "eslint": "^8.11.0", + "eslint-config-react-app": "^7.0.0", + "eslint-plugin-flowtype": "^4.7.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.20.0", + "eslint-plugin-react-hooks": "^4.3.0", + "style-loader": "^1.1.3", + "url-loader": "^4.1.1", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.0" + } +} diff --git a/examples/remote_procedure/template/webapp/src/app.jsx b/examples/remote_procedure/template/webapp/src/app.jsx new file mode 100644 index 000000000..d05ed8427 --- /dev/null +++ b/examples/remote_procedure/template/webapp/src/app.jsx @@ -0,0 +1,97 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { BaseFrontend, LoadingScreen } from "./components/core_components.jsx"; + +import { + MephistoContext, + useMephistoRemoteProcedureTask, + ErrorBoundary, +} from "mephisto-task"; + +/* ================= Application Components ================= */ + +// Generate a random id +function uuidv4() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); +} + +function RemoteProcedureApp() { + let mephistoProps = useMephistoRemoteProcedureTask({}); + + let { + blockedReason, + blockedExplanation, + taskConfig, + isPreview, + previewHtml, + initialTaskData, + isLoading, + handleSubmit, + remoteProcedure, + isOnboarding, + handleFatalError, + } = mephistoProps; + + const handleRemoteCall = remoteProcedure("handle_with_model"); + + if (isOnboarding) { + // TODO You can use this as an opportunity to display anything you want for + // an onboarding agent + + // At the moment, this task has no onboarding + return

This task doesn't currently have an onboarding example set

; + } + if (blockedReason !== null) { + return

{blockedExplanation}

; + } + if (isLoading) { + return ; + } + if (isPreview) { + if (!taskConfig.has_preview) { + return ; + } + if (previewHtml === null) { + return
Loading...
; + } + return
; + } + + return ( + + +
+ +
+
+
+ ); +} + +function TaskPreviewView({ description }) { + return ( +
+
+
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/template/webapp/src/components/core_components.jsx b/examples/remote_procedure/template/webapp/src/components/core_components.jsx new file mode 100644 index 000000000..e94271daf --- /dev/null +++ b/examples/remote_procedure/template/webapp/src/components/core_components.jsx @@ -0,0 +1,72 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +function LoadingScreen() { + return Loading...; +} + +function Directions({ children }) { + return ( +
+
+
+

{children}

+
+
+
+ ); +} + +function TaskFrontend({ taskData, handleRemoteCall, handleSubmit }) { + if (!taskData) { + return ; + } + + const [queryCount, setQueryCount] = React.useState(0); + let canSubmit = queryCount > 3; + + return ( +
+

+ This is a simple task to demonstrate a static task with backend + capabilities. +

+

+ To submit this task, you must make a few backend queries first +

+ + + +
+ ); +} + +export { LoadingScreen, TaskFrontend as BaseFrontend }; diff --git a/examples/remote_procedure/template/webapp/src/css/style.css b/examples/remote_procedure/template/webapp/src/css/style.css new file mode 100644 index 000000000..4a472df42 --- /dev/null +++ b/examples/remote_procedure/template/webapp/src/css/style.css @@ -0,0 +1,5 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/examples/remote_procedure/template/webapp/src/main.js b/examples/remote_procedure/template/webapp/src/main.js new file mode 100644 index 000000000..f710171aa --- /dev/null +++ b/examples/remote_procedure/template/webapp/src/main.js @@ -0,0 +1,8 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import "./app.jsx"; +import "./css/style.css"; +import "bootstrap/dist/css/bootstrap.min.css"; diff --git a/examples/remote_procedure/template/webapp/src/static/index.html b/examples/remote_procedure/template/webapp/src/static/index.html new file mode 100644 index 000000000..a8ed9fea6 --- /dev/null +++ b/examples/remote_procedure/template/webapp/src/static/index.html @@ -0,0 +1,33 @@ + + + + + + + + Remote Query Example + + + + + + + + + +
+ + + diff --git a/examples/remote_procedure/template/webapp/webpack.config.js b/examples/remote_procedure/template/webapp/webpack.config.js new file mode 100644 index 000000000..7c92f67df --- /dev/null +++ b/examples/remote_procedure/template/webapp/webpack.config.js @@ -0,0 +1,48 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var path = require("path"); +var webpack = require("webpack"); + +module.exports = { + entry: "./src/main.js", + output: { + path: __dirname, + filename: "build/bundle.js", + }, + resolve: { + alias: { + react: path.resolve("./node_modules/react"), + }, + fallback: { + net: false, + dns: false, + }, + }, + module: { + rules: [ + { + test: /\.(js|jsx)$/, + loader: "babel-loader", + exclude: /node_modules/, + options: { presets: ["@babel/env"] }, + }, + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.(svg|png|jpe?g|ttf)$/, + loader: "url-loader", + options: { limit: 100000 }, + }, + { + test: /\.jpg$/, + loader: "file-loader", + }, + ], + }, +}; diff --git a/examples/remote_procedure/toxicity_detection/README.md b/examples/remote_procedure/toxicity_detection/README.md new file mode 100644 index 000000000..ac4197138 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/README.md @@ -0,0 +1,29 @@ + + +# Mephisto Toxicity Detection Demo +## Summary + +This task presents the worker with a text input. + +Written text can only be submitted if its toxicity is is calculated to be <= 0.5. If the toxicity is > 0.5 an alert is shown and the text is not submitted. + +The toxicity of written text is calculated from the detoxify python library. + +## Steps to run demo + +To run the demo first detoxify has to be installed. This can be done using + +```bash +pip install detoxify +``` + +Then typing +```bash +python run_task.py +``` + +should run the demo. diff --git a/examples/remote_procedure/toxicity_detection/__init__.py b/examples/remote_procedure/toxicity_detection/__init__.py new file mode 100644 index 000000000..cfaca7562 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/__init__.py @@ -0,0 +1,5 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. diff --git a/examples/remote_procedure/toxicity_detection/assets/.gitkeep b/examples/remote_procedure/toxicity_detection/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example_local_mock.yaml b/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example_local_mock.yaml new file mode 100644 index 000000000..1f5bbdbb8 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/hydra_configs/conf/example_local_mock.yaml @@ -0,0 +1,29 @@ +#@package _global_ + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +defaults: + - /mephisto/blueprint: remote_procedure + - /mephisto/architect: local + - /mephisto/provider: mock +mephisto: + blueprint: + task_source: ${task_dir}/webapp/build/bundle.js + link_task_source: false + # NOTE pick something based on your task + block_qualification: test_qual_block + units_per_assignment: 1 + task: + allowed_concurrent: 1 + task_name: remote-procedure-test-task + task_title: "Provide feedback on our toxicity detection model" + # NOTE you'll want to update your task description + task_description: "Type text into the input box. You will not be able to submit your message to the backend if the message is too toxic (>0.5)." + # NOTE set a reasonable reward + task_reward: 0.05 + # NOTE will want real tags + task_tags: "detoxify,input,toxic,text" + # We expect to handle 25 people using the Toxicity Detection model at once + max_num_concurrent_units: 25 diff --git a/examples/remote_procedure/toxicity_detection/run_task.py b/examples/remote_procedure/toxicity_detection/run_task.py new file mode 100644 index 000000000..681e10576 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/run_task.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +try: + from detoxify import Detoxify +except ImportError: + print("Need to have detoxify to use this demo. For example: pip install detoxify") + exit(1) + +from mephisto.operations.operator import Operator +from mephisto.tools.scripts import ( + build_custom_bundle, + task_script, +) + +from mephisto.abstractions.blueprints.remote_procedure.remote_procedure_blueprint import ( + SharedRemoteProcedureTaskState, + RemoteProcedureAgentState, +) +from omegaconf import DictConfig +from typing import Any, Dict + + +def build_tasks(num_tasks): + """ + Create a set of tasks you want annotated + """ + # NOTE These form the init_data for a task + tasks = [] + for x in range(num_tasks): + tasks.append( + { + "index": x, + "local_value_key": x, + } + ) + return tasks + + +def determine_toxicity(text: str): + return Detoxify("original").predict(text)["toxicity"] + + +@task_script(default_config_file="example_local_mock") +def main(operator: Operator, cfg: DictConfig) -> None: + tasks = build_tasks(cfg.num_tasks) + + def calculate_toxicity( + _request_id: str, args: Dict[str, Any], agent_state: RemoteProcedureAgentState + ) -> Dict[str, Any]: + return { + "toxicity": str(determine_toxicity(args["text"])), + } + + function_registry = { + "determine_toxicity": calculate_toxicity, + } + + shared_state = SharedRemoteProcedureTaskState( + static_task_data=tasks, + function_registry=function_registry, + ) + + task_dir = cfg.task_dir + build_custom_bundle( + task_dir, + force_rebuild=cfg.mephisto.task.force_rebuild, + post_install_script=cfg.mephisto.task.post_install_script, + ) + + operator.launch_task_run(cfg.mephisto, shared_state) + operator.wait_for_runs_then_shutdown(skip_input=True, log_rate=30) + + +if __name__ == "__main__": + main() diff --git a/examples/remote_procedure/toxicity_detection/webapp/.babelrc b/examples/remote_procedure/toxicity_detection/webapp/.babelrc new file mode 100644 index 000000000..5507f2e86 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["@babel/env", "@babel/preset-react"], + "plugins": ["@babel/plugin-proposal-class-properties"] +} diff --git a/examples/remote_procedure/toxicity_detection/webapp/.eslintrc b/examples/remote_procedure/toxicity_detection/webapp/.eslintrc new file mode 100644 index 000000000..fcf5ef32e --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": ["react-app"] +} diff --git a/examples/remote_procedure/toxicity_detection/webapp/cypress.config.js b/examples/remote_procedure/toxicity_detection/webapp/cypress.config.js new file mode 100644 index 000000000..a8f21d574 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/cypress.config.js @@ -0,0 +1,14 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + video: false, + + e2e: { + baseUrl: "http://localhost:3000/?worker_id=x&assignment_id=1", + supportFile: false, + }, +}; diff --git a/examples/remote_procedure/toxicity_detection/webapp/cypress/e2e/remote_procedure_toxicity_detection.cy.js b/examples/remote_procedure/toxicity_detection/webapp/cypress/e2e/remote_procedure_toxicity_detection.cy.js new file mode 100644 index 000000000..9d1067ed1 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/cypress/e2e/remote_procedure_toxicity_detection.cy.js @@ -0,0 +1,57 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +describe("Loads remote_procedure_toxicity_detection", () => { + it("Makes request for agent", () => { + cy.intercept({ pathname: "/request_agent" }).as("agentRequest"); + cy.visit("/"); + cy.wait("@agentRequest").then((interception) => { + expect(interception.response.statusCode).to.eq(200); + }); + }); + + it("Loads correct react elements", () => { + cy.get('[data-cy="directions-header"]'); + cy.get('[data-cy="directions-paragraph"]'); + cy.get('[data-cy="detection-text-area"]'); + cy.get('[data-cy="submit-button"]'); + }); + + it("Typing and submitting a toxic statement", () => { + cy.get('[data-cy="detection-text-area"]').as("textArea"); + cy.get('[data-cy="submit-button"]').as("submitButton"); + + cy.get("@textArea").type("I hate bob!"); + cy.get("@submitButton").click(); + cy.get('[data-cy="loading-spinner"]'); + // This timeout is 80000 because the detoxify model takes a good bit of time to run + cy.get('[data-cy="toxicity-alert"]', { timeout: 80000 }).as( + "toxicityAlert" + ); + cy.get("@toxicityAlert").contains( + 'The statement, "I hate bob!," has a toxicity of:' + ); + }); + + it("Typing and submitting a non-toxic statement", () => { + cy.intercept({ pathname: "/submit_task" }).as("submitTaskRequest"); + cy.on("window:alert", (text) => { + expect(text).to.contains( + 'The task has been submitted! Data: {"toxicity":' + ); + }); + cy.get('[data-cy="detection-text-area"]').as("textArea"); + cy.get('[data-cy="submit-button"]').as("submitButton"); + + cy.get("@textArea").type("I love pizza!"); + cy.get("@submitButton").click(); + cy.get('[data-cy="loading-spinner"]'); + cy.wait("@submitTaskRequest").then((interception) => { + expect(interception.response.statusCode).to.eq(200); + }); + cy.get('[data-cy="loading-spinner"]').should("not.be.exist"); + }); +}); diff --git a/examples/remote_procedure/toxicity_detection/webapp/link_mephisto_task.sh b/examples/remote_procedure/toxicity_detection/webapp/link_mephisto_task.sh new file mode 100644 index 000000000..6936741b2 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/link_mephisto_task.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Copyright (c) Meta Platforms and its affiliates. +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. + +npm link mephisto-task diff --git a/examples/remote_procedure/toxicity_detection/webapp/package.json b/examples/remote_procedure/toxicity_detection/webapp/package.json new file mode 100644 index 000000000..90dbf718a --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/package.json @@ -0,0 +1,44 @@ +{ + "name": "parlai-mturk-task-compiler", + "version": "1.0.1", + "description": "", + "main": "webpack.config.js", + "scripts": { + "dev": "webpack --mode development", + "test": "cypress open" + }, + "keywords": [], + "author": "", + "dependencies": { + "bootstrap": "^4.6.0", + "mephisto-task": "2.0.4", + "rc-slider": "^8.6.3", + "react": "^18.2.0", + "react-bootstrap": "^1.6.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@babel/cli": "^7.1.0", + "@babel/core": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "@babel/preset-react": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", + "babel-eslint": "^10.1.0", + "babel-loader": "^8.0.2", + "css-loader": "^6.7.1", + "cypress": "^10.1.0", + "eslint": "^8.11.0", + "eslint-config-react-app": "^7.0.0", + "eslint-plugin-flowtype": "^4.7.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-react": "^7.20.0", + "eslint-plugin-react-hooks": "^4.3.0", + "style-loader": "^1.1.3", + "url-loader": "^4.1.1", + "webpack": "^5.70.0", + "webpack-cli": "^4.9.0" + } +} diff --git a/examples/remote_procedure/toxicity_detection/webapp/src/app.jsx b/examples/remote_procedure/toxicity_detection/webapp/src/app.jsx new file mode 100644 index 000000000..8fde25f54 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/src/app.jsx @@ -0,0 +1,68 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React from "react"; +import ReactDOM from "react-dom"; +import { + BaseFrontend, + LoadingScreen, + Instructions, +} from "./components/core_components.jsx"; + +import { + MephistoContext, + useMephistoRemoteProcedureTask, + ErrorBoundary, +} from "mephisto-task"; + +function RemoteProcedureApp() { + let mephistoProps = useMephistoRemoteProcedureTask({}); + + let { + blockedReason, + blockedExplanation, + isPreview, + isLoading, + handleSubmit, + remoteProcedure, + isOnboarding, + handleFatalError, + } = mephistoProps; + + const handleToxicityCalculation = remoteProcedure("determine_toxicity"); + + if (isOnboarding) { + return

This task doesn't currently have an onboarding example set

; + } + if (blockedReason !== null) { + return

{blockedExplanation}

; + } + if (isLoading) { + return ; + } + if (isPreview) { + return ; + } + + return ( + + +
+ +
+
+
+ ); +} + +ReactDOM.render(, document.getElementById("app")); diff --git a/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components.jsx b/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components.jsx new file mode 100644 index 000000000..2c4b8cde9 --- /dev/null +++ b/examples/remote_procedure/toxicity_detection/webapp/src/components/core_components.jsx @@ -0,0 +1,122 @@ +/* + * Copyright (c) Meta Platforms and its affiliates. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React, { Fragment, useState } from "react"; + +function LoadingScreen() { + return Loading...; +} + +function Directions({ children }) { + return ( +
+
+
+

{children}

+
+
+
+ ); +} +function Instructions() { + return ( +
+

Toxicity Detection Model

+

+ To submit this task, you'll need to enter one or many sentences in the + input box below. The model will calculate the toxicity of the inputted + text. +

+
+ ); +} + +function TaskFrontend({ handleSubmit, handleToxicityCalculation }) { + const [text, setText] = useState(""); + const [isLoading, setIsLoading] = useState(false); + const [result, setResult] = useState(""); + const [toxicity, setToxicity] = useState(0); + const [submitError, setSubmitError] = useState(null); + + function calculateToxicity() { + setIsLoading(true); + handleToxicityCalculation({ + text: text, + }) + .then((response) => { + setSubmitError(null); + setIsLoading(false); + const parsedToxicity = parseFloat(response.toxicity); + setToxicity(parsedToxicity); + if (parsedToxicity <= 0.5) { + handleSubmit({ toxicity: response.toxicity }); + } else { + setResult( + `The statement, "${text}," has a toxicity of: ${response.toxicity}. This message is too toxic to submit.` + ); + } + }) + .catch((err) => { + setIsLoading(false); + setSubmitError(err); + console.error(err); + }); + } + + return ( + + +
+